arrays - 在 modelica 中初始化未知大小的数组

标签 arrays modelica

我需要一些关于在 openmodelica 中初始化数组的帮助。我创建了一个 modelica 类,它应该生成一个可变大小的数组。大小将被设置为参数并且是整数类型。下面是我想做的一个例子。我不断收到错误消息,并很乐意收到任何提示!谢谢。

parameter Integer f_min;
parameter Integer f_max;
Integer Freq_steigerung;
Integer array_size;
Integer Freq[:];

equation
array_size = ceil((f_max-f_min)/Freq_steigerung);
Freq[array_size] = f_min: Freq_steigerung: f_max;

最佳答案

在 Modelica 中,您不能在运行时拥有可变大小的数组。 所有数组大小都需要在编译时知道,因此大小需要是参数或常量。

您可以拥有包含数组大小未知的组件的函数(或记录),但它们需要在调用时绑定(bind)(因此在编译期间仍然已知)。

这样的事情会起作用:

model T
  parameter Integer f_min;
  parameter Integer f_max;
  parameter Integer Freq_steigerung;
  parameter Integer array_size = integer(ceil((f_max-f_min)/Freq_steigerung));
  Integer Freq[array_size];
equation
  Freq = f_min: Freq_steigerung: f_max;
end T;

关于arrays - 在 modelica 中初始化未知大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457828/

相关文章:

C++表达式必须具有常量值

Python 2D Numpy Array 到 1D(有点..)

modelica - 是否可以在 Windows 机器上从 Dymola 编译 Linux 可运行的 fmus?

java - 将byte []数组的元素组合成16位数字

java - Java 中的迭代数组

python - 在 Spyder/Python 中使用 JModelica

modelica - 如何在 Dymola 中获取结构雅可比行列式?

modelica - 在 Dymola 中使用先前模拟结果的结果值作为下一次模拟的猜测值

modelica - 如何使用某个库中的组件

arrays - 内存中连续的结构数组