0

在 FMI 2.0 中,数组参数被序列化为标量变量。导入工具可以将它们显示为数组,但它们的大小是固定的,处理效率低下。FMI 项目的一个工作组目前正在开发更好的数组支持,但我想知道同时如何处理数组参数的变通方法。

想法是

  • 对它们进行硬编码(缺点:不再是参数......)
  • 将它们放在资源文件夹中的 CSV 文件中,并在模拟开始时读取它们(缺点:不支持参数掩码,复杂)
  • 将它们放在字符串参数中并在模拟开始时对其进行解析(缺点:字符串长度有限,复杂)

还有其他想法/解决方法吗?提前致谢。

4

1 回答 1

1

您的问题中概述的想法的组合也是可能的。

带有选择器参数的硬代码

这里的想法是硬编码数组的几个变体,并允许用户选择一个带有参数的变体。

我在最近的一个项目中这样做了,用户需要在不同的空间分辨初始条件(例如温度曲线)之间进行选择。我们使用一个模型生成超过 100 组不同的空间分辨初始条件(每组代表建模对象的不同“历史”),将它们硬编码为 FORTRAN 数组(FMU 的内核位于 FORTRAN 中),并使用一个整数参数来选择他想要使用的配置文件。

它工作得很好,用户无法打破它。

缩短数组并插值

如果您的数组中的数据是平滑的,您可能能够显着减少您实际需要传递给您的模拟的值的数量——这将使序列化成标量参数不那么痛苦。在 FMU 中,进行插值以获得所需的分辨率。

用于选择 csv 文件的字符串参数

您可以使用字符串参数来提供用户提供的 csv 文件的路径。我不建议这样做,因为用户很可能会破坏它。

于 2017-08-25T11:08:13.200 回答