在 Python 环境中使用 PyFMI 加载 OpenModelica FMU 模块(带有 MSL 噪声模块)不起作用。
我试图在 PyFMI 环境中运行从 OpenModelica 导出的 FMU 模块。确定性模型工作正常。
但是,当我使用 MSL 块 Modelica.Blocks.Noise.NormalNoise 包含噪声模型时,我会得到一个 FMU,它在加载到 PyFMI 环境时会出现问题。错误文本以:
FMUException:加载二进制文件时出错。无法加载 DLLL:libModelicaExternalC.so.0:无法打开共享对象文件:没有这样的文件或目录。
不用说,但在 OpenModelica 中,带有噪声的系统运行良好。JModelica 中的相同代码以及使用 PyFMI 在 Python 环境中编译和加载的代码也运行良好。然而,OpenModelica 和 JModelica 中相同种子的随机噪声序列不同,这表明存在一些差异。
对于这个例子,我在 Docker Linux 中运行 JModelica 和 PyFMI 2.1 版,OpenModelica 也在 Linux 环境中运行。由于 Linux 在两者中我都可以传输 FMU 模型。JModelica 和 OpenModelica 都支持 Modelica 标准 3.2.2 和相应的 MSL。
我还刚刚使用来自 mclab 的 Docker Linux 映像使用 JModelica 和 PyFMI 2.4 版(或至少 2.2 版)测试了该示例。我得到与 2.1 相同的错误文本(并且没有噪音块,它的工作原理与 2.1 相同)。
——</p>
我的问题是,所描述的错误是在 PyFMI 还是 OpenModelica 方面,或者两者兼而有之?或者,从 OpenModelica 导出 FMU 时是否需要做一些额外的事情?