从OpenModelica导出的FMU模型缺失.dll文件求助
我刚接触FMU,目前在开展基于FMU的联合仿真工作,需要将OpenModelica模型导出为FMU文件,与Simulink的FMU模型进行联合仿真,但运行时收到以下报错:
Error:Error in supplied FMU: Unable to load dynamic library 'C:\Users\Léo nicolle\OneDrive\Bureau\IMT Mines Ales\Mission R&D\Modele_Commande_Moteur_CC_fmu55\slprj_fmu\95fff6f236f38c45451bf5be6e80e1a6\MoteurCC\binaries\win64\MoteurCC.dll': specified module could not be found. For more information, see the FMU troubleshooting documentation.
检查导出的FMU文件后,发现其中并没有MoteurCC.dll文件,但OpenModelica官网的示例BouncingBall.fmu导出后是包含.dll文件的,请问该如何解决这个问题?
可能的解决方法
确认FMU导出配置
在OpenModelica导出FMU时,务必检查以下配置:- 点击菜单栏
File > Export > Export FMU打开导出对话框 - 选择适合联合仿真的FMU类型(通常选
Co-Simulation) - 勾选
Generate binaries选项,同时确认目标平台设置为win64(匹配你的系统架构)
部分版本的OpenModelica默认不会自动生成二进制文件,需手动开启该选项。
- 点击菜单栏
排查模型编译问题
导出FMU前,先在OpenModelica中编译并运行模型,确保模型本身无语法错误或编译异常。如果模型编译失败,导出的FMU不会生成.dll文件。可通过OpenModelica的消息窗口查看编译日志,定位具体报错点。清理缓存后重新导出
OpenModelica的临时缓存可能导致导出异常,按以下步骤操作:- 关闭OpenModelica软件
- 删除模型目录下的临时编译文件(如
build文件夹、模型对应的缓存文件) - 重新打开模型,执行FMU导出操作
验证版本兼容性
部分旧版本OpenModelica存在FMU二进制文件生成的bug,尝试升级到最新稳定版;同时确认导出的FMU版本(如FMU 2.0)与Simulink支持的版本匹配。
内容的提问来源于stack exchange,提问作者Leo N

