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

使用ModelicaSystem加载Buildings库失败,求助参数编辑实现方案

问题

我可通过OMCSessionZMQ代码运行依赖外部Buildings库的RoomM模型仿真,但使用ModelicaSystem实现参数编辑时,代码执行失败,报错提示:

Notification: Skipped loading package Buildings (9.1.0,default) using MODELICAPATH C:/OpenModelica1.18.1-64bit/lib/omlibrary (uses-annotation may be wrong)

可运行代码(OMCSessionZMQ版本)

from OMPython import OMCSessionZMQ
from OMPython import ModelicaSystem
omc = OMCSessionZMQ()
omc.sendExpression("loadModel(Modelica)")
omc.sendExpression("loadFile(\"C:\\OpenModelica1.18.1-64bit\\lib\\omlibrary\\Buildings-9.1.0\\Buildings-9.1.0\\Buildings\\package.mo\")")
omc.sendExpression("loadFile(getInstallationDirectoryPath() + \"/share/doc/omc/testmodels/RoomM.mo\")")
omc.sendExpression("instantiateModel(RoomM)")
omc.sendExpression("simulate(RoomM, stopTime=1.0)")

失败代码(ModelicaSystem版本)

mod=ModelicaSystem("C:/OpenModelica1.18.1-64bit/share/doc/omc/testmodels/RoomM.mo","RoomM", ["C:\\OpenModelica1.18.1-64bit\\lib\\omlibrary\\Buildings-9.1.0\\Buildings-9.1.0\\Buildings\\package.mo"])
解决方法

问题核心是ModelicaSystem的库路径参数使用逻辑错误,它需要传入库的根目录路径而非具体的package.mo文件路径,同时要确保核心Modelica库被正确加载。调整后的代码如下:

from OMPython import ModelicaSystem

# 指定Buildings库的根目录(包含Buildings文件夹的上级目录)
library_paths = ["C:\\OpenModelica1.18.1-64bit\\lib\\omlibrary\\Buildings-9.1.0\\Buildings-9.1.0"]

# 初始化ModelicaSystem,开启自动加载Modelica核心库,并传入正确的库路径
mod = ModelicaSystem(
    "C:/OpenModelica1.18.1-64bit/share/doc/omc/testmodels/RoomM.mo",
    "RoomM",
    libraries=library_paths,
    loadModelica=True
)

# 执行参数编辑与仿真
mod.setParameters({"someParameter": 123})
mod.simulate(stopTime=1.0)

关键说明

  • ModelicaSystem的libraries参数需要指向库的根目录,而非单个文件,这样OpenModelica才能识别库的完整结构与注解关系。
  • 添加loadModelica=True参数,确保Modelica核心库被自动加载,避免依赖缺失。
  • 若仍有加载问题,可手动调用OMC命令补全加载逻辑:
    mod.sendExpression("loadModel(Buildings)")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:37:12