ZHCADX8B March 2024 – June 2025 MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1
在评估测量仪表性能之前,用户需要了解该算法的学习周期。该算法采用三个参数,通过代码运行学习而来。第一个参数是 NomFullCap 和 MaxNomFullCap。第二个参数是 FullSoc,最后第三个参数是 EmptySoc。所有参数均会影响 SmoothSoc 输出性能和精度。下文将通过一个电池测试用例来展示此算法的学习能力,如 图 4-11 所示。
图 4-15 电池 3 次充放电设置 iGaugeDominationFlg 后,MaxNomFullCap 从 0 变为非零值。此时,这意味着测量仪表算法会计算 NomFullCap 误差,进而 NomFullSoc 误差会减小到可接受的范围。通常此过程需要一次完全放电或充电。
FullSoc 和 EmptySoc 与 CusSoc 及 SmoothSoc 相对应。这些参数会在电池充满电或电量耗尽时进行调整。但由于 NomFullSoc 误差较大,一开始并不会保存学习结果。在 图 4-15 中,FullSoc 会在约 4000 秒时调整到 94.9%,然后在 30000 秒时再次调整。EmptySoc 会在 16000 秒时进行调整,并在 43000 秒时再次调整。在 60000 秒时,由于负载相同,EmptySoc 会加载保存在 EmptySocMatrix 中的值。
当 EmptySoc 和 FullSoc 学习时,SmoothSoc 可能会有较大的跳变,尤其是当 MaxNomFullCap 尚未完成学习且 NomAbsSoc 在学习周期中存在较大误差时。电池将持续从 100% 放电到 0%。图 4-16 展示了一个示例。这在 LiFePO4 电池上很常见。要减少 SmoothSoc误差,用户可使用 PackRecordLoad 函数为算法提供一个 NomAbsSoc 起始值,并在 battParamsCfg 中设置 EmptyOcvMatrix 和 FullOcvMatrix。如果用户只是想要避免 SmoothSoc 出现大幅跳变,建议在 SmoothSoc 输出端添加一个具有出色频率抑制效果的 IIR 滤波器。
图 4-16 SmoothSoc 跳变