Modelica 依赖于时间相关变量的条件组件声明

Modelica 依赖于时间相关变量的条件组件声明,modelica,Modelica,是否可以根据与时间相关的变量的值(相对于参数)声明(或重新声明)组件?这里已经多次讨论了条件声明(例如和),但是在这些示例中,条件取决于参数 我的情况是这样的:我有两个模型,自然对流传热和强制对流传热,它们从同一界面扩展而来部分传热。在第三个模型中,我想这样做: model MyProblem // stripped other declarations input v "Velocity of fluid flow"; replaceable 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;

如果v==0,则使用类似于
组件的条件声明v
不是参数,则code>肯定不起作用。有什么方法可以实现我的目标吗?我的猜测是“不”,这意味着我将不得不重新思考整个概念。然而,也许有人看到了我缺少的一个明显的解决方案。任何关于如何解决这一问题的建议都将不胜感激。

这是不可能的。但是,您可以通过添加两个热传递组件并使用一些虚拟组件和方程式在它们之间切换来对其进行建模


有一些关于如何在Modelica中稍微低效地实现的实现提示(以及工具如何优化其中一些内容)。

再次感谢!这篇论文给出了一些有趣的见解。现在,我已经按照您的建议完成了—声明这两个组件并在它们之间切换。