我目前正在通过尝试一些非常简单的示例来学习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.
我在这里不知所措。显然,模型中有三个方程式 - 第四个方程式来自哪里?
非常感谢您的任何见解。
答案 0 :(得分:3)
星,
这里有几个问题。正如Martin指出的那样,连接器是不平衡的(在该连接器中没有匹配的“通过”和“跨”对)。对于流体系统,这是可以接受的。然而,强烈的流体性质(例如焓)必须标记为所谓的“流”变量。
诚然,这个话题非常复杂。我打算在这个主题上为我的online Modelica book添加一个高级章节,但我还没有时间。在此期间,我建议您查看其作者之一Modelica.Fluid
和/或this presentation Francesco Casella。
答案 1 :(得分: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是一个参数,不能在方程式部分中分配(如果参数有fixed = false,则需要初始方程,或者在默认情况下需要绑定方程)。