【问题标题】:Feeding initial states to a FMU block (FMIKit) in MATLAB将初始状态馈送到 MATLAB 中的 FMU 模块 (FMIKit)
【发布时间】:2020-10-14 22:27:09
【问题描述】:

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

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

我们将不胜感激。

【问题讨论】:

    标签: matlab modelica dymola fmi


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 2021-10-13
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多