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

OpenModelica CVode仿真与FMU结果不一致问题排查

OpenModelica导出FMU通过FMPy仿真异常问题

OMEdit中仿真弹跳球模型时结果正确(高度始终非负),但使用对应FMU通过FMPy仿真时结果异常——高度会低于零。

使用的OpenModelica版本为Windows平台的v1.21.0-dev.beta.2,OMShell中生成FMU和仿真的代码如下:

loadFile("BouncingBall.mo")
simulate(BouncingBall, method="cvode", stopTime=3, numberOfIntervals=60)
plot(h)

setCommandLineOptions("--fmiFlags=s:cvode")
buildModelFMU(BouncingBall, version="2.0", fmuType="cs", fileNamePrefix="BouncingBall_cs")

FMPy仿真代码如下:

from fmpy import simulate_fmu
from fmpy.util import plot_result
    
result = simulate_fmu(
    filename='BouncingBall.fmu',
    validate=False,
    start_time=0,
    stop_time=3,
    solver='CVode',
    step_size=0.001,
    output_interval=5e-2,
    output=['h'])
        
plot_result(result=result)

增大采样数或减小输出间隔可降低误差,这似乎表明CVode求解器无法自动调整步长。此前有相关问题在OpenModelica v1.20版本被修复,但当前仍出现结果异常,请问该问题是否与旧问题相关,还是我操作有误?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:17:19