我是Modelica的新手,目前正尝试使用OpenModelica从Modelica.Fluid.Pipes.DynamicPipe扩展新模型。我已经看到其他人也对它与Modelica.Media的兼容性感到不满。我尝试了两种扩展DynamicPipe类的方法。第一次尝试是:
within MyClass;
model Mypipe
extends Modelica.Fluid.Pipes.DynamicPipe(redeclare package Medium = Medium);
replaceable package Medium=Modelica.Media.Water.StandardWater;
equation
annotation(Icon(coordinateSystem(grid = {2, 8})));
end Mypipe;
结束了compliling错误。第二次尝试有效:
within MyClass;
model Mypipe
extends Modelica.Fluid.Pipes.DynamicPipe(redeclare package Medium = MyMedium);
replaceable package MyMedium=Modelica.Media.Water.StandardWater;
equation
annotation(Icon(coordinateSystem(grid = {2, 8})));
end Mypipe;
许多示例模型使用(redeclare package Medium=Medium)
方式成功实现媒体重新声明。在我的代码示例中从DynamicPipe扩展时,为什么这不起作用?
感谢您帮助我了解Modelica的工作原理。
答案 0 :(得分:1)
这似乎是OpenModelica中的一个错误。我会开一张关于它的票。 它也可以使用:
model Mypipe
extends Modelica.Fluid.Pipes.DynamicPipe(redeclare package Medium = Modelica.Media.Water.StandardWater);
equation
annotation(Icon(coordinateSystem(grid = {2, 8})));
end Mypipe;