为什么“跨变量”不计入Modelica规范中的本地未知数?

问题描述

Modelica specification 3.4的第4.7章中,局部未知数的定义不计入“跨变量”,它给出的“示例”也暗含了相同的方法,但是我不确定为什么不应该这样做。不考虑“跨变量”吗?

“局部未知数”不是模型中所有未知变量的总和吗?

enter image description here

enter image description here

我还检查了论文Balanced Models in Modelica 3.0 for Increased Model Quality,这是本文的屏幕截图。 本文中最简单的示例显示了对物理连接器的限制,但也无法说明为什么它也不计算跨变量。

在我看来,根据Modelica语义,未知数的本地数量nf+np,由Modelica编译器生成nf个方程(m1.c.f = 0; // nf equations)。因此,外部方程的数量应为ne=nf+np-nf=np。但是在本文中,它说外部方程的数量应该为ne=nf

enter image description here

解决方法

如果连接器在下一级未连接,则会添加nf = ne个方程(所有流量均为零),而如果我们改为连接它,那么还将有nf = ne个方程。

因此,如果我们在局部将所有变量视为未知数,则必须通过添加nf或ne方程来进行补偿。那本来也可以,但是我们还是决定了-可能与下一点有关:

使用多个流变量而不是跨变量的原因是,还有一些连接器过于确定,您无法简单地计算跨变量。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...