在使用OpenModelica的环境中加载PyFMI FMU-模块(带有MSL噪声模块)不能工作。
我尝试在PyFMI-环境中运行从OpenModelica导出的FMU模块。确定性模型工作得很好。
但是,当我使用MSL块Modelica.Blocks.Noise.NormalNoise包括噪声模型时,我会得到一个FMU,它在加载到PyFMI环境时会产生问题。错误文本以:
FMUException:加载二进制文件时出错。无法加载DLLL: libModelicaExternalC.so.0:无法打开共享对象文件:没有这样的文件或目录。
不用说,但是在OpenModelica中,带噪声的系统工作得很好。JModelica中的相同代码以及在PyFMI环境中编译和加载的代码也运行良好。但在OpenModelica和JModelica中,同一种种子的随机噪声序列存在一定的差异。
在这个例子中,我在Docker中运行JModelica和PyFMI版本2.1,OpenModelica也在Linux中运行。因为两者都有Linux,所以我可以传输FMU模型。JModelica和OpenModelica都支持Modelica标准3.2.2和相应的MSL。
我还使用来自mclab的Docker映像用JModelica和PyFMI版本2.4 (或至少2.2)测试了这个示例。我得到了与2.1相同的错误文本(没有噪音块,它和2.1一样工作)。
-
我的问题是,描述的错误是在PyFMI或OpenModelica方面,还是两者兼而有之?或者,在从OpenModelica导出带有噪声块的FMU时,是否还需要做一些额外的工作呢?
发布于 2019-01-04 11:37:09
从错误消息中,它表明FMU丢失了它的一个依赖项libModelicaExternalC.so ( FMU的所有依赖项都应该包含在FMU中)。问题在于FMU的生成工具,而不是PyFMI。
发布于 2019-01-07 14:22:17
在OMEdit中,在生成FMU之前,在工具中将平台设置为“静态”->选项->FMI。
https://stackoverflow.com/questions/54019129
复制相似问题