You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法用OMSimulator在Python中加载OpenModelica生成的FMU

解决FMU加载失败:找不到指定模块的问题

1. 核对架构兼容性

OpenModelica生成的FMU必须和Python运行环境的架构完全一致:

  • 若Python是64位,FMU需为64位;32位Python对应32位FMU。
  • 生成FMU时,在OpenModelica的编译设置中明确选择对应架构(x86_64或x86)。

2. 补全FMU依赖库

FMU二进制文件依赖OpenModelica的运行时库,需确保这些库能被系统找到:

  • 将OpenModelica安装目录下的bin文件夹(例如C:\OpenModelica1.22.1\bin)添加到系统PATH环境变量。
  • 或直接把bin目录下的核心DLL(如omc.dll、fmilib.dll)复制到FMU解压后的bin子目录,或Python脚本的运行目录。

3. 验证FMU完整性

手动将FMU后缀改为.zip并解压,检查bin目录下是否存在对应平台的二进制文件(Windows为.dll,Linux为.so):

  • 若文件缺失,重新用OpenModelica生成FMU,确保生成过程无报错。
  • 生成时选择完整的FMU类型(Model Exchange或Co-Simulation),避免勾选精简选项。

4. 适配OMSimulator版本

  • 确认OpenModelica生成的FMU版本(FMU2.0/FMU3.0)与OMSimulator2.1.1的支持范围匹配,加载时指定正确的FMU类型。
  • 尝试升级OMSimulator到最新稳定版,旧版本可能存在兼容性bug。

5. 修正Python加载路径

  • 确保Python脚本的工作目录为FMU所在目录,或加载时使用绝对路径避免相对路径错误:
    from OMSimulator import OMSimulator
    oms = OMSimulator()
    oms.newModel('test_model')
    # 使用绝对路径加载FMU
    oms.addFMU('test_model', 'D:/Projects/your_model.fmu')
    

6. 排查权限问题

Windows下,若FMU存放在受保护目录(如Program Files),Python可能无读取权限,将FMU移动到普通用户目录(如Documents)后重试。

内容的提问来源于stack exchange,提问作者Kar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:07:08