,,,
(1.电子科技大学 材料与能源学院,成都 611731;2.成都汽车产业研究院,成都 610101)
锂离子动力电池剩余电量SOC值的精确估计是电池管理系统的关键技术之一。然而动力电池在动态充放电过程中,电池SOC值无法像电压或电流一样直接测量得到,必须通过一些其他物理量的测量并采用相关的数学模型和算法才能间接得到。同时动力电池在使用过程中往往受到许多不确定因素的影响,常常表现为高度非线性,又增加了准确估计电池SOC值的难度。
目前,常用的SOC估计方法有放电实验法,安时积分法[1-2],开路电压法[3](OCV-SOC)以及卡尔曼滤波法等。放电实验法适合于所有的电池,但是通常在实验室使用,不适合在电动汽车上在线使用。安时积分法通过对流进或流出的电池电流随时间积分来计算,是一种简单且易于在机载设备上进行使用的方法,但是它需要初始的SOC值,加上这种方法是开环控制,测量的噪音以及电池的老化都会造成较大的估计误差。开路电压法(OCV-SOC),通过建立相关的OCV-SOC查找表来实现,然而开路电压法需要静置很长一段时间来达到电池的开路电压,同时它又是基于电池模型的一种估算方法,如果模型建立的不够准确将会产生很大的误差。现在也有利用计算机的智能算法,比如,项宇[4]等人采用的神经网络算法,估算误差达到2%以内。但是采用的网络结构输入变量只有电压和电流,忽略了其他影响电池SOC值的因素比如电池温度等,难以满足电动汽车实际工况下运行对电池SOC值的要求。而赵刚[5]等人虽然采用了电压,电流,温度以及已发电量作为网络结构的输入层,然而估算的误差只能达到5%左右,难以满足现今对于电池SOC值的要求。因此如何利用动力电池可测参数实现对电池SOC值的精确估计一直以来都是电池管理系统的核心问题和技术难点。
为了解决以上这些问题,本文在分析了电池电压、温度、电流和放电电量对电池SOC值影响后,提出了一种新颖的免疫遗传算法(Immune Genetic Algorithm,IGA)和BP神经网络相结合的锂离子动力电池SOC值联合估计方法,利用IGA算法实现了对BP神经网络的参数寻优,通过仿真和电池工况下实验验证了这一算法的可行性和有效性。
关于SOC的定义,普遍采用的是美国先进电池联合会(USABC)的定义,SOC即State Of Charge,电池荷电状态,表示的是在一定的放电倍率下电池剩余电量与相同条件下电池额定容量的比值[6],其计算公式为:
(1)
(2)
式中,Q(Im)为电池以恒定Im电流放电时所具有的最大放电电量;Q(In)为在t时间内,在标准电流In下电池释放的电量。而本文采用的是修正型SOC计算公式:
SOCD=SOC·K·f(I)
式中,K为温度修正系数;f(I)为电流修正系数。
动力电池在充放电过程中是一个复杂的电化学过程,在电池工作期间会受到许多不确定因素的影响,这些因素当中影响较大的有下面几个:1)充放电电流;2)温度;3)电池老化;4)电池自放电等。
SOC估计精度通常受数学模型或网络模型的影响较大,一个良好的电池估计模型能够极大地提高电池SOC值估计精度;另外选择影响电池SOC值相关变量也是一个关键,合适的选择影响电池SOC值相关变量,不仅能够提高电池SOC值估计精度,还能正确的反映电池的工作特性,极大的提供电池管理的效率。本文也是基于此通过优化网络模型以及合理的选择影响电池SOC值的关键变量来提高电池SOC估计精度。
BP神经网络是一种多层前馈神经网络,该网络的特点是“信号向前传递,误差反向传播”[7]。BP神经网络算法的基本原理是梯度最速下降法,它的思想就是通过调整权值使网络的总误差最小。利用BP神经网络这种特性能够很好的满足电池SOC值的预测估算问题。通过BP神经网络的误差反向传播过程,能够极大地减少由电池SOC值高度非线性造成的预测误差。
本文结合锂离子电池的实际工作模型,结合BP神经网络自身的工作特点,采用三层神经网络对锂离子电池进行SOC值估算。
其中输入层表示为X=(X1,X2,…Xn),Xn是输入层的特征向量,n为输入的特征向量个数,输出层表示为Y=(Y1,Y2,…Ym)Ym是输出层的特征向量,m为输出的特征向量个数,wij,wjk为BP神经网络的权值,隐含层的阈值则用bk表示。通过三层网络结构模型建模,得到BP神经网络预测电池SOC值网络结构模型。本文中鉴于影响锂离子动力电池SOC值的因素较多,模型中选取电池端电压、电流和电池已放电量3个关键参数作为输入变量传入到输入层中,输出层则以电池的SOC值作为输出。
免疫遗传算法(IGA)[8-9]是模仿生物体免疫系统抵抗病菌的机制运行的。该方法包含以下步骤:抗原识别,初始种群生成,计算个体适应度,抗体的交叉变异,抗体亲和力计算,种群更新,记忆单元的产生等。
其中把需要参数优化的目标函数[10]和约束条件可以看成是抗原,相应的解集可以看作是抗体。目标函数与解之间的匹配程度对应于抗原与抗体之间的亲和力,每对解之间的相似性对应于每对抗体之间的浓度。在免疫遗传算法中,首先在可行空间中随机生成n个抗体,并使用适合的适应度函数进行评估。然后通过选择,克隆增殖和变异来产生新的抗体。在选择步骤中,选择抗原和抗体之间具有高亲和力的抗体作为克隆增殖的依据。通过克隆产生新的抗体,其中每种抗体的克隆率与其亲和力成正比,并与其浓度成反比。另外,为了增强种群的多样性,对每种抗体进行变异处理,其中抗体的变异率与其亲和力成反比。当产生新的种群时,IGA继续通过选择,克隆增殖和变异再次评估抗体,直到满足终止标准。所提出的IGA的计算过程的流程见图1。
图1 IGA-BP联合估计算法计算流程图
根据以上分析,提出的IGA主要采用抗体浓度控制的机制维持种群多样性和免疫遗传特性,抑制进化过程中的退化。 因为免疫系统多样性的特点,所以能够更好地保证可行空间的解的质量。 在进化过程中,抗原识别,亲和力评估,遗传操作(交叉和变异)和精英保留策略(抑制和更新)是该算法的关键步骤。另外上面说明了免疫遗传算法的计算过程,下面对这些关键步骤进行了详细的讨论。
在提出的免疫遗传算法中,在解空间中随机产生有限数量的抗体,这些抗体以实数进行编码对于需要优化的变量xi(i=1,2,…,n),定义xi的范围为[ai,bi],对应xi的实数编码可以表示为xi=ai+γ·(bi-ai),其中γ是在[0,1]间均匀分布的随机变量。抗体vi=(x1,x2,…,xj)表示为实数的向量,其中j是vi中元素的个数。在本文中,抗体的成分包括BP网络中的权值参数w和阈值参数b。因此相应的抗体结构可以表示为vi=(wi,bi)。
在上面提出的算法中,有两种亲和力的评估方法。一种是抗体与抗原之间的亲和力,代表抗体与抗原的结合强度。另一种是任何一对抗体之间的亲和力,也称为浓度,评估它们的性质接近程度,从而保证多样性。
在搜索BP神经网络的权值和阈值参数的最优值之前,必须先设计一个亲和函数,评估每个抗体的性能。预先生成的训练特征子集用于计算抗体的亲和力值。IGA中使用的亲和度函数是基于BP神经网络预测电池SOC值准确性来实现的,通过训练特征子集进行测试,其计算公式如下:
(3)
式中,yt为SOC的真实值;yp为网络模型的预测值。之后的亲和力评估是通过一个浓度函数来进行,该浓度函数表示种群中每个抗体之间的相似性。在进化过程中,由于所有抗体自适应地调节其结构以适应抗原,种群多样性将会降低。 所以选择它们进行遗传操作之前,需要抑制这些高浓度的抗体。抗体的浓度函数计算公式如下:
(4)
(5)
式中,s(x,y)表示的是抗体x与抗体y的相似度,值越小,浓度c越大,抗体x和抗体y越相似;n是抗体的长度。那么基于亲和力和浓度的抗体k的选择概率定义如下:
(6)
式中,β是反应亲和力fk和浓度ck的调节参数;m表示种群中抗体的个数。从上式可以看出,与抗原亲和力高的抗体被选择几率较大,任意一对浓度较大的抗体,被选择几率较低。 因此,与抗原具有高度亲和力的抗体被促进,并且浓度大的抗体被抑制。 这种选择策略有效地改善了种群多样性,避免了进化过程中的局部收敛。
遗传操作包括交叉操作和变异操作,通过克隆繁殖生成新的抗体,提高IGA搜索最优解的性能,避免局部收敛。
由于在本文中抗体是实数编码的,因此可以采用多点交叉操作沿着有希望的解空间区域进行搜索并改变。通过从群体中随机选择两个抗体作为待交叉抗体并交换部分抗体串,在两个选择的抗体之间进行交叉操作。根据选择概率pc,从种群中随机选择两个抗体xk和xl,则两个抗体在j位的交叉操作可以描述如下:
(7)
式中,r是在[0,1]之间随机变量。
交叉操作后,进行变异操作以保持种群多样性,避免IGA算法的早熟收敛。 通过从群体中随机选择抗体,所选抗体将以固定的概率pm进行变异。对于选定的抗体xk,j位的变异可以描述如下:
(8)
式中,aj为j位下限值;bj为j位上限值;r是[0,1]之间的随机变量;f(t)是变异概率,定义为如下:
(9)
式中,t为当前迭代次数;tmax为最大迭代次数;r1是[0,1]之间的随机变量。
记忆单元M是一组与抗原有较高亲和力的抗体,对于保证免疫遗传算法的收敛性非常重要。 由于记忆单元总数有限,如果新产生的抗体比现有M成员具有更高亲和力的抗体,则当前记忆单元中的亲和度相对低的抗体将被这些亲和力更高的抗体取代。 同时,新产生的抗体如果与记忆单元中抗体结构过于相似将会被消除,从而抑制了类似的抗体,保证了记忆单元的多样性。
IGA算法对于解决BP神经网络的权值和阈值等非线性全局优化问题表现优异,适合动力电池SOC的BP神经网络估计模型。其中利用IGA算法对BP神经网络的权值参数w和阈值参数b进行优化并构建IGA-BP模型的步骤如下:
1)设置免疫遗传算法参数:设进化代数为200,种群数量60,交叉概率0.2,变异概率0.1,w=10-6~104,b=10-6~102;
2)抗原识别:把BP神经网络的待寻优的权值和阈值作为抗原,相应的结构为vi=(wi,bi);
3)初始化种群:在参数搜索的范围内随机产生60个个体作为初代个体;
4)个体评估:利用训练数据对模型进行训练,计算当前种群中个体的适应度;
5)终止条件判断:如果个体达到设置的停止阈值或达到优化的代数,结束循环,跳转到步骤;否则,执行步骤6);
6)根据当前种群中的抗体的亲和力进行选择、交叉、变异操作,产生子代种群;
7)更新种群:将子代种群作为当前种群,并产生记忆单元抗体,跳转至步骤4),继续执行操作;
8)记录IGA-BP模型的最优参数[wbest,bbest];利用最优参数建立IGA-BP模型,并利用该模型对实验数据进行训练和预测。
本文采用26650磷酸铁锂动力型锂电池,其额定容量为3 Ah,额定电压3.2 V,数据采集系统采用的是NEWARE BTS-8000,图2为电池测试平台,在室温(25℃)下,利用该平台上进行了不同的倍率下的放电实验见图3,并利用该平台获取样本数据对网络模型进行训练和预测。
图2 电池测试平台
图3 不同倍率下动力电池放电实验曲线
利用电池测试平台获得的电池数据,采用IGA-BP算法的网络为模型,输入电池测试数据,模型估计结果和估计精度见图4、图5,估计精度对比结果见表1。
图4 IGA-BP联合估计实验结果
图5 IGA-BP联合估计实验误差对比曲线
算法实验编号绝对误差AE均方根误差RMSE/%平均绝对百分误差MAPEBP#10.89427.110.3152#20.96167.890.3526#30.88957.990.3668IGA-BP#10.21451.470.1213#20.19521.560.1565#30.19411.480.1325
从图5和表1中可以看出,IGA-BP神经网络相较于未经过优化的BP神经网络,在估计精度上面有了很大的提高,估计误差进一步缩小,均方根误差控制在2%以内,表明IGA-BP网络模型可以对电池SOC值进行有效的估计。
为了进一步验证IGA-BP算法的准确性,本文将使用电池动态工况实验数据进行验证,该动态工况实验能够实时的反应电池的动态状态。其中电池的初始SOC值为80%,实验温度为25℃,放电电流为负,充电电流为正。所采用的电池实际工况曲线见图6。
图6 电池工况曲线
利用之前训练好的IGA-BP神经网络,输入电池工况实验数据进行验证,在实际工况下的电池SOC跟踪曲线和估计精度对比见图7、图8,估计误差结果对比见表2。
图7 实际工况SOC跟踪曲线
图8 实际工况下估计误差
算法实验编号绝对误差AE均方根误差RMSE/%平均绝对百分误差MAPEBP#10.994 27.810.345 2#20.961 67.950.382 6#30.989 58.290.411 5IGA-BP#10.254 51.670.131 3#20.295 21.860.176 5#30.294 11.980.182 5
从图7、图8和表2可以看出,在实际工况下,该模型在电池实际工况下依然能够有效地估计电池SOC值,并且估计误差相较于未经优化的网络有了明显地提高,表明了在实际工况下该算法可行性和有效性。同时结果表明采用基于免疫遗传算法的IGA-BP神经网络模型实现了对电池SOC的精确估计,估计均方根误差控制在2%以内,满足所需控制要求。
本文针对动力电池SOC值难以直接测量且由于高度非线性所带来较大估算误差问题,借鉴生物领域的免疫遗传机制,提出了一种新颖的免疫遗传算法(Immune Genetic Algorithm,IGA)和BP神经网络相结合的锂离子动力电池SOC值联合估计方法。通过新颖的免疫遗传算法对BP神经网络进行参数寻优,提高了网络的学习效率和SOC的估计精度。最后为了进一步验证该算法的有效性和可行性,通过电动汽车实际工况下的电池放电实验进行了相关验证,结果表明在实际工况下该算法依然能够有效的估计电池的SOC值,满足现代新能源电动汽车对动力电池SOC值的估计精度需求。