python - 使用 PyFMI 加载多个模型

标签 python memory instantiation

我正在尝试使用 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/

相关文章:

python - 一个点和一组其他点之间的最短距离?

java - 如何在 Java 中高效地存储小字节数组?

memory - 为什么创建转储文件操作会极大地增加工作集(内存)的大小?

php - 静态类与实例化时的类成员访问

python - Django 。通过关闭钩子(Hook)上的模型访问数据库

python - Pandas 。将重复的行删除到另一个数据框

java - Java 程序能否检测到它的堆空间不足?

swift - iOS 在没有失败的情况下卡在实例化依赖中

java - 有人怎么会意外地在 Java 中启动一个类呢?

python - timedelta 转换为时间或 int 并将其存储在 GAE (python) 数据存储中