OMShell中加载包内嵌套Modelica模型仿真及深层参数设置问题
问题1:OMShell中仿真
loadFile()加载的包内嵌套模型 - 用
loadFile()加载单文件包后,loadModel(Testmodel)失败是因为未指定完整包路径,OMShell默认会从已加载标准库查找。正确做法是使用完整包限定名加载模型:loadModel(Testpackage.Testmodel); - 加载包后可执行
list()命令,确认包与模型是否被正确识别,排查路径问题。 - 也可跳过
cd命令,直接用完整路径加载文件:loadFile("/path/to/Testpackage/package.mo"); loadModel(Testpackage.Testmodel);
问题2:.mos脚本修改深层子模型参数
setParameterValue()本身无局限,提示找不到类是因为未填写完整参数层级路径(从顶层模型到目标子模型的逐层路径)。- 示例:若顶层模型为
MyModel,子模型是MyModel.weatherSubsystem,要修改的参数为weatherFilePath,正确命令格式:setParameterValue(MyModel.weatherSubsystem.weatherFilePath = "/new/path/weather.epw"); - 嵌套更深的子模型,只需逐层补全路径即可,如
MyModel.A.B.C.targetParam。 - 可先执行
getParameterNames(MyModel)或list(MyModel)命令,查看模型参数的层级结构,确认目标参数的完整路径。
内容的提问来源于stack exchange,提问作者Dummer Horst
相关产品推荐
相关产品推荐

