我的问题:我正在编写一个数据源,我将其传递给constControl(..., ds=ds, ...),并将其迭代更新。它是我建立的一个模型在每个时间步进行一系列计算的结果。在每次传递模型(加载)的结果后,我想调用run_timeseries并存储结果,然后再进行下一次迭代。正在尝试存储一些结果(例如net.res_bus.vm_pu,...)无法在每次迭代后更新值,就好像数据源对象在整个迭代过程中都具有常量值一样,但事实并非如此。
我的解决方案是:我发现在run_timeseries()之前调用OutputWriter()并让它在每次迭代时输出一个excel文件成功地更新了我同时存储在那个空列表中的结果。所以它现在起作用了!
我的问题是:为了在下一次迭代中存储和/或成功更新结果,我不希望每次run_timeseries()时都被迫输出excel文件。我现在甚至不需要excel文件。有没有办法不必调用OutputWriter(),而是将net的结果值存储在一个空列表中?
发布于 2020-06-21 10:29:56
你不需要使用OutputWriter()。这取决于你试图做什么,如果你创建了一个循环,使之与run_timeseries()相同,可能会起作用。
在我的例子中,我想要改变负载,并在每次改变时进行新的潮流计算。
所采取步骤的概述:
例如,
net.load.p_mw中的所有项目。run_control(net)使新的功率流成为calculation.然后,您可以创建一个列表来收集数据并将其转换为JSON。
所有总线数据=所有总线data
json = { dataBuses: data }一旦它成为JSON格式,您甚至可以通过post请求或任何您想要的东西将其发送到数据库。
https://stackoverflow.com/questions/60838667
复制相似问题