本发明涉及电池的soc预测领域,特别是指一种数据驱动的梯次电池soc预测方法。
背景技术:
目前,关于电池soc估计的方法各有优缺点,其中kalman滤波法将电池看成一个开环系统,对电池的soc变化用线性差分方程进行描述。近年来,一些学者也尝试用人工智能的方法(比如神经网络方法)去进行soc估计,但是(1)kalman滤波方法的缺点:kalman滤波方法虽然考虑了噪声给电池状态估计带来的影响,但是,一方面,电池的噪声序列并不满足白噪声的假设;二方面,为了保证参数辨识时的收敛性,该方法采用线性模型对电池的动态特性进行建模,带来先天的模型误差。如果将模型描述为非线性模型,则很难保证参数辨识的收敛性。
(2)传统神经网络方法的缺点:过去采用反向传播神经网络作电池的soc估计,只能建立各种电池参数和环境参数对于电池soc的静态关系,然而,对于soc随时间和电池状态等因素不能很好地描述。若简单修改bp神经网络的结构,引入递归的回路,设计递归神经网络去学习时序数据的规律,由于层数浅又存在递归环节,往往需要通过很多次的尝试才能找到比较好的参数。
综上所述,现有的电池soc状态估计方法,缺点主要有:
(1)模型的结构过于简单,不能很好地逼近实际的动态。无论是kalman滤波技术,还是传统的bp神经网络技术,其构造的数据驱动模型,本身比较简单(线型系统模型或者是简单的三层神经元逼近结构),这导致了在数据驱动的过程中,由于模型本身的结构性缺陷,即便找到最优的参数逼近实际系统,其误差上界也会比较大。
(2)未考虑环境因素和电池内部因素给模型参数辨识带来的偏差;事实上,电池的kalman滤波辨识方法,和bp神经网络,均要求外部噪声为零均值噪声且对方差要求很小,在噪声幅值大的环境中效果不好。
(3)未考虑电池的soc变化规律将随着电池使用的时间变长而发生变化。kalman滤波方法和bp神经网络方法的参数修正,一般采用批量修正的方法,一旦电池的寿命衰减,soc的变化规律发生变化,要重新建立数据驱动模型。
技术实现要素:
本发明的主要目的在于克服现有技术中的上述缺陷,提出一种数据驱动的梯次电池soc预测方法,旨在从单体电池或电池组的一系列数据,得到电池的soc变化规律,选取lstm人工神经网络对电池的状态进行预测或估计,电池的历史数据会被采集到数据库中,然后根据一定的参数优化方法,修正lstm人工神经网络中的参数,使得神经网络逼近的函数关系更加接近于电池真实的soc损耗规律,从而更精确地估计电池的soc状态。
本发明采用如下技术方案:
一种数据驱动的梯次电池soc预测方法,具体步骤如下:
步骤s1:离线采集梯次电池的物理参数,形成梯次电池的原始数据集x;
步骤s2:确定lstm人工神经网络的超参数;
步骤s3:将原始数据集x分成训练子集x1,验证子集x2,测试子集x3,训练子集用于修正lstm人工神经网络参数,验证子集用于在训练过程中,实时检测损失函数是否单调递减,若损失函数增加,则本次训练停止,进入下一次训练,测试子集x3用于验证训练好的网络参数是否满足工程精度要求;
步骤s4:根据训练子集x1、验证子集x2和带有一阶动量的最速下降法,反复修正lstm人工神经网络的参数;
步骤s5:运用测试子集x3,验证lstm人工神经网络的逼近效果,设定要求的逼近精度ε,当检测指标符合时,进入步骤6;否则,转回步骤2。
步骤s6:将benchmark参数集合植入电池能量管理系统的储存器当中;
步骤s7:获取梯次电池的测试数据,将所述测试数据输入步骤s1中训练好的lstm人工神经网络中,得到梯次电池soc的预测。并不断测试在线数据,对网络参数进行实时修正。
所述步骤s1中,梯次电池的物理参数包括梯次电池的电压、电流、温度、功率。
所述步骤s1中,梯次电池的原始数据集x通过电池测试仪采集得到,具体采集步骤为:
步骤s11.在电池测试仪中设定充放电截止soc;
步骤s12.采集电池的电压、电流、温度、功率和仪器的温度的数据;
步骤s13.电池充放电达到soc设定值,完成一次数据采集;
步骤s14.重复前面三步,得到多组数据,数据集x={x(1),x(2),…,x(m)},其中m为数据的总组数,其中第i组数据包含从开始采集时到结束采集时的1hz采样数据和soc推算值,记为
其中每一个采样时刻的采样数据由电压、电流、温度、功率,即:
所述步骤s2中,确定lstm人工神经网络的超参数,具体包括:lstm模块的个数,非线性层的神经元个数,激励函数的形式。
所述步骤s2中,lstm人工神经网络的输入层和输出层的映射关系为:
ikτ=σg(wixkτ+rih(k-1)τ+bi)
fkτ=σg(wfxkτ+rfh(k-1)τ+bf)
gkτ=σc(wgxkτ+rgh(k-1)τ+bg)
okτ=σg(woxkτ+roh(k-1)τ+bo)
激励函数选为
将
所述步骤s4中带有一阶动量的最速下降法为sgdm方法,以w表示lstm网络中的参数,将参数修正的法则表示为:
其中jc为雅可比矩阵,μ为正常数,i为单位矩阵,e为网络输出样本数据之间的误差。
所述步骤s5中的当检测指标符合时,具体为检测指标:
其中,mi:输入神经网络的测试集序列的长度;mt:选取用来作为测试集的样本个数;jt:检测的性能指标,下表t为target的含义;
所述步骤s7中,还包括:将实时获取的梯次电池的测试数据更新数据集x,并根据更新后的数据集,重新修正lstm人工神经网络的参数。
由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
一方面,本发明从描述电池动态的数学模型的结构入手,选取lstm网络作为建模的工具,去更精确地估计电池的soc状态。另一方面,本发明在考虑模型复杂性的同时,考虑了电池动态模型参数辨识的可行性和有效性,通过设计lstm网络的长度,使得网络参数修正时更多地学习到系统的噪声,间接抵消了噪声带来的干扰;同时,本发明的在线参数修正机制,通过保持数据的分布规律,在线参数修正的过程中,最大限度保证了电池模型中参数的有效性。
附图说明
图1为lstm人工神经网络模型;
图2为lstm模块的结构图。
具体实施方式
以下通过具体实施方式对本发明作进一步的描述。
步骤s1:离线收集梯次电池的数据集,通过离线数据训练lstm人工神经网络参数,离线采集电池的电压、电流、温度、功率随时间变化的数据,形成原始数据集x。
采用离线的方法,预先采集电池的运行轨迹数据,其目的在于,通过离线采集数据,使得数据满足独立、均匀分布的假设,为后续找到神经网络的最优值做准备;
电池的原始数据集可通过电池测试仪采集得到。其采集过程为:
步骤s11.在电池测试仪中设定充放电截止soc,该容量可以随机选取(但应保证电池不会过充过放);
步骤s12.开始采样,以1min的采样时间采集电池的电压、电流、温度、功率和仪器的温度的数据;
步骤s13.电池充放电达到soc设定值,完成一次数据采集;
步骤s14.重复前面三步,得到多组数据。由步骤1中可得到:数据集x={x(1),x(2),…,x(m)},其中m为数据的总组数,其中第i组数据的包含从开始采集时到结束采集时的1hz采样数据和soc推算值,记为
其中每一个采样时刻的采样数据由电压、电流、温度、功率,即:
步骤2:确定lstm人工神经网络模型的超参数。包括lstm模块的个数,非线性层的神经元个数,及其激励函数的形式等,如图1为lstm人工神经网络模型;lstm模块的结构如下图2所示:其中;
ct-1和ht-1是源自于上一个lstm模块的输入,ct和ht是源自于当前lstm模块的输出,也作为下一个神经网络的输入。图中的圆圈,表示一个“门”,所谓的“门”,就是某一种运算,其中运算的公式,就是表示输入层和输出层的映射关系,ikτfkτgkτokτ为模型中的运算公式,如fkτ表示圈圈f的运算公式;
其中输入层和输出层的映射关系为:
ikτ=σg(wixkτ+rih(k-1)τ+bi)
fkτ=σg(wfxkτ+rfh(k-1)τ+bf)
gkτ=σc(wgxkτ+rgh(k-1)τ+bg)
okτ=σg(woxkτ+roh(k-1)τ+bo)
当然,每一个运算公式,里面的变量,分两部分,一部分是自变量,一部分是参变量自变量,xkτ、h(k-1)τ为自变量,是从输入样本或者上一个lstm模块的输出传递过来的参变量:wi、wf、wg、wo、ri、rf、rg、ro、bi、bf、bg、bo均为模型中的参变量,是要通过数据,训练得到的;将
步骤s3:将原始数据集x分成训练子集x1,验证子集x2,测试子集x3。其中,训练子集用于修正lstm人工神经网络参数,验证子集用于在训练过程中,实时地检测损失函数是否单调递减,若损失函数增加,则本次训练停止,进入下一次训练。测试子集x3用于验证训练好的网络参数是否满足工程精度要求。
步骤s4:根据x1、x2和带有一阶动量的最速下降法,反复修正lstm人工神经网络的参数。在本发明中,采用带有一阶动量的最速下降法(sgdm方法)。以w表示lstm网络中的参数,将参数修正的法则一般性地表示为
其中jc为雅可比矩阵,μ为正常数,i为单位矩阵,e为网络输出样本数据之间的误差。
步骤s5:运用检测数据集,验证lstm人工神经网络的逼近效果;设定要求的逼近精度ε,当检测指标
mi:输入神经网络的测试集序列的长度;mt:选取用来作为测试集的样本个数;jt:检测的性能指标,下表t为target的含义;
步骤s6:将benchmark参数集合植入电池能量管理系统的储存器当中;
benchmark参数由独立、均匀分布的离线数据得到,作为基准参数;在数据满足独立分布的前提下,得到的lstm网络参数遍布所有状态下的估计。
步骤s7:获取梯次电池的测试数据,将数据输入步骤s1中训练好的lstm人工神经网络中,并不断测试在线数据,对网络参数进行实时修正。
运行电池,并实时测量电池的电压、电流、环境温度,并将这些参数输入到lstm人工神经网络当中,得到电池soc的新估计与预测。在电池的运行过程中,将实时测量的数据更新到数据缓冲区中。当将数据缓冲区的数据加入数据集,并且丢弃距离当前时刻最远时间的相同数量数据时,数据集的分布仍满足独立、均匀的假设时,更新数据集x,保持数据集x的容量为一常值,并根据更新后的数据集,重新修正lstm人工神经网络的参数,保证在线修正的参数的有效性与benchmark参数一致。
上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。