基于自适应灾变遗传-循环神经网络的锂离子电池SOC估计*
2022-05-20皮志勇赵英龙张明敏
陈 诚 皮志勇 赵英龙 廖 玄 张明敏 李 勇
(1. 国网湖北省电力公司荆门供电公司 荆门 448000;2. 湖南大学电气与信息工程学院 长沙 410000)
1 引言
近年来,为实现“碳达峰,碳中和”战略目标,中国正在加大电动汽车的发展速度[1]。锂离子电池因其能量密度高、重量轻、使用寿命长,在电动汽车领域的使用相当广泛[2-4]。然而,锂电池的安全性依然是其大规模商业应用过程中面临的主要挑战。
锂电池的荷电状态(State of charge,SOC)是电池运行的重要参数,对其进行精准估计对电池的安全稳定运行有着非常重要的作用[5-6]。
SOC的值不能直接进行测量,只能通过监测电压、电流等运行参数对SOC的值进行估计[7-8]。目前常用来进行SOC估计的方法包括原理法、模型法和数据驱动法。
原理法主要是指基于SOC的定义方式实现SOC值估计的方法,包括安时积分法和开路电压法[9-10]。安时积分法将电流进行积分运算,因此,这种开环方法将导致累积误差的产生。开路电压法利用电池开路电压与SOC对应的函数关系来计算SOC,一般来说,使用开路电压法可对安时积分法进行修正,但电池的记忆性特点(即历史的电压、电流大小会影响当前电压值大小)会增大该方法的误差,故综合来看,原理法的估计精度不高。模型法是利用电池模型的参数对电池SOC进行估计,其估计精度较高,主要包括扩展卡尔曼滤波法和滑模观测器法[11-15]。这类方法严重依赖对电池模型和电池参数的准确获取。然而,在不同温度和不同循环寿命下,电池内部的物理属性会发生变化,导致电池模型参数发生变化。因此,需要进行大量的试验来对模型参数值进行标定,导致该类方法整体的复杂性增加。
数据驱动法不需要对电池进行建模,并且具有较高的估计精度,基础方法为误差反向传播(Back propagation,BP)神经网络[16-18]。但是利用BP神经网络进行SOC估计的精度不高,主要原因是电池的SOC不仅和当前测量参数有关,还会受到过去测量参数影响,而BP神经网络不具备记忆性,造成SOC估计精度下降。循环神经网络(Recurrent neural network,RNN)具备良好的记忆性,可有效提升BP神经网络的估计精度[19-20]。但是,仅仅使用循环神经网络难以满足高精度的估计要求。
循环神经网络的初始参数值严重影响着SOC估计精度,因此利用算法优化循环神经网络的初始值是提高神经网络估计精度的有效手段。常用于优化神经网络初始值的算法包括粒子群算法(Particle swarm optimization,PSO)、思维进化算法(Mind evolutionary algorithm,MEA)等。林海飞等[21]采用PSO-BP算法预测煤层瓦斯,预测精度由BP神经网络的7.5%~14.5%,提高至PSO-BP神经网络的2.4%~4.8%。陈颖等[22]使用SAMEA-BP对电池SOC进行估计,验证了SAMEA具有良好的适应性,并且精度高于BP算法。遗传算法(Genetic algorithm,GA)模拟了达尔文生物进化论和遗传学机理,可以有效地优化神经网络,提高神经网络的精度[23-26]。但是,遗传算法容易出现早熟等问题,严重影响着遗传算法的精度。传统的方法是在交叉变异算子之后加入灾变算子,来增加遗传算法的全局搜索能力,但是合适的灾变规模一直是亟待解决的问题。
基于上述分析,本文提出基于自适应灾变遗传-循环神经网络(ACGA-RNN)的联合算法用于对锂电池SOC的精确估计。首先介绍遗传算法,并在加入灾变算子后对遗传算法进行自适应改进;再利用自适应灾变遗传算法对循环神经网络进行预训练,融合成为ACGA-RNN联合算法;最后,结合锂电池充放电数据,采用不同的方法估计锂电池SOC,从而对比分析传统方法与所提改进方法的精确度。此外,基于不同工况的试验数据测试了所提方法与传统方法下的SOC估计精度。测试结果表明,与传统方法比较而言,所提出的ACGA-RNN联合算法的SOC估计精度高,鲁棒性强。
2 ACGA-RNN联合算法
2.1 自适应灾变策略
为了避免遗传算法过早收敛到局部最优解,在进化的过程中,引入了灾变过程。当遗传算法在迭代早期多次迭代之后,最优个体始终没有更新,这就表明遗传算法陷入了局部最优解,这个现象被称为早熟。此时,为了增加个体的多样性,随机移除并更新部分比较劣质的个体,以提高遗传算法的全局搜索的能力。
传统灾变算法中,灾变规模c是一个重要的参数,代表灾变个体的数量,一般是不变的,但是不变的灾变数量不能很好地满足算法需求。
如果选取的灾变规模过小,则在迭代前期种群的多样性不能得到很好扩充;如果选取的灾变规模过大,则在迭代后期,较大的灾变规模会降低收敛速率,并且不断的扰动也会使得到的最优解受到干扰。考虑到恒定的灾变规模c无法兼顾算法的全局搜索能力与收敛速度,因此,遗传算法在前期需要较大的灾变规模防止出现早熟问题,在中期需要快速变小的灾变规模来满足中期搜索与快速收敛的要求,在后期则需要较小且平稳的灾变规模来保障解的收敛[27]。
在神经网络中可用tanh函数作为神经元的激活函数,其定义为
tanh函数在不同区间范围内表现出明显的线性与非线性差异,其值在(-4, 4)外的两端几乎保持不变,在中心点(0, 0)附近其值迅速变化,与灾变规模需要的变化规律相适应,因此可以通过适当的平移、反转和压缩变换得到自适应灾变规模的表达式如下
式中,cmax和cmin分别为最大和最小灾变规模;k和K分别为当前迭代次数和最大迭代次数。当最大灾变规模取值过大时,可能会导致算法跳过最优解。当最小灾变规模取值过小时,可能会导致算法失去后期跳出局部最小值的能力。一般而言,灾变规模取个体数量的10%。综合考虑算法收敛性能与寻优能力,通过反复试验对比,本文选取cmax=50,cmin=5,K=1 000。基于式(2)中所提出的自适应规则,灾变规模在迭代过程中的自适应变化如图1所示。从图1可以看出,本文提出的自适应灾变规模算法随着迭代次数增加可使灾变规模在最大和最小灾变规模之间进行自适应改变,从而适应不同时期对灾变规模的不同需求。
图1 自适应灾变规模
2.2 循环神经网络
循环神经网络是带有记忆性的神经网络,它可以储存神经网络以前的状态,其主要参数为状态-状态权值、状态-输入权值、状态-输出权值、状态阈值和输出阈值,其符号分别为U、W、V、bh、by。
循环神经网络的正向传播公式为
式中,ht为t时刻隐藏层的输出。运用式(3)可以得到RNN的输出。当RNN正向传播过程完毕,则开始误差反向传播的过程。RNN基于时序反向传播误差(Back-propagation through time,BPTT)公式如下
通过正向传播和反向传递的方式,RNN神经网络不断地被训练,当到达一定误差范围或最大迭代次数时,则停止训练,得到训练好的RNN。误差的定义式为
式中,SOCt为SOC的真实值;SOCt0为SOC的估计值。根据式(5)可以计算出一次正向传播的误差。
3 基于ACGA-RNN的SOC估计策略
首先,将RNN的随机初始权值和阈值进行编码,得到ACGA的初始种群结构。使用锂离子电池SOC、电池端电压、电流数据作为ACGA适应度函数的输入,利用ACGA优化RNN的参数,可以得到较优的初始权值和阈值,再利用BPTT训练RNN,加速RNN的收敛。此方法得到训练好的网络,即ACGA-RNN。最终可以利用得到的ACGA-RNN,实现对锂离子电池SOC值的估计。详细流程如图2所示。利用ACGA-RNN预测SOC的具体步骤如下。(1) 根据锂电池数据确定RNN结构,并由RNN结构编码得到遗传算法初始种群结构,其中,种群长度L为
图2 ACGA-RNN预测锂离子电池SOC流程图
式中,L1、L2、L3分别为RNN的输入层、隐含层以及输出层节点数。本文选择的三层神经网络的输入为电压电流,输出为SOC。另外,L1=2,L2=8,L3=1。
(2) 初始化ACGA参数。
(3) 将个体解码得到RNN权值和阈值,利用锂电池数据得到网络的SOC输出,以网络输出与SOC真实值的误差绝对值为适应度函数。
(4) 运行ACGA,找到最优个体并输出,将个体编码解码,得到RNN的最优初始权值和阈值。某次利用ACGA得到的最优初始权值及阈值如表1所示,其适应度变化曲线如图3所示。可以看出,在初期引入较大灾变规模时,算法依然可以迅速收敛,体现了自适应灾变规模的优越性。
表1 RNN最优参数
图3 适应度曲线图
(5) 使用锂电池训练集训练RNN,快速收敛,得到训练好的神经网络,并完成验证,其中,RNN的训练超参数如表2所示。
表2 RNN训练超参数
4 测试数据预处理及其评价指标
4.1 归一化
锂电池试验中电压和电流数据数值差别较大,这将使各个数据在输入时的权值发生改变,影响神经网络性能,因此,本文首先对锂电池试验数据进行归一化处理,将数据范围映射到0~1。
式中,xi、xmin、xmax和ix分别为试验数据向量、试验数据的最小值、试验数据的最大值和归一化的试验数据。
4.2 评价指标
以方均根误差(Root mean square error,RMSE)和平均绝对误差(Mean absolute error,MAE)作为网络的评价指标,其表达式如下。
方均根误差可表示为
平均绝对误差可表示为
式中,Tk和Ok分别为实际值和预测值。
5 结果与分析
5.1 DST工况测试结果
本节中测试数据采用美国马里兰大学锂电池的试验数据[28]。该试验中使用Arbin BT200电池试验系统对三星INR 18650-20R电池进行测试。具体电池参数如表3所示。
表3 电池主要参数
试验采集的数据为锂电池的电压、电流、电荷以及采样时间等。利用锂电池试验数据,使用安时积分法得到电池的SOC数据。
首先,使用锂离子电池动态应力测试(Dynamic stress test,DST)工况进行测试,该工况是由美国先进电池协会设计,是模拟电动汽车最常用、最具有代表性的试验工况之一,其电压电流曲线如图4所示。
图4 DST工况电压电流曲线
本文选择训练数据500组,验证数据500组,验证数据和训练数据均在时间上均匀取样。将RNN算法、GA-RNN算法和ACGA-RNN联合算法的预测结果进行对比,结果如图5和表4所示。
表4 DST工况SOC估计结果
图5 DST工况测试结果
图5所示SOC误差值为误差的绝对值。由图5和表4可以看出,经遗传算法优化之后,RNN算法的SOC估计精度得到了有效提高,方均根误差与平均绝对误差相较于传统RNN降低了1%以上。相对于GA-RNN算法,改良后的ACGA-RNN联合算法的SOC估计误差得到了进一步降低,方均根误差与平均绝对误差分别由3.45%、2.49%降至1.98%、1.48%。由此可以看出,ACGA-RNN联合算法在锂电池SOC值估计上比传统的RNN算法与GA-RNN算法更具准确性。表4还给出了估计模型训练完成后实际运行中估计一次SOC的时间。由表4可以看出,所提联合算法的估计时间为47 μs。国家标准对电池管理系统(Battery management system,BMS)的测试中[29],测试采样的时间间隔为1 s,因此所提出方法在时效方面完全可以满足电动汽车SOC估计的需求。另外,所比较的三种方法估计时间相近,这是因为基于三种方法训练出的模型结构相同、参数大小不同,最终使得估计时间上有略微差异。
5.2 BJDST工况测试结果
由于实际运行中锂电池充放电工况并不单一,因此,测试锂电池的SOC估计算法在锂电池处于不同运行工况下的鲁棒性能十分重要。鲁棒性良好的神经网络可以运用于各种工况的SOC估计,实现SOC估计的实时在线运行。
本文选择北京动态应力测试(BJDST)工况来进行神经网络鲁棒性的测试。该工况模拟了北京奥运会纯电动公交车90路的运行状况。因此,该工况作为锂电池实际运行的工况,可以有效地检验锂离子电池SOC估计的准确度。本节中测试数据采用美国马里兰大学锂电池的试验数据[28],试验中通过Arbin BT200电池试验系统对三星INR 18650-20R电池进行测试。BJDST工况的电压电流曲线如图6所示。
图6 DST工况电压电流曲线
本次神经网络使用DST数据训练网络,使用BJDST工况500组数据验证SOC估计结果。测试结果如图7和表5所示。
图7 BJDST工况测试结果
表5 BJDST工况SOC估计结果
图7所示误差为误差值的绝对值。从图7和表5可以看出,在BJDST测试工况下,各测试算法的SOC估计误差稍微增大,但比较来说ACGA-RNN联合算法依然表现出了最优的估计精度,说明了ACGA-RNN联合算法对锂电池SOC估计具有良好的鲁棒性和适应性。
5.3 不同温度测试结果
由于锂电池的实际工作温度处于不断变化中,测试所提ACGA-RNN联合算法对不同温度下锂离子电池SOC估计的适应性能也尤为重要。为此,本节利用25 ℃下的DST数据训练网络,并使用45 ℃和0 ℃下的DST数据验证训练好的网络。本节中测试数据采用美国马里兰大学锂电池的试验数据[28],试验中通过Arbin BT200电池试验系统对三星INR 18650-20R电池进行测试。0 ℃、25 ℃、45 ℃下的电压数据如图8所示。不同温度条件下的测试结果如图9和表6所示。
图8 DST工况不同温度下电压曲线
图9 不同温度测试结果
表6 不同温度下SOC估计结果
图9所示误差值为误差的绝对值。从图9和表6可以看出,ACGA-RNN在45 ℃和0 ℃的DST测试工况下,SOC估计值的RMSE和MAE分别达到了2.12%、1.72%和2.23%、2.05%,虽然比25 ℃测试工况下的估计误差稍微增加,但是ACGA-RNN估计精度依然良好,远低于国家标准中SOC估计误差上限5%的要求[29],说明ACGA-RNN联合算法具有良好的延展性,对SOC估计在不同的温度下具有良好的鲁棒性和稳定性。
6 结论
本文提出了自适应灾变遗传-循环神经网络联合算法,实现了在复杂运行工况下对锂电池SOC值的精确估计,主要结论如下所示。
(1) 提出了自适应灾变遗传算法,提高了经典遗传算法的寻优精度,并将自适应灾变遗传算法和RNN联合构成ACGA-RNN联合算法,用于估计锂电池SOC,可有效提升SOC估计精度。
(2) 根据测试结果可知,在DST工况与BJDST工况下,ACGA-RNN联合算法的估计平均绝对误差均小于RNN算法和GA-RNN算法的估计平均绝对误差,验证了ACGA-RNN联合算法较传统方法有着更好的性能。
(3) 在不同温度的测试下,ACGA-RNN联合算法在锂电池SOC估计方面依然表现出良好的稳定性。
所提出的ACGA-RNN联合算法需要对三个矩阵进行乘法运算,过程中所涉及的运算量较大。未来工作主要在于优化神经网络的结构,减少矩阵的维度和乘法数量,从而提高算法的运算效率。