【问题标题】:Load multiple models with PyFMI使用 PyFMI 加载多个模型
【发布时间】:2014-11-17 22:08:53
【问题描述】:

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

【问题讨论】:

    标签: python memory instantiation


    【解决方案1】:

    我遇到了同样的问题。似乎 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)
    

    这样调用模型也比较容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 2020-01-23
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 2021-12-24
      • 2022-01-02
      • 1970-01-01
      相关资源
      最近更新 更多