瑞萨DA1469x电量计解读之SoC算法与实现过程
四、流程概述
4.1 整体流程
SoC算法特性化流程主要包括两大步骤:
1电池特性化。
2SoC算法测试。

图 7:SoC算法特性化流程总览
4.2 电池特性化流程
电池特性化和SoC估算的实验台设置如图 8所示。
图 8:电池特性化实验台设置
电池特性化的目的是生成第2.1.1节详细描述的“电压-SoC”查找表。对于高电流负载的特定情况,电池特性化步骤如下:
1源表以0.5C/1C充电电流(视电池而定)对电池进行完全充电,直到充电电流降至5% EOC限值以下。
2以固定采样间隔记录Vbat,采样间隔等于LUT条目数(生成clut)。
3让电池静置15分钟,无任何负载。
4根据客户需求,以高负载曲线对电池放电。
5以固定采样间隔记录Vbat,采样间隔等于LUT条目数。等待15分钟让电池恢复,再次测量Vbat。第一个Vbat值放入hlut,第二个值放入llut(OCV)。
625°C下的基本llut、hlut和clut如图 9所示。

图 9:电池特性化流程
4.3 生成的查找表
SoC算法会生成若干查找表,如表 2所示。
表 2:生成的查找表
| 编号 | 名称 | 描述 |
| 1 | llut | 25°C下以5%容量步长测得的电池开路电压(OCV)对应的电压。 |
| 2 | hlut | 25°C下以5%容量步长测得的平均高负载电流恒定负载对应的电压。 |
| 3 | clut | 25°C下以5%容量步长测得的电池充电过程对应的电压。 |
这些查找表仅服务于固定温度下的放电和充电操作。此外,每个LUT中的样本数可以增加,以提高算法精度(目前为21个样本)。
注意:
如果负载需求小于0.2C,则不需要温度补偿。
五、SoC算法
5.1 概念
DA1469x SoC软件示例包含多个用于计算SoC的函数,可集成到客户应用中。SoC软件中使用的算法基于以下假设:
1电压降与放电电流近似线性关系。
2在恒定功耗下,每个SoC对应的电池电压是唯一的。
3在恒定放电电流下,SoC每变化5%时电压变化呈线性。
基本算法流程如图10所示。
图 10:SoC算法概念总览
算法输入参数包括:
1电池电压ADC_V(n):通过读取GPADC VBAT通道获得,单次读取提供10位数值。
2ADC_V(n)与ADC_V(n+1)之间的时间间隔T:通过硬件定时器实现,当前设置为1秒。
简而言之,思路是读取初始电池电压并假设一个初始SoC值,然后估算实际负载电流和电压下降速率。后两个参数可用于计算VBAT/SoC曲线上的下一点,从而得到SoC值。
5.2 SoC计算
每个查找表都可以表示为二维图上的若干点,X轴为SoC(%),Y轴为电池电压VBAT(V)。样本数由LUT生成时的步长决定,本例中步长为5%(每损失5%SoC读取一次VBAT),因此图中有21个样本。这21个样本定义了一条曲线,显示电池电压随SoC的下降。

图 11:SoC曲线
在同一图上绘制llut和hlut,结果如图11所示。绿线代表hlut,红线代表llut,实际电池电压与SoC的关系由蓝线定义。算法尝试预测llut曲线上的下一个点,将其投影到X轴即可得到下一个SoC估算值。算法的目标是利用所有可用信息将电池当前状态转换到llut曲线上,从而得到SoC估算值。
第一步是使用内/外插法估算实际负载电流。第二步是根据估算的负载电流计算电压下降速率(dV/T)。结合前一个电压值,可以计算估算曲线上的下一点。最后,将X坐标投影到SoC(llut)轴上,即可得到实际SoC。
如前所述,假设在恒定负载下,若电压变化较小,则SoC步长呈线性。
5.3 各种考虑
5.3.1 SoC报告误差
SoC测量软件已在不同负载曲线下进行了大量静态和动态测试。通过精确的电池特性化,报告的SoC与实际值误差在5%以内。
5.3.2 累积误差
由于第一次测量会估算SoC值,因此存在误差。初期误差可能较大,但会随时间平滑调整。
5.3.3 半电充电
即使已达到最高电池电压,但尚未达到EOC,算法最初会产生一些较大误差,但会逐渐调整,因为电压下降速率会相应移动到计算的llut曲线。实际测试中未观察到任何异常。
5.3.4 电池老化
算法已考虑电池老化,因为老化会影响初始电池容量。
六、结论
在恒定电池负载电流下,开路电压与SoC变化成正比。该算法能够利用电池特性化生成的查找表,以5%以内的精度估算SoC。





