OpenModelica仿真与FMPy运行导出FMU结果不一致问题求助
仿真结果不一致问题成因分析
- 时间单位不匹配:OpenModelica侧仿真使用秒作为时间单位,总时长86400秒,仿真间隔60秒;而Python侧仿真标称使用分钟作为时间单位,总时长1440分钟。FMU标准默认时间单位为秒,若Python侧未做单位转换直接传入分钟级时间戳,会直接导致仿真时序错位,输出结果完全不匹配。
- 模型交换FMU求解器配置差异:OpenModelica原生仿真默认使用DASSL等变步长求解器,有预设的相对容差、绝对容差参数;FMPy运行模型交换类FMU时需要自行指定求解器,若求解器类型、步长配置、误差容差和OM侧设置不一致,会导致光伏这类带动态响应的模型仿真结果出现偏差。
- 输入参数/边界条件对齐问题:需确认Photovoltaics_TGM模型依赖的辐照度、环境温度等边界输入,在OM原生仿真和FMPy仿真中的输入时序、数值是否完全一致,若输入采样间隔、数值有差异也会直接导致输出不符。
- FMU导出配置问题:OpenModelica 1.16版本导出FMU时可能存在资源打包不全的问题,若Photovoltaics_TGM库依赖外部数据文件、自定义函数,导出时未将对应资源嵌入FMU,会导致FMPy运行时调用默认参数而非模型原生参数,造成结果偏差。
- 输出采样配置差异:OM侧设置1440个仿真间隔即每60秒输出一次结果,若FMPy侧输出采样频率、插值逻辑和OM侧不一致,也会出现输出结果视觉上的差异。
内容的提问来源于stack exchange,提问作者Kosmylo
相关产品推荐
相关产品推荐

