基于MCS D2P的动力锂电池管理系统主控软件
2018-09-26王秋霞
王 秋 霞
福建船政交通职业学院机械工程系,福建福州 350007
动力锂电池技术对电动汽车的发展至关重要,而动力锂电池的高效使用依赖电池管理系统(battery management system, BMS).成熟的BMS可有效保证电芯成组后的安全和寿命,避免由于电芯局部温度过高引发的自燃等事故.对BMS的研究,以美国TI和Linear等为代表的半导体企业,早已研制出体积小且集成度高的专业电池管理芯片;在中国,以清华大学和同济大学等科研院校为首,也对BMS进行了相应的研究,并已投入奥运会和世博会期间使用的电动大巴中[1].然而,目前对BMS的研究还存在系统处理的数据量大、电池非线性工作特性导致的剩余电量估算不准确等问题[2].美国Woodward公司的MCS D2P开发平台是一款基于Matlab/Simulink和开发版电子控制单元(electronic control unit,ECU)的快速控制原型开发平台,能够实现开发过程的半实物仿真,被广泛用于汽车、航空航天以及军事装备等控制系统的研发中.将MCS D2P开发平台用于BMS的设计开发,在虚拟环境中设计产品,可缩短开发周期、降低开发费用.本研究基于MCS D2P开发平台,依据BMS的功能和结构,研究了BMS主控软件的构成和数据流,并给出了各部分程序的流程图,最后通过实验验证了其可行性.
1 BMS功能与结构
由多节电芯串联的电动汽车动力锂电池,在其使用过程中出现的过度充放电,以及发热等现象都会破坏电池组的一致性,使电池提前失效.因此,BMS应能对电池各运行参数进行实时且准确的测量,通过实时评价其运行状态,解决电芯的过度充放电问题,实现均衡管理,提高电池组的一致性,延长电池使用寿命.
基于MCS D2P开发平台的BMS,其硬件主要包括主控模块、检测模块和均衡管理模块[3].检测模块主要由各传感器和监控保护器芯片构成的电路组成,对电芯和电池组的电压、电流和温度进行实时数据采集,并将采集到的数据送往主控模块.主控模块使用的是MCS D2P开发平台中的112PIN开发版ECU,对来自检测模块的数据进行相关的数据分析和处理,并据此对电池的实时运行状态做出评价.若各电芯之间存在电压和容量等不一致,会缩短电池组的使用寿命,所以必须通过专用模块采取均衡管理措施.依据由主控模块计算处理的数据,均衡管理模块能够控制各电芯的充电操作,从而保证各电芯的一致性.另外,主控模块还负责与相关控制器、设备终端等进行通讯任务,能够实现安装配置、 显示查询等功能. BMS结构框图如图1.
图1 BMS结构框图Fig.1 The block diagram of BMS structure
2 主控软件数据流设计
根据上述对BMS功能和结构的分析可知,BMS将电芯的电压和温度、电池组的电流和总电压、电池箱的环境温度等数据采集后,分别做SOC估算等数据处理.SOC估算值将被输出给车载仪表进行显示,以便驾驶员在驾驶过程中及时掌握电池信息.若有电脑与BMS相连,则电池状态还将被传输给电脑,用于对BMS监测和设置等.BMS的数据处理包括3个方面:① 将处理后的温度值输入整车控制器和风冷电机,作为整车控制器驱动电机和控制车速的条件之一,并控制是否启动对电池箱的冷却管理;② 将处理后的电压值和电流值输入均衡充电电路,以实现锂电池的均衡充电,防止电池过充;③ 由电脑进行系统配置,根据配置数据产生预/报警阈值,数据处理通过此阈值来产生预/报警数据. 预/报警数据是SOC估算的重要依据之一,同时它还将与故障自诊断电路诊断的系统电路故障一起被写入预/报警记录.主控软件数据流如图2.
图2 主控软件数据流示意图Fig.2 Data flow of the master control software
3 主控程序设计
3.1 开发工具与平台
MCS D2P快速控制原型开发平台的软件部分集成了MotoTron的ControlCore底层操作系统,具有产品级的软件架构,主要包括建模软件MotoHawk、刷写软件MotoTune及编译软件Green hill[4].其中,MotoHawk是基于Matlab/Simulink/Stateflow/RTW图形化的语言平台,可将底层相关软件、标定/监测变量接口、诊断管理接口等进行封装管理,成为底层软件应用模型库,并在编程过程中被自由调用,生成基于该体系结构的应用软件.
3.2 主程序设计
作为主控模块的MCS 112PIN开发版ECU要周期性地完成数据采集、数据处理、状态分析和通信等功能,因此采用定时中断的实现方式.主程序包括初始化程序和定时中断程序两部分(图3).初始化程序用来初始化系统各个工作模块以及参数,包括校准参数和定时器等信息,并诊断系统工作状态.定时中断程序的主要任务是以循环方式进行实时检测、分析和处理数据.
图3 主程序流程图Fig.3 Main program flow chart
3.3 数据采集程序设计
如前所述,BMS的数据采集包括对电池组电流和总电压的检测,以及对各电芯电压和温度的检测.使用电流传感器和电压传感器检测电池组电流和总电压,将采集到的数据送入ECU上12 bit的模拟量输入通道,由MotoHawk中的模拟量输入模块进行读取.但是,由于该模块的输出值代表的是模拟资源的电压与参考电压的比值,而ECU的参考电压是5 V,因此要对该模块的输出值做换算处理,才能直观地显示检测结果.换算程序如图4.
图4 模拟量输入模块换算程序Fig.4 Conversion program of analog input module
使用德州仪器的bq76PL455A-Q1专业电池管理芯片对各电芯的电压和温度进行检测.该芯片具备16个-0.3~5.5 V的差模模拟输入通道、8个0~5 V的辅助(模拟)输入通道,模数转换器(analog-to-digital converter, ADC)分辨率高达14 bit,电压测量精度可达±1 mV,且具有菊花链接口,最多可级联16个芯片[5],为后续扩容后电池组的监控提供便利条件.
采用无限循环方式进行数据采集[6].上电伊始先对开发版ECU和bq76PL455A-Q1芯片进行初始化,对电池组总电压、电流及各电芯电压、温度有一个初步的检测值.之后,进入正式的数据采集阶段.芯片bq76PL455A-Q1完成1次数据采集后,向ECU发送数据,供ECU进行数据分析和处理.当ECU完成SOC估算等工作后,先判断是否需要开启均衡管理.若需要开启,则ECU将数据发送给均衡电路,开启均衡管理,在均衡管理结束后再进入下一次数据采集;若不需开启均衡管理,则程序直接进入下一次数据采集.数据采集流程图请扫描文末二维码.
3.4 SOC估算程序设计
3.4.1 SOC的定义
SOC被美国先进电池联合会定义为在一定放电倍率下,电池剩余电量与相同条件下额定容量的比值[7],用来反映电池的剩余电量,预测电动汽车的续航里程.但在动力电池应用场所,电池工况变化复杂,负载、环境温度和电池组电压的变动范围都很大,影响电池容量的因素包括电池的充放电电流I、 电压U、 温度t、 电池健康状态(section of health, SOH)、自放电因数Kdis以及充放电效率η等,因此,严格讲SOC定义应是上述参数的函数[8],即SOC=f(U,I,t, SOH,Kdis,η).
3.4.2 扩展卡尔曼滤波算法的数学建模
扩展卡尔曼滤波(extended Kalman filter,EKF)算法通过改进卡尔曼滤波器,使其适用于参数之间的非线性关系[9].其实质是根据上一个状态和当前状态的测量值来估计当前状态,从而重新估计一个最接近真实状态的值,因此可得到较其他估算方法更高的精度[3].
图5 锂电池受控电压源电路模型Fig.5 Circuit model of controlled voltage source of lithium battery
使用EKF算法估算电池的SOC,首先需要有一个合适的电池模型.受控电压源电路模型属于综合电气模型,使用两个RC环节模拟电池的极化效应,抓住了电池包括非线性开路电压、电流、温度、循环寿命和暂态响应等多动态特征,模型结构简洁、精度高且易计算,被广泛用于电动汽车[10].受控电压源电路模型如图5.其中,Cb为聚苯乙烯电容,代表电池的剩余容量;RS表征电池自放电的电阻;IS为受控电流源的电流;UOC为受控电压源的电压,开路电压,与电池SOC相关;RO为电池内阻[10];I为干路电流;R1和C1为第1个RC并联环节,模拟电化学极化反应;R2和C2为第2个RC并联环节,模拟浓度差极化反应[11];U为电池正负极间的端电压.
以电池SOC、两电容上的电压U1和U2作为状态变量,电池状态方程为
(1)
其中,η为电池的充放电效率;Q为电池容量(单位:Ah).
量测方程为
U=UOC+U1+U2+ROI
(2)
(3)
(4)
其中,τ1为R1和C1并联环节的时间常数,τ1=R1C1;τ2为R2和C2并联环节的时间常数,τ2=R2C2.
根据文献[12],UOC与SOC之间的关系函数可以用6阶多项式加1项指数函数来表示
(5)
其中,ai、b0和b1是与电池本身特性相关的参数,可由最小二乘法拟合得到.
X(k+1)=AX(k)+BI(k)+W(k)
(6)
量测方程为
U(k)=UOC[SOC(k)]+I(k)RO+U1(k)+
U2(k)+V(k)
(7)
设W(k)的协方差矩阵为Q(k), 则可得到完成状态递推后的协方差矩阵为
P(k+1)=AP(k)AT+Q(k)
(8)
量测-状态转换矩阵为
(9)
设卡尔曼增益矩阵为K, 则
K(k+1)=P(k+1)CT(k+1)[C(k+1)
P(k+1)CT(k+1)+
R(k+1)]-1
(10)
其中,R(k+1)是观测噪声V(k+1)的协方差矩阵.
根据卡尔曼增益修正状态向量的估算值及相应的协方差矩阵,k+1时刻系统状态变量的最优估计值为
X(k+1)=X(k)+K(k+1)[U(k+1)-
C(k+1)X(k+1)]
(11)
k+1时刻系统状态的协方差矩阵为
P(k+1)=[I-K(k+1)CT(k+1)]P(k)
(12)
其中,I为单元矩阵.
至此完成了k+1时刻的SOC最优估算值,下一时刻重复此循环就可得到相应的SOC最优估值.
3.4.3 算法实现程序设计
图6为本研究设计的基于EKF算法的SOC估算程序流程图.
图6 SOC的EKF算法实现流程图Fig.6 Flow chart of EKF algorithm of SOC
4 测试试验
选用由15节电芯构成的48 V、50 Ah磷酸铁锂电池组为试验对象,用ZHCH518D型智能蓄电池充放电一体机对试验电池组进行周期性充放电测试,计算放电时的电流、总电压、温度检测精度及充电时SOC的估算精度.测试平台实验现场图可扫描文末二维码获取.
4.1 检测精度测试
在该测试过程中,设置充放电机的放电电流为5 A,电池组的电压上下限分别为54 V和42 V.使用高精度3位半数字万用表和钳形交直流电流表对电池组的总电压和电流进行测量,并将测量结果作为真值,以计算检测精度.取5个时刻进行测量,结果如表1.
表1 总电压、电流的检测结果Table 1 Detection results of total voltage and current
在电池组内布置如图7的8个测温点来测量温度.由图7可知,测温点1和测温点7分别布置在电芯1和电芯15的电极上,即整个电池组的正极和负极,其余测温点布置在两块电芯之间以及电池组最底面,故取电芯1和电芯15的电极做温度检测精度的测试.用数字式测温仪对两个电极测温,其结果作为温度的真值.每30 min测1组数据,取5组数据作为检测结果,结果如表2.
图7 温度传感器布点图Fig.7 Point map of temperature sensors
表2 温度的检测结果
由表1和表2可知,总电压和电流的测量误差均在±0.5%内,温度的测量误差也均在±0.5 ℃内,检测精度满足BMS设计要求.
4.2 SOC估算精度测试
在充电过程中对试验电池组做SOC测试.设置充放电一体机的电芯充电电压上限为3.6 V,充电电流为10 A.ZHCH518D智能蓄电池充放电一体机的充电功能完全按照恒流-恒压-涓流浮充3阶段进行,因此可模拟动力锂电池的实际充电状态,充电结束时可认为电池已被充满.按照前述方法可计算各时刻的SOC理论值.将实测值与理论值进行比较,可获得SOC的估算精度,结果如图8.
图8 SOC实测值与理论值的对比曲线Fig.8 Comparison curve between SOC measured value and theoretical value
由图8可知,SOC实测值与理论值的曲线比较接近,最大误差出现在10%~20%时,其差值也在8%以内,符合BMS要求的SOC估算精度.
结 语
基于MCS D2P快速控制原型开发平台的BMS由主控模块、检测模块和均衡管理模块构成,负责对电池各运行参数进行实时、准确的测量,评价电池实时运行状态.通过均衡管理,杜绝电芯过度充放电的发生,可延长电池使用寿命. MCS D2P开发平台是一套由硬件和软件包组成的开发工具,适用于快速控制原型仿真.本研究选用MCS 112PIN开发版ECU为主控模块,设计BMS的主控软件数据流,及主控软件的主程序、数据采集程序和SOC估算程序,分别给出流程图.以48 V、50 Ah磷酸铁锂电池组为试验对象,研究设计了电池组的周期性充放电测试实验,计算了放电时的电流、总电压和温度检测精度,以及充电时SOC的估算精度,验证了该设计能够较精确地实现对总电压、电流和温度的数据采集,较精准估算了SOC,验证了设计的可行性.