如何输出稳态FMU?
How to export FMU with steady-state?
我尝试导出我模型的 FMU,但是在 0-30000s 期间,模型处于不稳定状态,但我想导出稳定状态的 FMU,所以我检查了以下屏幕截图中的每个选项, none 的人可以实现我的想法。
我的问题是:
我怎样才能导出稳定状态的 FMU?
根据文档 FMI Support in Dymola 第 19 页的第一个 table,Dymola 似乎支持 canGetAndSetFMUState 功能。
请参阅 FMI Specification 的 2.1.8 获取和设置完整 FMU 状态 章节了解背景信息,但简而言之,这意味着您应该能够做到以下:
- 导出FMU,稳态不用担心
- 在您的调用工具 (Simulink) 中,将 FMU 集成到您感兴趣的稳态。
- 有调用工具调用函数fmiGetFMUstate并存储FMU的完整状态。
- 现在,每当您想从稳定状态开始时,让您的调用工具使用函数 fmiSetFMUstate 来恢复它。
当然这需要你的调用工具支持以上功能。
一个可能可行的选项(独立于 FMI)是告诉 Dymola 通过设置将模型初始化为接近稳定状态:
Advanced.DefaultSteadyStateInitialization = true;
但是,它是默认稳定状态,因此如果您的模型具有固定的起始值(这很常见),它们会优先并且此标志可能无效。
请注意,这在 Dymola 2020 中得到了显着改进。
我尝试导出我模型的 FMU,但是在 0-30000s 期间,模型处于不稳定状态,但我想导出稳定状态的 FMU,所以我检查了以下屏幕截图中的每个选项, none 的人可以实现我的想法。
我的问题是: 我怎样才能导出稳定状态的 FMU?
根据文档 FMI Support in Dymola 第 19 页的第一个 table,Dymola 似乎支持 canGetAndSetFMUState 功能。
请参阅 FMI Specification 的 2.1.8 获取和设置完整 FMU 状态 章节了解背景信息,但简而言之,这意味着您应该能够做到以下:
- 导出FMU,稳态不用担心
- 在您的调用工具 (Simulink) 中,将 FMU 集成到您感兴趣的稳态。
- 有调用工具调用函数fmiGetFMUstate并存储FMU的完整状态。
- 现在,每当您想从稳定状态开始时,让您的调用工具使用函数 fmiSetFMUstate 来恢复它。
当然这需要你的调用工具支持以上功能。
一个可能可行的选项(独立于 FMI)是告诉 Dymola 通过设置将模型初始化为接近稳定状态:
Advanced.DefaultSteadyStateInitialization = true;
但是,它是默认稳定状态,因此如果您的模型具有固定的起始值(这很常见),它们会优先并且此标志可能无效。
请注意,这在 Dymola 2020 中得到了显着改进。