我对JModelica有以下基本的问题。考虑一个相当简单的模型:
model TEST
Real Dum(start = 0);
parameter Integer It = 5;
algorithm
Dum := 0;
for i in 1:It loop
Dum := Dum + 1;
end for;
end TEST;
我用python编译它,当然,它运行,变量Dum的值总是应该是5。现在的问题是,当我想在加载编译好的fmu()之后更改为参数“It”时测试.fmu)有:
^{pr2}$然后运行模拟,它仍然给出“Dum”的5,而不是4。虽然“它”实际上变成了4,这可以从模拟后绘制“它”的时间曲线看出。有没有人知道有没有一种方法可以在运行中改变它,从而真正影响到循环?在
这当然是一个玩具的例子,但我需要一个更大的项目的功能,我迫切需要在一个不同的范围内循环,而重新编译只是浪费时间。在
非常感谢
问题是编译器将参数“It”当作一个结构参数来处理,也就是说,很遗憾,在编译之后它不能被更改。在JModelica(r9190)的最新开发版本中运行相同的问题会导致在尝试设置变量“It”时出现异常
如果您检查日志,您将了解失败的原因:
^{pr2}$所以要回答你的问题,很不幸不能这样做。在
但您可以在编译调用期间更改参数:
相关问题 更多 >
编程相关推荐