电量计算法(SFG/CFG)
MPS 的电量计采用混合模型充电状态(SOC)算法来计算电芯/电池组的 SOC。与常见的开路电压(OCV)方法或库仑计数方法相比,MPS 电量计可在瞬态情况下提供准确的 SOC 结果,并且无需通过完整的充放电循环来更新满电容量。该电量计模型可降低库仑计数累积误差。对于某些无法达到完全充电或完全放电状态的特定应用,MPS 电量计无需校准即可获得优异的 SOC 结果。
本节内容主要介绍与 FG 算法相关的寄存器及其使用方法。读者将了解这些寄存器的定义及其工作方式,以在需要时更改默认值。
有某些寄存器仅在 GUI 的专家模式下显示。这部分内容可能与 CFG 或 SFG 均相关。
一次电量计迭代中的 SOC 计算过程如下:
- 获取读数。以下读数应从 AFE 获取。
- 电芯和电池组电压。如果无法提供电池组电压,则禁用电池组电压读取功能(VRDG_PACK_EN 位)。
- 电芯和电池组电流。如果无法提供电芯电流,则禁用电芯电流读取功能(IRDG_CELLS_EN 位)。
- 温度点。
- 库仑计数。如果无法提供库仑计数,则禁用库仑计数功能(CCRDG_EN 位)。
对于 SFG,用户必须在每次电量计迭代时将这些测量数据发送至电量计,以确保正确运行。对于 CFG,CFG 会每 500ms 触发一次高精度扫描,以获取电量计所需的所有测量数据,并完成电池监控。
- 当满足条件时,更新学习参数;
- 更新 SOC 状态;
- 更新健康状况(SOH)状态以及 SOH 学习;
- 更新电源状态;
- 检查可能存在的警告;
- 保存存储结果
- 结束迭代:
- 此时,电量计已准备好发送电量计输出结果;
- 如果启用该功能,电量计会将 IRQ 引脚拉低。
电芯模型选择
电量计算法必须使用可通过 MPS 图形用户界面(GUI)直接上传的电芯数学模型。用户可以直接从电芯数据库中选择,也可以通过 MPS 提供的文件加载电芯模型。用户可读取电芯模型信息,以确保已加载的是正确的电芯模型。
主要设置
执行周期(EXE_TIME 命令)定义电量计算法的执行频率。最小执行时间为 500ms,即电量计算法每 500ms 运行一次。发送至 FG 的测量数据获取频率必须严格遵循执行时间设置。
对于 SFG,用户应按照执行周期(EXE_TIME)配置的频率发送执行命令(EXE_CMD 命令)。对于 CFG,如果启用了电量计功能(FG_EN 命令),CFG 可以自动触发迭代。
在系统充电或放电时,FG 会在每次算法迭代中估算剩余空电时间/满电时间。当系统未处于充电或放电状态时,FG 会根据静置执行周期倍率(WEXE_TIME_REST 寄存器)降低空电/满电估算频率,以降低功耗;空电/满电估算会按照(EXE_TIME × WEXE_TIME_REST)的周期执行一次。
例如,如果 EXE_TIME = 4s 且 WEXE_TIME_REST = 4,则 FG 每 16s 执行一次满电/空电估算。
实际算法执行时间取决于所需的计算规格以及电量计 IC。通常配置为 10s 的 MPF42791,仅进行 SOC 估算时约需要 25ms,而执行满电/空电估算时约需要 400ms。当执行周期设置为 500ms 时,剩余约 100ms 可用于重新加载 AFE 数据,以进行下一次 FG 迭代。
充电/放电电流阈值(CHG_ITH 和 DSG_ITH 寄存器)用于判定电池正在充电或放电。当电流低于这些阈值时,FG 将电池视为静置状态。
最大 SOC 变化斜率(SOC_DMAX 寄存器)定义每秒充电/放电过程中 SOC 最大变化量。
例如,当以 1C 放电时,SOC 变化斜率约为 100% / 3600s = 0.028%/s。对于最高 1C 的应用,该设置应略高于 0.028%/s,以确保正常运行。当应用更高 C 倍率时,必须增大该设置,以确保电量计报告的 SOC 曲线能够跟随实际充放电曲线。
最大静置 SOC 变化斜率(SOC_DMAX_REST 寄存器)定义电池在当前电流水平静置状态下,每秒允许的最大 SOC 变化量。如果用户不希望 SOC 在静置状态下发生变化,则该值应设置为 0。
电池组配置
串联电芯数量(NCELLS_SER 寄存器)设置整个电池组中的串联电芯数量,并影响电池组电压。
并联电芯数量(NCELLS_PAR 寄存器)设置整个电池组中的并联电芯数量,并影响电池组容量。
温度传感器数量(NTSS 寄存器)设置电池组中使用的 NTC 总数量。当与 MPS AFE 匹配时,该数量应与电芯监控 NTC 数量(NUM_OF_CELL_NTCS 寄存器)的设置保持一致。
温度配置
电芯温度选择(TSS_CELLX 寄存器)定义每个电芯温度 NTC 与其所监测电芯之间的对应关系。
最大充电温度(TCHG_MAX 寄存器)根据客户应用设置充电过程中的最大温度。该参数用于预测充电过温警告(WARN_OTCHG_CC 寄存器和 WARN_OTCHG_END 寄存器)。
最大放电温度(TDIS_MAX 寄存器)根据客户应用设置放电过程中的最大温度。该参数用于预测放电过温警告(WARN_OTDIS 寄存器)。
电池组热传递系数(HCONV_PACK 寄存器)设置用户电池组的热传递能力。更大的系数表示系统具有更好的散热能力。该参数会影响高温条件下的温度模型和 SOC 估算。
例如,如果电池组具有散热片或冷却系统,则在相同充电/放电条件下,温升幅度会更小。
附加电阻
由于导线或母线连接原因,两个连接电芯之间存在一定电阻。同样,电池管理系统(BMS)电路板中也存在一定电阻。这些电阻会导致电芯/电池组电压监测产生误差,从而影响 SOC 精度。MPS 电量计提供用于设置电阻值的寄存器,以补偿这些压降,并提高 SOC 精度。图 10 显示了这些电阻的示意图。
图 10:电池中的电阻
电池组连接电阻(RCXN_PACK 寄存器)是指从电池输出端到 BMS 电路板之间的电阻。该电阻包括正极和负极导线/连接端的电阻。/p>
BMS 高侧电阻(RBMS_HSIDE 寄存器)是由于 PCB 走线和保护 FET 导致的 BMS 高侧总电阻。
BMS 低侧电阻(RBMS_LSIDE 寄存器)是由于采样电阻和 PCB 走线导致的 BMS 低侧总电阻。
电芯附加电阻(RCXN_CELLX 寄存器)是由于电芯之间连接或电芯之间任何母线连接导致的电阻。
电量计 GUI 提供两种方式来设置电芯附加电阻。用户可以将其设置为电池组中所有电芯共用的单一数值,也可以为电池组中的每个电芯分别设置独立数值。如果用户无法测量这些参数,则可以使用默认配置。