【问题标题】:Why does 'redeclare package medium=medium' not work when extending from DynamicPipe in OpenModelica从 OpenModelica 中的 DynamicPipe 扩展时,为什么“重新声明包介质 = 介质”不起作用
【发布时间】:2016-03-25 21:50:47
【问题描述】:

我是 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;

最终出现编译错误。第二次尝试成功:

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

【问题讨论】:

    标签: modelica openmodelica


    【解决方案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;
    

    【讨论】:

    • 感谢您的快速回复并为此开票。
    • Adrian,请发布此错误的票证参考。
    • trac.openmodelica.org/OpenModelica/ticket/3833 好像我忘了打开一个(我想我们已经有一些重复了)所以我打开了一个新的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多