当从OpenModelica中的DynamicPipe扩展时,为什么'redeclare package medium = medium'不起作用

时间:2016-03-25 21:50:48

标签: modelica openmodelica

我是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的工作原理。

1 个答案:

答案 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;