首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用连接器计算模型中的方程数

用连接器计算模型中的方程数
EN

Stack Overflow用户
提问于 2019-11-11 17:23:18
回答 2查看 266关注 0票数 2

我目前正在评估Dymola 2020建立太阳能发电厂模型,但我很难在使用自定义连接器的模型中计算出方程的数量。

以下是代码:

代码语言:javascript
复制
connector Port
  flow Real Q;
  Real P;
  Real T;
end Port;
代码语言:javascript
复制
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。 实元素的部分问题被高估了。集合中有1个标量方程: a.T = T;a.P = P;a.Q = Q;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-12 07:43:48

您的示例有两个分离的问题:

  1. 连接器通常包含跨/势和流/通过变量的,第9.3.1节。按照这个约定,使用这些连接器的模型通常定义流和跨变量之间的关系。有关连接器定义的一些一般信息--以及可读性很强的信息,请参见模型库。我认为遵循这一约定并不是强制性的,但如果您在对物理系统进行建模时这样做,它将使生活变得更容易。
  2. Inlet设置所有接口变量。物理源模型设置跨变量或流变量。您有一个压力源是一个流源,它不能同时设置两者。这可以归结为管道计算来自流的压降,或者从压降计算流量。模型一般假设跨变量流变量由外部决定。由此,该模型使用其equation部分中定义的关系计算另一个模型。对于您的示例,所有这些都归结为:如果从a.Q = Q;中删除任何方程(例如Inlet ),则模型将进行检查。对此的解释是如何从连接器和模型中生成方程。有关此问题的更多信息,请参见Modelica语言规范,第9.2节,第110页底部,“每个连接集都用于生成.”

关于上述两点,我建议查看一下Modelica的FluidHeatFlow库,特别是在Modelica.Thermal.FluidHeatFlow.Interfaces.FlowPort中定义的接口。从您的接口变量来看,这个库提供了类似的物理域。

为了更简单的开始,密切关注Modelica.Thermal.HeatTransfer也是有意义的。这个包只有一对跨/流变量,这样就更容易理解了。

票数 7
EN

Stack Overflow用户

发布于 2019-11-14 09:07:00

正如评论中提到的,我认为您应该研究一下Modelica的stream connectors,它本质上支持热流体组件中的零流量和流量反转。

理解它们可能有点棘手,所以不久前,我在GitHub上放置了一个小型示例包,演示了流连接器的基本知识。如果你感兴趣,你可以在这里找到它:https://github.com/justnielsen/ModelicaTutorials。还有一个维基页面解释Stream connector语法。

顺便说一下,Claytex有一个出色的博客,每周更新一次。他们在2017年发布了一篇关于流连接器的文章:https://www.claytex.com/tech-blog/fluid-connectors-modelica-standard-library/

向你问好,雷内只是尼尔森

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58805965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档