计算带连接器的模型中的方程式数量

Mar*_*vel 2 modelica dymola

我目前正在评估Dymola 2020,以建立一个太阳能发电厂模型,但是我对使用自定义连接器的模型中的方程式数量感到困惑。

这是代码:

connector Port
  flow Real Q;
  Real P;
  Real T;
end Port;
Run Code Online (Sandbox Code Playgroud)
model Inlet
  parameter Real Q = 1;
  parameter Real P = 2;
  parameter Real T = 3;
  Port a;
equation 
  a.Q = Q;
  a.P = P;
  a.T = T;
end Inlet;
Run Code Online (Sandbox Code Playgroud)

我在模型中设置了3个方程,但是有一个错误显示存在4个方程。如何计算方程式?为什么有四个?

这个问题在结构上是单一的。

它具有3个标量未知数和4个标量方程。实部有3个未知数和4个方程式。整数部分有0个未知数和0个等式。布尔部分有0个未知数和0个等式。字符串部分具有0个未知数和0个等式。

标量Real未知元素的数量为3。标量Real方程元素的数量为4。

Real元素的部分问题是确定得过高的。集合中有1个标量方程过多:aT = T; aP = P; aQ = Q;

Mar*_* A. 7

您的示例有两个独立的问题:

  1. 连接器通常包含跨/潜在变量和流/通过变量Modelica语言规范第9.3.1节。遵循此约定,使用这些连接器的模型通常定义流与跨变量之间的关系。有关连接器定义的一些通用且可读性强的信息,请参见Exmple的Modelica。我认为遵循此约定不是强制性的,但是如果您在对物理系统进行建模时这样做会使生活变得容易得多。

  2. Inlet设置所有接口变量。物理源模型设置跨变量或流变量。您有压力源流量源,无法同时设置两者。这可以归结为计算流量的压降或流量的压降的管道。模型通常假定跨变量流变量由外部确定。根据该模型,模型将使用其equation部分中定义的关系来计算另一个模型。对于您的示例,所有这些都归结为:如果a.Q = Q;从中删除任何方程式,例如Inlet模型检查。对此的解释是如何从连接器和模型生成方程式。有关此的更多信息,请参见Modelica语言规范。,第110页底部的9.2节,说:“每个连接集都用于生成...”

关于以上两点,我建议您看一下Modelica标准库的FluidHeatFlow库,尤其是中定义的接口Modelica.Thermal.FluidHeatFlow.Interfaces.FlowPort。从您的接口变量来看,该库可提供类似的物理域。

对于一个简单的起点,仔细看一下也很有道理Modelica.Thermal.HeatTransfer。该软件包只有一对跨/流变量,这使它更容易理解。