matlab - 将初始状态馈送到 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
推荐阅读
- c - 指向可变大小参数的 C 函数指针
- python - 如何在python中的引号内连接变量
- javascript - 在 Google 表单上预填问题
- javascript - Node.js 隐藏 HTML 页面的内容,直到用户登录
- python-3.x - 在dict中重新迭代for循环
- python - 将 spark DataFrame 保存为 Parquet 的问题
- javascript - 如何将二维数组javascript坐标发送到mysql?
- ios - 发生 SSL 错误,无法与服务器建立安全连接 IOS 13.3.1
- jmeter - 无法从 JMeter 推送 MQ 消息
- c - 指针访问不正确的地址 OS161