基于布谷鸟算法优化BP神经网络的锂电池健康状态预测

2021-05-07 07:54魏新尧佘世刚刘爱琦
计算机测量与控制 2021年4期
关键词:充放电权值锂电池

魏新尧,佘世刚,容 伟,刘爱琦

(常州大学 机械工程学院,江苏 常州 213164)

0 引言

锂电池因为其容量大、环保等特点,目前被广泛用作电动汽车的主要动力源,因此针对锂电池的研究日益受到广泛的关注。由于电动汽车在行驶过程中可能需要频繁的启停造成锂电池大电流充放电,导致锂电池呈现强烈非线性退化效应[1],进而影响到电池寿命,这对于以后的驾驶势必造成隐患,因此对电池管理系统的研究则显得至关重要。其中锂电池的健康状态(SOH,state of health)是电池管理系统中最关键的因素之一。然而,电池内部所涉及的电化学反应的复杂性和耦合效应,且不同类型的锂电池老化机理不同,都增加了对SOH的精确预测的难度。

电池的SOH是表征电池老化状态的指标。SOH定义为电池当前所能充入或放出电量与电池标称容量的百分比[2]:

(1)

式中,Qnow为当前所能充入或放出电量,Qrated为电池标称容量。目前常用的SOH估计方法主要分为两类:1)基于电路或电化学模型的方法,该方法将电池的SOH估计问题视为模型参数估算问题。通过对电池模型中相关参数进行辨识,建立电池模型。张民等采用卡尔曼滤波算法对SOH进行预测[3],康道新等采用卡尔曼滤波算法的衍生算法,即双适应无迹卡尔曼滤波算法对SOH值进行估算研究[4]。Xiong等人用粒子滤波法对电池模型中相关参数进行辨识,建立电池模型[5]。此类方法对电池模型的依赖较大,电池模型的选用和参数的辨识精度将直接决定电池SOH估算的准确性和适用性;2)基于数据驱动的方法,该方法不需要探究工作时电池物质结构变化和工作机理,从数据的角度寻找代表特征,应用基于黑箱模型和机器学习工具的映射技术,以数据中提取的代表特征为输入、电池SOH为输出,建立网络,从而实现电池SOH的准确估算。BP(error back propagation)神经网络算法是最为常见的机器学习算法。Yang等利用三层BP神经网络估算SOH[6],但传统的BP神经网络在估算SOH这种非线性问题时对初始值依赖较大,容易使权值陷入局部最优解,导致SOH预测不精确。刘春艳等人采用遗传算法(GA,genetic algorithm)优化BP神经网络的初始权值和阈值[7]。该算法收敛速度较慢,需要交叉率和变异率等参数较多,预测精度容易受影响。李祚泳等人引入粒子群算法的权值和阈值修正,从而建立了基于粒子群算法(PSO,particle swarm optimization)优化的BP神经网络模型[8]。该算法提高了BP算法的收敛速度,改善了对初始值的依赖,但算法本身的局部寻优能力不强。

为了有效地减小BP神经网络对初始权值和阈值的依赖,提高算法求精能力和收敛速度,本文提出一种基于布谷鸟搜索算法(CS,cuckoo search)优化BP神经网络的锂电池SOH预测方法。该优化算法的优点在于需求的参数较少、容易实现、搜索路径优和寻优能力强等特点[9],王凡等通过建立Markov链模型在理论上证明了CS算法可收敛于全局最优[10]。同时将网络预测结果与BP算法、PSO-BP算法、GA-BP算法作比较,可以得到该算法具有更好的预测能力。

1 BP神经网络

BP神经网络一般是指用误差逆传播算法训练的多层前馈神经网络,广泛应用于非线性逼近。SOH预测的BP神经网络结构如图1所示,网络共有三层,即输入层、隐层和输出层。在层与层之间是全连接的,每一层神经元之间无连接。通常输入层和输出层的单元个数与建立的问题需求或模型有关,而隐层的单元个数的设计通常根据经验公式[11]:

(2)

式中,n为输入层单元个数;m为输出层单元个数;d为1~10之间的整数。经多次仿真实验对比,d取10时仿真效果最好,所以由图1可知,SOH估计的神经网络的隐层单元个数为12。

BP神经网络SOH预测模型如图1所示,输入层由5个神经元组成,即电流、电压、温度、放电时间和充放电循环次数,xi(i=1,2,…,5)表示其输入亦即该层的输出;隐层由12个神经元组成,zk(k=1,2,…,12)表示隐层的输出,θk(k=1,2,…,12)表示隐层的阈值;输出层由1个神经元组成,用y表示输出层的输出,即BP神经网络SOH的预测值,用φ表示输出层的阈值;用vik(i=1,2,…,5;k(k=1,2,…,12)表示从输入层到隐层的连接权值;用wk(k=1,2,…,12)表示从隐层到输出层的连接权值。隐层采用logsig函数f(x)=1/(1+e-x)为激活函数,输出层采用Purelin函数g(y)=y为激活函数,性能函数采用均方误差性能函数(MSE,mean squared error)。算法步骤如下:

1)初始参数。假设初始迭代次数t=0,BP神经网络初始权值和阈值为[-1,1]内的随机数,即vik(t)∈[-1,1],wk(t)∈[-1,1],θik(t)∈[-1,1],φik(t)∈[-1,1];

2)信号正向传播。输入一个样本(Xm,Ym),其中m∈{1,2,…,M},M为样本数,X=[I,V,T,t,c]T∈R5×m,Y表示SOH的真实值;

3)计算隐层的输入与输出:

(3)

zk=f(Sk-θk)

(4)

4)计算输出层的输入与输出:

(5)

y=f(S-φ)

(6)

5)误差逆向传播。计算输出层各节点误差:

Err=y(1-y)(Y-y)

(7)

6)计算隐层各节点误差:

Errk=zk(1-zk)wkErr

(8)

7)权值、阈值更新:

wk(t+1)=wk(t)+αzkErr

(9)

vik(t+1)=vik(t)+αxkErrk

(10)

φ(t+1)=φ(t)+ηErr

(11)

θk(t+1)=θk(t)+ηErrk

(12)

其中:η为学习率,α为学习速率;

8)输入下一个样本进行训练,重新回到步骤2)开始执行,直到训练集中的所有样本都被训练完;

9)对于每一个输入的样本计算输出层的误差函数Em:

Em=(Ym-ym)2

(13)

对所有的样本的均方误差进行累计求和,就可得到基于BP神经网络模型的SOH估计的目标函数:

(14)

比较E与规定的误差的大小,如果E小于误差精度要求或者学习次数达到规定次数,则算法结束;否则更新学习次数t←t+1,并重新回到步骤2)继续执行。

BP神经网络经常遭遇过拟合,过拟合是指网络模型把一些训练样本特有的性质当作一般性质,从而导致泛化性降低,训练误差增大。为了解决这一问题选用一种策略是“早停”,即将数据分成训练集和验证集,训练集用来更新权值和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高且样本个数超过某个给定的值,则停止训练,同时返回具有最小验证集误差的权值和阈值。

2 CS-BP神经网络

2.1 CS算法

CS算法是由学者X.S.Yang和S.Deb提出的一种智能优化算法[12]。CS算法是模拟布谷鸟寻巢产卵行为的一种寻求目标函数最优化问题的仿生算法,类似的仿生算法还有GA算法和PSO算法。与GA算法和PSO算法相比,CS算法具有选用参数少、容易实现、搜索路径优、寻优能力强等特点。在自然界中,布谷鸟采用寄生育雏的特殊繁殖后代策略,即在其他鸟的鸟巢里产卵,由其他鸟来代替自己孵育下一代,并且为了保证孵化率,将其他鸟的蛋扔出鸟巢。

该算法的寻优过程采用莱维飞行,所谓莱维飞行是指一种随机游走方式,即每一步游走方向完全随机且各不相同,小步长行走与偶尔的大步长行走相互交替,且步长服从重尾分布。文献将该莱维飞行应用到寻优算法中,少量的大步长行走可以扩大算法的搜索范围,有助于算法跳出局部寻优;大量的小步长行走有利于算法局部寻优,提高算法的精度,距离越小,求解精度越高,但会降低搜索速度。莱维飞行的每一步游走都由两个因素控制:一是游走方向,一般选取一个服从均匀分布的数;二是步长,步长服从莱维分布。为了简化和模拟布谷鸟的育雏行为,学者Xin-She Yang和Suash Deb提出了以下三条理想规则:

1)每只布谷鸟每次只生产一个蛋,并随机选择一个寄生巢来放置;

2)在随机选择的一组寄生巢中,最好的寄生巢会被保留到下一代;

3)可利用的寄生巢的数量是一定的,布谷鸟蛋被宿主发现的概率为Pa。

在上述3个理想规则的基础上,将布谷鸟、宿主鸟巢以及布谷鸟蛋均看作解,则从自然界布谷鸟行为中抽象出布谷鸟算法的主要步骤为:

1)初始参数,随机生成一组初始解并计算他们的适应度;

2)通过莱维飞行对解进行更新:

xi(t+1)=xi(t)+α⊗Levy(β)

(15)

式中,xi(t)和xi(t+1)分别为第t次和t+1次迭代时的第i个解;α=α0(xi(t)-xbest)是步长信息,用于控制搜索范围,α0=0.01是常数,xbest表示当前最优解;⊗表示点对点乘法;Levy(β)是随机搜索路径,服从莱维概率分布:

Levy~u=t-1-β, 0<β≤2

(16)

3)比较新解得适应度和旧解得适应度值,若新解得适应度值优于旧解得适应度值,则用新解替换旧解;

4)根据发现概率丢弃部分解,然后随机偏好游走生成同样多的解来代替被丢弃的解:

xi(t+1)=xi(t)+r⊗Heaviside

(Pa-ε)⊗(xk(t)-xj(t))

(17)

式中,r和ε为[0,1]区间内正态分布的随机数,Heaviside(u)表示阶跃函数,Pa为发现概率,xk(t)和xj(t)为第t次迭代时的两个随机解;

5)计算通过步骤2)~4)产生的新一代的解的适应度值并挑选出最优解;

6)重复步骤2)~5),直到达到最大迭代次数。

2.2 CS-BP神经网络

CS算法具有提高算法的局部和全局寻优的等优点。为了改善BP神经网络对初始权值和阈值的依赖问题,将CS算法运用到BP神经网络中,在网络进行训练前,运用CS算法对网络初始权值和阈值进行寻优,得到的最优解再赋值给网络进行训练,这种方法可以有效地避免BP神经网络因为初始权值和阈值而容易陷入局部最小的问题,同时改善了BP神经网络的收敛速度。

总算法流程如图2所示。

图2 CS-BP神经网络流程图

CS算法优化BP神经网络算法步骤:

1)初始化鸟巢数n、Pa及最大迭代次数Nmax等参数;

3 实验仿真和结果分析

3.1 实验数据预处理

本实验锂电池数据集来源于美国国家航空航天局Ames研究中心的预测数据储存库。该数据库中含有多种不同类型的锂电池数据集,为了验证模型的泛化性,本文选择6、7号电池数据集进行实验。对上述两种类型的锂电池在3种不同工作模式(充电、放电和阻抗测试)下实验数据进行记录。每次充放电的过程为:首先在1.5 A的恒流模式下充电,直到电池电压升高到4.2 V,然后在4.2 V的恒压模式下继续充电,直到充电电流将至20 mA,充电过程结束;在2 A的恒流模式下对电池进行放电,直到电池电压降至截止放电电压(6、7号电池的截止放电电压分别为2.5 V、2.2 V)。重复的充放电周期导致电池加速老化,随着老化的进展,当电池达到寿命结束标准时,记录停止。两种类型的电池均进行168次充放电循环,在每次充放电循环中选择利用放电数据进行模型构建。图3是两种锂电池的SOH变化曲线图,从图中可以看出,锂电池的SOH会随着迭代次数的增加而不断减小,这意味着电池随着使用次数的增多其的老化状态会变得更加明显。本文中将前138次充放电循环样本作为训练样本,剩余的30次循环作为测试样本。选取均方根误差(RMSE,root mean square error)和平均绝对百分比误差(MAPE,mean absolute percentage error)作为衡量预测模型好坏的标准,计算公式如式(18)和(19):

(18)

(19)

图3 两种锂电池的SOH变化曲线图

锂电池的SOH可以认为是长期变化量,其在单次充放电循环过程中保持不变,但会随着锂离子电池长期使用而逐渐改变,因此针对单次充放电循环随时间变化测得的部分输入参数,即电池端电压、电流和温度,取其平均值作为表示该时间段对应的参数特征,同时根据式(1)可以得到该次充放电循环后的SOH值,即输出参数。考虑到锂电池输入参数和输出参数的量纲和量纲单位不同,为了消除各参数的量纲影响,需要对参数数据进行标准化处理。通过式(20)可以将样本数据映射到[0,1]区间。

(20)

式中,max和min分为样本数据的最大值和最小值。

3.2 仿真分析

本实验通过在Matlab R2018b环境下编程建立仿真模型,具体仿真分析步骤如下:

1)给各个算法模型预设参数:

BP:网络的结构为5-12-1,训练目标为10-5,隐层的激活函数为logsig,输出层的激活函数为purelin,训练函数为trainlm,学习速率为0.01,输入为电池端电压、端电流、环境温度、充放电循环次数和放电时间,输出为对应该次放电循环后的SOH值;

CS:迭代次数均为50,种群规模n=25。其中CS算法中发现概率Pa=0.25,步长α=0.05;

PSO:迭代次数均为50,种群规模n=25。c1=c2=1.494 45;

GA:交叉率Pcross=0.2、变异率Pmutation=0.4;

2)利用式(19)对训练样本和测试样本进行归一化;

3)使用newff函数建立BP神经网络。并固定初始权值和阈值的随机种子;

4)在进行网络训练前分别用CS算法、PSO算法、GA算法对初始权值和阈值进行寻优,可以得到3种寻优算法的适应度值随迭代次数的变化,如图4所示。

可见在迭代次数均为50次的情况下,CS算法比GA算法和PSO算法可以得到更小的适应度值;

5)使用train函数对网络进行训练;

6)把测试样本加入到训练好的网络中,进行预测,预测的结果与真实值对比,如图5所示;

可见对于两种电池的测试样本来说,CS-BP算法的预测值比PSO-BP算法、GA-BP算法、BP算法都要更接近真实值。

7)针对两种电池的测试样本,计算预测值与真实值的绝对误差,如图6所示。

宏观上看,CS-BP算法的预测绝对误差比PSO-BP算法、GA-BP算法、BP算法都要更接近0。表明CS-BP算法比其他的方法精度更高。

微观上看,表1给出了4种算法的RMSE和MAPE值。对于6号电池来说,CS-BP算法的RMSE值比PSO-BP算法、GA-BP算法、BP算法分别降低了0.442 5、0.723、1.222;CS-BP算法的MAPE值比PSO-BP算法、GA-BP算法、BP算法分别降低了0.674 5%、0.715 3%、1.763 9%;CS-BP算法的最大绝对误差比PSO-BP算法、GA-BP算法、BP算法分别降低了0.293 3、2.005 3、2.288 3。对于7号电池来说,CS-BP算法的RMSE值比PSO-BP算法、GA-BP算法、BP算法分别降低了0.385 8、0.784 9、0.901 5;CS-BP算法的MAPE值比PSO-BP算法、GA-BP算法、BP算法分别降低了0.473%、0.964 3%、1.080 9%;CS-BP算法的最大绝对误差比PSO-BP算法、GA-BP算法、BP算法分别降低了0.504 5、1.152 5、1.384 5。对于在两种电池数据集上的仿真预测结果,CS-BP算法的RMSE值、MAPE值和绝对误差最大值都是最小的,所以CS-BP算法的预测能力要优于PSO-BP算法GA-BP算法、BP算法。

表1 4种算法的预测性能比较

4 结束语

本文主要研究了锂电池SOH的预测问题。因为电池内部化学反应复杂,且SOH值呈非线性,所以本文采用BP神经网络模型来预测SOH。但传统的BP算法误差较大,对初始值依赖较大,且容易陷入局部最优。为了解决这些问题,提出了CS-BP算法,该算法的核心是在BP算法的训练开始前,用CS算法找出最优的初始权值和阈值,并赋值跟网络,然后进行训练。在美国国家航空航天局的锂电池数据集上的实验表明,本文的SOH预测方法比BP算法、GA-BP算法、PSO-BP算法更有效。

猜你喜欢
充放电权值锂电池
新能源汽车充电放电装置的开发与应用
V2G模式下电动汽车充放电效率的研究
动力电池充放电效率测试方法及特性研究
如何更好设计锂电池充电器恒压控制电路
如何更好设计锂电池充电器恒压控制电路
锂电池里装微型灭火器:再也不担心手机电池起火等
财务风险跟踪评价方法初探
防爆蓄电池机车智能充电硐室实践应用
基于洪泛查询的最短路径算法在智能交通系统中的应用