鲁 南 欧阳权 黄俍卉 王志胜
(1.南京航空航天大学自动化学院 南京 211106;2.浙江科技学院自动化与电气工程学院 杭州 310023)
锂电池具有能量密度高、体积小和自放电率低等优点,因此被广泛用于电动汽车、军事装备、航空航天及储能设备等各个领域。但是,随着充放电次数的增加,锂电池内部会发生复杂的物理化学变化,如石墨剥落、金属溶解、粘合剂分解导致活性材料无法接触等,这可能会导致电池容量的衰退[1]。当锂电池的容量衰退到标称容量的 70%~80%时,则认为锂电池不再具有良好的性能[2]。对锂电池容量的准确预测能够指导工作人员及时更换电池,降低风险与经济损失。然而,由于锂电池的容量易受环境和操作的影响,同一型号电池的容量变化趋势也存在差异,这使得预测变得困难,因此迫切需要具有高精度的电池容量预测技术。根据电池健康管理系统监测到的数据,对锂电池容量进行预测。目前,锂电池容量预测已成为研究的热点之一。
已有的锂电池容量预测方法可以分为两类:基于模型的预测方法和数据驱动的预测方法[3]。基于模型的预测方法对电池内部的复杂物理化学反应进行数学建模,从而预测电池容量。但是,这种方法需要大量的先验知识,例如电池的物理和化学原理及引起容量衰退的主要因素等,在复杂的环境下,可能难以对电池进行建模。数据驱动的预测方法直接利用电池在充放电过程中监测到的电流、电压、温度等特征数据对容量进行预测,而无需依赖电池内部复杂的衰退机理。与基于模型的预测方法相比,数据驱动的预测方法更加简单和方便。支持向量机(Support vector machine, SVM)被广泛应用于电池寿命预测中[4],方法简单且具有良好的鲁棒性。高斯过程(Gaussian process,GP)在电池容量预测中展示出优秀的性能[5],并能够给出置信区间,进一步提高可靠性。此外,神经网络可以学习历史数据之间的特征,在建模高度非线性、多维系统中表现出更为良好的性能。例如,循环神经网络(Recurrent neural network, RNN)可以捕捉前后时刻数据之间的联系,通常被用于处理时间序列问题。CHAOUI等[6]提出了基于RNN的动态模型,在预测锂电池的健康状态上体现出了良好的性能。为解决RNN梯度消失和梯度爆炸等问题,长短期记忆网络(Long short-term memory, LSTM)和门控循环单元(Gated recurrent unit, GRU)被提出。PARK等[7]提出一种基于多通道LSTM的预测方法,对历史电流、电压等数据进行多次采样,预测未来电池剩余使用寿命。CUI等[8]提出基于时序注意力机制的GRU模型,从电池电流和电压曲线提取特征数据,大大降低了输入数据的规模,但其只适用于单步预测,难以为更换电池提供时间裕量。此外,多个基于LSTM的深度学习模型已被提出。YOU等[9]提出一种Deep LSTM模型,使用多个 LSTM 堆叠,以使模型获得更强的学习能力。REN等[10]提出一种基于改进卷积神经网络(Convolutional neural network, CNN)和LSTM的剩余寿命预测方法,使用自动编码器来增加数据的维度,以便更有效地训练CNN和LSTM。然而,这些模型无法关注输入中对结果影响较大的部分。除此之外,单任务模式限制了这些模型的性能,可能会导致预测的准确性不足。
针对这一问题,本文提出将注意力机制与多任务学习应用于模型中,以提高模型的准确性。
目前,许多研究者提出将注意力机制应用于神经网络算法中,以提高模型的性能。神经网络通常会接收和处理大量的信息,而这些信息中可能只有一部分是对结果有较大影响的。注意力机制则是让神经网络模型具有筛选输入的能力,即为输入的信息分配注意力权值,让模型关注对结果影响较大的部分。早期的注意力机制常被用于自然语言处理(Natural language processing, NLP)领域。BAHDANAU[11]等提出一种应用于翻译的注意力机制,在翻译中当模型生成一个单词时,这个模型会计算源句中与其最相关的部分,然后模型根据这些相关信息及之前生成的目标词来生成新的目标词。但这种注意力机制依赖编码器-解码器结构,且需要给定搜索向量,模型才能计算注意力权值。RAFFEL等[12]对此进行简化,提出一种前馈注意力机制(Feed-forward attention),允许模型仅基于输入值生成注意力权值。
本文基于这种简化后的注意力机制,设计一种可训练的注意力权重计算函数,将其用于时间序列预测模型中。
对于目前大多数基于神经网络的电池容量预测模型,都是给定历史数据作为输入,对目标时刻进行预测,属于单任务学习。CHENG等[13]认为这类模型忽略了未来时刻预测值之间的联系,这可能会限制模型的性能。而多任务学习[14]可以将多个相关的任务放在同一个模型一起学习,从而建立多个任务之间的关联、冲突与约束关系,以提高模型的性能。因此,他们提出一种多变量的多任务深度学习框架[13],使用远近视觉对目标附近时刻进行预测,使用这些附近时刻的信息辅助预测目标时刻以提高准确度。这可以理解为,对预测目标周围的状况有良好的了解可以对预测目标产生积极的影响。本文认为该理论同样适用于电池容量预测。
目前,大多数电池容量预测方法存在以下问题:① 需要从完整的充放电电流、电压曲线中采样或提取特征作为模型的输入,在实际使用中难以实现;② 模型无法选择性地关注输入中对结果影响最大的部分,降低了模型的准确性;③ 忽略了目标附近时刻信息对预测目标时刻的辅助作用,限制了模型的性能。
为了解决这些问题,本文提出一种基于注意力机制和多任务LSTM的锂电池容量预测方法,仅使用锂电池历史容量数据训练模型。本文的创新点主要如下所述。
(1) 提出一种基于多任务学习的容量预测模型,执行多个预测任务,使用辅助预测任务来提高主预测任务的准确性。
(2) 提出一种基于时间步的自注意力机制,将其与LSTM模型结合,让模型关注LSTM输出中与对结果影响较大的部分,提高模型的性能。
(3) 使用提出的模型对NASA电池数据库中的三个电池进行容量预测。验证结果表明,与传统模型相比,文本提出的模型预测准确度更高。
本文使用 NASA艾姆斯卓越预测中心数据储存库锂电池数据集[15]中的三个电池来验证模型的性能。三个电池的容量变化曲线如图1所示。数据集中包含常温下电池在三种状态(充电、放电、阻抗)下的数据。在充电过程中,电池首先以1.5 A的恒定电流进行充电,直到电压上升至4.2 V,然后进入恒压充电阶段,直到电流下降至20 mA。放电过程中,电池以2 A的恒定电流进行放电,当电池 B0005、B0007、B0018的电压分别下降至2.7 V、2.5 V、2.5 V时,放电停止。
图1 电池容量衰退曲线
反复充放电可以导致电池老化,使电池性能衰退。然而,电池的容量衰退通常伴随着容量再生现象,这是由于电池停止工作期间活性物质存在再平衡[16],从而增加了下一个循环的可用容量。容量再生现象使得容量衰退曲线变得非线性,这为准确预测电池容量带来极大的挑战,因此,电池容量预测对模型的性能要求较高。
本文模型需要完成的主要任务是实现在线容量预测,即根据已采集的历史容量数据,预测未来一段时间间隔的容量值,可以表示为
式中,w表示滑动窗口宽度;P表示预测时间间隔;f(·)表示本文提出的预测模型。
针对传统容量预测方法的不足,本文提出一种基于注意力机制和多任务LSTM的容量预测模型。
首先,为降低单任务模式对性能的限制,提高预测准确度,本文使用多任务 LSTM(Multi-task LSTM, MT-LSTM)作为模型的主框架,实现未来信息的互补。传统的循环神经网络模型只执行一个预测任务,即只预测Dk+w+p-1。不同于传统的循环神经网络模型,本文提出的模型考虑未来多个时刻信息之间的联系,因此将执行三个预测任务,即同时预测Dk+w+p-2、Dk+w+p-1和Dk+w+p+1,如图2所示。其中,预测Dk+w+p-1为主任务;预测Dk+w+p-2和Dk+w+p+1则为辅助任务,被用来为主任务提供相关的信息,提高主任务的准确度。
图2 本文提出的MT-LSTM结构
本文提出的 MT-LSTM 采用硬参数共享方式[17],包含共享层(Shared layer)和特有层(Specific layer)两个部分。共享层包含了一个LSTM层,它被用来处理原始输入序列,其参数被所有任务共享。在反向传播过程中,所有任务都参与该层参数更新,因此能够建立各任务之间的关联、约束与冲突关系。经过共享层处理后的数据将会送入各任务的私有模块中,即特有层。特有层的功能是基于共享层提取出的通用特征执行单独的预测任务。解释水平理论认为[18],人们倾向于用更抽象的特征来表征心理距离较远的事物。本文中各预测任务基于同一输入序列,且预测时刻与输入序列的时间间隔不同。因此,基于解释水平理论,使用一维卷积层提取不同抽象程度的特征。这些特征之后将会被分别送往私有LSTM层中,经计算得出预测结果。
此外,为了使所提模型关注对结果影响较大的隐藏状态,本文使用一种基于时间步的注意力机制。本文的容量预测基于滑动窗口采样实现,因此预测结果取决于滑动窗口对应的隐藏状态。但是 LSTM各时刻输出的隐藏状态对结果影响程度不同,让模型关注这些影响程度大的隐藏状态,有利于减少分心问题并提高准确度。为了量化这种影响程度,本文使用注意力层计算各时刻隐藏状态的注意力权值,最终将其加权求和得到结果向量,基于结果向量得到最终预测值。因此,模型会更关注意力权重大的时刻。模型的具体内容将会在本节后续内容中给出。
由于电池容量衰退占据容量变化趋势的主导地位,训练集与测试集中容量数据的规模会有较大差别,这会导致模型无法进行准确的预测。因此,本文采用一种简单的归一化方法,将数据大致限制在同一规模,降低模型对数据的敏感程度。将每个滑动窗口中的容量值[Ck,Ck+1,… ,Ck+w-1]除以上一个循环的容量值Ck-1,预测任务改变为
LSTM是一种特殊的RNN模型,它能够很好地刻画具有时间关联的序列[19]。本文的模型包含多个LSTM,共享层的LSTM被用来提取原始时间序列的特征。特有层的LSTM被用来处理上一层神经网络的输出序列,提取与预测结果相关的特征。
LSTM使用多个门控函数来决定需要忘记的信息、需要记住的信息和需要输出的信息,从而可以选择性地传输信息。LSTM 主要包含三个门结构:遗忘门、记忆门和输出门,各门之间进行交互,提高LSTM模型的信息分析能力。LSTM的细胞结构如图3所示。
图3 LSTM细胞结构
设ck表示k时刻的细胞状态,xk表示k时刻的输入数据,hk表示k时刻输出的隐藏状态。k时刻的 LSTM 细胞将接收三种输入信息:ck-1、hk-1和xk。xk这些输入信息将首先被送往遗忘门和记忆门进行处理。遗忘门被用来忘记信息,它决定了ck-1中哪些信息将被遗忘。记忆门则用来筛选hk-1和xk中需要保留的信息。遗忘门和记忆门的计算过程可以表示为
信息经遗忘门和记忆门处理后,k时刻的细胞状态ck将随之更新
最后,输出门将hk-1、xk和ck的信息进行整合,生成输出信号
根据解释水平理论,本文模型执行各预测任务时需要基于不同抽象程度的特征。一维卷积神经网络(1D CNN)是一种包含卷积计算的神经网络[20]。它可以捕获输入数据中与目标最相关的特征,从而降低输入数据中的噪声。本文使用多个一维卷积层来学习共享层LSTM的输出序列,并将其转换为不同抽象程度的特征序列。深层的卷积层接收上一卷积层提取到的特征作为输入,因此提取出的特征更为抽象,被用于与历史容量数据间隔较远的预测任务。
卷积层的核心思想是通过卷积核的卷积操作学习输入序列的特征。设某时刻从上一层神经网络输入到卷积层的隐藏状态为
设置一系列卷积核为
卷积操作可以将输入序列映射至输出空间U∈ Rw×m,其中,s表示卷积核的大小;n表示卷积核的维度,与输入序列的维度相等;m表示卷积核的数量。卷积过程如图4所示。
图4 卷积过程
当卷积核成功捕捉到某种特征时,将会被激活函数激活。卷积层中,使用多个卷积核并行学习,以期从多个角度捕捉特征。使用ReLU函数作为一维卷积层的激活函数。本文为一维卷积层加入 Batch Normalization[21],以提高收敛速度和防止过拟合。卷积层计算过程表示为
式中,Ri表示第i个卷积核vi经卷积操作后得到的特征向量;bi表示偏置;U表示一维卷积层的输出。
本文希望对特有层LSTM的输出进行处理,让模型更多地关注对结果影响较大的时间步。因此,本文提出一种时间步的自注意力机制,将其与LSTM 相结合。假设在当前时刻中,注意力层接收h= [hk,hk+1,… ,hk+w-1]T,hi∈R1×n作为输入,此时注意力层将会根据输入来计算出一组注意力权重αk,αk+1,… ,αk+w-1,这些注意力权重代表了各时刻隐藏状态对结果的影响大小。然后模型对输入进行加权求和得到结果向量lk。注意力层的结构如图5所示。
图5 注意力层结构
注意力层的计算过程可以表示为
式中,Wa∈Rw×n表示权重矩阵;wi,j表示矩阵Wa中的元素;b∈ Rw×n和W∈ Rw×n是可训练的参数;*表示矩阵的点乘过程;lk表示结果向量。在训练的过程中,模型自发地学习输入信息中每个元素对结果的影响大小,形成每个时刻的注意力权重。随着滑动窗口的移动,输入序列的值将发生改变,由于注意力层能够根据输入值计算注意力权重,因此模型可以更加灵活地关注输入值中的变化,例如容量再生导致的变化,预测的准确率将会提高。
为了验证本文提出模型的性能,本文使用NASA数据集中的三个电池(B0005、B0007和B0018)进行仿真试验。首先,为了验证提出的模型在容量预测任务上的性能,选择几个传统神经网络模型与本文提出的模型进行比较,分别是GRU[22-23]、LSTM[7,24]和 BP(ANN)[25-26]模型,这些模型已被许多研究证明了其良好的性能。之后,为了验证多任务模型相比单任务模型具有更好的准确性,使用两个深度学习模型与本文提出的模型进行比较,分别是 LSTM-CNN-LSTM 模型和 Deep LSTM[27]模型。这两个模型可以分别模拟本文模型单独执行主任务与辅助任务时的状态。最后,为了验证注意力机制的作用,本文比较了带有注意力机制的MT-LSTM和无注意力机制的MT-LSTM在测试集上的表现。
对于B0005和B0007,前70个循环的数据作为训练集;对于B0018,前60个循环的数据被用作训练集。训练集之后的10个循环的容量数据被用作验证集,通过评估模型在验证集上的表来选择最佳超参数。然后,本文分别对这三个电池进行容量预测,通过不同的标准来评估这些方法在测试集上的性能。使用Python编写的Tensorflow库来实现提出的模型,并在一个NvidiaGTX1080TiGPU上训练模型。试验的具体细节将在后文给出。
在神经网络中,超参数是提前设置好的,而不是通过训练得到的。数据驱动的模型通常需要选择最优超参数来优化模型性能。大的超参数搜索范围更有可能找到使模型达到最佳性能的超参数,但可能会使搜索过程变得复杂,耗费较多时间,在实际使用时不方便。为了简化搜索过程,使用网格搜索法搜索部分超参数。对于MT-LSTM、LSTM、Deep LSTM、LSTM-CNN-LSTM、GRU和ANN,本文设置隐藏状态数量为H∈{16,32,64},特别地,MT-LSTM和LSTM-CNN-LSTM的卷积核数量被设置为m∈ { 1 6,32,64}。对于模型中有多个LSTM层的模型,每个LSTM层具有相同的隐藏状态数量。对于 B0005和 B0007,滑动窗口宽度被设置为w= 1 5;对于B0006,滑动窗口宽度设置为w=10。Batch size被设置为32。Adam优化器被用来训练模型,本文使用推荐学习率Ir= 0.001。为了防止过拟合,Early Stopping被用于训练过程。
MAE被用来评估模型在验证集上的表现。MAE的计算过程如下
式中,N表示预测的总循环数;表示第i个循环时的容量预测值;Ci表示第i个循环时的容量真实值。
4.2.1 多步容量预测结果
这一部分对测试集多步预测的结果进行分析。除了上文提到的MAE之外,本文额外应用MSE来对测试集上的模型性能进行分析。相比于 MAE,MSE会更加关注预测结果中与实际差别较大的点。因此,使用MSE可以多方面地比较提出的模型和其他传统神经网络模型。MSE的计算过程如下
式中,N表示预测的总循环数;表示第i个循环时的容量预测值;Ci表示第i个循环时的容量真实值。
各模型在测试集上的MAE和MSE如表1所示。根据表1中的结果,可以看出本文所提出的模型MT-LSTM 在绝大多数情况下的预测都优于传统神经网络模型。而在MT-LSTM的表现不如其他模型的情况下,预测的误差差距也较小。图6显示了所有模型在三个电池上的预测结果。对于 B0005,所有的模型都能准确地捕捉到容量近似下降的趋势,但GRU和LSTM模型难以捕捉到容量的再生现象,因此,其预测容量曲线更加线性。而 ANN的预测结果中所含噪声较大,因此与实际容量曲线有着十分明显的区别。MT-LSTM 作为一种改良的方法,能够较好地捕捉到容量再生现象,其预测结果更加接近实际。当预测间隔为10,相比于GRU、LSTM和ANN,MT-LSTM的MAE分别下降了44.2%、56.9%和38.2%。
图6 多步容量预测结果
表1 多步容量预测结果
预测间隔增加到15时,大部分模型的预测准确度都产生了一定的下降,例如,MT-LSTM 的MAE上升了34.4%,LSTM的MAE上升了43.4%等。同时,预测的滞后现象变得更加明显。这说明随着预测间隔的增加,捕捉容量趋势变得困难,预测难度变大。但是MT-LSTM依然在大部分时候要优于其他模型,这也证明了MT-LSTM的良好性能。我们注意到传统神经网络模型在预测电池B0007的容量时,能够很好地捕捉到容量再生,这可能是由于相比其他电池,电池 B0007的容量变化更具有规律性。这可能也是导致预测间隔为 15时,部分传统神经网络模型的准确度高于MT-LSTM的原因之一。
试验中,所有模型预测电池B0018的结果都要差于其他两个电池。这是由于电池B0018的衰退趋势中伴随着大量的不规则再生现象,它们是模型在训练集中难以学习到的。因此,这些模型难以捕捉到B0018容量变化的特点。从图6中可以看出传统神经网络模型在预测B0018时结果的准确率降低很多,与实际容量变化有较大的不匹配。而这一点也可以从MSE的急剧增加中看出。与它们相比,本文提出的MT-LSTM在一定程度上可以捕捉到容量变化的特点,因此预测结果更加贴合实际。在实际预测时,为了防止因为预测误差而导致没有及时更换电池,本文在进行 RUL预测时为 EOL增加一些裕量。
4.2.2 RUL预测结果
根据容量预测结果,可以预测电池寿命在何时达到终点,以方便使用者及时更换电池。根据数据集中的数据描述,当电池的容量降至标称容量的 70%时,则可以认为电池寿命已达到终点。电池的标称容量为2 A·h,因此,寿命终点(End of life, EOL)可以被定义为
这一部分分析各模型对RUL的预测结果。为了避免因为预测误差而导致电池更换不及时,本文额外设置了0.02 A·h的裕量。因此,根据容量预测结果计算容量衰退到1.42 A·h的循环次数。ER被用来计算RUL的预测值与真实值之间的误差,它被定义为预测达到EOL的循环数与实际达到 EOL的循环数的差值。注意电池在到达 EOL之后,由于容量再生现象,容量仍有可能回到EOL之上。但是在此之后,电池在大部分时间里容量仍然是低于 EOL的。因此,本文选用首次到达EOL的循环数作为 RUL预测的依据。RUL的预测结果如表2所示。
表2 RUL预测结果
从表2中可以看出在预测RUL时,MT-LSTM预测的总体表现优于其他模型。值得关注的是,在大多数情况下,GRU、LSTM、ANN三种模型的ER为负数,且它们ER的绝对值大于MT-LSTM的ER,这说明了传统神经网络在预测时产生了十分明显的滞后现象。特别地,在预测 B0018时,这三个模型 ER的绝对值几乎都超过了 10。与之相反,这种滞后现象在MT-LSTM中得到了十分明显的改善。
为了验证多任务模式在本文所提模型中的作用,本节给出模型在多任务模式时和单任务模式时的对比结果。由图2可以看出,当模型只执行主任务或第一个辅助任务时,可以分别看成LSTM-CNN-LSTM模型和Deep LSTM模型。因此,本文使用这三种模型在测试集上的表现来验证多任务模式对模型预测准确性的提升。
由表3中结果可以看出,多任务模式在大多数情况下的准确度高于单任务模式。当模型单独执行辅助任务时,预测准确度总是较差。而当模型单独执行主任务时,在B0005和B0007上的表现总体上差别不大,但多任务模式仍在较多时候表现更好。而对于容量变化趋势难以捕捉的 B0018,多任务模式相比单任务模式的准确度有了明显的提高。从图7上可以直观地看到,MT-LSTM相比其他两个模型能够更好地预测容量衰退的趋势。
图7 B0018上多任务模式验证结果
表3 多任务模式验证结果
本节主要验证注意力机制的作用。首先选择MT-LSTM(结合注意力机制)和 MT-LSTM(无注意力机制)在验证集上分别表现最好的超参数,再额外选择两组不同的超参数,在电池B0005上比较这两种模型的性能。由网格搜索的结果可知,MT-LSTM(结合注意力机制)的最佳超参数为H=64,m=64;MT-LSTM(无注意力机制)的最佳超参数为H=16,m=16。超参数的选择及验证的结果如表4所示。从表4、图8可以得知,结合注意力机制的MT-LSTM在几乎所有超参数组合上的性能都更好。除此之外,可以发现结合注意力机制的MT-LSTM在验证集上的准确度几乎总是高于无注意力机制的 MT-LSTM。综上所述,带有注意力机制的模型具有更好的学习能力。
表4 注意力机制验证结果
图8 p=10时电池B0005上注意力机制验证结果
(1) 本文的研究结果说明了基于注意力机制与多任务LSTM的电池容量预测模型相比传统模型具有更高的预测精度。
(2) 多任务模式使得模型能够考虑目标时刻周围信息对目标时刻的辅助作用,相比传统神经网络模型具有更好的性能。
(3) 注意力机制使得模型能够为输入数据分配注意力权重,关注对结果影响较大的数据,从而提高预测的准确度。