本应用笔记向用户描述了如何改进锂离子电池组的剩余容量估计,使其超出单独使用库仑计数器的精度水平。本文概述了使用Maxim电池监测IC和电量计软件的方法,了解电池单元年龄以及应用的充电放电速率对锂离子电池组剩余容量的影响。结果是一个低成本,但高精度的电池电量计。这种电池电量计方法可应用于任何类型的锂离子电池单元和任何包含库仑计数器的达拉斯半导体器件,如DS2438电池监测器。
图1.系统图。
介绍
在现实世界条件下准确确定锂离子电池的剩余电荷需要的不仅仅是库仑计数。DS2438的集成式累加器(ICA)可在已知条件下精确测量电池容量,但在温度和放电速率变化且电池容量随老化而下降的应用中,DS2438的ICA需要调整以达到所需的精度。本文档介绍了如何扩展DS2438的电量计概念,以确保在极端工作条件下具有更高的精度。这是通过在软件中表征电池容量随温度和速率的变化并控制库仑计数来实现的。这个过程不仅限于DS2438或特定类型的锂离子电池。任何带有库仑计数器、温度转换器和15字节用户EEPROM的Maxim电池管理器件都能够对任何类型的锂离子电池进行高精度电量测量。
锂离子电池行为
要了解为什么仅库仑计数不足以进行高精度燃料测量,了解其环境如何影响锂离子电池的充电容量是有帮助的。以下示例中的电池是额定电流为 1200/4A 的 3mAH 圆柱形电池。它通过两步法充电,首先以恒定的1C速率充电,直到电池电压达到4.2伏,然后通过恒定电压充电,直到充电电流降至C / 20或60mA以下。在这一点上,它被认为是充满电的。它以1C的高电流速率或0.2C的低电流速率放电。当电池电压降至 2.5 伏以下时,电池被认为已完全放电。
温度和放电率
锂离子电池的容量根据温度和放电率而有很大差异。图2显示了温度和放电速率变化时的充电容量(以毫安小时为单位)。图表上的“完全”线是在相应温度下使用上述充电方法认为电池完全充电的点。“高电流空”线是电池在每个温度下以 1C 速率完全放电的点。使用0.2C的放电速率以相同的方式绘制“低电流空”线。
图2.
电池在给定速率和温度下的容量是与“满”线和相应的“空”线的差值。由于空点和满点都随温度和速率而变化,因此图表上的每个点都相对于其他每个点。例如,如果电池在80°C的温度下充满电,然后在-20°C的低电流速率下完全放电,则能够去除的电荷量将是80°C(1340mAH)时的满值与-20°C(250mAH)或1090mAH时的低电流空值之间的差值。如果电池在-20°C下完全充电,则只有-20°C或860mAH时的满值和空值之差可以返回电池。
只需要即时温度和速率来确定相对满点和空点。在温度 1 和速率 1 下部分放电,然后在温度 2 和速率 2 下完全放电的电池将在基于温度 2 和速率 2 的点上被视为空电池。同样,上述电池可以以高电流速率完全放电,但能够通过对应于当前电池温度的两个“空”点之间的毫安小时数以低电流速率进一步放电。因此,在确定剩余容量时,只需要跟踪当前的电池温度和放电率。
细胞老化
随着锂离子电池的老化,它失去了储存电荷的能力。图3显示了在室温下反复充电和放电电池的效果。通过保持电池上电荷的持续库仑计数,可以证明老化仅影响“满”点。“空”点保持不变。为了说明这一点,用于计算剩余容量的公式必须能够随时间动态变化以保持准确。
其他条件
大多数其他条件对充电容量影响很小或没有影响。锂离子电池在充电时非常高效;与其他细胞化学物质不同,在循环过程中很少有能量损失为热量。锂离子电池的自放电极低,甚至难以测量。由于所有这些条件加在一起对库仑计数结果的影响小于测量设备的精度,因此在电量计方程中完全忽略了它们。
图3.
计算剩余容量
从上面的图表中很容易看出,在现实世界的条件下,仅库仑计数方法如何变得非常不准确。本节展示了库仑计数如何结合预期的“空”和“满”点的表征来保持对剩余电池容量的准确估计。
标准假设
为了使算法准确运行,同时最小化计算复杂性和参数数据存储,需要做出某些假设。首先,假设类似的充电效率和端接限制普遍适用于应用。在本例中还假设遇到的可重复放电效率数量有限,每个放电效率都有良好的限制。必须始终认为电池在相同的电压水平下完全放电,例如 2.5 伏。在此应用中,充电效率和电池组自放电被假定为可以忽略不计,因此被忽略。
细胞表征
电量测量公式的工作原理是将DS2438的ICA值与存储在DS2438用户EEPROM中的该电池类型的预期“空”和“满”值进行比较。该数据是通过表征电池类型在应用的预期温度范围和电流消耗中生成的。该信息随后存储在包驻留存储器中,供算法稍后提取和修改。图4显示了用于收集表征数据的系统。应收集多个包装的信息,以便可以将平均值或典型值存储在每个生产包中。为了获得最佳准确性,数据应收集在包含生产电路的组装包装上,而不是单个电池上。
图4.细胞表征系统。
为了收集数据,电池组在每个温度下完全充电,并在每个温度下以每个速率完全放电。图5所示为DS2438在0°C至40°C范围内采集完全充电时的ICA读数和有功电流放电数据。 然后,该过程将扩展为收集相同温度范围内的待机电流放电数据。
图5.
所有收集的数据点排列在下面的表1中。由于只有点之间的差异很重要,因此数据的绝对值无关紧要,它们已被归一化为最低值(待机电流在40°C时为空)。这减少了需要存储的数据量,因为待机空 40°C 现在始终为 0。
表 1.细胞表征数据
0°C | 10°C | 20°C | 30°C | 40°C | |
满(毫安时) | 554 | 561 | 578 | 582 | 588 |
待机空 (毫安时) | 65 | 42 | 19 | 11 | 0 |
活动空 (毫安时) | 124 | 90 | 65 | 50 | 44 |
表征数据存储在DS2438的EEPROM存储器的两页中。由于大于 25510 的值需要存储超过 1 个字节的内存,因此通过仅存储第一个值,然后记录温度之间的增量差异来减少数据量。DS2438数据存储的存储器图如下
表2
所示。
表 2.DS2438存储器映射
第 3 页 | 第 4 页 | |
0 | 0°C 时满 | Δ 待机空置至 20°C |
1 | Δ 待机空置至 30°C | |
2 | Δ 满至 10°C | Δ 有效空至 0°C |
3 | Δ 满至 20°C | Δ 有效空至 10°C |
4 | Δ 满至 30°C | Δ 有效空至 20°C |
5 | Δ 满至 40°C | Δ 有效空至 30°C |
6 | Δ 待机空置至 0°C | 40°C 时有效空 |
7 | Δ 待机空置至 10°C | 闲置 |
第 6 页的前 3 个字节包含电池在整个范围内不同温度下的测量 FULL 点。字节 0-1 是电池在 0°C 时的容量;接下来的四个字节是容量从上一个温度增加的值。例如,如果给定单元的容量在 554°C 时为 0mAH,在 561°C 时为 10mAH,则字节 0-1 将包含 55410 (0x022Ah),字节 2 将包含 710 (0x07h)。接下来的九个字节保存以与 FULL 值相同的方式存储的“备用空”和“活动空”信息。从 40°C 开始,EMPTY 值沿相反方向递增,因为它是最低值。不包括 40°C 时的待机空,因为它始终为 010。表3所示为DS2438中存储的实际信息,采用上
表
1所示的特性数据。
表 3.存储在DS2438中的电池数据的存储器映射
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
第 3 页 | 0x02小时 | 0x2Ah | 0x07小时 | 0x11小时 | 0x04小时 | 0x06小时 | 0x17小时 | 0x17小时 |
满 | 待机空 | |||||||
第 4 页 | 0x08小时 | 0x0Bh | 0x22小时 | 0x19小时 | 0x0Fh | 0x06小时 | 0x2通道 | X |
待机空 | 活动空 |
方程式
电池组表征完成后,计算剩余容量非常简单。表征数据用于根据温度和放电速率找到电池满电量点和空电量点,并将DS2438的集成累加器与这些值进行比较,以百分比表示剩余容量。上电时,应从DS2438读取特性数据,并将其存储在主机RAM中。当主机决定更新剩余容量指示器时,通过读取电池温度和DS2438的ICA开始更新。然后通过使用电池温度在FULL表征数据点之间进行线性插值来计算电池的当前完整值。例如,28°C 时的电池满点计算公式为:
全值 (28°C) = (满 20°C) + ((28-20)/10) × (满 30°C - 满 20°C)
空点的计算方法完全相同,只是必须根据系统的当前激活状态确定使用活动或备用特征数据。然后,可以通过以百分比形式确定空点和满点之间的 ICA 位置来计算容量。公式总结如下:
满值 = 满值[温度]
空值 = 待机空[温度] 或活动空 [温度]
容量 =((ICA - 空值)/(满值 - 空值)) × 100%
对剩余容量的估计是完美的。为防止错误长期累积,每次电池完全耗尽时,ICA寄存器应重置为相应的EMPTY值。同样,每次电池充满电时,都应更改相应的FULL值以匹配ICA。通过根据实际操作永久调整满点,该组能够针对与“典型”表征数据不同的细胞进行调整,并随着电池的老化和劣化而调整。
放电结束时:ICA = 空值
充满电结束时:充满[温度] = ICA
显示信息
上述公式以计算出的空点和满点之间的百分比形式报告剩余容量。这可能并不适合每个应用程序。例如,电池可能放电到低于活动空但高于待机空的水平。如果剩余容量百分比基于待机空点,则即使电池当时无法支持有功电流,它也会显示一些剩余容量。这可能会让最终用户感到非常困惑。主机处理器呈现容量数据的方式对于每个应用都是唯一的,标准电量计公式未涵盖。
剩余能量计算
对于某些应用,估算剩余能量非常重要。例如,如果电路具有恒定的功耗,其中有功电流增加而电池电压下降,则剩余时间与剩余电量没有直接关系。然而,使用DS2438的电压读数可以很容易地估算出剩余能量。回想一下能量方程:
能量 (J) = 伏特×电流×时间
可以用剩余能量重写:
剩余能量 (J) = 3.6 × RAV ×剩余 mAH
其中:
剩余毫安时是通过上述公式计算的剩余毫安小时。
3.6 是从毫安小时到安培秒的转换系数。
RAV是下面解释的电池的剩余平均电压。
图6的上图显示了典型的电池放电曲线。通过查找当前电池电压与空电池电压(通常为 2.5 伏)之间的平均值,可以随时近似平均剩余电池电压。
RAV = (电压 + 2.5)/2
剩余能量计算现在可以总结为:
剩余能量 (J) = 3.6 × 剩余 mAH × (电压 + 2.5)/2
其中:
剩余毫安时是通过电量计方程计算的剩余毫安小时。
电压是由DS2438测量的电池电压。
3.6 是从毫安小时到安培秒的转换系数。
图6上的第二张图显示了使用此方法预测剩余能量时该单元的准确性。细胞的放电曲线越线性,这种方法就越准确。像元的线性越差,计算的准确性就越低。无论哪种情况,计算在最重要的地方都会变得更加准确:当电池电压接近空点时。
图6.
示例应用程序
以下示例使用DS2438演示板监视520mAH棱柱形Li+电池。有关DS2438演示板的信息,请参考DS2438K数据资料。吉时利 2304A DVM/电源模拟电池的充电器和负载,并使用 Tenney 环境室来控制电池温度。DS2438中存储的电池表征信息和实际数据与上文电池表征部分相同。为方便起见,它们在下面的表4和表5中重复出现。控制软件是用Visual Basic编写的,本文末尾介绍了直接涉及燃油测量的代码部分。
图7.示例应用程序系统。
表 4.细胞表征数据
0°C | 10°C | 20°C | 30°C | 40°C | |
满(毫安时) | 554 | 561 | 578 | 582 | 588 |
待机空 (毫安时) | 65 | 42 | 19 | 11 | 0 |
活动空 (毫安时) | 124 | 90 | 65 | 50 | 44 |
表 5.存储在DS2438中的电池数据的存储器映射
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
第 3 页 | 0x02小时 | 0x2Ah | 0x07小时 | 0x11小时 | 0x04小时 | 0x06小时 | 0x17小时 | 0x17小时 |
满 | S. 空 | |||||||
第 4 页 | 0x08小时 | 0x0Bh | 0x22小时 | 0x19小时 | 0x0Fh | 0x06小时 | 0x2通道 | X |
S. EMPTY | ACTIVE EMPTY |
电池在0°C至40°C的各种温度下经受8次局部充放电循环。 该测试旨在证明燃料计量方程在比标准商业应用中通常遇到的极端条件下的准确性。
图15
显示了集成电流累加器与测试期间动态计算的空点和满点的关系。电池温度显示在图表底部。X 轴更新周期单位是指每次更新剩余容量的时间,大约每 1000 秒更新一次。最坏情况的错误发生在第一次充电期间(大约更新周期 3),大约为 5500。电量计算法根据该误差永久调整满点,第二次在相同温度(大约更新周期 <>)下发生充电时,ICA 几乎完全匹配预期的满分水平。
图8.
然后,软件将剩余容量计算为空点和满点之间差额的百分比。下面的图 9 显示了上面显示的数据的实际电量计输出。
总结
图9.
在计算剩余电池容量时,考虑电池在温度和放电速率范围内的行为,可提供比单独库仑计数更高的精度。Maxim的电量计公式可应用于任何锂离子电池类型和任何Maxim库仑计数器件,同时使用最少的主机处理器周期。它们还会根据细胞间的差异和细胞老化进行调整,随着时间的推移变得更加准确。
全部0条评论
快来发表一下你的评论吧 !