Modelica 计算带有连接器的模型中的方程数
我目前正在评估Dymola 2020,以建立一个太阳能发电厂模型,但在使用自定义连接器的模型中,我很难处理大量方程 代码如下:Modelica 计算带有连接器的模型中的方程数,modelica,dymola,Modelica,Dymola,我目前正在评估Dymola 2020,以建立一个太阳能发电厂模型,但在使用自定义连接器的模型中,我很难处理大量方程 代码如下: connector Port flow Real Q; Real P; Real T; end Port; 我在模型中设置了3个方程,但有一个错误显示有4个方程。方程式是如何计算的?为什么有四个呢 这个问题在结构上是单一的 它有3个标量未知数和4个标量方程。真正的部分有3个 未知数和4个方程。整数部分有0个未知数和0个 方程。布尔部分有0个未知数和0个方程
connector Port
flow Real Q;
Real P;
Real T;
end Port;
我在模型中设置了3个方程,但有一个错误显示有4个方程。方程式是如何计算的?为什么有四个呢
这个问题在结构上是单一的
它有3个标量未知数和4个标量方程。真正的部分有3个
未知数和4个方程。整数部分有0个未知数和0个
方程。布尔部分有0个未知数和0个方程。弦
零件有0个未知数和0个方程式
标量实未知元素的数量为3。标量数
实方程元素为4
真实元素的部分问题是过度确定的。有1个
集合中的标量方程太多:a.T=T;a、 P=P;a、 Q=Q
您的示例有两个独立的问题:
入口
设置所有接口变量。物理源模型可设置交叉变量或流量变量。您有一个压力源或流动源,它不能同时设置这两个。这可以归结为管道计算流量压降或压降流量。模型通常假设跨变量或流量变量由外部决定。由此,模型使用其方程
部分中定义的关系计算另一个。以你的例子来说,这一切归结为:如果你去掉任何等式,例如a.Q=Q代码>从进口
,型号检查。对此的解释是如何从连接器和模型生成方程式。有关这方面的更多信息,请参见第110页底部的第9.2节,其中说“每个连接集用于生成…”
Modelica.Thermal.FluidHeatFlow.Interfaces.FlowPort
中定义的接口。从您的接口变量来看,这个库服务于类似的物理域
对于一个更简单的开始,仔细查看
Modelica.Thermal.HeatTransfer
也是有意义的。该软件包只有一对交叉/流动变量,因此更易于理解。如评论中所述,我认为您应该研究Modelica的流连接器
,该连接器本质上支持热流体组件中的零流动和反向流动
它们可能有点难以理解,所以不久前我在GitHub上放了一个小的示例包,演示了流连接器的基本原理。如果您感兴趣,可以在此处找到:。还有一页解释流连接器
语法
顺便说一句,Claytex有一个极好的每周更新。他们有一篇2017年在线连接器的帖子:
致以最良好的祝愿,
Rene Just Nielsen是否有一个列表显示流量变量和跨变量的耦合。至于热流体系统,我正在考虑在连接器的定义中使用压力、焓、质量流量。压力和质量流量可以看作是一对,但对于焓,我不确定哪一个变量应该一起使用。我认为你应该研究
Modelica.Fluid
,它使用“流连接器”来表示比焓。学习曲线可能有点陡峭,但如果你要使用热流体系统,那么值得付出努力。这里也可以找到一些:特别是对于流体领域:我正在尝试重构modelica库,因为这个库中的连接器。不要使用任何流变量和流变量。如果我打算重写代码,是否有任何参考示例?
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;