我想建立一个模拟多个实体随时间推移产生和消耗能量的方法
实体可以具有多个传入和传出的能量流
模拟中的一个步骤应模拟一个离散的时间间隔,例如5分钟
模拟中的某些实体应该可以从外部控制
实体的示例包括电池,光伏阵列和生产机器
我的第一个原始草案代码如下:
battery, machine, pv, grid = entities_from_data(...)
def simulation_step():
"""
execute one simulation step
"""
for time in day:
energy_battery = battery.get_energy()
energy_pv = pv.get_energy()
# run machine
energy_consumption = machine.run()
# let battery decide what it does
# in the next step
battery.charge_or_discharge(energy_pv, energy_consumption)
# either buy or sell energy
energy_diff = energy_battery + energy_pv - energy_consumption
grid.buy_or_sell(energy_diff)
我不喜欢它:
我想到的一件事是创建一个Processor
基类,该基类根据其用途而具有多个输入和输出流。
然后可以分别通过将输入与输出连接来组成Processor
。这将产生一种表示能量流的图形。
是否有针对类似问题的库/框架?
您知道有什么更适合解决python中这个问题的体系结构吗?
答案 0 :(得分:1)
您可以考虑使用离散事件建模方法,而不是使用时间步长。时间步建模已显示会引入会影响系统行为的建模工件,而离散事件建模则采用了“事物在发生时发生,而不是四舍五入到任意时间步长”的理念。 (请参见https://www.informs-sim.org/wsc11papers/218.pdf)
您可以在以下网址下载以Python实现的最小离散事件计划引擎:https://github.com/PaulSanchez/SimpleKit-Python
git仓库具有一个PDF文件,该文件描述了一般建模原理和使用事件图符号的离散事件建模,并通过排队模型实现对方法进行了说明。