我试着用PyFMI和函数do_step()多次模拟我的Dymola,每次运行后,它应该从一开始就开始。
第一次模拟按预期运行,但随后初始化失败/暂停并停止:
"FMIL: module = b'Model', log level = 4: b'[][FMU status:OK] Non-linear solver will attempt to handle this problem.\n'
FMIL: module = b'Model', log level = 4: b'[][FMU status:OK] Residual was NaN or Inf.\n'"“伪码”:
model = load_fmu(r'path', kind="CS", log_level=4)
model.initialize()
model.setup_experiment(start_time=start_time)
for run in range(2):
for step in steps:
status = model.do_step([:], new_step=True)
model.setup_experiment(start_time=start_time)
model.initialize() # <- FailsFMU与Dymola 2022一起创建。
有人有类似的问题吗?我对其他FMU和这个python库没有问题。
编辑:
我尝试过使用FMpy,在这里它运行没有问题,但速度慢得多。
发布于 2022-08-22 07:17:06
您需要重置FMU,然后才能再次初始化它。使用:
model.reset()重置FMU。即:
for run in range(2):
for step in steps:
status = model.do_step([:], new_step=True)
model.reset()
model.setup_experiment(start_time=start_time)
model.initialize() # <- Fails发布于 2022-08-20 07:25:48
在重新初始化之前,您应该用fmi2Reset重新设置FMU,参见FMI2.0规范https://github.com/modelica/fmi-standard/releases/download/v2.0.3/FMI-Specification-2.0.3.pdf的2.1.6
https://stackoverflow.com/questions/73417430
复制相似问题