我正在尝试使用 pyfmi
在主算法中实例化多个模拟从属。
例如:
models = []
for path in fmuList:
models.append(pyfmi.load_fmu(path))
我遇到的问题是最终引发异常:
***FMUException: Failed to instantiate slave.
在 pdb
跟踪调试器中调用相同的 for 循环我看到每个模型都已成功加载,但是,每个模型都加载到内存中的相同位置。例如:
<pyfmi.fmi.FMUModelCS1 object at 1xxxxxxxxx>
<pyfmi.fmi.FMUModelCS1 object at 1xxxxxxxxx>
...
我应该如何使用 pyfmi 正确实例化多个 FMU?
最佳答案
我遇到了同样的问题。 pyfmi 似乎无法更改工作目录,因此不同的模型使用具有相同套接字和变量文件的相同文件夹“Output_EPExport_Slave”。您必须手动更改工作目录。
改用:
from os import chdir
from pyfmi import load_fmu
fmus = {}
for id in id_list:
chdir(fmu_path+str(id))
fmus[id] = load_fmu('f_' + str(id)+'.fmu',fmu_path+str(id))
fmus[id].initialize(start_time,final_time)
这样调用模型也比较方便。
关于python - 使用 PyFMI 加载多个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999554/