使用JModelica将数组设置为fmu参数时出现问题-“ FMUException:valueref和值的长度不一致”

问题描述

我有一个代数方程,偏微分和常微分的模型。我用有限差分法离散化了偏微分方程,例如Tiller例6.9,《 Modelica的物理建模入门》。

我的模型的初始条件是在零时离散的所有不同点的数组。在我的模型中是一个输入:

initializing array

问题是我需要在模型外部设置此数组,并且出现以下错误:'FMUException:valueref的长度和值不一致。'

error

有人知道导致此错误的原因以及如何解决错误吗? 有人可以给我提供一个示例或一段代码显示如何在JModelica中实现吗?

谢谢, 卡琳(Karinne)

解决方法

在FMI 1.0和2.0中,没有数组,只有结构化的命名约定。 因此x0 [1],x0 [2] ... x [50]都是单独的标量变量。 FMI导入工具仍可以使用结构化命名约定来支持某些数组操作。但是,jModelica似乎不支持此功能,这会导致错误。

因此,您必须将输入视为几个标量变量。

阵列将在FMI 3.0中可用,请参阅https://fmi-standard.org/docs/3.0-dev/#definition-of-model-variables