0

我的问题:我正在编写一个传递给constControl(..., ds=ds, ...)将迭代更新的数据源。这是我建立的模型在每个时间步进行一系列计算的结果。在每个时间步传递我的模型(负载)的结果后,我想run_timeseries在进行下一次迭代之前调用并存储结果。尝试将一些结果(例如net.res_bus.vm_pu,...)存储到列表中无法在每次迭代后更新值,就好像数据源对象在整个迭代中具有恒定值,但事实并非如此。

我的解决方案:我发现在每次迭代OutputWriter()之前调用run_timeseries()并让它输出一个excel文件成功地更新了我同时存储在那个空列表中的结果。所以它现在可以工作了!

我的问题:我不想每次都被迫输出 excel 文件run_timeseries(),以便在下一次迭代中存储和/或成功更新结果。目前我什至不需要 excel 文件。有没有办法不必调用OutputWriter()但将网络的结果值存储在一个空列表中?

4

1 回答 1

0

你不需要使用OutputWriter(). run_timeseries()这取决于您要尝试做什么,如果您创建一个与可能工作相同的循环。

就我而言,我想在每次进行更改时更改负载并进行新的潮流计算。

所采取的步骤概述:

  • 创建一个循环

  • 例如,每个步骤都使用 map 更改负载以遍历所有项目net.load.p_mw

  • 调用run_control(net)进行新的潮流计算。

然后您可以创建一个列表来收集数据并将其转换为 JSON。

  • 数据 = 所有总线数据
  • json = { dataBuses: data }

一旦它是 JSON 格式,您甚至可以通过发布请求或任何您想要的方式发送到数据库。

于 2020-06-21T02:29:56.237 回答