如何使用PyFMI运行EnergyPlus-FMU

时间:2019-08-14 20:19:26

标签: fmi pyfmi

我在用PyFMI模拟EnergyPlus-FMU时遇到麻烦。我使用参考建筑模型创建了一个EnergyPlus FMU。我正在使用PyFMI2.5。如何运行do_step()函数?

from pyfmi import load_fmu

model = load_fmu("MyEnergyplus.fmu")
start_time = 0
final_time = 60.0 * 60 * 24 * 3 #seconds
step_size = 60 # seconds

opts = model.simulate_options()
idf_steps_per_hour = 60
ncp = (final_time - start_time)/(3600./idf_steps_per_hour)
opts['ncp'] = ncp

t = 0

status = model.do_step(current_t = t, step_size= step_size, new_step=True)

我得到的错误:

    File "test_fmi2.py", line 15, in <module> status = model.do_step(current_t = t, step_size= step_size, new_step=True) 

AttributeError: 'pyfmi.fmi.FMUModelME2' object has no attribute 'do_step'

我仔细检查了PyFMI的API,没有发现任何问题。 如何启用仿真?谢谢。

2 个答案:

答案 0 :(得分:3)

从输出中我们可以看到,您加载的FMU是不具有do step功能的Model Exchange FMU(只有Co-Simulation FMU具有)。有关不同FMU类型的更多信息,请参阅FMI规范。

要模拟Model Exchange FMU,请使用“模拟”方法。 “仿真”方法也可用于协同仿真FMU,并且是进行仿真的首选方式

答案 1 :(得分:0)

不知道如何设置fmu,我至少可以说您忘记了model.initialize(start_time,final_time)