将初始状态馈送到MATLAB中的FMU块FMIKit

问题描述

我正在使用Dymola 2020x开发热量模型,并将FMU导出到Simulink以模拟控制器。 为了实现高级控制器,我需要一个迭代运行的框架,该框架可将每次迭代后的状态初始化为每个先前仿真结束时的值。这可以在Dymola中通过Dymola的“模拟”选项卡中的“导入初始”和“继续”命令来完成。 但是,由于我是在MATLAB中设计控制器,因此该平台需要类似的功能。我现在知道的唯一方法是手动更改FMU块中的初始条件,但是由于我有很多状态,因此手动进行操作是不可行的。也欢迎任何脚本编写思路。

总而言之,我需要一个框架/方法,以便能够通过MATLAB / Simulink将我的模型状态初始化为运行一次迭代后得到的值。

我们将不胜感激。

解决方法

将变量的初始条件作为参数公开,并通过MATLA脚本中的参数进行设置,例如

FMIKit.setStartValue(gcb,'step','true')

请参阅https://github.com/CATIA-Systems/FMIKit-Simulink/blob/master/docs/fmu_import.md