Trouble implementing a very simple mass flow source

被刻印的时光 ゝ 提交于 2020-01-13 05:59:28

问题


I am currently learning Modelica by trying some very simple examples. I have defined a connector Incompressible for an incompressible fluid like this:

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

I now wish to define a mass or volume flow source:

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;

However, when checking Source_incompressible, I get this:

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.

I am at a loss here. Clearly, there are three equations in the model - where does the fourth equation come from?

Thanks a lot for any insight.


回答1:


Dominic,

There are a couple of issues going on here. As Martin points out, the connector is unbalanced (you don't have matching "through" and "across" pairs in that connector). For fluid systems, this is acceptable. However, intensive fluid properties (e.g., enthalpy) have to be marked as so-called "stream" variables.

This topic is, admittedly, pretty complicated. I'm planning on adding an advanced chapter to my online Modelica book on this topic but I haven't had the time yet. In the meantime, I would suggest you have a look at the Modelica.Fluid library and/or this presentation by one of its authors, Francesco Casella.




回答2:


That connector is not a physical connector. You need one flow variable for each potential variable. This is the OpenModelica error message if it helps a little:

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

This is because the unconnected connector will generate one equation for the flow:

outlet.V_dot = 0.0;

This means outlet.V_dot is replaced in:

outlet.V_dot = V_dot;

And you get:

0.0 = V_dot;

But V_dot is a parameter and can not be assigned to in an equation section (needs an initial equation if the parameter has fixed=false, or a binding equation in the default case).



来源:https://stackoverflow.com/questions/23811595/trouble-implementing-a-very-simple-mass-flow-source

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!