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

如何诊断OpenModelica瞬态仿真运行缓慢原因并定位问题模块?

OpenModelica中定位瞬态模型慢因的工具与方法咨询

问题背景

我搭建了一个包含Modelica.Fluid阀门和动态管道的瞬态模型,运行速度缓慢,希望找到识别慢因的策略与工具。通过参考《Modelica Performance Analyzer》文档中「Using the Profiler from OMEdit」章节的指引,已发现非线性撕裂方程组占用了大部分CPU时间,但仍想深入定位根本原因。

了解到Dymola有「State variable logging => Which states that dominate error」选项,可定位导致积分步长减小的模型模块,但查阅OpenModelica 1.20.0的《Compiler Flags》和《Simulation Flags》文档后未找到类似功能。请问OpenModelica是否有类似选项?是否有工具或选项可帮助我定位模型中导致步长减小或运行缓慢的模块?

补充说明:使用的是DASSL求解器与OpenModelica 1.20.0。

2023年3月6日更新

因完整系统模型过于复杂,我创建了简化示例。完整CO2沉积(CDep)系统是为NASA未来任务设计的航天器舱内CO2去除系统,《Modeling Performance of the Full Scale CO2 Deposition System》论文对该系统及前期建模工作有详细描述。此后我使用Modelica Media的ideal gas MixtureGasNasa和Fluid库搭建了模型。

CDep_Valve_Test_v1p1_20230220.mo库中的CDepSystem_valves模型与我的CDep模型拓扑一致:

  • 采用DynamicPipe模型及基于Modelica.Fluid.Valves.ValveDiscreteRamp创建的三通阀,切换三通阀可改变a端口流入流体的流出路径(b0或b1端口),默认路径为红色
  • 四通阀为自定义简易模型,可将压力源和回风边界连接至上「A」回路或下「B」回路,默认路径为红色和绿色
  • 默认阀配置下,上部垂直管道和底部水平管道无流体通过,因此在其一端设置阀泄漏以稳定流场;切换阀门时,这两个管道将有流体通过,另外两个管道则停止过流

CDep测试模型

从底部的CPU使用率曲线可见,每10秒切换阀门时运行变慢。完整CDep系统包含逆流换热器、沉积室,并模拟CO2和H2O的沉积与升华过程,单次切换事件的仿真需耗时1小时以上。我急需了解切换事件仿真耗时久的原因并寻求提速方法,再次询问:OpenModelica是否有工具或选项可帮助定位模型中导致步长减小或运行缓慢的模块?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:06:25