我正在尝试测试一个简单的fmu以保存和恢复状态。
例如openmodelica:
model modelicatest
input Real In1;
output Real Out1(start=0, fixed=true);
equation
der(Out1) = In1;
end modelicatest;
也用于simulink:
我正在使用FMPy模拟生成的FMU。
但是对于OpenModelica v1.14.1生成的FMU,当我从FMPy调用getFMUState
时出现以下错误:
Exception: fmi2GetFMUstate failed with status 3
对于使用内置导出器的Simulink(2019b)生成的FMU,当我运行setFMUState
时,FMU状态不会重置(即输出值)。
只是想知道OpenModelica和Simulink生成的FMU是否支持这些功能?还是FMPy问题?
关于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文件以了解是否设置了该标志。