Modelica 转换器能否更轻松地处理循环或矩阵乘法?

问题描述

尽管 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 翻译人员求解方程组?

解决方法

我看不出使用该表达式有什么好处。 如果真的是这样的表达式更有效,那么将其添加到工具中会很简单。

如果它是一个复杂的电流,它可能是缺乏支持时的一些遗留代码。