电量计(SoC)算法与实现!

strongerHuang 2026-09-19 08:00

术语和定义


  • 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变化。

电量计(SoC)算法与实现!图1

图 1:不同 SoC下的锂离子电池


精确估算电池SoC有助于告知用户应用还能工作多久才需要充电。从安全角度看,SoC可确保电池达到 100%后不会过充。通过SoC估算,用户可以了解设备在下次充电前还能使用多久。满电电池SoC为 100%,空电电池对应0%。SoC还能有效反映电池系统相对于额定状态和寿命终止状态的表现。负载越高,SoC下降越快,本SoC算法已考虑这一点。SoC测量有助于选择适当的充放电曲线,以延长电池寿命。


SoC与电池端电压(开路电压OCV)成正比。SoC随电池电压下降而降低。图 2给出了SoC与电池开路电压及负载电流关系的示例曲线。

电量计(SoC)算法与实现!图2

图 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:

电量计(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也会下降。

电量计(SoC)算法与实现!图4

图 4:温度对锂离子电池容量的影响


图 4表明,与10°C和25°C环境温度相比,在零度以下充放电时,电池容量显著降低。低温下电池内阻显著增加,影响电池的驱动电流能力,因此锂离子电池的容量和SoC都会下降。根据需求,电池特性化和SoC软件需考虑温度补偿,特别是对于高负载且伴随高温或低温的应用。




注意:

  • 如果放电电流低于0.2C,且工作温度>5°C并<35°C,温度影响不大。

  • 由于大多数应用不会暴露在零度以下或极高温度下,示例SoC软件不使用与温度相关的查找表,而是使用单一的低负载、高负载和充电电流查找表。


表 1:不同负载下OCV与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查找表示例:

电量计(SoC)算法与实现!图5

图 5:高、低负载电流下的查找表


锂离子电池充电过程

电量计(SoC)算法与实现!图6

图 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算法测试。


电量计(SoC)算法与实现!图7

图 7:SoC算法特性化流程总览



4.2 电池特性化流程

电池特性化和SoC估算的实验台设置如图 8所示。

电量计(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所示。

电量计(SoC)算法与实现!图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

电压降与放电电流近似线性关系。

1

在恒定功耗下,每个SoC对应的电池电压是唯一的。

1

在恒定放电电流下,SoC每变化5%时电压变化呈线性。


基本算法流程如图10所示。

电量计(SoC)算法与实现!图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的下降。

电量计(SoC)算法与实现!图11

图 11:SoC曲线


在同一图上绘制llut和hlut,结果如图11所示。绿线代表hlut,红线代表llut,实际电池电压与SoC的关系由蓝线定义。算法尝试预测llut曲线上的下一个点,将其投影到X轴即可得到下一个SoC估算值。算法的目标是利用所有可用信息将电池当前状态转换到llut曲线上,从而得到SoC估算值。


第一步是使用内/外插法估算实际负载电流。第二步是根据估算的负载电流计算电压下降速率(dV/T)。结合前一个电压值,可以计算估算曲线上的下一点。最后,将X坐标投影到SoC(llut)轴上,即可得到实际SoC。


如前所述,假设在恒定负载下,若电压变化较小,则SoC步长呈线性。



5.3 各种考虑

电量计(SoC)算法与实现!图12

5.3.1 SoC报告误差

SoC测量软件已在不同负载曲线下进行了大量静态和动态测试。通过精确的电池特性化,报告的SoC与实际值误差在5%以内。


电量计(SoC)算法与实现!图13

5.3.2 累积误差

由于第一次测量会估算SoC值,因此存在误差。初期误差可能较大,但会随时间平滑调整。


电量计(SoC)算法与实现!图14

5.3.3 半电充电

即使已达到最高电池电压,但尚未达到EOC,算法最初会产生一些较大误差,但会逐渐调整,因为电压下降速率会相应移动到计算的llut曲线。实际测试中未观察到任何异常。


电量计(SoC)算法与实现!图15

5.3.4 电池老化

算法已考虑电池老化,因为老化会影响初始电池容量。


结论


在恒定电池负载电流下,开路电压与SoC变化成正比。该算法能够利用电池特性化生成的查找表,以5%以内的精度估算SoC。


------------ END ------------



关于科技区角:国内科技展会垂直内容策划服务商,提供从论坛内容全案策划、会展市场化IP打造到精准专业观众一站式邀约服务,以产业内容吸引高质量B端人群,打通展会从议题设计、演讲嘉宾邀约、宣传预热、精准邀观到供需对接全链路。
声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。
Soc
more
内存成本飙升,已超越一颗顶级SoC的价格
CH37系列AI SoC:6核NPU+4核GPGPU异构协同,赋能边端AI算力
4款移动电源SoC完成新国标摸底验证!
七家企业为 iPhone18 Pro 推出 AVS 移动电源 SoC!
存储成本倒挂致SoC市场收缩,端侧AI成唯一增长极
孔雀SPAD-SoC落地量产,速腾聚创继续打开机器人感知边界
沁恒青稞RISC-V MCU/SoC及USB/Type-C/蓝牙/以太网接口芯片亮相慕展
【SoC】天玑9600Pro芯片跑分曝光
超大面阵SPAD-SoC芯片,进入规模化落地加速期
芯来邀您共赴D&R IP-SoC China 2026 Day
Copyright © 2025-成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号