磷酸铁锂电池作为新型电动汽车动力电池,具有容量大、安全性高、耐高温特别是循环寿命长等优点,其循环寿命比普通的铅酸电池至少要高4 倍,在车用动力电池的市场中具有极大的应用潜力。在现阶段动力电池的容量没有根本性突破的情况下,电池管理系统(battery management system,BMS)在电动车中的应用将显得异常重要,它能够实时检测动力电池的电压、电流、温度,并通过这些参数估算电池的荷电状态(state of charge,SOC),为驾驶员提供车辆续驶里程参考;此外BMS 能够对电池的过充、过放电进行报警和保护,对电池组和单节电池进行有效保护,从而提升电池使用性能、提高电池寿命。LIN 总线是一种低成本的汽车A 类总线,非常适合温度、电流这类实时性要求不高的数据传输,通过LIN 总线实现数据的总线化传输,进一步降低了成本。
1 系统的总体结构与功能
在本设计中,电池管理系统分为两大部分:信号检测模块、通信及信息处理模块。在信号检测模块中,每节单体电池对应一个底层ECU(DSPic30f4012),可以实现单体电压采集、电流检测、温度采样;同时也能检测整个电池组的电压、电流和环境温度,用于电池一般充电与均衡充电时的检测与保护,如图1 所示。
底层ECU 把检测到的电压、电流、温度等变量封装为LIN总线帧格式,然后通过LIN 总线与上层ECU 进行通信。信息处理模块可以实现动力电池的荷电状态实时估算和故障分析,并把温度、电压、电流等信息进行显示。
2 电池管理系统设计
2.1 电池管理系统的基本硬件设计
由于电池组的单体数目比较多,本系统采用分布式结构,这种结构能有效减少采样线穿越电池,降低安装和调试的复杂性,同时也能降低安全隐患。底层ECU 使用Dspic30f4012芯片,它能在-40~125 ℃温度范围内工作,属于汽车级芯片;它具有丰富的模拟量、数字量I/O 接口、10 位A/D转换功能以及SCI 通信功能等。
2.1.1 信号采集模块设计
Dspic30f4012 具有2.5~5.5 V 范围的宽工作电压,因而可以用单节磷酸铁锂电池直接供电,只需要加一个0.1 μF 的滤波电容即可使芯片工作,供电电路得到极大简化。由于F4012 芯片内不提供A/D 转换的内部基准电压,因此在进行 电压检测时,需要外部提供A/D 转换基准电压,本文选用低功耗、低电压误差的LM385 来提供2.5 V 的外部基准电压,如图2 所示。
本设计中电压检测模块的特点是各个检测模块分别检测各自单体电池上的电压,而不是通过传统的多路开关分时选择的方法来实现,这样就完全实现了纯分布式的电池管理结构。磷酸铁锂电池的电压直接从单体电池两端引出电压,然后通过两个高精度的电阻进行分压,分压得到的电压引入Dspic30f4012 芯片内部的A/D 模拟信号转换通道,进行电压的检测。Dspic30f4012 芯片内的A/D 转换器为10 位精度,基准电压为2.5 V,所以电压检测模块能够检测到0~5 V 的电压范围,大于单体电池的最大电压3.65 V.电池组的总电压的检测,经由信号衰减电路与抗共模电压电路接入Dspic30f4012 芯片内的A/D 转换通道中完成电池组电压的采集。
单体电池电流的检测通过霍尔传感器来实现,霍尔传感器能输出最高3 V 的电压信号,可以直接接入到Dspic30f4012芯片内的A/D 采样通道中;电池的温度的检测通过TJ1047温度检测芯片来实现,TJ1047 温度检测芯片在-40 ℃和125 ℃时输出电压分别为0.5 V 和1.75 V,并且具有10 mV/℃的温度电压比例特性和±0.5 ℃的误差。因此从TJ1047 芯片输出的电压可以直接接入Dspic30f4012 芯片内的A/D 转换通道中,即可完成对电池温度和环境温度的采集。
LIN 通信接口设计
2.1.2 LIN 通信接口设计
在现代汽车中总线技术越来越多的得到应用,CAN/LIN网络已经成为以分布式为基础的车载电子网络的主流发展方向。CAN 总线作为高速传输总线具有速度快、带宽高、功能多的突出特点,但其成本比较昂贵;LIN 总线是一种低端总线,但其在降低成本方面具有突出优势,适合对网络速度要求不高、实时性不强的数据的传输。因此,在不需要CAN 总线的带宽和速度的场合下,LIN 总线补充了CAN 总线引导的汽车多路复用网络的现有总线技术。电池的温度、电流、电压检测并不要求极高的实时性和总线速度,因此LIN 总线能很好地契合电池管理系统的要求。
Dspic30f4012 芯片没有LIN 总线的接口,但具有SCI 通信接口,本文选用TPIC1021 芯片作为SCI 与LIN 总线转换的芯片,如图3 所示。SCI 通信引脚U1RX 与U1TX 经过磁耦合隔离器件电气隔离后,分别接到LIN 驱动器的LIN_RXD 和LIN_TXD,经过转换最后在LIN 引脚输出LIN 总线信号。在底层控制器Dspic30f4012 和LIN 收发器TPIC1021 之间加上一个磁耦合隔离器件ADUM1201ARZ,用来提高电池组检测系统通信的抗干扰能力和解决分布式检测中"共地"产生短路的问题,有效地把各个检测单元的电气连接隔离开来,同时也把底层电压与上层LIN 总线隔离开来。当LIN 收发器作为主机节点时,需要把图3 中的J3 跳线用跳针短接,用于从机节点时不要跳针短接。
2.2 电池管理系统软件设计
2.2.1 电池管理系统的软件设计和总体结构
ECU 中的软件设计包括底层ECU 和上层ECU 软件设计。底层ECU 的软件设计主要包括电压、电流、温度的采集程序与采集结果的计算程序、数据通信程序、中断程序等;上层ECU 的软件设计主要包括SOC 估算程序、LIN 总线通信程序、故障分析及报警程序、电压、电流、温度和荷电状态等显示程序、时钟程序、中断程序等。整个程序设计采用结构化和模块化的编程方法来实现。上层ECU 的主程序流程图如图4 所示。
其中,电池的电压检测包括单体电池电压的检测和电池组电压的检测。当单体电压超限时,系统能够判断超限单体电池的编号,判断单体电池是低电压超限还是高电压超限,在显示器上显示并且有声音报警。电池组电压超限时程序能够分析出是何种原因超限,以此来进入保护程序。电池温度的检测包括单体电池温度的检测和环境温度的检测,当温度超限时,系统通过检测到的数据能分析温度超限的原因,以此进入保护程序。电池的荷电状态超限主要是指电池剩余电量过低,继续放电可能会影响电池的寿命。
2.2.2 LIN 通信的实现
LIN 协议是一种开放的总线协议,一个完整的报文帧由报文头和响应组成。每一次数据的传送都由主机节点开始,标志着一次数据通信过程报文帧的开始[3].
图5 为5 号单体磷酸铁锂电池LIN 总线标识符场,以此为例说明LIN 总线标识符场的设定。5 号单体电池ID 位为0101,所以此节单体电池的ID 为0x5,ID4、ID5 设为01,即设定发送的数据场字节为4 个字节,通过前面的奇偶校验得到奇偶校验值为0、1,如图5 所示。
由于各个信号的范围不同,电压、电流、温度信号所用到的数据位数也不同,电压的范围在0~5 V 内,电流在0~20 A内,温度在-40~125 ℃范围内,所以本文在数据场中用第1个字节和第4 个字节的低两位,共10 位来表示电压;用第2个字节和第4 个字节的中间4 位,共12 位来表示电流;用第3 个字节和第4 个字节的高两位,共10 位来表示温度。由于电压、电流、温度都精确到小数点后,在数据场中表示小数比较复杂,本文用实际参数值的10 倍或100 倍在数据帧中表示,如图6 所示。
表1 为各单体电池所对应的LIN 总线节点的ID 资源分配表。
上层ECU作为LIN总线的主机节点,当LIN主机节点向单体电池从机节点请求数据时,LIN 总线上将进行从机节点到主机节点的数据传输,此时LIN 主机节点向总线发送报文帧头,总线上的LIN 从机节点接收报文帧头后,判断是否与自己的ID 匹配,若匹配发送报文帧响应,LIN 主机节点接收报文帧响应,完成主机节点的数据请求。
2.2.3 电池SOC 的估算和运行控制策略
在对SOC 进行估算时,一个准确和合适的模型是非常需要的,对于Kalman 滤波算法来说精确的SOC 的估算是建立在精确的电池模型的基础上。Thevenin 模型是目前来说比较准确的模型,该模型对电池的外特性的描述采用电池电动势、一个纯电阻和一个容阻回路串联的方法来实现,其电气模型的数学关系如下:
式(1)中k 为k 时刻,E(k)为电池端电压,V(k)是电池电动势,R1 是电池的欧姆内阻,R2 是电池的极化内阻,Uc 是电池的极化电压,电容R2C 回路是用于模拟电池极化过程中的动态特性。考虑到温度影响的情况下,电池的电动势与荷电状态有式(3)的关系:
式中:F【Soc(k)】 是电池与电动势的函数关系, Soc(k)表示电池在不同温度下电动势相对于参考条件下的变化量。通过以上公式,在进行离散化后得到状态空间方程如下。
状态空间方程准确地给出了系统相关的系数矩阵A(K)、B(K)、C(K)、D(K)和常数矩阵W(K)、V(K),基于以上方程及相关矩阵,可以得到扩展Kalman 滤波估算算式。
扩展Kalman 滤波算法由滤波器计算和滤波器增益计算两部分组成:滤波器计算由式(6)~(8)完成,在k 时刻,由式(7)利用(k-1)时刻的滤波结果得到SOC 的预测值,再根据状态空间方程(6)得到在k 时刻的状态变量预测值V(K),并与实际测量值比较后得到预测误差,然后根据式(8)对状态变量的预测值修正,得到新的滤波结果。滤波器增益计算由式(9)~(11)完成,式中Q和R 分别是噪声W (k)和V (k)的方差阵。
3 实验结果分析
本设计的底层ECU 的电路板如图7 所示,每个单体电池上都会固定一块底层ECU 的电路板。
在不同的充电策略下来检验电池管理系统的工作情况,通过检测电池组中各个单体电池的充放电电压、电流、温度、SOC 等参数,与实际值相比较来说明系统的检测精度,如图8所示,其中数据每分钟记录一次,横坐标为时间min.
本设计设定充放电时电压上限为3.65 V,电压下限为2.95 V.温度报警为上限80 ℃。实验对电池进行充电,最终充电电压均在3.53~3.62 V,充电过程最大偏差50 mV,其中电池电压误差小于1%要求;此外,温度测量误差满足1%要求,电流测量精度为1%,SOC 误差在8%以内。当对单体电池实施人为过电压时,系统能及时进行报警和显示。通过实验表明本电池管理系统能达到预期的电池参数检测的目标,且都能满足精度要求。
4 结论
本文设计开发了一种磷酸铁锂电池管理系统,基于分布式方法检测各个单体电池的参数,引入了LIN 总线技术,进一步降低了系统的成本。本系统实现了电池实时监测与保护、SOC 估算、LIN 总线通信等功能。该系统结构简单、测量精度较高、能有效地保护电池组,用LIN 总线代替常用的CAN 或RS232 通信,为设计新型电动汽车电池管理系统提供了重要依据。