郑永飞 文怀兴* 韩 昉 杨 鑫 张 晶
1(陕西科技大学机电工程学院 陕西 西安 710021)2(西安冠通数源电子有限公司 陕西 西安 710065)3(西安应用光学研究所 陕西 西安 710065)
动力电池作为电动汽车的关键部件,承担着车辆运行过程中能量存储和释放的重任。荷电状态SOC是车载电池管理系统中的一个重要监测参数,对其精确估算可避免电池产生过充过放现象,提高电池的使用寿命和效率[1],同时也可以给整车控制器提供参考,以便合理分配能量[2]。SOC数值无法通过直接测量的方法获得[3],只能间接通过对电池的特征参数进行分析处理来获得,但电池在使用过程中的温度、电压、电流、内阻等特征参数具有高度的非线性特性,使得准确估算SOC具有较大的难度。
现阶段成熟使用的方法主要是通过检测电池特征参数如电压、电流、内阻、充放电倍率等[4-8],并以此建立模型进行SOC估算,估算精度的高低在很大程度上取决于建立的模型精度,并且使用传统的数学方法建立电池模型非常困难,可靠性较低[9]。
神经网络能够逼近任何非线性,具有强大的处理非线性的能力,能够快速、高精度地估算电池SOC[10]。但传统的BP算法容易陷入局部最小点而不是全局最小点[11],且在实际使用中容易产生梯度消失和爆炸等问题,同时不能够很好地利用电池特征参数在时间序列上变化前后之间的关系,存在一定的局限性。LSTM是一种递归神经网络,属于深度学习范畴,对于处理时间序列数据具有强大的建模和分析能力,可用来处理与时间序列高度相关的问题[12]。
针对动力电池SOC的长期依赖及时间序列的特性,本文设计了一种基于LSTM神经网络的预测模型,并在MATLAB中搭建LSTM网络进行仿真验证。该方法能够有效解决传统神经网络容易陷入局部最小值以及梯度消失、爆炸等问题,并与BP、PSO-BP等现有算法进行了比较分析,验证了本方法的适用性和估算精度。
BP神经网络具有较强的学习能力和非线性逼近能力,但也存在缺陷,如在训练过程中容易产生过拟合以及陷入局部最小值等现象。此外,使用前馈神经网络进行预测时,没有对历史信息进行记忆和使用,未能解决时间序列数据所具有的长期依赖特性以及上下文相关联的问题。
随着神经网络不断发展,形成了循环神经网络(Recurrent Neural Network,RNN)。RNN内部含有循环结构,这种结构使得上一时刻隐藏层的状态数据和当前时刻输入的数据共同形成新的输入数据,结构原理如图1所示。RNN可以保存历史信息并将其运用到当前的预测任务上,并随着新数据的输入而一直更新,能较好地解决时间序列的长期依赖问题。然而RNN在实际使用中,梯度爆炸或消失现象时有发生,从而影响了RNN预测的精度。
图1 RNN结构原理图
为了解决上述RNN的问题,在RNN神经网络的隐藏层引入LSTM细胞结构单元取代原来的隐藏层单元,形成LSTM神经网络模型,结构如图2所示。细胞状态贯穿于整个网络,是LSTM的核心,在工作过程中只需进行少量的线性计算,就可以在长期的传播过程中使梯度信息保持稳定。
图2 LSTM神经网络结构原理图
LSTM网络具有三种门结构,分别是输入门、遗忘门和输出门,这些门通常由一个Sigmoid神经网络层和逐点乘积操作组成,用来处理细胞状态中的信息。其中删除不需要的历史信息由遗忘门完成,当前输入数据对记忆单元状态的影响由输入门决定,输出信息由输出门决定。当打开门时(Sigmod输出为1时),可以通过一切信息;当关上门时(Sigmod输出为0),拒绝一切信息通过。LSTM通过增加以上三种门限,使得自循环的权重始终处于动态变化,可保证模型参数在不变的条件下,不同时刻的积分尺度发生动态改变,从而解决RNN存在的梯度问题。
以下公式中,tanh、σ表示激活函数,t时刻对应的输入门、遗忘门、输出门三种门结构和细胞状态分别由it、ft、ot和ct表示,对应的权值矩阵分别由Wi、Wf、Wo和Wc表示,各门状态的偏置分别由bi、bf、bo和bc表示。
(1) 由遗忘门的Sigmoid层决定,对细胞状态中的部分信息进行遗忘。以上一层的输出数据ht-1和此刻的输入数据xt作为新的输入,得到细胞状态在t-1时刻的输出:
it=σ(Wiht-1+Wixt+bi)
(1)
(2) 将信息存储在细胞状态中,主要由以下步骤完成:首先把输入门中Sigmoid层的结果it作为将更新的信息;接着由tanh层创建新向量ct并增加到细胞状态中;最后将ft与旧的细胞状态ct-1相乘完成信息遗忘功能,并加上候选信息itct的值,使细胞状态更新。
ft=σ(Wfht-1+Wfxt+bf)
(2)
ct=ftct-1+ittanh(Wcht-1+Wcxt+bc)
(3)
(3) 使用Sigmoid层对细胞状态进行处理,选择要输出的部分信息,再用tanh进行处理,将得到的两部分信息相乘便可得到输出值。
ot=σ(Woht-1+Woxt+bo)
(4)
由上可得t时刻LSTM的输出信号为:
ht=ottanh(ct)
(5)
电动汽车在实际的行驶过程中会面临各种不同的工况,同时还存在着各种不确定因素,因此在搭建预测模型前训练特征的提取非常关键,在能够较好地反映动力电池实际工作状态的同时数据还要易于获得。电池内部各种参数如内阻、电解溶液浓度变化等的测量往往需要建立精确的模型或者使用大型仪器才能测得,且需要在静态时才可以获得,不适用于实际工作条件。而电池在工作过程中的电压、电流、温度等参数,借助于电池管理系统,可以获得较为精确的数值,且这些参数可直接体现电池的工作状态,在SOC估算中能够起到重要作用,因此本文选择电压、电流、温度作为模型的输入特征,以增强算法的适用性和实用性。
本文建立的基于LSTM动力电池SOC预测模型主要由输入层、隐藏层和输出层组成,基本结构如图3所示,其中X表示输入特征,Y表示输出特征。
图3 基于LSTM的动力电池SOC预测模型
输入层主要实现数据预处理、数据集划分等;在输出层中,使用训练好的LSTM模型计算预测获得的输出数据,并对预测得到的数据进行反标准化等处理。在时间维度方向上,LSTM模型所包含的隐藏层展开即可形成深度学习网络,自动挖掘SOC的数值变化趋势与这些影响因素之间的内在关系,实现动力电池SOC的预测。
选用32650磷酸铁锂动力电池进行倍率放电实验,额定容量为6 Ah,标称电压为3.2 V,终止充电电压为3.65 V,终止放电压为2.5 V。充电过程中首先使用恒流0.5 C开始充电,当电池两端电压达到3.65 V时,变为恒压继续充电,电流逐渐变小到20 mA时,整个充电过程结束。放电过程分别以0.2、0.5、1、2、3 C进行,直到电池电压下降到2.5 V时结束放电过程。循环进行以上实验,并定期记录电池的电压、电流、温度、能量、功率等参数,图4为不同倍率下的放电容量变化。根据实验获得的数据,选取2 290组作为本文的实验数据,其中1 990组为训练数据,300组为测试数据,根据以上数据在MATLAB 2018a中搭建模型进行实验验证。
图4 不同倍率下的放电实验
根据建立的LSTM模型,在MATLAB中进行仿真验证。通过多次实验,本文最终将隐藏层设置为150层,每层的隐藏节点设置为128个,训练次数设置为2 500次,学习率设置为0.01,将dropout设置为0.5用来抑制过拟合,优化方法采用Adam,参数设置完成后,进行模型训练。训练结束后,利用训练好的LSTM深度神经网络模型,输入测试样本进行SOC预测。
在MATLAB中编写程序进行实验验证。将预测得到的SOC曲线和对应的参考值曲线进行比较,并作出误差曲线图,分析LSTM神经网络的预测精度和收敛情况,实验结果如图5、图6所示。由图5可见,本文设计的LSTM神经网络模型表现出了较好的预测性能以及适用性,能够很好地预测SOC的变化趋势。
图5 LSTM模型预测结果比较
由图6可知,LSTM模型预测误差整体保持在2%以内,且误差变化主要集中在1.5%以内,表现出了较高的预测精度,可以很好地满足SOC的估算要求。
图6 误差变化曲线
为了进一步体现本文方法的优越性能,在MATLAB中分别搭建BP、PSO-BP算法模型,将各种算法的预测结果与误差进行比较分析,选择均方根误差(RMSE)、平均绝对误差(MAE)和平均绝对百分比误差(MAPE)作为模型精度度量标准。计算公式如下:
(6)
(7)
(8)
式中:Xt和Yt分别表示t时刻电池SOC的观测值和模型预测的输出值;N为预测样本数。RMSE、MAE、MAPE值越小则表示模型精度越高,适用性越好。
预测结果如图7、图8和表1所示。由图7、图8可知,本文设计的LSTM预测模型明显较其他几种算法性能更加优越,预测效果更好,精度更高。从表1可以看出,本文方法误差更小,性能更优。
图7 不同算法的SOC预测结果比较
图8 不同算法的SOC预测误差比较
表1 不同算法的预测性能比较
预测算法RSMEMAEMAPELSTM0.008 400.008 1220.016 760PSO-BP0.037 160.036 3090.079 465BP0.040 000.039 2930.084 094
本文将深度学习应用于SOC的估算中,针对传统的神经网络算法无法较好利用历史信息,难以实现信息的长期记忆传输等问题,利用深度神经网络LSTM优越的时间序列数据处理能力,提出了一种动力电池SOC预测方法。将易于获得参考值的电池外特征参数如电压、电流等作为训练输入,降低了预测过程中电池参数的获取难度,增强了实际可操作性。由实验验证以及与其他算法的比较可知,本文设计的LSTM预测模型结构简单,性能优越,预测误差保持在2%以内,能够较好地完成SOC的估算。