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

时间:2019-11-11 17:23:18

标签: modelica dymola

我目前正在评估Dymola 2020,以建立一个太阳能发电厂模型,但是我在使用自定义连接器的模型中需要使用大量方程。

这是代码:

connector Port
  flow Real Q;
  Real P;
  Real T;
end Port;
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;

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

  

问题在结构上是单一的。

     

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

     

标量的数量实际未知元素为3。标量的数量   真正的方程式元素为4。

     

Real元素的部分问题已被确定。有1个   标量方程组太多了:a.T = T; a.P = P; a.Q = Q;

2 个答案:

答案 0 :(得分:7)

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

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

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

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

为简单起见,仔细研究Modelica.Thermal.HeatTransfer也很有意义。该软件包只有一对跨/流变量,因此更易于理解。

答案 1 :(得分:2)

正如评论中提到的,我认为您应该研究Modelica的stream connectors,它固有地支持热流体组件的零流量和流量逆转。

要理解它们可能有些棘手,所以不久前,我在GitHub上放了一个小示例包,展示了流连接器的基本知识。如果您有兴趣,可以在这里找到:https://github.com/justnielsen/ModelicaTutorials。还有一个Wiki页介绍了Stream connector语法。

顺便说一句,Claytex具有出色的blog,每周更新一次。他们在2017年发布了有关流连接器的帖子:https://www.claytex.com/tech-blog/fluid-connectors-modelica-standard-library/

最好的问候, 雷内·贾斯·尼尔森