问题描述
在Modelica specification 3.4的第4.7章中,局部未知数的定义不计入“跨变量”,它给出的“示例”也暗含了相同的方法,但是我不确定为什么不应该这样做。不考虑“跨变量”吗?
“局部未知数”不是模型中所有未知变量的总和吗?
我还检查了论文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
。
解决方法
如果连接器在下一级未连接,则会添加nf = ne个方程(所有流量均为零),而如果我们改为连接它,那么还将有nf = ne个方程。
因此,如果我们在局部将所有变量视为未知数,则必须通过添加nf或ne方程来进行补偿。那本来也可以,但是我们还是决定了-可能与下一点有关:
使用多个流变量而不是跨变量的原因是,还有一些连接器过于确定,您无法简单地计算跨变量。