从OpenModelica导出带CVODE求解器的FMU在OMSimulator Python中加载失败如何解决?
检查FMU平台兼容性
Windows版OpenModelica导出的FMU默认适配Windows架构(x86/x64),必须保证运行Python的环境是对应架构的Windows系统。如果是跨平台运行(比如在Linux/macOS跑Windows导出的FMU),要么重新导出对应平台的FMU,要么直接在Windows环境运行。验证FMU文件完整性
把FMU文件解压,查看binaries/win64(或win32)目录里有没有对应的DLL文件。如果文件缺失,重新从OpenModelica导出FMU,导出过程别中断,确保完整导出。匹配OMSimulator版本与架构
安装的OMSimulator Python包要和OpenModelica版本、系统架构一致。比如Windows 64位系统装64位OMSimulator,版本尽量选和OpenModelica v1.22.1匹配的,用pip install OMSimulator==1.22.0安装对应版本。处理CVODE依赖库
用CVODE求解器的FMU可能依赖SUNDIALS这类第三方库。要么确保系统里有这些依赖,要么导出FMU时勾选OpenModelica里的“静态链接”选项,把依赖库打包进FMU里。用绝对路径指定FMU
Python代码里传FMU路径时用绝对路径,避免相对路径导致找不到文件。示例代码:import OMSimulator oms = OMSimulator.OMSimulator() oms.newModel("model") oms.addFile("C:/full/path/to/your/model.fmu")确认FMI版本兼容
检查OpenModelica导出的FMU版本(FMI1.0/FMI2.0/FMI3.0)和OMSimulator支持的版本是否一致。OpenModelica v1.22.1默认导出FMI2.0,OMSimulator对这个版本支持较好,要是有问题可以切换FMI版本重新导出。
内容的提问来源于stack exchange,提问作者Amrita

