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

Can Modelica translators handle for loops or matrix multiplications more easily?

尽管 Modelica 是一种非因果建模语言,但我们学到了例如 它可以改变您编写方程式的方式。

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;

使用电感矩阵 Lm 相的电感耦合进行建模。

上面的代码可以用这个更短更清晰的等式代替:

  v = L * der(i);

我希望 Modelica 翻译器通常不会意识到 for 循环等同于矩阵乘法。因此,我的期望是应该选择乘法,所以我们给翻译者更多的信息。

有谁知道for循环或矩阵乘法是否有利于Modelica翻译器求解方程组?

我看不出使用该表达式有任何优势。 如果这样的表达式真的更有效,那么将它添加到工具中就很简单了。

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