周韋潤,姜文剛
(江蘇科技大學(xué) 電子信息學(xué)院,江蘇 鎮(zhèn)江 212000)
電池荷電狀態(tài)(state of charge,SOC)是鋰離子電池重要的性能指標(biāo)之一,表示電池的最大剩余容量[1]。在線準(zhǔn)確估計鋰離子電池的SOC是設(shè)計出高效、合理的電池管理系統(tǒng)的基礎(chǔ)。
目前,國內(nèi)外常用的SOC估計方法有:① 安時(Ah)計量法[2]:Ah計量法不僅需要準(zhǔn)確SOC初始值,而且隨著時間的推移,系統(tǒng)誤差會逐漸增大;② 開路電壓法[3]:開路電壓法需要將電池長時間靜置后才能獲得SOC值,多用于實驗室研究,不適合實際工程的應(yīng)用;③ 神經(jīng)網(wǎng)絡(luò)法[4]:神經(jīng)網(wǎng)絡(luò)法需要對大量的樣本數(shù)據(jù)進(jìn)行訓(xùn)練,運算量非常大。此外,還有模糊預(yù)測法[5]、內(nèi)阻法和卡爾曼濾波法[6-7]。
現(xiàn)階段,在實際工程中通常采取擴展卡爾曼濾波算法(extend kalman filter,EKF)和無跡卡爾曼濾波算法(unscented kalman filter,UKF)對電池SOC進(jìn)行在線估計。文獻(xiàn)[8]和文獻(xiàn)[9]提出一種基于模糊神經(jīng)網(wǎng)絡(luò)優(yōu)化的卡爾曼濾波算法和有限差分算法對電池SOC進(jìn)行估計,有效避免了非線性函數(shù)需用Taylor級數(shù)展開,并忽略了高階項引起的誤差。文獻(xiàn)[10]提出利用改進(jìn)Sage-Husa優(yōu)化自適應(yīng)無跡卡爾曼濾波的算法,增加了噪聲估值器對系統(tǒng)誤差進(jìn)行補償,減少了系統(tǒng)噪聲的干擾。但是在電池實際工作工程中,由于電池充放電程度的加深,電芯溫度升高,忽略了電池的額定容量等參數(shù)不斷變化對電池SOC估算精度帶來的影響。文獻(xiàn)[11]和文獻(xiàn)[12]建立溫度補償模型,有效減少了溫度對電池模型參數(shù)的影響,但是在對SOC估計過程中,忽略了電池在充放電的始末時刻模型精度不足的影響。
本文基于以上研究中的不足,建立基于BIC準(zhǔn)則的變階RC等效電路模型,解決模型精度和實用性的矛盾,采用基于遺傳算法優(yōu)化擴展卡爾曼濾波算法對SOC進(jìn)行在線估計,并通過實驗和仿真,驗證算法的有效性。
一個良好的電池模型必須具備以下兩個條件:① 能夠準(zhǔn)確地描述電池的動、靜態(tài)特性;② 模型本身的復(fù)雜程度低,易于工程實現(xiàn)。事實上,鋰離子電池的電壓特性是兩端陡、中間平穩(wěn)的非線性曲線,采用2階的電池模型雖然易于工程實現(xiàn),但是容易造成重要數(shù)據(jù)的丟失,特別是在電池充放電的初期和末期,不能較為精確地擬合電池特性,模型精度較低。而采用3階模型雖然能夠獲得較高的辨識精度,但是隨著模型階數(shù)的增加,帶來的計算量也成倍增加,實用性較差。本文在權(quán)衡模型復(fù)雜程度、精確性和實用性之間的矛盾后,提出以變階RC等效電路模型作為研究對象,其電路原理如圖1所示。
圖1 變階RC等效電路模型
圖1中:Cn為電池在常溫下的額定容量;IL和Ut為電池的端電流和端電壓;Cp1和Rp1為反映電池極化效應(yīng)的電容和電阻;Cp2、Cp3和Rp2、Rp3為模型的變階電容和變階電阻;開關(guān)S1、S2為變階RC模型的切換開關(guān),可以實現(xiàn)1階、2階和3階RC等效電路模型之間的相互切換;R0為歐姆內(nèi)阻;OCV為電池開路電壓,是關(guān)于SOC的函數(shù),可描述為
OCV=a1/SOC+a2lnSOC+
a3ln(1-SOC)a4SOC+a5
(1)
式中a1~a5為基于最小二乘算法辨識的待定常數(shù)。
在實際使用中,電池的階數(shù)未知,在兼顧模型準(zhǔn)確性和簡易性的同時,確定不同SOC處RC模型的階數(shù)成為一個難點。由于電池電路模型參數(shù)較少,而BIC準(zhǔn)則更傾向于選擇參數(shù)較少的模型,因此BIC準(zhǔn)則的應(yīng)用便于確定模型的階數(shù),解決了電池模型精確性和適用性的矛盾。
BIC準(zhǔn)則的一般形式可以描述為
BIC=kln(N)+2ln(L)
(2)
式中:k為模型參數(shù)個數(shù);N為樣本數(shù)量;L為似然函數(shù)。本文用殘差平方和作為似然函數(shù),可描述為
(3)
式中:Ut為電池端電壓;IL為電池端電流;下標(biāo)j表示RC網(wǎng)絡(luò)標(biāo)號;τj為RC網(wǎng)絡(luò)的時間常數(shù);n為RC網(wǎng)絡(luò)階數(shù),其取值范圍為1~3。在式(2)中,ln(L)、和kln(N)分別表示模型擬合的優(yōu)良性和擬合過程中的懲罰力度,隨著模型擬合程度的加深,這2個值均變得很小,能夠避免過度擬合的情況。
由圖1可知,1階RC模型需要辨識開路電壓OCV、電池內(nèi)阻R0、極化內(nèi)阻Rp1和極化電容Cp1四個參數(shù)。隨著模型階數(shù)的增加,每增加1階,需要增加2個待辨識參數(shù),因此模型參數(shù)的個數(shù)k和模型階數(shù)的關(guān)系可表示為
k=2n+2
(4)
將式(3)和(4)代入式(2)即可得到基于BIC準(zhǔn)則的RC階數(shù)選擇模型:
(2n+2)ln(N)
(5)
基于BIC準(zhǔn)則建立的模型可以確定不同SOC處的模型的最優(yōu)階數(shù),模型兼顧了實用性、準(zhǔn)確性和簡易性等要求,可以較好地提高對鋰離子電池兩端陡、中間平穩(wěn)的非線性電壓特性的辨識能力,為精確的SOC估計提供了合適的電池模型。
傳統(tǒng)SOC估算策略中的狀態(tài)變量是模型中的電容、電阻和SOC,但是模型中的參數(shù)都是關(guān)于SOC的函數(shù),因此對于同一模型,在同一時刻可能會有多個SOC的解,從而導(dǎo)致估計結(jié)果非法。為了避免這個矛盾,假設(shè)電池模型中的電容電壓在初始時刻為0,則可以得到以下遞推公式:
Upj,k=exp(-Δt/τj)Upj,k-1+
Rpj(1-exp(-Δt/τj))IL,k
(6)
式中:Δt為采樣周期,設(shè)采樣周期為1 s,IL,k為第k時刻的電流采樣值,Upj,k為第j個RC網(wǎng)絡(luò)在k-1時刻的端電壓。
為了減少在SOC估算過程中變量參數(shù)的個數(shù),本文將SOC作為唯一的狀態(tài)變量建立狀態(tài)方程,則系統(tǒng)狀態(tài)方程為:
SOCk=f(SOCk-1,IL,k-1)=
(7)
式中:η為庫倫系數(shù),可以通過電池充放電測試獲取;C為電池的標(biāo)稱容量;ωk為系統(tǒng)隨機噪聲。
系統(tǒng)的觀測方程由圖1和式(6)確定,則觀測方程為
(8)
式中:n為變階RC模型的階數(shù);νk為系統(tǒng)測量噪聲。整個觀測方程Ut,k是關(guān)于SOC的函數(shù)。
對于非線性的離散系統(tǒng),其狀態(tài)方程和觀測方程分別是[9-10]:
(9)
式中:XK+1為K+1時刻系統(tǒng)狀態(tài)矩陣;f(XK)為K時刻系統(tǒng)狀態(tài)轉(zhuǎn)移方程;ZK+1為K+1時刻系統(tǒng)測量矩陣;h(XK+1)為K+1時刻系統(tǒng)測量方程;WK、VK+1是期望為0的白色噪音。
對于系統(tǒng)干擾WK、測量噪音VK+1和狀態(tài)方程初始量X0可做如下特性的假設(shè):
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)
將狀態(tài)方程和觀測方程線性化后即可啟動卡爾曼濾波算法,設(shè)模型輸入為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值進(jìn)行在線估算。由于電池模型參數(shù)在2個相鄰采樣周期內(nèi)變化緩慢,因此鋰電池的非線性狀態(tài)方程和觀測方程可標(biāo)記為:
(21)
根據(jù)式(6)~(8)和(21),可做如下定義:
(22)
式中:xk+1為系統(tǒng)狀態(tài)矩陣;uk為系統(tǒng)輸入變量,在電池模型中,輸入變量為電池端電流;A為f對x求偏導(dǎo)的雅克比矩陣;B為f對u求偏導(dǎo)的雅克比矩陣;H為Ut對x求偏導(dǎo)的雅克比矩陣。
得到xk和yk后,可根據(jù)本文介紹的EKF算法對模型參數(shù)進(jìn)行在線聯(lián)合估計。由EKF的遞推公式可知,隨著濾波步數(shù)的增加,模型假設(shè)的初始狀態(tài)矩陣x0與實際狀態(tài)矩陣不一致時,對系統(tǒng)的影響較小。而系統(tǒng)干擾wk、觀測噪音vk是對模型參數(shù)估計精度產(chǎn)生影響的主要因素。由于其初始值需要在濾波之前給出,且隨著濾波步數(shù)的增加保持不變,因此為了確保模型參數(shù)的估計誤差呈漸進(jìn)收斂性,噪聲矩陣的選取至關(guān)重要。一般而言,為了取得較高的辨識精度,需要選取多個噪音矩陣多次試驗進(jìn)行對比,但是效果不是很好,并且獲取的過程十分困難。
實際上,對于噪音矩陣的辨識可以轉(zhuǎn)化為約束條件含參的最優(yōu)問題。理論上,要求EKF噪聲矩陣服從正態(tài)分布,但是在電池實際運行過程中,其噪聲矩陣是一組隨機數(shù)。本文采用遺傳算法獲w、v的最優(yōu)解。與傳統(tǒng)的辨識方法相比,遺傳算法的優(yōu)勢在于只需要目標(biāo)函數(shù)的值就可以隨機選取符合條件的最優(yōu)參數(shù),因此遺傳算法對尋找最優(yōu)的EKF噪聲矩陣具有一定的可行性和高效性。
在模型的狀態(tài)方程和觀測方程中,干擾矩陣有1個變量,觀測噪音矩陣有1個變量,它們的協(xié)方差矩陣是對數(shù)矩陣,分別取為:
w=diag(w11)
(23)
v=diag(v11)
(24)
將干擾矩陣和噪音矩陣中的2個待辨識的參數(shù)合成1個矢量向量,該向量為:
ε=(w11,v11)
(25)
通過GA算法對符合種群條件的最優(yōu)參數(shù)進(jìn)行求解。
為了增強搜索能力,采用二進(jìn)制式的編碼方式。將向量ε中的元素進(jìn)行二進(jìn)制編碼得到子串,將k個子串鏈接到一起,形成一個完整的染色體,記作εb。將最初隨機產(chǎn)生的一組數(shù)目組成種群,即隨機產(chǎn)生由m個二進(jìn)制串組成的矢量:
(26)
這個矢量構(gòu)成初始種群,作為遺傳的初代。每代的每個個體元素的上、下限的約束條件為:
g=1,2,3,…,gmax
(27)
(28)
式中L表示需要進(jìn)行估計的長度,個體L越大,搜索的范圍就越廣,反之則越小。
按照式(28)所示的目標(biāo)函數(shù)計算每個個體的適應(yīng)度,按照取比例選擇的方式,將已有的父代個體按照目標(biāo)函數(shù)的值從大到小排列,將最前面的Lex個個體作為優(yōu)秀個體直接傳遞到下一代中[13-17]。若在此操作中,某個個體的估計誤差超過了預(yù)計誤差的最大上限時,需要將該迭代個體舍棄。該個體必須滿足的條件是:
(29)
將剩下的個體放入匹配池中進(jìn)行交叉、變異操作,完成后將這些個體送入下一代。在此過程中,需要選擇對算法收斂性具有直接影響的交叉概率Pc和變異概率Pm的值,在形成g+1個子代群體后重復(fù)上述操作,繼續(xù)計算群體的目標(biāo)函數(shù)值。求滿足種群收斂的最優(yōu)染色體的解的過程就是不斷重復(fù)選擇、交叉和變異的過程,即可得到滿足最優(yōu)濾波條件的w、v矩陣。
本文以標(biāo)稱電壓為3.2 V、標(biāo)稱容量為4 180 mA·h的18650磷酸鐵鋰電池作為模型測試對象,搭建測試平臺。電池測試平臺由上位機、可編程溫控箱和可編程充放電設(shè)備等組成。對電池在DST工況下做充放電實驗,該工況涵蓋了車輛加速、減速、勻速和制動等運動狀況,通過上位機采集電池端電壓、端電流和SOC等數(shù)據(jù),記錄頻率為1 Hz。數(shù)據(jù)采集平臺如圖2所示。
圖2 數(shù)據(jù)采集平臺
圖3給出了DST工況下遺傳算法優(yōu)化EKF噪聲矩陣的結(jié)果。設(shè)置種群數(shù)目為80,最大迭代次數(shù)為30,交叉概率Pc=0.8,變異概率為Pm=0.015,選擇操作比例為0.1。
圖3 迭代次數(shù)和最優(yōu)解
圖4給出了各個算法的對比結(jié)果,其中圖4(a)分別給出了安時計量法、基于傳統(tǒng)EKF的SOC估計結(jié)果和基于遺傳算法優(yōu)化EKF的SOC估計結(jié)果。從圖中可以看出,基于遺傳算法優(yōu)化卡爾曼濾波的SOC估計策略能夠有效克服系統(tǒng)噪聲的干擾,具有很好的跟蹤性能。圖4(b)分別給出它們的誤差曲線。從圖4(b)可以看出:隨著仿真的深入,傳統(tǒng)EKF算法和安時計量法的誤差隨著計算時間的增加呈現(xiàn)出發(fā)散的趨勢。
圖4 算法對比
表1總結(jié)了DST測試工況下,各算法對SOC估算的誤差對比結(jié)果。由對比結(jié)果可知,基于遺傳算法優(yōu)化擴展卡爾曼濾波的SOC估計算法最大誤差小于1.5%,無論是精度還是收斂度均優(yōu)于其他幾種算法。
在實際使用中,動力鋰電池的SOC估計算法不僅需要有較高的準(zhǔn)確性和實時性,還需要有較強的魯棒性。圖5給出了GA-EKF算法在DST實驗中針對魯棒性的測試結(jié)果,其初始參數(shù)分別設(shè)置為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種情況下進(jìn)行仿真測試,驗證算法的魯棒性。實驗結(jié)果表明:雖然初始時刻SOC的設(shè)定值偏離實際值較遠(yuǎn),但是算法能夠?qū)崿F(xiàn)SOC的估計值快速向真實值逼近(700 s內(nèi));在逼近真實值之后,SOC的估計值在真實值附近有較小的波動,不僅能滿足精度需求,還能滿足魯棒性要求。
表1 DST工況下各種算法對比
圖5 魯棒性測試
本文提出一種基于遺傳算法優(yōu)化的擴展卡爾曼濾波SOC估計方法。一方面,為了克服電池模型準(zhǔn)確性和簡易性的矛盾,設(shè)計出一種基于BIC準(zhǔn)則的變階RC等效電路模型;另一方面,將表示系統(tǒng)噪聲和觀測噪聲的信息進(jìn)行矩陣化,同時引入遺傳算法對噪聲矩陣進(jìn)行最后優(yōu)化處理,克服由噪聲引起的誤差。搭建測試平臺,在DST測試工況下,通過與其他估計算法的結(jié)果進(jìn)行對比,證明GA-EKF算法具有較高的優(yōu)越性,SOC的最大估計誤差在1.35%以內(nèi),說明具有較高的工程應(yīng)用價值。