APP下载

基于STM32的电池管理系统主控单元设计

2021-01-21杨乔木李立伟杨玉新

电子设计工程 2021年1期
关键词:卡尔曼滤波锂电池充放电

杨乔木 ,李立伟 ,杨玉新 ,王 凯

(1.青岛大学电气工程学院,山东 青岛 266071;2.青岛大学图书馆,山东 青岛 266071)

锂电池作为唯一的动力来源,其电压会随充放电变化,因此需要实时准确的SOC算法。作为动力单元的管理模块,电池管理系统需要做到与整车控制器的通信可靠稳定。该文基于STM32 F105VC设计的电池管理系统主控单元有较高的SOC精度和优良的CAN通信稳定性。该文从硬件层面设计了电池管理系统的主控电路板,具有继电器驱动、数据通讯、故障报警、总压检测、绝缘检测等功能。该文从SOC计算的角度,设计扩展卡尔曼滤波算法(Extended Kalman Filter,EKF)进行SOC估算。充分利用了嵌入式芯片的计算能力,且具有实时性强、计算精度较高等优点。

1 电池管理系统主控单元主体结构

文中基于STM32的电池管理系统主控单元根据嵌入式理论设计[1]。如图1所示,主控模块通过CAN总线与从控单元、整车控制器通信,主控模块从从控模块中获取电池数据,使用拓展卡尔曼滤波方法[2]计算SOC并发送相关数据到整车控制器。通过RS232协议与上位机通信[3],发送电池管理系统控制指令或进行程序更新。

图1 电池管理系统主控结构

2 硬件单元设计

2.1 MCU选取

该设计综合考虑软件、硬件需求与实际应用环境,选用STM32F105VCT6作为主控单元MCU。STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计。

STM32F105VCT6基于Cortex-M3内核设计,Cortex-M3内核介于ARM7与ARM9之间,但经济性与性能均超过ARM7。且STM32系列产品集成大量功能,便于直接开发使用,因此在嵌入式设计中被广泛的应用。本位选用的主控芯片内置64 kB的静态SRAM,512 kB字节的FLASH,三路CAN控制器。工作电压为2.0~3.6 V,工作温度为 -40~105°C。

2.2 电源模块

文中的BMS电源模块的输入电压为19~32 V,并且具有防反接与滤波设计,输出电压为5 V与3.3 V。24 V电源输入后连接SMD1812P110TF/33自恢复保险丝,进行过压过流保护,之后连接SMAJ36CA双向的TVS瞬态抑制二极管来保证输入电源的稳定。使用德州仪器公司的降压转换器TPS5420D将滤波后的电源电压降至5 V,再利用可调式低压稳压器TLV1117-33CDCY将电压从5 V降至3.3 V。

2.3 拓展CAN

STM32芯片内部自带2路CAN控制器。文中采用的CAN收发器为ADM3053,集成隔离DC/DC转化器的信号和电源,最高的工作频率为1 Mps。并对CAN收发器的差分信号数据线做防浪涌设计[4]。

图2 电源模块原理图

图3 CAN收发器原理图

3 SOC估算设计

常用的锂电池SOC算法[5]主要有5种:安时积分法、开路电压法(OCV)、内阻法、卡尔曼滤波算法以及神经网络法。安时积分法容易累计误差,精度较低;卡尔曼滤波法依赖高精度电池模型且适于线性时变模型;神经网络法计算量巨大且需要大量训练,故难以在嵌入式设备上使用;开路电压法[6]需要电池的长时间静置,容易受到电池的环境温度、充放电电流大小以及电池寿命(SOH)等诸多因素的干扰,且锂电池存在很长的电压平台,即电池充放电曲线的电压曲线中断斜率太小,因此难以在锂电池SOC上精确建模使用。文中采用适用于非线性模型估算的扩展卡尔曼滤波算法对SOC进行估算。

3.1 等效电池模型建立和参数辨识

该文采用Thevenin模型,即一阶RC模型来建立锂电池的戴维宁等效模型[7],模型中含有一个电压源E,R1为电池的极化电阻,R0为电池的直流内阻,C1为电池的极化电容,R1与C1构成RC并联电路来模拟电池的动态过程。该模型能较为准确地模拟出电池的充放电过程,模型如图4所示。

图4 电池戴维宁等效电路

通过混合脉冲功率测试(HPPC Test)[8],获取如图 5 所示的曲线。图中,U1~U2段、U3~U4段为电压突变段,仅与直流电阻 R0有关;U2~U3阶段,电源端电压缓慢下降,C1处于充电阶段,因此电池端电压渐变过程是由极化电阻、极化电容引起。U4~U5为放电结束阶段,电池静置,电路中无电流通过,C1对R1放电导致电池端电压缓慢上升[9];通过递推最小二乘法[10]结合戴维南模型可以求出极化电容与极化电阻,完成参数辨识。

图5 充放电时的电池端电压-时间曲线

3.2 扩展卡尔曼滤波算法(EKF)

卡尔曼滤波只能用于线性时变模型估算,拓展卡尔曼滤波算法适用于非线性模型的估算[11]。电池SOC估算含有大量非线性因素,不能仅用线性微分方程描述,因此文中采用拓展卡尔曼滤波算法来进行SOC估算。拓展卡尔曼滤波方法利用线性化技巧将非线性问题转换为线性问题,且不必预先计算标称轨迹[12]。

离散非线性系统动态方程可以表示为:

拓展卡尔曼滤波利用非线性函数的局部线性特征,将非线性模型局部线性化。由系统状态方程(1),将非线性函数围绕滤波值做一阶泰勒展开,求得状态方程:

由系统状态方程(2),将非线性函数围绕滤波值做一阶泰勒展开,求得观测方程:

对线性化后的模应用卡尔曼滤波基本方程求得扩展卡尔曼滤波递推方程:

式中,s滤波初值和滤波误差方差矩阵的初值分别为:

3.3 SOC算法实验验证

文中使用MATLAB/SIMULIK软件对拓展卡尔曼滤波模型进行搭建,并仿真计算[13]。电池模型的放电实验周期为360 s,占空比为50%,初始SOC为85%,电池先放电120 s,再静止120 s。不断进行实验,直至SOC真实值为5%,得到如图6中的数据。通过改变仿真实验,实时模拟了不同SOC初始值下的电池工况,由拓展卡尔曼滤波方法计算SOC与真实SOC的数据。可以看出拓展卡尔曼滤波算法能快速的接近真实SOC值,可以实时反映出真实的电池状态。

图6 初值为85% SOC估算

图7为EKF算法的估计值和电池实际状态的残差,以及无迹卡尔曼滤波方法(Unscented Kalman Filter)[14]和电池实际状态的残差。从图可知,拓展卡尔曼滤波的误差小于无迹卡尔曼滤波的误差。拓展卡尔曼滤波方法最大误差约为2%,平均误差为0.7%。

图7 UKF算法与EKF算法误差对比

通过数据分析以及仿真实验可得出结论:文中选用的扩展卡尔曼滤波算法具有很强的收敛性和可靠性,与无迹卡尔曼滤波方法相比,能较为快速准确地对锂电池SOC进行估算,数据计算量符合嵌入式芯片的计算能力。

4 硬件通信测试

该设计主控板通过CAN总线与从控板相连接。如图8所示,从控板采集电池数据,通过CAN总线发送至大主控,大主控通过CAN总线与整车控制器通信。文中采用上文机软件模拟整车控制器与电池管理系统的通信。

图8 主控模块与从控模块实物图

如图9所示,将电池管理从控板与电池相连接,电池管理系统主控模块通过CAN总线与从控通信。使用拓展卡尔曼滤波方法计算SOC后,与充放电测试平台实时通信。经过测试,该设计的通信抗干扰能力强、错误帧少,并且通过实物充放电测试验证了该设计中SOC计算足够准确。

图9 电池管理系统主控充放电测试实验

5 结论

文中设计的基于STM32F105VCT6的锂电池电池管理系统主控模块中使用拓展卡尔曼滤波算法的SOC估算方法计算准确,满足嵌入式电池管理系统的要求。电源模块通过隔离式DC/DC转换、多种滤波以及防浪涌保护,保证了BMS的可靠稳定运行。但是文中的锂电池戴维宁等效电路采用的一阶RC等效电路模型未考虑电流累积导致的开路电压变化[15],以及过充与自放电问题[16],因此存在误差。今后应注重建立更为准确的电池等效电路模型。

猜你喜欢

卡尔曼滤波锂电池充放电
V2G模式下电动汽车充放电效率的研究
基于SG3525的电池充放电管理的双向DC-DC转换器设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于模糊卡尔曼滤波算法的动力电池SOC估计
充电电池到底该怎么带?——话说锂电池
锂离子电池充放电保护电路的研究
基于扩展卡尔曼滤波的PMSM无位置传感器控制
一种多采样率EKF的锂电池SOC估计
V2G充放电机的设计及其仿真
基于自适应卡尔曼滤波的新船舶试航系统