You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dymola导出FMI2.0联合仿真FMU初始化异常及定义差异咨询

动态朗肯循环FMU初始化问题及初始值定义疑问

我用Dymola 2022搭配ThermoSysPro库搭建了动态朗肯循环模型。为实现从任意给定状态启动仿真,我会输出所有状态值,再通过参数设置各状态的初始值,以压力为例有两种定义方式:

第一种方式:

parameter Modelica.Units.SI.Pressure P0 = 10e5 "Initial pressure";
Modelica.Units.SI.Pressure P(start=P0, fixed=true) "Pressure";

第二种方式:

parameter Modelica.Units.SI.Pressure P0 = 10e5 "Initial pressure";
Modelica.Units.SI.Pressure P "Pressure";

initial equation 
P = P0;

疑问:这两种初始值定义方式是否存在差异?

对所有状态完成上述设置后,我可以获取仿真结束时的状态值并修改初始参数,从新状态启动本地仿真完全正常。

后续我将模型导出为FMI 2.0联合仿真FMU(采用Dymola的DASSL求解器),在Dymola中加载FMU后,使用默认初始参数仿真可正常运行,且结果与原模型一致。但当设置与默认值差异较大的初始参数时,初始化算法会在蒸汽属性函数中出现空值(nil),导致初始化失败。

目前我尝试过通过设置最小值避免空值,也提供了更多初始猜测值,但这种方法耗时且不够简洁。我期望FMU的初始化过程能和原模型表现一致,必要时可以尝试编写最小复现示例,但无法保证一定可行。

内容的提问来源于stack exchange,提问作者Clement44

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:28:00