条件组件声明取决于与时间相关的变量

时间:2014-06-24 15:34:43

标签: modelica

是否可以根据时间相关的变量(而不是参数)的值声明(或重新声明)组件?这里已经多次讨论了条件声明(例如,#1#2#3),但在这些示例中,条件取决于参数。

我的情况是:我有两个模型,NaturalConvectionHeatTransferForcedConvectionHeatTransfer,它们从同一个界面PartialHeatTransfer延伸。在第三个模型中,我想做这样的事情:

model MyProblem
  // stripped other declarations
  input v "Velocity of fluid flow";
  replaceable PartialHeatTransfer heatTransfer;
equation 
  if v == 0 then
    // redeclare heatTransfer to be of type NaturalConvectionHeatTransfer
  else
    // redeclare heatTransfer to be of type ForcedConvectionHeatTransfer
  end if;
end MyProblem;

如果Component blah if v==0;不是参数,则v之类的条件声明肯定不起作用。有没有办法实现我的目标?我的猜测是"没有",这意味着我将不得不重新思考整个概念。但是,也许有人看到了我遗漏的明显解决方案。任何建议如何解决这个问题将不胜感激。

1 个答案:

答案 0 :(得分:3)

这是不可能的。但是,您可以通过添加heatTransfer组件并使用一些虚拟组件和方程式在它们之间切换来模拟它。

http://dx.doi.org/10.3384/ecp14096183有一些关于如何在Modelica中稍微低效地执行它的实现提示(以及工具如何优化其中的一些东西)。

相关问题