问题描述
尽管 Modelica 是一种非因果建模语言,但我们学习了例如here 它可以改变您编写方程式的方式。
MutualInductor
包中 Modelica.Electrical.polyphase.Basic
模型的代码让我有点困惑,我想知道是否出于特定原因选择了当前的实现。
模型使用这个 for 循环
for j in 1:m loop
v[j] = sum(L[j,k]*der(i[k]) for k in 1:m);
end for;
使用电感矩阵 m
模拟 L
相的电感耦合。
上面的代码可以用这个更短、更简洁的等式代替:
v = L * der(i);
我希望 Modelica 翻译人员通常不会意识到 for 循环等效于矩阵乘法。因此,我的期望是应该选择乘法,以便我们为译者提供更多信息。
有谁知道 for 循环或矩阵乘法是否有利于 Modelica 翻译人员求解方程组?
解决方法
我看不出使用该表达式有什么好处。 如果真的是这样的表达式更有效,那么将其添加到工具中会很简单。
如果它是一个复杂的电流,它可能是缺乏支持时的一些遗留代码。