Matlab / OpenModelica生成的FMU支持fmi2GetFMUState / fmi2SetFMUState吗?

问题描述 投票:0回答:1

我正在尝试测试一个简单的fmu以保存和恢复状态。

例如openmodelica:

model modelicatest
input Real In1;
output Real Out1(start=0, fixed=true);
equation
der(Out1) = In1;
end modelicatest;

也用于simulink:

enter image description here

我正在使用FMPy模拟生成的FMU。

但是对于OpenModelica v1.14.1生成的FMU,当我从FMPy调用getFMUState时出现以下错误:

Exception: fmi2GetFMUstate failed with status 3

对于使用内置导出器的Simulink(2019b)生成的FMU,当我运行setFMUState时,FMU状态不会重置(即输出值)。

只是想知道OpenModelica和Simulink生成的FMU是否支持这些功能?还是FMPy问题?

python simulink openmodelica fmi
1个回答
0
投票

关于fmi2GetFMUstate / fmi2SetFMUstate,FMI Specification,第2.1.8节。状态:

如果XML文件中的可选功能标记<fmiModelDescription> <ModelExchange / CoSimulation canGetAndSetFMUstate in = "true">显式设置为true(请参阅3.3.1和4.3.1节),则FMU仅支持这些功能。

您可以解压缩fmu文件并查看modelDescription.xml文件以了解是否设置了该标志。

© www.soinside.com 2019 - 2024. All rights reserved.