APP下载

基于模型的BMS应用层软件开发与测试

2020-11-09周维严小峰邹波

汽车零部件 2020年10期
关键词:电池组单体修正

周维,严小峰,邹波

(1.江西科技学院汽车服务工程及产业升级协同创新中心,江西南昌 330098;2.湖南大学机械与运载工程学院,湖南长沙 410082)

0 引言

BMS作为电动汽车电池系统的大脑,对电池的全生命周期工作过程进行监控和管理,能有效提高电池的使用性能,延长其使用寿命,并保证其安全可靠地工作,是电池系统中必不可少的一部分。当前BMS软件的开发仍较多采用手写C代码的方式,不仅效率低,而且代码可读性差,导致错误不易察觉,开发周期很长。本文作者采用基于模型的软件开发方式可以很好地解决这些问题。基于模型的设计是基于框图进行设计,模块化程度高、可读性强、模型搭建效率高,且测试快捷和方便,能够很好地发现软件设计过程中的不足,并及时进行修改,大大提高软件开发的效率,同时也为企业的软件开发节约了成本[1-3]。

1 BMS应用层软件模型开发

BMS的主要功能包括电池状态估计、能量控制管理、电池状态监测和安全保护等。

1.1 SOC估计模块软件设计

SOC作为电池管理系统中最基本和最重要的参数之一,其估计算法的研究十分广泛,包括安时积分法、电池内阻法、开路电压法、Kalman滤波算法、模糊控制算法以及神经网络算法[4]。在工程上,安时积分法因为算法简单且计算量小而被广泛使用。安时积分法的工作原理模型为

(1)

式中:SOC0为充放电的起始状态;C为电池的实际最大容量;I为电池的瞬时放电电流(充电为负,放电为正);η为库仑效率系数。

从式(1)可以看出,SOC估算误差的来源包括初值误差、电流测量误差以及电池实际容量变化产生的误差等,其中影响较为明显的是电流采集的误差。电池系统由于处在电动汽车这一复杂环境中,电流信号的采集往往会因为环境的干扰而引入噪声。这些噪声会随着电流的积分慢慢累积变大,最终导致SOC估计值与实际值偏差较大。

为了消除安时积分产生的误差,文中设计了6种修正机制来对安时积分估计得到的SOC值进行修正。这6种修正机制分别为开路电压修正、预充电修正、充满修正、极限高端修正、极限低端修正以及动态低端修正。可在电池处于不同工作状况时采用相应的修正方法对SOC估计值进行修正,以实现SOC的高精度估算。下面对这6种机制的修正策略和触发时机进行简要介绍。

开路电压修正:当电池系统下电且静置较长时间时,在下一次上电时可根据OCV-SOC关系,通过采集此时电池的端电压对SOC进行一次修正。

预充电修正和充满修正是在电池处于充电状态下,对电池的SOC进行修正。其中预充电修正是在充电后期,当电池组中最大单体电压接近充电截至电压时,根据实验值对SOC进行修正。充满修正是在电池即将充满时,当电池组的平均电压超过电压设定值时,对SOC进行修正。

极限高端修正和极限低端修正则是分别在SOC处于极高和极低的两种极限状态时,对电池的SOC进行修正。极限高端修正是当电池处于高SOC状态时,通过采集此时电池组的最高电压,根据实验标定的电压与SOC关系对SOC进行修正。而极限低端修正与极限高端修正恰好相对,当电池组中的最小电压处于一定的区间,且电池组的总电压低于设定值时,根据实验数据对SOC进行修正。

动态低端修正:当SOC低于一定阈值,电流较小且保持平稳时,可根据实验测得的端电压与SOC的关系,采集此时电池组中的最小端电压对安时积分每次积分计算的安时量进行平滑修正,以消除安时积分所产生误差。

1.2 SOP估计模块

SOP表示动力电池的峰值功率状态, 它的准确估计对于电动汽车安全可靠地行驶尤为重要。由于SOP受多个变量的约束,在对SOP进行估计时,可将这些约束划分为电约束和热约束两大类。电约束包括SOC约束和端电压约束;热约束则主要是温度约束。通过对电池组加载电流激励,可得到温度和端电压限制下的峰值电流,进而可对电池组的峰值功率进行估计。

1.3 均衡模块软件设计

目前国内外对电池组均衡技术的研究主要集中在均衡策略和均衡电路拓扑结构两个方面。选择合适的均衡变量是制定合理均衡策略的前提。电压和SOC是目前常用的均衡变量。均衡电路的拓扑形式按照有无能量耗散可分为主动均衡和被动均衡。主动均衡没有能量耗散,能量转移速度快,均衡效率高,但控制电路较复杂,实现难度大,且成本较高;被动均衡存在能量耗散,但控制电路简单、极易实现、成本较低。

针对被动均衡方案,选择端电压和SOC作为均衡变量。具体的均衡策略为:当某个电池单体的SOC达到限定值时(即在本均衡控制中将这一状态定义为电池处于充满状态)采用SOC作为均衡变量;否则,采用电池组的端电压作为均衡变量。因此文中的均衡阶段可按控制变量的不同分为电压均衡阶段和SOC均衡阶段。文中所设计的均衡系统的作用过程为充电过程,因为充电过程中,电池所处的环境较为稳定、干扰源少、均衡控制简单、均衡效果好。

1.4 充电模块软件设计

文中所设计的充电控制策略为恒流恒压充电法。采用恒流恒压的充电方法可以保证电池尽可能快地充满,同时对电池损害小。具体的控制策略为:对于直流充电,为了保证电池在大倍率充电电流下不出现安全事故,最大允许充电电流受电池温度约束,即对应于一定的温度值,有一个最大的许用电流;在开始恒流阶段之前,为避免电流突然的剧增对电池造成损伤,在电流由零增加到最大许用充电电流这一阶段,对电流做一个短时间的电流逐步增加处理;在充电电流的作用下,电池的电压逐步增大,当某个单体电池的最高电压达到充电截止电压或者整个电池组的总电压超过某一设定阈值时,恒流充电阶段结束;进入恒压充电阶段,维持电池组中单体电池的最高电压一直稳定在充电截止电压,直至电池组中的最大SOC达到100%,充电结束。交流充电的控制过程与直流类似,不同的是交流充电的充电电流相对较小,充满时间较长。

1.5 热管理模块软件设计

文中所设计的热管理系统采用风冷的冷却方式,风速通过一个两挡风扇进行控制。BMS采集电池组中单体电池的最高温度、最低温度以及最大温差。当单体电池的最高温度超过35 ℃,或者最大温差超过8 ℃且最小温度超过30 ℃时,低速风扇开启。在此基础上,当单体电池的最高温度超过40 ℃时,高速风扇开启。在风扇处于开启状态,电池组中最高温度低于30 ℃且最大温差低于5 ℃时,风扇重新关闭,电池进行自然冷却,整个过程根据条件依次循环,直至电池温度处于最适宜的温度范围内(25~40 ℃)。

2 电池系统建模

为了更好地对已设计好的BMS软件进行仿真测试和验证,需要建立BMS的受控对象,即电池系统模型。该模型必须能很好地模拟电池的外特性、产热和散热,以及单体电池间的不一致性。同时,受控对象必须与所研究的对象有很强的相关性。基于以上几点,在MATLAB/Simulink中对电池系统进行建模,包括电池单体的建模和电池包的建模。

2.1 电池单体的建模

电池单体模型采用电热耦合的电池模型,如图1所示。其中电模型采用常用的二阶RC等效电路模型,热模型采用二状态热模型[5]。

图1 电热耦合模型原理

2.1.1 二阶RC等效电路

对等效电路进行分析,得到等效电路中各个部分电压和电流的关系为

(2)

2.1.2 二状态热模型

二状态热模型中的生热和传热方程为

(3)

2.2 电池包的建模

电动汽车的动力电池系统是由单体电池通过串并联的方式组合在一起的,单个电池的特性无法体现整个电池系统的特征,因此为了更好地服务于软件测试,在单体电池建模的基础上,考虑各单体电池之间的联系以及对整个电池组的影响,建立了一个既能反映单体电池间一致性,又能反映各单体电池间热传递以及与环境之间进行热交换情况的电池包模型。由于并联在一起的电池组对所要研究的均衡策略的仿真分析无影响,且这部分的电池单体间紧密接触,温度效应接近,为了让模型看起来简洁且便于分析,将并联在一起的电池视为完全一样的电池,因此并联的电池组与单个电池只存在数量上的倍数关系,所设计的电池组为20并。为了考虑串联电池组间热量的传递关系,在串联的电池组间建立了热对流模型,模拟电池组间电池的热对流情况,能很好地反映电池包内部热场分布。同时为了模拟电池与空气的热交换,引入一个等效热阻Ru。Ru的值与电池包内部的空气流速有关,能很好地模拟散热系统在不同工作状态时,电池包内部的热场分布情况。除此之外,文中在模型中建立了正负继电器、预充电回路和充电继电器模型,以模拟电池充放电时的上下电过程和充电过程。为了分析的方便,只建立了4组电池串联的模型,对于串数更多的电池组,可以很方便地进行添加。建好的电池包模型如图2所示。

图2 电池包结构及封装

3 MIL测试

MIL即模型在环,是在Matlab/Simulink环境下进行仿真,通过输入一系列测试用例,验证模型是否满足设计的功能要求。MIL测试简单快捷、效率高,在个人计算机上就能实现,能够很好地检测软件设计中的缺陷,已被广泛应用于软件开发初期的模型验证[6-9]。基于前述所建立的电池系统模型,对所开发的BMS软件模型进行MIL测试,以验证所设计的软件功能的合理性。MIL测试分为单元测试和集成测试两部分。

为了便于对模型仿真进行控制,并对仿真结果进行整理和显示,文中基于MATLAB/GUI,建立了模型的可视化闭环仿真平台,不仅可以通过GUI控件的简单操控实现后台模型的自动化仿真测试,还能对仿真中的主要数据进行动态显示,较方便地对整个仿真过程进行更好的监控,极大地提高了软件测试的效率。

3.1 GUI仿真平台

图形用户界面GUI(Graphics User Interface)是由各种图形对象,如图形窗口、光标、按键、菜单、文字说明等对象构成的用户界面。在GUIDE平台下可实现对用户自定义界面的菜单、快捷菜单以及各种控件的位置布置及其属性编辑,从而设计出自定义的图形用户界面。图形用户界面可视化强、操作灵活,能为人们提供良好的科学分析仿真平台。图3为所建立的BMS应用层软件模型仿真控制界面。

图3 BMS模型MIL仿真控制界面

3.2 单元测试

为了验证各软件模块设计的合理性,将对模型中的SOC估计模块、充电管理模块、SOP估计模块进行独立的单元测试。由于热管理在BMS中一直处于工作状态,且通常都是和其他模块一起工作,因此不单独对热管理模块进行测试。

3.2.1SOC单元测试

将电池包模型与SOC估计模型结合组成SOC单元测试模型,如图4所示。对SOC单元模型进行仿真测试,测试结果如图5所示。

图4 SOC单元模型

图5 SOC单元模块仿真结果

由图5的仿真结果图可以看到,在1处,通过开路电压对SOC进行修正,精度较高,与真实值很接近。随着安时积分的进行,由于系统噪声的加入,安时积分对误差不断累积,导致积分得到的SOC与真实值的差距慢慢变大。当电池所处的工况满足SOC修正机制的条件时,会触发对应的SOC修正机制,从而对SOC进行修正。如图中所示,2~6分别对应为动态低端修正、极限低端修正、预充电修正、充满修正和极限高端修正。为了避免SOC值变化过大,给用户带来不安,文中所设计的修正策略加入了平滑处理。当电池处于放电工况时,如果计算得到的SOC比实际值小时,每次计算SOC变化值时,少减一定数值;反之,则多加一定数值。对于充电工况而言,其平滑处理与放电情况则相反。按照此修正机制,随着时间的累积,误差将会慢慢消除。

3.2.2 充电单元测试

将电池包模型与充电模型组合成充电单元测试模型如图6所示,进行充电仿真测试。在这里对充电模块的快充过程进行测试,测试结果如图7所示。

图6 充电单元模块

图7 充电模块仿真结果

由图7可以看到充电过程中SOC和充电电流的变化情况。由图可知,电池是按照恒流恒压进行充电的;电池从10%充到80%大概需要30 min。图7(c)是由图7(b)中A区域放大得到的,表示电流从零慢慢增加到最大允许充电电流,这样做的目的是为了避免电流的迅速增大给电池组带来冲击。

3.2.3 SOP单元测试

将SOP估计模型和电池模型组合成SOP单元测试模型,如图8所示。通过对电池组加载一定工况下的电流,得到在电压、温度和SOC限制下各时刻单体电池的峰值电流,结果如图9所示。由图9的结果可以看到,该电池组的峰值电流主要是受到单体电池端电压的限制。随着放电的持续,电池温度在逐步上升,在中后期的时候达到温度限制值,此时的峰值电流主要受温度的限制。在后期,由于持续的放电,电池SOC在逐步减小,最终到达SOC限制值,此时的峰值电流主要受SOC的约束。在测试前,将温度限制为不超过45 ℃;SOC限制为不低于0.05;端电压的限制范围为3~4.2 V。从温度、SOC和端电压的仿真可以看到,三者的变化范围都在预期设定的限制范围内。

图8 SOP单元模块

图9 峰值电流仿真结果

3.3 集成测试

由于BMS是由许多系统模块组成的,在BMS实际工作过程中,要求各系统模块协同作用,以达到期望的整体效果。因此,为了验证各模块集成在一起时的工作效果,文中以电池包模型为受控对象,将均衡管理模型、充电模型、SOC模型、SOP模型和热管理模型集成在一起组成集成测试模型。

3.3.1 集成测试1

首先对该集成测试模型进行放电工况的仿真,建立的集成测试模型如图10所示,测试结果如图11所示。图11(a)为该工况下,单体电池的峰值电流。图11(b)表示SOC的变化情况以及对SOC进行动态低端和极限低端修正的情况。由仿真结果可以看到,经过修正后,SOC的误差明显减小。图11(c)反映了该工况下,电池的温度变化及相应的散热系统的响应。当最高温度超过35 ℃时,风扇开启,对应的转速为500 r/min,此时为低速挡;当温度继续增加时,超过40 ℃时,对应转速为1 000 r/min,此时为高速挡;当温度低于40 ℃时,风扇又回到低速挡。

3.3.2 集成测试2

为了对集成模型充电时的情况进行分析,对该模型进行了充电仿真测试。为了模拟电池组的不一致性,将各电池的初始SOC设置为不同值,将电池1和电池2设为一组,初始SOC为0.1;将电池3和电池4设为一组,初始SOC为0.15,最终得到测试结果如图12所示。由图可以看出,在初始阶段,主要是以端电压为均衡变量,对串联电池组进行电压均衡。之后到达SOC阈值时,以SOC为均衡变量进行均衡。由于所设计的均衡模式为被动均衡,每次的均衡电流很小,效率比较低,所以均衡时间较长。但是经过长时间的均衡作用,电池间的不一致性得到缓解。因此要完全消除电池间的不一致性,需要长时间的充电均衡来实现。对于一些不一致性非常严重的电池组来说,甚至需要多次的充电均衡才能达到很好的均衡效果。

图10 集成测试模型

图11 集成测试模型1仿真结果

图12 集成测试模型2均衡仿真分析

4 SIL测试

当前的车载系统均为嵌入式系统,模型功能的实现,最终都要转换成相应的代码来实现。虽然通过之前的MIL仿真,已经验证了模型的正确性,但是在模型代码生成过程中可能会引入一些错误,导致模型功能无法正确实现。为了验证自动生成的代码和用于代码生成的模型在功能实现上的一致性,建立了相应的软件在环(SIL)模型,并进行了SIL仿真测试。

4.1 自动代码生成

在进行SIL测试之前,需要将模型生成相应的代码。基于模型设计有一个很大的优势就是代码自动生成,且生成的代码质量和执行效率较高,省去了代码编写和调试的相关工作,大大提高了产品的开发效率[10-11]。因此,基于MATLAB R2017a/Simulink软件平台,将之前验证过的模型进行代码自动生成,并将代码编译成可执行文件。

4.2 SIL测试

在SIL测试阶段,模型验证已经完成,可以复用模型测试时使用的测试用例,避免对测试用例进行重新设计。

SIL测试主要是对比验证测试。如图13所示,在测试过程中,给SIL模型和用于代码生成的模型相同的输入,然后比较两者的输出是否一致。当输入信号的数据量足够大,能够反映电池管理系统的各功能模块,涵盖各种信号范围,并且两者的输出结果一致时,基本可以认为代码和模型在功能上的执行效果是一致的。

图13 SIL测试仿真模型

由图14的对比测试结果可看出,自动生成的代码和用于代码生成的模型的仿真结果完全重合,误差均为0,两者在功能实现上具有很好的一致性。

图14 仿真结果对比分析

5 结论

基于模型设计这一产品开发思想给前期算法研究和应用层软件开发带来了极大的便利,可视化的开发环境可以让工程师在前期软件设计时效率大大增加,且降低出错率。采用基于模型的设计思想,对BMS应用层软件的主要功能模块进行了开发和测试。单元测试和集成测试的结果均表明,所开发的BMS应用层软件能满足主要的功能需求和可靠性要求,所建立的BMS MIL仿真平台能快捷、方便地对BMS应用层软件进行测试和验证。同时SIL仿真平台能够很方便地对模型生成的代码在功能上的执行效果进行验证。在后续的工作中,当把相应的硬件系统元件确定后,还能对模型进行PIL和HIL仿真,实现模型从MIL到HIL的一个完整的模型验证流程,极大地方便了对所设计的功能策略进行验证,提高前期功能软件开发的效率,缩短产品的开发周期。

猜你喜欢

电池组单体修正
纯电动汽车动力电池组布置效率提升方法
填充电池组的耐撞安全性
锂离子电容器自放电检测方法研究
液压单体支柱井下现场修复技术应用
修正这一天
荣威混动e550高压电池组电芯压差过大
对微扰论波函数的非正交修正
美国 风暴
高中有机化学反应类型
修正2015生态主题摄影月赛