尽管Modelica是一种非因果建模语言,但我们了解到,例如here,它可以改变你写方程式的方式。
Modelica.Electrical.Polyphase.Basic
包中的MutualInductor
模型的代码让我有点困惑,我想知道选择当前实现是否有特定的原因。
该模型使用此for循环
for j in 1:m loop
v[j] = sum(L[j, k]*der(i[k]) for k in 1:m);
end for;
使用电感矩阵L
对m
相的电感耦合进行建模。
上面的代码可以用这个更简短、更简洁的方程式来代替:
v = L * der(i);
我希望Modelica翻译器通常不会意识到for循环等同于矩阵乘法。因此,我的期望是应该选择乘法,所以我们给翻译人员更多的信息。
有没有人知道for循环或矩阵乘法对Modelica翻译器求解方程系统有好处吗?
发布于 2021-07-08 21:14:45
我看不出使用这个表达有什么好处。如果这样的表达式真的更有效,那么将其添加到工具中将是非常简单的。
如果它是一个复杂的潮流,那么当缺乏支持时,它可能是一些遗留下来的代码。
https://stackoverflow.com/questions/68301128
复制相似问题