gpt4 book ai didi

Modelica - 迭代器有异常?

转载 作者:行者123 更新时间:2023-12-03 20:03:55 29 4
gpt4 key购买 nike

稍微概括的例子:
当我定义模型方程时,如何创建一个有异常的 for 循环?
以下工作:

  model Test
Real[9] q;
equation
q[2] = 1.2;
q[4] = 1.4;
for i in {1,3,5,6,7,8,9} loop
q[i] = 0;
end for;
end Test;
但我更愿意写一些类似的东西:
  model Test
Real[9] q;
equation
q[2] = 1.2;
q[4] = 1.4;
for i in 1:9 and not in {2,4} loop
q[i] = 0;
end for;
end Test;
这可能吗?

最佳答案

这应该是可能的,只要您确保每个未知数都有一个等式。
可能不是完美的解决方案,但实际上非常可读:

model LoopException
Real[9] q;
equation
q[2] = 1.2;
q[4] = 1.4;
for i in 1:9 loop
if Modelica.Math.Vectors.find(i, {2, 4}) == 0 then
q[i] = 0;
end if;
end for;
end LoopException;
作为替代方案,您也可以尝试编写一个“带迭代器的数组构造函数”( Modelica Language Spec. Sec. 10.4.1),但这可能会有点困惑......

关于Modelica - 迭代器有异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63879803/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com