一
术语和定义
SoC电量状态(State of Charge)
OCVL低放电电流下的开路电压(Open Circuit Voltage for low discharge current)
OCVH高放电电流下的开路电压(Open Circuit Voltage for high discharge current)
二
引言
电池是储存电能的主要来源。对于依靠可充电电池供电的可穿戴系统,用户希望知道电池中剩余能量,以便预估何时需要充电。剩余能量的百分比通过“电量状态(State of Charge,SoC)”这一参数来衡量。SoC定义为电池剩余能量占满电状态能量的百分比,通常以额定容量(mAh)作为估算基准。图 1展示了电池从满电到空电的SoC变化。

图 1:不同 SoC下的锂离子电池
精确估算电池SoC有助于告知用户应用还能工作多久才需要充电。从安全角度看,SoC可确保电池达到 100%后不会过充。通过SoC估算,用户可以了解设备在下次充电前还能使用多久。满电电池SoC为 100%,空电电池对应0%。SoC还能有效反映电池系统相对于额定状态和寿命终止状态的表现。负载越高,SoC下降越快,本SoC算法已考虑这一点。SoC测量有助于选择适当的充放电曲线,以延长电池寿命。
SoC与电池端电压(开路电压OCV)成正比。SoC随电池电压下降而降低。图 2给出了SoC与电池开路电压及负载电流关系的示例曲线。

图 2:不同放电倍率下的开路电压与SoC关系
图 2 来自典型锂离子(Li-ion)电池在不同C倍率下放电的曲线。很明显,SoC与电池电压及负载/放电电流相关。所施加的负载/放电电流分别为0.2C、0.5C、1C和2C。
电池容量通常以1C为基准标定,即额定容量为200mAh的满电电池应能以200mA放电一小时。同一电池以0.5C放电时,可提供100mA两小时;以2C放电时,可提供400mA三十分钟。
放电电流越大,SoC和电压下降越快。图 2中绿线对应2C放电倍率,位置最高;黑线对应最低的0.2C放电倍率。0.2C时电压下降速度明显慢于2C。因此,2C时SoC下降速度也快于0.2C。图 2中3.2V对应电池空电状态,这是截止电压,对应SoC为0%。
每个品牌、每种类型的电池都有其自身的充放电特性。为使算法提供准确的SoC估算,需要对电池进行特性化(profiling),以确定不同C倍率下电压与SoC之间的关系。
2.1 SoC估算概念
SoC是当前存储电荷Q与总容量C的比值。总容量可从电池规格书中获得。SoC=1对应满电电池,SoC=0对应空电电池。
对于一次充/放电操作,考虑tα和tβ两个时刻。Qα和Qβ分别对应tα和tβ时刻的电荷量,因此存储/消耗的电荷为Qα–Qβ。当Qα变化到Qβ时,SoC从SOCα =SOC(tα)变化到SOCβ=SOC(tβ)。对tα和tβ分别使用库仑计数关系式,可计算出电池单体的总容量。
两个精确的SoC测量值以及这两个值之间的积分电流,足以计算当前时刻的容量C。SoC与开路电压(OCV)相关,当SoC从SOCα变化到SOCβ时,OCV从OCVα=OCV(tα)变化到OCVβ=OCV(tβ)。
OCV与SoC的线性插值关系可图示为图 3:

图 3:OCV与SoC关系
(DVL=放电电压限值,CVL=充电电压限值)
由上述关系可知,电池的当前容量可根据充放电电荷量、SoC和开路电压求得。
如前所述,为准确估算SoC,需要对电池进行特性化(或标定)。电池特性化的作用是以已知电流对电池进行充放电,并测量对应的开路电压。电池特性化首先将电池准备到满电状态,使SoC对应100%。特性化工具会以特定电流放电一段时间,使SoC下降5%,记录该SoC对应的电压。充电时同理,以特定电流充电一段时间,使SoC上升5%。
电池特性化会生成查找表(LUT),记录高负载(hlut)、低负载(llut/OCV)和充电电流(clut)下测得的SoC与电压。这些查找表被插入到DA1469xSoC软件中。SoC软件可添加到客户应用中,在应用运行时用于随时计算电池电量。
2.2 温度对SoC的影响
温度对锂离子电池的容量和SoC有显著影响。低温且负载需求较高时,温度影响更为明显。低温下开路电压下降更快,低温高负载时电压下降速率更快,因此低温下SoC也会下降。

图 4:温度对锂离子电池容量的影响
图 4表明,与10°C和25°C环境温度相比,在零度以下充放电时,电池容量显著降低。低温下电池内阻显著增加,影响电池的驱动电流能力,因此锂离子电池的容量和SoC都会下降。根据需求,电池特性化和SoC软件需考虑温度补偿,特别是对于高负载且伴随高温或低温的应用。
注意:
如果放电电流低于0.2C,且工作温度>5°C并<35°C,温度影响不大。
由于大多数应用不会暴露在零度以下或极高温度下,示例SoC软件不使用与温度相关的查找表,而是使用单一的低负载、高负载和充电电流查找表。
SoC(%) | llut(mV)(OCV) | hlut(mV) | clut(mV) |
100 | 4290 | 4290 | 4329 |
95 | 4185 | 4160 | 4326 |
90 | 4130 | 4106 | 4325 |
85 | 4075 | 4052 | 4315 |
80 | 4025 | 4001 | 4261 |
75 | 3972 | 3952 | 4240 |
70 | 3900 | 3880 | 4169 |
65 | 3876 | 3856 | 4124 |
60 | 3839 | 3819 | 4094 |
55 | 3810 | 3790 | 4061 |
50 | 3786 | 3766 | 4033 |
45 | 3765 | 3745 | 4010 |
40 | 3744 | 3724 | 3993 |
35 | 3722 | 3702 | 3981 |
30 | 3704 | 3684 | 3967 |
25 | 3686 | 3666 | 3954 |
20 | 3670 | 3650 | 3932 |
15 | 3645 | 3625 | 3906 |
10 | 3630 | 3610 | 3878 |
5 | 3545 | 3525 | 3815 |
0 | 3233 | 3213 | 3564 |
其中llut包含电池以(极)低电流放电时测得的电压;hlut包含电池以高电流放电时测得的电压;clut包含电池充电时测得的电压。
注意:
查找表中的数值需要在客户实际应用中对电池进行测量获得。
图 5是在固定温度(25°C)下,高、低负载电流对应的21步OCV查找表示例:

图 5:高、低负载电流下的查找表
三
锂离子电池充电过程

图 6:锂离子电池充电阶段
图 6展示了锂离子电池的充电过程,包括电池电压、充电电流和充电过程各阶段的特性。电池充电过程包括三个步骤:预充电、恒流充电和恒压充电。
3.1 充电阶段
3.1.1 阶段一:预充电
当电池处于空电状态(电池电压低于截止电压)时,必须以低电流充电,使电池电压上升到截止电压以上,这称为预充电。此阶段的充电电流称为预充电电流(IPRECHG),通常小于或等于0.1C。阶段一对应预充电。
3.1.2 阶段二:恒流充电
当电池电压上升到VPRECHG阈值后,可流入规定的最大充电电流。建议将充电电流设置为电池容量的50%至70%。这一阶段称为恒流充电阶段。为延长电池寿命,建议选择较低的充电电流,因此从电池寿命考虑,50%是较好的选择。但充电电流越高,充电速度越快。
3.1.3 阶段三:恒压充电
当电池电压上升到设定的调节电压后,充电过程进入恒压充电阶段。此阶段充电电流逐渐减小,直到电流等于电池容量的10%,之后充电过程停止,电池视为充满。锂离子电池的typical调节电压为4.2V。
四
流程概述
4.1 整体流程
SoC算法特性化流程主要包括两大步骤:
1
电池特性化。
1
SoC算法测试。

图 7:SoC算法特性化流程总览
4.2 电池特性化流程
电池特性化和SoC估算的实验台设置如图 8所示。

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

图 9:电池特性化流程
4.3 生成的查找表
SoC算法会生成若干查找表,如表 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
电压降与放电电流近似线性关系。
1
在恒定功耗下,每个SoC对应的电池电压是唯一的。
1
在恒定放电电流下,SoC每变化5%时电压变化呈线性。
基本算法流程如图10所示。

图 10:SoC算法概念总览
算法输入参数包括:
1
电池电压ADC_V(n):通过读取GPADC VBAT通道获得,单次读取提供10位数值。
1
ADC_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。