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;
使用电感矩阵 L
对 m
相的电感耦合进行建模。
上面的代码可以用这个更短更清晰的等式代替:
v = L * der(i);
我希望 Modelica 翻译器通常不会意识到 for 循环等同于矩阵乘法。因此,我的期望是应该选择乘法,所以我们给翻译者更多的信息。
有谁知道for循环或矩阵乘法是否有利于Modelica翻译器求解方程组?
我看不出使用该表达式有任何优势。
如果这样的表达式真的更有效,那么将它添加到工具中就很简单了。
如果它是一个复杂的电流,它可能是缺少支持时遗留下来的一些代码。
尽管 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;
使用电感矩阵 L
对 m
相的电感耦合进行建模。
上面的代码可以用这个更短更清晰的等式代替:
v = L * der(i);
我希望 Modelica 翻译器通常不会意识到 for 循环等同于矩阵乘法。因此,我的期望是应该选择乘法,所以我们给翻译者更多的信息。
有谁知道for循环或矩阵乘法是否有利于Modelica翻译器求解方程组?
我看不出使用该表达式有任何优势。 如果这样的表达式真的更有效,那么将它添加到工具中就很简单了。
如果它是一个复杂的电流,它可能是缺少支持时遗留下来的一些代码。