本发明公布了一种基于分数阶神经网络和双容积卡尔曼的电池soh(健康状态)在线估计方法,属于电池健康管理领域。
背景技术:
随着国家经济的不断发展,能源、电力、交通、通信、环保等领域的现代化要求在不断提高。作为后备能源的蓄电池系统正在被大量使用,对所有不允许断电的供电电源系统来说,蓄电池组都是一个不可缺少的后备电源系统,而且,蓄电池系统在各行各业中应用越来越广泛。蓄电池运行状态是否正常,直接影响着应用领域中各种设备的正常、可靠和安全运行。因此,准确地估计蓄电池健康状态,对于避免电池过负荷工作、保障设备安全可靠运行具有重要的意义。
为了准确地估计蓄电池的健康状态,需要对电池进行建模来描述其特性。目前常用的电池模型有三类:电化学模型、等效电路模型和黑箱模型。电化学模型是基于电池内部的热力学和动力学原理来建立相关方程。该类方法的优点是可以详细地描述电池内部的电化学反应,但其模型复杂度高,计算量大。等效电路模型是借助传统的电阻、电容、恒压源等电路元件,组成电路网络来描述电池的特性。该类方法的优点是结构简单,参数少,精度较高。但是该模型的参数没有实际的物理意义,在电池状态评估时意义不明确。黑箱模型是根据输入输出关系建立起来的,反映了有关因素间的一种笼统的直接因果关系,它通过采用大量的测试数据作为训练集,来提高模型的预测精度和适应性。该类模型的优点是模型简单,能够精确反映电池的非线性关系,但其需要大量的测试数据,模型精度容易受训练数据和训练方法影响。
电池模型的研究应该充分考虑蓄电池实际使用环境的特点,在实际应用中,往往只能采集电池端电压、充放电电流和温度等一些可测参量。电化学模型因为需要知道电池内部材料的参数,而其内部材料参数在实际应用中很难进行更新,所以实际应用中往往不采用电化学模型。等效电路模型参数的获取需要先对电池进行脉冲充放电实验,再对电池静置阶段的端电压变化曲线进行参数辨识,实际应用中蓄电池往往不能在实验条件下进行脉冲充放电实验,所以等效电路模型不符合实际应用情况。黑箱模型是通过大量的测试数据作为训练集来训练模型,因此,可以将实际应用中实时采集的端电压、充放电电流和温度等可测参量作为训练集来训练电池模型。神经网络模型是一种典型的黑箱模型,可以采用神经网络算法,通过实际应用中实时采集的数据来训练神经网络模型,再通过在线估计技术对电池的健康状态进行在线估计。但神经网络模型也存在一定的问题,其训练速度慢,还会出现无法收敛的情况,而采用分数阶改进的神经网络不仅可以提高其收敛速度,还能提高模型的预测精度。
技术实现要素:
为了解决上述问题,本发明提出了一种基于分数阶神经网络和双容积卡尔曼的电池soh在线估计方法,它将智能算法建模和在线滤波估计相结合,来进行电池的状态估计和健康管理。
本发明为解决其技术问题采用如下技术方案:
一种基于分数阶神经网络和双容积卡尔曼的电池soh在线估计方法,包括如下基本步骤:
步骤1,通过传感器测量电池动态系统的能见状态;
步骤2,将同型号电池的历史数据作为初始训练数据集,使用分数阶理论改进的神经网络算法来训练模型,得到能够表征蓄电池非线性特性的等效模型;
步骤3,将步骤1实时采集的数据加入初始训练数据集;
步骤4,分析电池隐含状态和能见状态之间存在的映射关系,建立一个离散状态空间模型来表征其映射函数;
步骤5,利用dckf算法对分数阶神经网络模型进行在线更新,同时对隐含状态进行在线估计;
步骤6,根据隐含状态所反映的电池健康状况,电池管理系统通过执行器对电池进行管理。
所述步骤2的具体过程如下:
步骤2.1,分数阶神经网络的拓扑结构为三层网络结构,包括1个输入层、1个隐含层和1个输出层,上一层每个节点通过唯一路径与下一层各个节点相连,输入层节点数为3,输出层节点数为1,隐含层节点数根据经验设置为10,所以其网络结构设置为3-10-1;
步骤2.2,分数阶神经网络初始化:
设置分数阶神经网络的初始权值、阈值和学习速率;
步骤2.3,给定输入向量和目标向量:
输入向量为输入层的三个节点,分别是电池soc估计值、放电电流值和最大剩余容量估计值,目标向量为输出层的一个节点,是电池端电压值;
步骤2.4,求隐含层、输出层各单元上的输出:
根据输入变量、输入层和隐含层之间的连接权值以及隐含层阈值计算隐含层输出,再根据隐含层输出、隐含层和输出层之间的连接权值以及输出层阈值计算输出层输出值;
步骤2.5,求目标值与实际输出值的偏差e:
根据平方型误差公式计算目标值与实际输出值的偏差e;
步骤2.6,判定目标值与实际输出值的偏差是否满足条件,如果所有目标值与实际输出值的偏差满足条件,则训练结束,如果不满足条件,则对分数阶神经网络的各个连接权和阈值作一次调整。
所述步骤4中的离散状态空间模型为:
状态方程:
量测方程:uk=hnn(xs,k,ik,xp,k)+vk(2)
其中:xs,k为神经元k处的电池soc估计值;xs,k-1为神经元k-1处的电池soc估计值;xp,k为分数阶神经网络神经元k的连接权值、阈值和电池容量值组成的n×1的矩阵;xp,k-1为分数阶神经网络神经元k-1的连接权值、阈值和电池容量值组成的n×1的矩阵;ik为为k时刻的电池放电电流值;ik-1为k-1时刻的电池放电电流值;wk为过程噪声;rk为过程噪声;uk为电池端电压;vk为测量噪声;hnn为分数阶神经网络模型的一个数学表达式。
hnn的具体表达式为:
其中:xs为电池的soc估计值,i为电池的放电电流值,xp为分数阶神经网络各个连接权、阈值和电池容量值组成的n×1的矩阵;θt表示隐含层节点t的阈值;θk表示隐含层节点k的阈值;f(·)是隐含层节点函数;g(·)是输出层节点函数;wrt是指输入层中的节点r与隐含层的节点t间的权值;wtk是指隐含层节点t与输出层节点k间的权值。
所述步骤5的具体过程如下:
将采集到的电池能见状态加入训练数据集,通过两个容积卡尔曼滤波器分别对系统状态参数xs和系统模型参数xp进行估计,再将估计值发送给分数阶神经网络模型,分数阶神经网络模型输出电池端电压值并和真实端电压值作比较,最后将比较得到的反馈误差发送给两个容积卡尔曼滤波器,对估计值进行修正,并继续进行递推估计。
所述用两个容积卡尔曼滤波器分别对系统状态参数xs和系统模型参数xp进行递推估计的具体过程为:
步骤5.1,参数变量时间更新
对分数阶神经网络的模型参数和电池容量进行状态估计,得到其预测值;
步骤5.2,状态变量时间更新
对电池soc进行状态估计,得到其预测值;
步骤5.3,参数变量量测更新
将分数阶神经网络模型输出的电池端电压值和真实端电压值作比较,并将得到的误差对分数阶神经网络的模型参数和电池容量估计值进行修正;
步骤5.4,状态变量量测更新
将分数阶神经网络模型输出的电池端电压值和真实端电压值作比较,并将得到的误差对电池soc估计值进行修正。
本发明的有益效果如下:
1)分数阶改进神经网络,使其具有更有效的函数逼近能力以及更快的收敛速度和更高的预测精度。
2)采用同类型电池的历史数据作为训练集来离线训练神经网络模型,解决了大量历史数据的问题,并通过双容积卡尔曼滤波算法,不仅使神经网络模型参数进行在线更新,而且同时对电池的健康状态进行在线估计。
3)系统模型参数xp是高维矩阵,容积卡尔曼滤波能够有效解决高维状态下扩展卡尔曼滤波因模型线性化误差易导致滤波发散的问题和无迹卡尔曼滤波容易出现滤波精度下降甚至发散的问题。
附图说明
图1为蓄电池动态系统在线估计原理图。
图2为分数阶神经网络算法流程图。
图3为基于dckf算法在线健康状态估计的原理图。
具体实施方式
下面结合附图对本发明创造做进一步详细说明。
蓄电池动态系统在线估计原理图如图1所示,本发明的具体操作包括如下步骤:
步骤1,通过传感器测量动态系统的可见状态。
步骤2,将同类型电池的历史数据作为初始训练数据集,使用分数阶理论改进的神经网络算法来训练模型,得到表征蓄电池系统非线性关系的等效模型。
步骤2中的分数阶神经网络算法的流程图如图2所示,具体过程如下:
步骤2.1,分数阶神经网络的拓扑结构为三层网络结构(1个输入层、1个隐含层和1个输出层,上一层每个节点通过唯一路径与下一层各个节点相连),输入层节点数为3,隐含层节点数为10,输出层节点数为1。
步骤2.2,分数阶神经网络初始化。
步骤2.3,给定输入向量和目标向量。
输入层的三个节点,分别是电池荷电状态(stateofcharge,soc)估计值、放电电流值和最大剩余容量估计值,输出层的一个节点是电池端电压值。
步骤2.4,求隐含层、输出层各单元上的输出。
在数据训练过程中,r,t,k分别代表输入层、隐含层、输出层中的某个神经元节点;各层的神经元数分别为m,p,n;wrt是指输入层中的节点r与隐含层的节点t间的权值;wtk是指隐含层节点t与输出层节点k间的权值;x是指输入的数据即样本集;xr表示节点r的输入值;θ表示节点阈值;θt表示隐含层节点t的阈值。
样本数据从输入层输入到隐含层,隐含层的单个节点t的输入为:
隐含层节点t的输出为:
ot=f(nett),t=1,2,…,p(2)
其中:f(·)是隐含层的节点函数或者称为激励函数。一般根据样本的实际情况,选择不同的函数,如线性函数、双曲正切函数等。最常用的函数是sigmoid函数。其表达式为:
sigmoid函数的一阶导数表达式为:
其中:e为常量,是个具体的数量值。
数据再从隐含层输入到输出层,输出层的单个节点k的输入为:
其中,θk表示隐含层节点k的阈值。
输出层节点k的输出为:
yok=g(yik),k=1,2,…n(6)
其中:g(·)是输出层的节点函数,一般取线性函数。
步骤2.5,求目标值与实际输出值的偏差e。
在实际数据训练时,误差的计算公式通常采用平方型误差公式,即式(7)
其中:yk是指输出神经元k的期望输出值。这里的误差是指输出层所有神经元的误差之和。
将各层的输入输出带入到误差公式,则训练误差可以写为:
其中:yik为输出层的单个节点k的输入值;yok为输出层节点k的输出值。
步骤2.6,判定目标值与实际输出的偏差是否满足条件,如果所有目标值与实际输出的偏差满足条件,则训练结束,如果不满足条件,则对神经网络的各个连接权作一次调整。
分数阶神经网络的权值修正公式选用的是梯度下降法,其实质是简单的最速下降静态寻优算法。具体公式如下:
其中:z表示微分的次数;c1和c2分别为wrt和wtk的初值;u是权值修正系数,即学习速率;d表示对连接权值进行微分运算。
下面分别介绍输入层与隐含层、隐含层与输出层的连接权值的微分:
①误差e对输入层与隐含层的连接权值wrt的微分
以输入层与隐含层单个节点之间连接权值wrt作为自变量,e是关于自变量wrt的函数,则e可表示为:
其中:yk是指输出神经元k的期望输出值;隐含层与输出层的连接权值wtk在上式中是作为已知的具体数值;x是输入的样本数据且xr是指节点r的输入数据。
对于公式(4)中的一部分可作如下分解:
将等式右边相加的两个式子分别赋于e1(wrt)与e2。e1是关于自变量wrt的函数,这里的wrt是特指误差正在调节的某个输入层节点与隐含层节点间的连接权值。e2是指除去前面所述的权值计算量的剩余量,是具体的数值。
将e1与e2带入到分数阶微分中,则误差对输入层与隐含层的连接权值的修正量可表示如下:
其中:c1为wrt的初值。
②误差e对隐含层与输出层的连接权值wtk的微分
同样以隐含层与输出层的单个节点的连接权值wtk作为自变量,e是关于自变量wtk的函数,表示如下:
其中:ot为隐含层t节点的输出值,t=1,2,...,p;同样将两个相加的式子分别赋于e3(wtk)以及e4;e3是关于自变量wtk的函数;wtk是特指误差正在调节的某个隐含层节点与输出层节点间的连接权值,是自变量;e4是指除去前面所述的
权值计算量的剩余量,是具体的数量值。
将e3与e4带入到分数阶微分中,则误差对隐含层与输出层的连接权值的修正量可表示如下:
其中:c2为wtk的初值。
步骤3,将步骤(1)采集的数据加入初始训练数据集,改进模型,使模型能够更加准确地描述系统行为。
步骤4,分析隐含状态和可见状态之间存在的映射关系,建立一个离散状态空间模型来表征其映射函数。
状态方程:
量测方程:uk=hnn(xs,k,ik,xp,k)+vk(21)
其中:xs,k为神经元k处的电池soc估计值;xs,k-1为神经元k-1处的电池soc估计值;xp,k为分数阶神经网络神经元k的连接权值、阈值和电池容量值组成的n×1的矩阵;xp,k-1为分数阶神经网络神经元k-1的连接权值、阈值和电池容量值组成的n×1的矩阵;ik为为k时刻的电池放电电流值;ik-1为k-1时刻的电池放电电流值;wk为过程噪声;rk为过程噪声;uk为电池端电压;vk为测量噪声;hnn为分数阶神经网络模型的一个数学表达式,具体见公式(23)。
离散状态空间模型中xp的具体表达式为:
xp=[ca1,1a1,2…ai,j…a3,10a0,1a0,2…a0,j…a0,10b1,1b2,1…bj,1…b10,1b0,1]t(22)
其中:c为电池容量值;aij代表输入层节点i到隐含层节点j的连接权值;a0,j代表隐含层节点j的阈值;a1,1为输入层节点1到隐含层节点1的连接权值;a1,2为输入层节点1到隐含层节点2的连接权值;a3,10为输入层节点3到隐含层节点10的连接权值;a0,1为隐含层节点1的阈值;a0,2为为隐含层节点2的阈值;a0,10为为隐含层节点10的阈值;b1,1为隐含层节点1到输出层的连接权值;b2,1为隐含层节点2到输出层的连接权值;b10,1为隐含层节点10到输出层的连接权值;bj1代表隐含层节点j到输出层的连接权值;b0,1代表输出层的阈值。
hnn的具体表达式为:
其中:xs为电池的soc估计值;i为电池的放电电流值;xp为分数阶神经网络各个连接权、阈值和电池容量值组成的n×1的矩阵;θt表示隐含层节点t的阈值;θk表示隐含层节点k的阈值;f(·)是隐含层节点函数;g(·)是输出层节点函数。
步骤5,利用dckf(双容积卡尔曼滤波)算法,对分数阶神经网络模型进行在线更新,同时对隐含状态进行在线估计。
dckf算法在线估计的原理图如图3所示。它不仅基于可测量值来估计隐含状态,而且可以对系统模型进行更新。在线估计系统包括两个并行运行的容积卡尔曼滤波器和分数阶神经网络模型,顶部卡尔曼滤波器(状态卡尔曼)估计系统状态xs并将状态估计发送给分数阶神经网络模型,底部卡尔曼滤波器(权值卡尔曼)估计系统模型参数xp并将模型参数估计发送给分数阶神经网络模型。分数阶神经网络模型输出估计电压值并与真值比较,再将误差反馈为状态卡尔曼和权值卡尔曼,然后对估计值进行修正。
具体估计过程如下所示:
步骤5.1,参数变量时间更新
①误差协方差矩阵pp,k-1进行奇异值分解
其中:ap,k-1的列为误差协方差pp,k-1的单位正交特征向量;λp,k-1为对角矩阵,
其中:xpj,k-1为状态变量矩阵;api,k-1的第i列为误差协方差pp,k-1的单位正交特征向量;spi为误差协方差矩阵pp,k-1的特征值;
容积点
②容积点
其中:xpj,k/k-1为容积点
③参数变量预测值
④协方差预测值pp,k/k-1
其中:
步骤5.2,状态变量的时间更新
①误差协方差矩阵ps,k-1进行奇异值分解
其中:as,k-1的列为误差协方差ps,k-1的单位正交特征向量;
其中:xsj,k-1为容积点集中的第j个元素所对应的电池soc估计值;asi,k-1的第j列为误差协方差ps,k-1的单位正交特征向量;ssi为误差协方差矩阵ps,k-1的特征值;n∈r,
②容积点
其中:xsj,k/k-1为容积点
③状态预测值
④协方差预测值ps,k/k-1
其中:ωsj为权值;
步骤5.3,参数变量的量测更新
①误差协方差矩阵pp,k/k-1进行奇异值分解
其中:ap,k/k-1的列为误差协方差pp,k/k-1的单位正交特征向量;
ap,k/k-1的转置矩阵;λp,k/k-1为对角矩阵;
②容积点upj,k/k-1
其中:
③均值
其中:upj,k/k-1为容积点;m为容积点个数。
④新息协方差ppuu,k/k-1
其中:
⑤互协方差ppxu,k/k-1
⑥增益矩阵kpk
其中:
⑦参数变量
其中:up,k为参数变量估计输出结果。
⑧误差协方差矩阵pp,k
其中:pp,k/k-1为k与k-1时刻之间的误差协方差矩阵;
步骤5.4,状态变量的量测更新
①误差协方差矩阵ps,k/k-1进行奇异值分解
其中:as,k/k-1的列为误差协方差ps,k/k-1的单位正交特征向量;
②容积点usj,k/k-1
usj,k/k-1=h(xsj,k/k-1)(44)
其中:h(·)为量测方程。
③均值
其中:m为状态变量个数。
④新息协方差矩阵psuu,k/k-1
其中:
⑤互协方差矩阵psxu,k/k-1
⑥增益矩阵ksk
其中:
⑦状态变量
其中:us,k为状态变量估计输出结果。
⑧误差协方差矩阵ps,k
其中:ps,k/k-1为k与k-1时刻之间状态估计的误差协方差矩阵;
步骤6,根据隐含状态所反映的电池健康状况,电池管理系统通过执行器对电池进行管理。