STM32的纯电动汽车分体式电池管理系统设计*
2018-09-07,,,,
,,,,
(1.青岛大学 自动化与电气工程学院,青岛 266071;2.青岛大学 图书馆)
引 言
随着全球不可再生能源的不断消耗和环境污染的不断加剧,电动汽车由于其能源可再生以及对环境污染危害小等优势得到了政府和企业的重视。作为纯电动汽车的动力来源之一,锂离子电池具有单体电压高、比能量大、无记忆效应、循环寿命长等特性[1]。
高性能的电动汽车不仅需要具备良好的机械性能,而且应该拥有一套可靠的电池管理系统BMS。在汽车运行过程中,电池管理系统BMS随时监控电池状态,能保证动力电池始终处于最佳的工作状态[2]。由于我国电池管理系统在技术上还不够成熟,导致电池的稳定性较差,甚至会缩短电池的使用寿命。因此,本设计在核心芯片上,选用ST公司的STM32F103RBT6控制芯片和Linear公司的LTC6803电池状态检测芯片,并采用分体式布局,将电池管理系统分为主控单元和数据采集单元。电池管理系统作为实时监控、被动均衡、整体控制的电子部件,实现了保障安全、延长寿命、估算剩余电量的功能[3]。
1 系统硬件原理及设计
本设计采用分体式拓扑结构设计硬件电路,主要由主控单元和数据采集单元组成。主控单元、数据采集单元和整车控制器之间通过CAN总线进行实时通信,其拓扑结构如图1所示。
1.1 主控单元设计
主控单元主要包括MCU及其外围电路、电源模块、握手信号检测模块、电流检测模块、CAN通信模块和存储模块。
图1 电池管理系统拓扑结构框图
1.1.1 MCU及其外围电路
主控单元采用ST公司生产的STM32F103RBT6芯片。作为电池管理系统的核心部件,主控单元需要与数据采集单元以及整车控制器进行通信,在获取相关数据的基础上进行SOC估算等操作。而STM32具有很强的串行通信能力、多种通信接口和256 KB的闪存存储器,相比较其他微处理器具有更高的处理能力和性价比。
1.1.2 电源模块
电动汽车的24 V车载电源经BF1207芯片滤波后,通过电源模块中的URB2415YMD芯片将其DC/DC转换至±15 V的直流电源并用于电路中运算放大器的供电,通过电阻分压将24 V降至5 V用于电路中的数字器件供电以及5 V降至3.3 V用于微控制器的供电。电源模块电路如图2所示。
图2 电源模块电路图
1.1.3 握手信号检测模块
图3 霍尔传感器电压采集电路
握手信号检测模块的主要功能是连接充电设备与电池管理系统BMS。握手信号检测模块的工作过程如下:当充电设备上电后进行自检,充电设备与电池管理系统通过周期性发送检测信号并进行握手连接。握手成功后,电池管理系统根据自身状况判断是否需要充电,当允许充电时,周期性发送设置信号至充电设备进行充电;当不允许充电时,发送禁止充电信号至充电设备,禁止充电设备向电池充电。
1.1.4 电流检测模块
霍尔电流传感器检测模块主要是通过检测霍尔元件两端的压降从而计算出电流值。此模块采用两个TL072运算放大器组成电压偏移电路和电压跟随器,其作用是将从控单元采集的±4 V电压等效对应至0~3.3 V之间电压并供主控单元进行处理。其中二极管D11和D12在电路中起保护作用。各端点电压计算如下所示:
(1)
(2)
current1输入的±4 V电压,经该电路后转变为0~3.3 V之间的可由单片机直接处理的电压,从而计算得出输入的电流。霍尔传感器电流检测电路如图3所示。
1.1.5 CAN通信模块
CAN总线通信技术具有可靠性高、传输距离长、传输速率高、实时性强等优点[4]。CAN通信模块采用ADI公司的ADM3053收发器。ADM3053是一款自带有集成隔离式DC-DC转换器的CAN收发元件,简化了外围电路设计,增强了CAN通信的抗干扰性。
1.1.6 存储模块
存储模块分为Flash和EEPROM,它们都属于掉电后数据不丢失的存储芯片。Flash模块采用W25Q256芯片,它是256M位串行闪存,带有双/4路SPI,可以存储数据。EEPROM模块采用AT24C128C芯片,其提供131 072位串行电可擦除、可编程只读存储器,可以重新进行编程。在本设计中,存储模块中的Flash部分主要存储采集单元以及MCU收集的各项数据,EEPROM部分主要用来存储系统运行过程中出现的各项故障信息以及报警信息。
1.2 数据采集单元设计
为了更有效地监测和管理电池的状态,电池管理系统必须实时监测电池的工作电压、电流和温度。因此,数据采集单元的精确程度影响着电池管理系统的性能。与此同时,这也要求数据采集单元能够在电池出现异常工作状态时及时切断电源、保护电池组[5]。
1.2.1 电压采集模块
本文采用Linear公司的LTC6803电池状态检测芯片作为电压采集模块的核心部件。这款芯片由一个12位ADC、精确的电压基准、高压输入的多路复用器和串行接口组成[6]。每个LTC6803电池状态检测芯片能够测量12个串联的独立电池单元电压。
1.2.2 温度检测模块
温度检测模块采用热敏电阻。热敏电阻是对温度敏感的一类敏感元件,其常温器件的温度适应范围可达-55~+315 ℃,灵敏度高。热敏电阻的电路搭建方便,且其阻值可以在0.1~100 kΩ间调控,在满足精度要求的前提下,大大降低了电池管理系统的成本。
2 SOC估算及系统软件设计
2.1 SOC估算研究
目前,各研究机构多采用开路电压法、安时积分法以及卡尔曼滤波法和其改进方法估算电池的荷电状态(State of Charge,SOC)。开路电压法操作简单,但由于其精度不高,并且只能应用于静态检测,使其使用范围受限;安时积分法计算量小,可以实时监测,但是由于其存在电流累计误差效应,故安时积分法的精度较低。现在商业上常将开路电压法和安时积分法结合使用,这种方法优点是计算量小,成本低,缺点是误差较大,约在8%左右。卡尔曼滤波法考虑到了电池组循环以及温度等因素的影响,通过不断迭代,逐渐修正误差,从而提高SOC估算的精度[7]。
针对电池组放电的非线性特性,本文选用安时积分法对SOC进行估算,并使用拓展卡尔曼滤波法来不断提高数据的精准度,消除安时积分法的累计误差。
目前工业上所公认的SOC定义是:在一定的放电倍率下,剩余容量与相同条件下额定容量的比值,即
(3)
其中,Ql为电池的剩余容量,Qn为额定容量。
但是此公式只适用于电池恒流放电的状态。安时积分法的主要思路是通过实时检测电池组充放电过程中的电流,计算电流在一定时间段内的积分[8](即该时间段内电池组充、放电电量的多少),最终得出SOC的大小。其公式如下:
(4)
其中,SOC(t0)是位于t0时刻时,SOC的估算值。
在卡尔曼滤波法中,非线性系统的状态方程可表示为:
Xk=f(Xk-1,Uk-1)+Wk-1
(5)
观测方程可表示为:
Zk=g(Xk,Uk)+Vk
(6)
其中:k表示任意时间点;随机变量Wk-1代表由系统扰动、建模不准确造成的过程噪声以及电池老化对电池的影响系数;Vk表示由测量误差等产生的观测噪声。式(3)中的非线性函数f将电池组(k-1)时刻的状态映射到k时刻的状态,式(4)中非线性函数g反映了状态变量Xk和观测变量Zk之间的关系。
使用泰勒级数对非线性的状态方程和测量方程进行线性化可以求得拓展卡尔曼滤波的时间更新方程如下:
(7)
(8)
状态更新方程如下:
(9)
(10)
(11)
因此为了对电池组进行准确的SOC估算,要准确测量SOC的初值,并尽可能减少电流测量值的误差。因此,本文将安时积分法与卡尔曼滤波法相结合,通过安时积分法计算电池的剩余电量,并利用卡尔曼滤波法减少电流测量值的误差,从而对电池组的SOC值进行准确估算。
2.2 系统软件设计
硬件平台为BMS功能的实现提供了基础,但是电池管理系统的主要功能将依赖于系统软件来实现。在软件设计中,要根据控制系统的要求分配软件的任务并进行模块化设计。
本设计使用C语言在Keil μVision4编译环境下进行模块化编程,考虑STM32F103寄存器的定义繁琐,因此采用函数库进行程序编写,提高了代码的易读性和准确度[10]。软件的程序框图如图4所示,BMS主控单元程序开始运行时,首先自检是否处于正常状态,如果系统产生故障,则立即记录信息报警并中断进程,保护电池和电池管理系统不受伤害;如果系统正常运行,则从数据采集单元收集温度、电压、电流等信息并汇总至主控单元进行SOC估算,最后将电池的各项信息反馈到整车控制器。
图4 主从分布式电池管理系统主控程序框图
3 实验结果与分析
本次实验的检测电池采用的是18650三元锂电池,其单节标称电压为3.7 V。实验结果如表1所列。
表1 实验数据
由表1可见,电池管理系统测得的电压与电池两端间的实际电压误差在±5 mV之内,符合设计要求。
在实验室环境下,本设计的测试结果证明所设计的BMS对电池的电压、电流、温度等状态能够进行准确的实时监测。主控制器模块能够实时、准确地计算出电池的SOC并进行调控。当电池出现过充过放以及温度异常状态时,BMS能够及时向整车控制器报警,保障电池的使用安全,延长了电池的使用寿命。
结 语
李欣阳(工学硕士),主要研究领域为新能源汽车电控系统开发;李立伟(教授),主要研究领域为电力系统的智能监测和状态维修、可再生能源接入与智能配电网技术、电能质量调节与控制、高速列车运行监测及控制系统、新能源汽车电控系统开发等。