APP下载

基于遗传算法优化扩展卡尔曼滤波的锂电池SOC估计

2019-10-16周韦润姜文刚

关键词:阶数卡尔曼滤波遗传算法

周韦润,姜文刚

(江苏科技大学 电子信息学院,江苏 镇江 212000)

电池荷电状态(state of charge,SOC)是锂离子电池重要的性能指标之一,表示电池的最大剩余容量[1]。在线准确估计锂离子电池的SOC是设计出高效、合理的电池管理系统的基础。

目前,国内外常用的SOC估计方法有:① 安时(Ah)计量法[2]:Ah计量法不仅需要准确SOC初始值,而且随着时间的推移,系统误差会逐渐增大;② 开路电压法[3]:开路电压法需要将电池长时间静置后才能获得SOC值,多用于实验室研究,不适合实际工程的应用;③ 神经网络法[4]:神经网络法需要对大量的样本数据进行训练,运算量非常大。此外,还有模糊预测法[5]、内阻法和卡尔曼滤波法[6-7]。

现阶段,在实际工程中通常采取扩展卡尔曼滤波算法(extend kalman filter,EKF)和无迹卡尔曼滤波算法(unscented kalman filter,UKF)对电池SOC进行在线估计。文献[8]和文献[9]提出一种基于模糊神经网络优化的卡尔曼滤波算法和有限差分算法对电池SOC进行估计,有效避免了非线性函数需用Taylor级数展开,并忽略了高阶项引起的误差。文献[10]提出利用改进Sage-Husa优化自适应无迹卡尔曼滤波的算法,增加了噪声估值器对系统误差进行补偿,减少了系统噪声的干扰。但是在电池实际工作工程中,由于电池充放电程度的加深,电芯温度升高,忽略了电池的额定容量等参数不断变化对电池SOC估算精度带来的影响。文献[11]和文献[12]建立温度补偿模型,有效减少了温度对电池模型参数的影响,但是在对SOC估计过程中,忽略了电池在充放电的始末时刻模型精度不足的影响。

本文基于以上研究中的不足,建立基于BIC准则的变阶RC等效电路模型,解决模型精度和实用性的矛盾,采用基于遗传算法优化扩展卡尔曼滤波算法对SOC进行在线估计,并通过实验和仿真,验证算法的有效性。

1 基于BIC准则的变阶RC等效电路模型

一个良好的电池模型必须具备以下两个条件:① 能够准确地描述电池的动、静态特性;② 模型本身的复杂程度低,易于工程实现。事实上,锂离子电池的电压特性是两端陡、中间平稳的非线性曲线,采用2阶的电池模型虽然易于工程实现,但是容易造成重要数据的丢失,特别是在电池充放电的初期和末期,不能较为精确地拟合电池特性,模型精度较低。而采用3阶模型虽然能够获得较高的辨识精度,但是随着模型阶数的增加,带来的计算量也成倍增加,实用性较差。本文在权衡模型复杂程度、精确性和实用性之间的矛盾后,提出以变阶RC等效电路模型作为研究对象,其电路原理如图1所示。

图1 变阶RC等效电路模型

图1中:Cn为电池在常温下的额定容量;IL和Ut为电池的端电流和端电压;Cp1和Rp1为反映电池极化效应的电容和电阻;Cp2、Cp3和Rp2、Rp3为模型的变阶电容和变阶电阻;开关S1、S2为变阶RC模型的切换开关,可以实现1阶、2阶和3阶RC等效电路模型之间的相互切换;R0为欧姆内阻;OCV为电池开路电压,是关于SOC的函数,可描述为

OCV=a1/SOC+a2lnSOC+

a3ln(1-SOC)a4SOC+a5

(1)

式中a1~a5为基于最小二乘算法辨识的待定常数。

在实际使用中,电池的阶数未知,在兼顾模型准确性和简易性的同时,确定不同SOC处RC模型的阶数成为一个难点。由于电池电路模型参数较少,而BIC准则更倾向于选择参数较少的模型,因此BIC准则的应用便于确定模型的阶数,解决了电池模型精确性和适用性的矛盾。

BIC准则的一般形式可以描述为

BIC=kln(N)+2ln(L)

(2)

式中:k为模型参数个数;N为样本数量;L为似然函数。本文用残差平方和作为似然函数,可描述为

(3)

式中:Ut为电池端电压;IL为电池端电流;下标j表示RC网络标号;τj为RC网络的时间常数;n为RC网络阶数,其取值范围为1~3。在式(2)中,ln(L)、和kln(N)分别表示模型拟合的优良性和拟合过程中的惩罚力度,随着模型拟合程度的加深,这2个值均变得很小,能够避免过度拟合的情况。

由图1可知,1阶RC模型需要辨识开路电压OCV、电池内阻R0、极化内阻Rp1和极化电容Cp1四个参数。随着模型阶数的增加,每增加1阶,需要增加2个待辨识参数,因此模型参数的个数k和模型阶数的关系可表示为

k=2n+2

(4)

将式(3)和(4)代入式(2)即可得到基于BIC准则的RC阶数选择模型:

(2n+2)ln(N)

(5)

基于BIC准则建立的模型可以确定不同SOC处的模型的最优阶数,模型兼顾了实用性、准确性和简易性等要求,可以较好地提高对锂离子电池两端陡、中间平稳的非线性电压特性的辨识能力,为精确的SOC估计提供了合适的电池模型。

传统SOC估算策略中的状态变量是模型中的电容、电阻和SOC,但是模型中的参数都是关于SOC的函数,因此对于同一模型,在同一时刻可能会有多个SOC的解,从而导致估计结果非法。为了避免这个矛盾,假设电池模型中的电容电压在初始时刻为0,则可以得到以下递推公式:

Upj,k=exp(-Δt/τj)Upj,k-1+

Rpj(1-exp(-Δt/τj))IL,k

(6)

式中:Δt为采样周期,设采样周期为1 s,IL,k为第k时刻的电流采样值,Upj,k为第j个RC网络在k-1时刻的端电压。

为了减少在SOC估算过程中变量参数的个数,本文将SOC作为唯一的状态变量建立状态方程,则系统状态方程为:

SOCk=f(SOCk-1,IL,k-1)=

(7)

式中:η为库伦系数,可以通过电池充放电测试获取;C为电池的标称容量;ωk为系统随机噪声。

系统的观测方程由图1和式(6)确定,则观测方程为

(8)

式中:n为变阶RC模型的阶数;νk为系统测量噪声。整个观测方程Ut,k是关于SOC的函数。

2 基于遗传算法优化EKF的SOC估计

2.1 EKF算法

对于非线性的离散系统,其状态方程和观测方程分别是[9-10]:

(9)

式中:XK+1为K+1时刻系统状态矩阵;f(XK)为K时刻系统状态转移方程;ZK+1为K+1时刻系统测量矩阵;h(XK+1)为K+1时刻系统测量方程;WK、VK+1是期望为0的白色噪音。

对于系统干扰WK、测量噪音VK+1和状态方程初始量X0可做如下特性的假设:

E{XK}=0,E{VK+1}=0,E{X0}=μ0

(10)

E{[X0-μ0][X0-μ0]T}=P0

(11)

Cov{WiWj}=W=diag{w1w2w3w4w5w6}

(12)

Cov{ViVj}=V=diag{v1v2v3v4v5v6}

(13)

FKXK+WK

(14)

HKXK+1+VK+1

(15)

将状态方程和观测方程线性化后即可启动卡尔曼滤波算法,设模型输入为uk,算法递推过程如下:

XK+1|K=f(XK,uK)

(16)

PK+1|k=fX(K)PkfX(K)T+W

(17)

(18)

PK+1=[I-KK+1HK]PK+1|K

(19)

XK+1=XK+1|K+KK+1(Zk+1-HKXK+1|K)

(20)

采用卡尔曼滤波算法对电池SOC值进行在线估算。由于电池模型参数在2个相邻采样周期内变化缓慢,因此锂电池的非线性状态方程和观测方程可标记为:

(21)

根据式(6)~(8)和(21),可做如下定义:

(22)

式中:xk+1为系统状态矩阵;uk为系统输入变量,在电池模型中,输入变量为电池端电流;A为f对x求偏导的雅克比矩阵;B为f对u求偏导的雅克比矩阵;H为Ut对x求偏导的雅克比矩阵。

得到xk和yk后,可根据本文介绍的EKF算法对模型参数进行在线联合估计。由EKF的递推公式可知,随着滤波步数的增加,模型假设的初始状态矩阵x0与实际状态矩阵不一致时,对系统的影响较小。而系统干扰wk、观测噪音vk是对模型参数估计精度产生影响的主要因素。由于其初始值需要在滤波之前给出,且随着滤波步数的增加保持不变,因此为了确保模型参数的估计误差呈渐进收敛性,噪声矩阵的选取至关重要。一般而言,为了取得较高的辨识精度,需要选取多个噪音矩阵多次试验进行对比,但是效果不是很好,并且获取的过程十分困难。

2.2 采用遗传法优化EKF噪声矩阵

实际上,对于噪音矩阵的辨识可以转化为约束条件含参的最优问题。理论上,要求EKF噪声矩阵服从正态分布,但是在电池实际运行过程中,其噪声矩阵是一组随机数。本文采用遗传算法获w、v的最优解。与传统的辨识方法相比,遗传算法的优势在于只需要目标函数的值就可以随机选取符合条件的最优参数,因此遗传算法对寻找最优的EKF噪声矩阵具有一定的可行性和高效性。

在模型的状态方程和观测方程中,干扰矩阵有1个变量,观测噪音矩阵有1个变量,它们的协方差矩阵是对数矩阵,分别取为:

w=diag(w11)

(23)

v=diag(v11)

(24)

将干扰矩阵和噪音矩阵中的2个待辨识的参数合成1个矢量向量,该向量为:

ε=(w11,v11)

(25)

通过GA算法对符合种群条件的最优参数进行求解。

为了增强搜索能力,采用二进制式的编码方式。将向量ε中的元素进行二进制编码得到子串,将k个子串链接到一起,形成一个完整的染色体,记作εb。将最初随机产生的一组数目组成种群,即随机产生由m个二进制串组成的矢量:

(26)

这个矢量构成初始种群,作为遗传的初代。每代的每个个体元素的上、下限的约束条件为:

g=1,2,3,…,gmax

(27)

(28)

式中L表示需要进行估计的长度,个体L越大,搜索的范围就越广,反之则越小。

按照式(28)所示的目标函数计算每个个体的适应度,按照取比例选择的方式,将已有的父代个体按照目标函数的值从大到小排列,将最前面的Lex个个体作为优秀个体直接传递到下一代中[13-17]。若在此操作中,某个个体的估计误差超过了预计误差的最大上限时,需要将该迭代个体舍弃。该个体必须满足的条件是:

(29)

将剩下的个体放入匹配池中进行交叉、变异操作,完成后将这些个体送入下一代。在此过程中,需要选择对算法收敛性具有直接影响的交叉概率Pc和变异概率Pm的值,在形成g+1个子代群体后重复上述操作,继续计算群体的目标函数值。求满足种群收敛的最优染色体的解的过程就是不断重复选择、交叉和变异的过程,即可得到满足最优滤波条件的w、v矩阵。

3 仿真及实验验证

本文以标称电压为3.2 V、标称容量为4 180 mA·h的18650磷酸铁锂电池作为模型测试对象,搭建测试平台。电池测试平台由上位机、可编程温控箱和可编程充放电设备等组成。对电池在DST工况下做充放电实验,该工况涵盖了车辆加速、减速、匀速和制动等运动状况,通过上位机采集电池端电压、端电流和SOC等数据,记录频率为1 Hz。数据采集平台如图2所示。

图2 数据采集平台

图3给出了DST工况下遗传算法优化EKF噪声矩阵的结果。设置种群数目为80,最大迭代次数为30,交叉概率Pc=0.8,变异概率为Pm=0.015,选择操作比例为0.1。

图3 迭代次数和最优解

图4给出了各个算法的对比结果,其中图4(a)分别给出了安时计量法、基于传统EKF的SOC估计结果和基于遗传算法优化EKF的SOC估计结果。从图中可以看出,基于遗传算法优化卡尔曼滤波的SOC估计策略能够有效克服系统噪声的干扰,具有很好的跟踪性能。图4(b)分别给出它们的误差曲线。从图4(b)可以看出:随着仿真的深入,传统EKF算法和安时计量法的误差随着计算时间的增加呈现出发散的趋势。

图4 算法对比

表1总结了DST测试工况下,各算法对SOC估算的误差对比结果。由对比结果可知,基于遗传算法优化扩展卡尔曼滤波的SOC估计算法最大误差小于1.5%,无论是精度还是收敛度均优于其他几种算法。

在实际使用中,动力锂电池的SOC估计算法不仅需要有较高的准确性和实时性,还需要有较强的鲁棒性。图5给出了GA-EKF算法在DST实验中针对鲁棒性的测试结果,其初始参数分别设置为SOC(0)=0.98,P=diag([0.0001 5 0.01]),R=[50],Q=(10-4)diag([0.001 3 0.072])。ΔSOC0为真实值与估计初始值之间的误差百分比,本文分别在误差为10%、15%和20%的3种情况下进行仿真测试,验证算法的鲁棒性。实验结果表明:虽然初始时刻SOC的设定值偏离实际值较远,但是算法能够实现SOC的估计值快速向真实值逼近(700 s内);在逼近真实值之后,SOC的估计值在真实值附近有较小的波动,不仅能满足精度需求,还能满足鲁棒性要求。

表1 DST工况下各种算法对比

图5 鲁棒性测试

4 结束语

本文提出一种基于遗传算法优化的扩展卡尔曼滤波SOC估计方法。一方面,为了克服电池模型准确性和简易性的矛盾,设计出一种基于BIC准则的变阶RC等效电路模型;另一方面,将表示系统噪声和观测噪声的信息进行矩阵化,同时引入遗传算法对噪声矩阵进行最后优化处理,克服由噪声引起的误差。搭建测试平台,在DST测试工况下,通过与其他估计算法的结果进行对比,证明GA-EKF算法具有较高的优越性,SOC的最大估计误差在1.35%以内,说明具有较高的工程应用价值。

猜你喜欢

阶数卡尔曼滤波遗传算法
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
确定有限级数解的阶数上界的一种n阶展开方法
一个含有五项的分数阶混沌系统的动力学分析
基于遗传算法的智能交通灯控制研究
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
复变函数中孤立奇点的判别
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于有色噪声的改进卡尔曼滤波方法
基于改进的遗传算法的模糊聚类算法