OpenModelica中的参数分配问题:某些参数未正确分配

Issue with Parameter Assignment in OpenModelica: Some Parameters Not Assigning Correctly

提问人:Farnaz 提问时间:9/21/2023 最后编辑:Farnaz 更新时间:9/21/2023 访问量:58

问:

我正在尝试在OpenModelica中创建一个包含多个建筑模型的包,并且我正在我的模型中使用建筑物库中的一些模型。 我想为我的一个模型(例如,modelOne)定义一个参数列表并将它们直接分配给我在模型中使用的其他模型的参数(例如,Buildings.ThermalZones.ReducedOrder.RC.OneElement thermalZone)。通过这样做,我也可以在另一个模型(例如,modelTwo)中重用我的模型。

下面是一个示例:

模型模型一个

model modelOne
 parameter Integer nOrientations(min=1)=5;
 parameter Modelica.Units.SI.Volume VAir=3852;
 parameter Modelica.Units.SI.Area AWin[nOrientations]
   ={90.72, 30.24, 90.72, 30.24, 0};
 parameter Modelica.Units.SI.CoefficientOfHeatTransfer hConIn=2.7;
 parameter Modelica.Units.SI.TransmissionCoefficient gWin=0.6;
 Buildings.ThermalZones.ReducedOrder.RC.OneElement thermalZone(
   nOrientations=nOrientations, 
   VAir=VAir, 
   AWin=AWin, 
   hConExt=hConIn, 
   hConWin=hConIn, 
   gWin=gWin);
 .
 .
 .
equation
 .
 .
 .
end modelOne;

model modelTwo
 modelOne newModel(
   nOrientations=2, 
   VAir=52.5, 
   AWin={7, 7}, 
   hConIn=4.2, 
   gWin=1.0);
 .
 .
 .
equation
 .
 .
 .
end modelTwo;

但是,这种将参数直接分配给另一个参数的方法仅适用于其中的某些参数。 例如,在上面提到的示例中,它适用于 nOrientations、VAir 和 AWin。对于 hConIn 和 gWin,这是我得到的:

getParameters(["thermalZone.hConIn", "thermalZone.gWin"]);
['None', 'None]

如果有人能帮我弄清楚,我将不胜感激:

  • 为什么会这样?
  • 我该如何解决这个问题?
  • 除了直接将一个参数分配给另一个参数之外,还有其他方法吗?

此致敬意 法纳兹

参数传递 OpenModelica

评论

0赞 Adeel Asghar 9/21/2023
目前还不清楚你想做什么。您使用的是脚本 api 还是 OMPython 还是什么?
0赞 Farnaz 9/21/2023
我在 OpenModelica 中制作了模型并定义了参数(示例是 OpenModelica 的文本视图),然后尝试使用 OMPython 获取参数 (getParameters([“thermalZone.hConIn”, “thermalZone.gWin”]))。

答: 暂无答案