为什么我不能在for循环中使用全局参数?

时间:2017-08-29 12:15:16

标签: modelica openmodelica

我尝试在这样的代码中使用全局参数:

model testModel
  outer parameter Integer par;
  outer Integer var;
equation
  for i in 1:par loop
    var[i] = 5 * i;
  end for;
end testModel;

model test
  inner parameter Integer par = 3;
  inner Integer var[par];
  testModel mod;
end test;

simulate(test)

我收到以下错误:

  

错误:迭代范围1:par不是常量或参数   表达

如果不使用全局参数,则一切正常:

model test
  inner parameter Integer par = 3;
  inner Integer var[par];
  testModel mod(par = par);
end test;

如何在"中使用全局参数?"或为什么我不能? 提前谢谢

1 个答案:

答案 0 :(得分:-1)

这应该有效:

model testModel
  outer parameter Integer par;
  Integer var[par];
equation 
  for i in 1:par loop
    var[i] = 5 * i;
  end for;
end testModel;

model test
  inner parameter Integer par = 3;
  testModel mod;
end test;