一种数据驱动的梯次电池SOC预测方法与流程

文档序号:21844982发布日期:2020-08-14 16:57阅读:438来源:国知局
一种数据驱动的梯次电池SOC预测方法与流程

本发明涉及电池的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)

激励函数选为

作为网络的输入,作为lstm模块的输入,取作为输出,wi、wf、wg、wo、ri、rf、rg、ro、bi、bf、bg、bo均为模型中的参变量,其中n为输入参量的个数,n为网络中lstm模块的个数;ikτfkτgkτokτ为模型中的运算公式。

所述步骤s4中带有一阶动量的最速下降法为sgdm方法,以w表示lstm网络中的参数,将参数修正的法则表示为:

其中jc为雅可比矩阵,μ为正常数,i为单位矩阵,e为网络输出样本数据之间的误差。

所述步骤s5中的当检测指标符合时,具体为检测指标:

其中,mi:输入神经网络的测试集序列的长度;mt:选取用来作为测试集的样本个数;jt:检测的性能指标,下表t为target的含义;训练好的lstm神经网络,在采用第i个子集的输入样本时,得到的网络输出;数据集中,第i个子集的输出样本在kτ的值;ε:工程师设定的指标,表征网络输出,和采样数据的接近程度,ε越小,表示对性能要求越高。

所述步骤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均为模型中的参变量,是要通过数据,训练得到的;将作为网络的输入,作为lstm模块的输入,取作为输出,其中n为输入参量的个数,n为网络中lstm模块的个数;在实施例中,选取n=30,n=150;激励函数选为

步骤s3:将原始数据集x分成训练子集x1,验证子集x2,测试子集x3。其中,训练子集用于修正lstm人工神经网络参数,验证子集用于在训练过程中,实时地检测损失函数是否单调递减,若损失函数增加,则本次训练停止,进入下一次训练。测试子集x3用于验证训练好的网络参数是否满足工程精度要求。

步骤s4:根据x1、x2和带有一阶动量的最速下降法,反复修正lstm人工神经网络的参数。在本发明中,采用带有一阶动量的最速下降法(sgdm方法)。以w表示lstm网络中的参数,将参数修正的法则一般性地表示为

其中jc为雅可比矩阵,μ为正常数,i为单位矩阵,e为网络输出样本数据之间的误差。

步骤s5:运用检测数据集,验证lstm人工神经网络的逼近效果;设定要求的逼近精度ε,当检测指标时,进入步骤1.6;否则,转回步骤1.2。

mi:输入神经网络的测试集序列的长度;mt:选取用来作为测试集的样本个数;jt:检测的性能指标,下表t为target的含义;训练好的lstm神经网络,在采用第i个子集的输入样本时,得到的网络输出;数据集中,第i个子集的输出样本在kτ的值;ε:工程师设定的指标,表征网络输出,和采样数据的接近程度,ε越小,表示对性能要求越高。

步骤s6:将benchmark参数集合植入电池能量管理系统的储存器当中;

benchmark参数由独立、均匀分布的离线数据得到,作为基准参数;在数据满足独立分布的前提下,得到的lstm网络参数遍布所有状态下的估计。

步骤s7:获取梯次电池的测试数据,将数据输入步骤s1中训练好的lstm人工神经网络中,并不断测试在线数据,对网络参数进行实时修正。

运行电池,并实时测量电池的电压、电流、环境温度,并将这些参数输入到lstm人工神经网络当中,得到电池soc的新估计与预测。在电池的运行过程中,将实时测量的数据更新到数据缓冲区中。当将数据缓冲区的数据加入数据集,并且丢弃距离当前时刻最远时间的相同数量数据时,数据集的分布仍满足独立、均匀的假设时,更新数据集x,保持数据集x的容量为一常值,并根据更新后的数据集,重新修正lstm人工神经网络的参数,保证在线修正的参数的有效性与benchmark参数一致。

上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1