如何将布尔值广播到数组
How to broadcast boolean value to an array
我有一个 Modelica 模型,我正在其中初始化一个子模型数组。
我想知道如何最好地将一个值广播到所有数组元素。让我举例说明,三个演示的替代方案中只有一个在没有 errors/warnings.
的情况下有效
model test_each_fixed
model sub
Real p;
end sub;
//sub sub_instance[6](p(start=linspace(0.0, 1.0, 6), fixed=true));
// gives Translation Error Non-array modification ‘true‘ for
// array component ‘fixed‘, possibly due to missing ‘each‘.
// fair enough, let's add an "each":
//sub sub_instance[6](p(start=linspace(0.0, 1.0, 6), each fixed=true));
// gives Translation Warning 'each' used when modifying non-array element p.
// damned if I do, damned if I don't?
// The following works, but is there a better way than an explicit fill()?
sub sub_instance[6](p(start=linspace(0.0, 1.0, 6), fixed=fill(true,6)));
equation
end test_each_fixed;
这是使用 OpenModelica v1.18.0-dev.beta1(64 位)
所以,我的问题:
- 考虑到没有
each
抛出的错误,我收到的第二个变体的翻译警告是 OpenModelica 错误,还是预期的 Modelica 行为?
- 有没有更好的方法将
true
广播到数组元素成员中的所有fixed
属性?
带有 each
的第二个变体应该在 Modelica 中工作; https://specification.modelica.org/master/inheritance-modification-and-redeclaration.html#modifiers-for-array-elements
而且我找不到更好的选择。
我有一个 Modelica 模型,我正在其中初始化一个子模型数组。 我想知道如何最好地将一个值广播到所有数组元素。让我举例说明,三个演示的替代方案中只有一个在没有 errors/warnings.
的情况下有效model test_each_fixed
model sub
Real p;
end sub;
//sub sub_instance[6](p(start=linspace(0.0, 1.0, 6), fixed=true));
// gives Translation Error Non-array modification ‘true‘ for
// array component ‘fixed‘, possibly due to missing ‘each‘.
// fair enough, let's add an "each":
//sub sub_instance[6](p(start=linspace(0.0, 1.0, 6), each fixed=true));
// gives Translation Warning 'each' used when modifying non-array element p.
// damned if I do, damned if I don't?
// The following works, but is there a better way than an explicit fill()?
sub sub_instance[6](p(start=linspace(0.0, 1.0, 6), fixed=fill(true,6)));
equation
end test_each_fixed;
这是使用 OpenModelica v1.18.0-dev.beta1(64 位)
所以,我的问题:
- 考虑到没有
each
抛出的错误,我收到的第二个变体的翻译警告是 OpenModelica 错误,还是预期的 Modelica 行为? - 有没有更好的方法将
true
广播到数组元素成员中的所有fixed
属性?
带有 each
的第二个变体应该在 Modelica 中工作; https://specification.modelica.org/master/inheritance-modification-and-redeclaration.html#modifiers-for-array-elements
而且我找不到更好的选择。