2

我目前正在通过尝试一些非常简单的示例来学习 Modelica。我已经Incompressible为不可压缩的流体定义了一个连接器,如下所示:

connector Incompressible
  flow Modelica.SIunits.VolumeFlowRate V_dot;
  Modelica.SIunits.SpecificEnthalpy h;
  Modelica.SIunits.Pressure p;
end Incompressible;

我现在想定义一个质量或体积流量源:

model Source_incompressible
  parameter Modelica.SIunits.VolumeFlowRate V_dot;
  parameter Modelica.SIunits.Temperature T;
  parameter Modelica.SIunits.Pressure p;
  Incompressible outlet;
equation 
  outlet.V_dot = V_dot;
  outlet.h = enthalpyWaterIncompressible(T);  // quick'n'dirty enthalpy function
  outlet.p = p;
end Source_incompressible;

但是,在检查时Source_incompressible,我得到了这个:

The problem is structurally singular for the element type Real.
The number of scalar Real unknown elements are 3.
The number of scalar Real equation elements are 4.

我在这里不知所措。显然,模型中有三个方程——第四个方程从何而来?

非常感谢您的任何见解。

4

2 回答 2

3

多米尼克,

这里有几个问题。正如 Martin 指出的那样,连接器是不平衡的(您在该连接器中没有匹配的“直通”和“跨”对)。对于流体系统,这是可以接受的。然而,密集的流体特性(例如,焓)必须被标记为所谓的“流”变量。

诚然,这个话题相当复杂。我计划在我的在线 Modelica 书中添加一个关于这个主题的高级章节,但我还没有时间。同时,我建议您看一下Modelica.Fluid图书馆和/或其中一位作者 Francesco Casella 的演示文稿。

于 2014-05-26T13:25:24.657 回答
1

该连接器不是物理连接器。每个潜在变量都需要一个流变量。这是 OpenModelica 错误消息,如果它有一点帮助的话:

Warning: Connector .Incompressible is not balanced: The number of potential variables (2) is not equal to the number of flow variables (1).
Error: Too many equations, over-determined system. The model has 4 equation(s) and 3 variable(s).
Error: Internal error Found Equation without time dependent variables outlet.V_dot = V_dot

这是因为未连接的连接器将为流生成一个方程:

outlet.V_dot = 0.0;

这意味着 outlet.V_dot 被替换为:

outlet.V_dot = V_dot;

你得到:

0.0 = V_dot;

但是 V_dot 是一个参数,不能在方程部分分配(如果参数固定=false,则需要一个初始方程,或者在默认情况下是一个绑定方程)。

于 2014-05-23T13:45:55.313 回答