首页 > 解决方案 > 将初始状态馈送到 MATLAB 中的 FMU 模块 (FMIKit)

问题描述

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

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

一些帮助将不胜感激。

标签: matlabmodelicadymolafmi

解决方案


将变量的初始条件作为参数公开,并从 MATLA 脚本中设置它们,例如

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

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


推荐阅读