杜堅(jiān) 謝聰
(西南石油大學(xué),成都 610500)
主題詞:鋰電池 SOC估計(jì) 強(qiáng)跟蹤卡爾曼濾波
對于電動(dòng)汽車,電池荷電狀態(tài)SOC反映了汽車當(dāng)前狀態(tài)下的續(xù)航能力,研究電池荷電狀態(tài)估計(jì)問題,對合理管理電池、確定汽車?yán)m(xù)航能力具有重要意義。
電池SOC無法直接測量,只能通過測量電池電壓、內(nèi)阻等參數(shù)間接估計(jì)。電池SOC估計(jì)方法分為傳統(tǒng)算法和智能算法,傳統(tǒng)算法根據(jù)開路電壓與某一參數(shù)的對應(yīng)關(guān)系進(jìn)行測量,包括開路電壓法、內(nèi)阻法、安時(shí)積分法等[1-3]。其中,開路電壓法在電池長期靜置后才可使用,無法應(yīng)用于汽車行駛狀態(tài);內(nèi)阻法問題在于內(nèi)阻難以測量;安時(shí)積分法由于使用積分算法而容易產(chǎn)生積累誤差。由上述分析可知,傳統(tǒng)SOC估計(jì)方法限制較多,因此當(dāng)前SOC估計(jì)研究熱點(diǎn)集中在基于智能算法的SOC估計(jì)方面。智能算法使用算法的群智能性搜索SOC最優(yōu)估計(jì)值,包括神經(jīng)網(wǎng)絡(luò)算法、粒子群算法、卡爾曼濾波等[4-6]。
本文針對狀態(tài)突變、模型不準(zhǔn)確、SOC初值誤差大等異常情況下SOC估計(jì)問題進(jìn)行研究,提出了基于強(qiáng)跟蹤卡爾曼濾波算法的估計(jì)方法。仿真結(jié)果表明,該方法在以上特殊情況下能夠給出高精度的SOC估計(jì)值。
電池建模要遵循兩個(gè)原則:一是模型不能太復(fù)雜,保證計(jì)算量在接受范圍內(nèi);二是模型能準(zhǔn)確模擬電池動(dòng)靜態(tài)特性。選用電路模型模擬電池內(nèi)部狀態(tài),常用電路模型包括理想模型、戴維南模型、PNGV模型和雙階RC模型等[7,8]。雙階RC模型將電化學(xué)極化過程和濃度極化過程分開表示,與其它電池模型相比具有較高擬合精度,因此選用雙階RC模型,其結(jié)構(gòu)如圖1所示。圖中Uoc為電池開路電壓;R0為電池歐姆內(nèi)阻,反映電池濃差極化過程,即狀態(tài)突變后快速反應(yīng)過程;RdCd回路反映電池電化學(xué)極化過程,即狀態(tài)突變后慢速反應(yīng)過程;I為電池內(nèi)部電流;Ut為電池端電壓。
圖1 雙階RC模型[8]
鋰電池狀態(tài)空間方程是SOC估計(jì)的基礎(chǔ),首先設(shè)定鋰電池狀態(tài)向量為:
式中,Us為RsCs回路端電壓;Ud為RdCd回路端電壓;τs、τd為2個(gè)RC回路的時(shí)間常數(shù)。
則鋰電池狀態(tài)空間方程為:
式中,I(t)為電池內(nèi)部電流;Qc為電池容量;Cs為RsCs回路電容;Cd為RdCd回路電容。
輸出方程為:
由圖1中雙RC模型可知,待辨識參數(shù)包括R0、Rs、Rd、Cs、Cd等,當(dāng)電池SOC值不同時(shí),參數(shù)值也不同,因此每隔10%SOC值進(jìn)行1次參數(shù)辨識。由于鋰電池具有滯回特性,參數(shù)在充電和放電時(shí)數(shù)值相差較大,因此對充電和放電過程分別進(jìn)行參數(shù)辨識。采用HPPC方法進(jìn)行參數(shù)辨識,為了保證電池狀態(tài)穩(wěn)定性,每次試驗(yàn)后將電池靜置30min后再進(jìn)行下次試驗(yàn)。充電和放電過程參數(shù)辨識結(jié)果如表1和表2所示。
表1 放電過程參數(shù)辨識結(jié)果
表2 充電過程參數(shù)辨識結(jié)果
因式(3)中Uoc(SOC)的函數(shù)關(guān)系未知,所以需要建立Uoc與SOC之間的函數(shù)關(guān)系。經(jīng)驗(yàn)證鋰電池在充電和放電過程中,Uoc與SOC之間的函數(shù)曲線幾乎重合,滯回特性表現(xiàn)不明顯,因此取充電和放電過程的均值曲線建立函數(shù)關(guān)系式。利用25℃恒溫試驗(yàn)方法進(jìn)行函數(shù)關(guān)系辨識,將鋰電池在滿電狀態(tài)下靜置2 h使?fàn)顟B(tài)穩(wěn)定;然后放電5min,釋放電量為1 C;再靜置5min使?fàn)顟B(tài)穩(wěn)定,記錄靜置期間最大開路電壓并作為此SOC值時(shí)的開路電壓。重復(fù)以上步驟直至放電完畢,得到不同SOC值時(shí)的試驗(yàn)數(shù)據(jù),使用多項(xiàng)式擬合Uoc與SOC之間的關(guān)系式。
經(jīng)驗(yàn)證,7階多項(xiàng)式模型擬合精度比6階模型擬合精度高一個(gè)數(shù)量級,8階多項(xiàng)式模型擬合精度與7階模型相差不大,因此選用7階多項(xiàng)式進(jìn)行擬合,結(jié)果如圖2所示,Uoc與SOC關(guān)系式為:
卡爾曼濾波只適用于線性系統(tǒng),對于鋰電池這種非線性系統(tǒng),可使用擴(kuò)展卡爾曼濾波進(jìn)行狀態(tài)估計(jì)[9]。擴(kuò)展卡爾曼濾波使用泰勒級數(shù)將非線性系統(tǒng)近似為線性系統(tǒng),再使用卡爾曼濾波估計(jì)方法[10]。
圖2 Uoc與SOC的擬合曲線
非線性系統(tǒng)狀態(tài)方程和觀測方程為:
式中,f(xk,uk)為狀態(tài)轉(zhuǎn)移函數(shù);wk為狀態(tài)噪聲;h(xk,uk)為觀測函數(shù);vk為觀測噪聲。
使用泰勒級數(shù)將非線性函數(shù)f(xk,uk)、h(xk,uk)在處展開,保留零次項(xiàng)和一次項(xiàng),得
設(shè)
則可將式(5)近似為線性系統(tǒng):
對此線性系統(tǒng)進(jìn)行卡爾曼濾波估計(jì)使用的迭代公式為:
一步狀態(tài)估計(jì)方程:
估計(jì)誤差協(xié)方差矩陣:
修正系數(shù)矩陣:
系統(tǒng)狀態(tài)更新公式:
誤差協(xié)方差陣更新公式:
對此過程反復(fù)迭代就可以對鋰電池狀態(tài)進(jìn)行實(shí)時(shí)最優(yōu)估計(jì),得到鋰電池SOC最優(yōu)估計(jì)值。
對于電動(dòng)汽車鋰電池SOC估計(jì)問題,存在以下異常情況:
a.汽車行駛過程中,由于爬坡、加速、制動(dòng)等使電池電流、開路電壓等狀態(tài)發(fā)生突變;
b.電池模型無法完全模擬電池復(fù)雜的內(nèi)部過程,且電池使用過程中模型參數(shù)容易變化,使電池模型與實(shí)際狀態(tài)相差更大;
c.電池SOC初始值難以準(zhǔn)確給出,存在較大初值誤差等。
對于以上異常情況,需要一種在任何情況下都能夠強(qiáng)行使估計(jì)殘差保持正交,即在任何情況下都能夠?qū)埐顝?qiáng)行轉(zhuǎn)化為白噪聲的濾波方法?;诖?,引入時(shí)變漸消因子,提出了強(qiáng)跟蹤卡爾曼濾波算法。
通過引入估計(jì)殘差,將擴(kuò)展卡爾曼濾波算法中系統(tǒng)狀態(tài)更新公式改寫為:
強(qiáng)跟蹤卡爾曼濾波的實(shí)質(zhì)是通過設(shè)計(jì)增益矩陣Lk,使殘差γk為高斯序列,即滿足:
式(16)表示當(dāng)電池出現(xiàn)狀態(tài)突變、模型不準(zhǔn)確、SOC初始誤差大等異常情況時(shí),狀態(tài)估計(jì)值與實(shí)際值會產(chǎn)生較大的殘差,通過在線確定增益矩陣Lk,強(qiáng)行使殘差相互正交保持高斯特性,保持對系統(tǒng)的精確跟蹤;若沒有異常情況,上式自然成立,此時(shí)強(qiáng)跟蹤卡爾曼濾波退化為擴(kuò)展卡爾曼濾波。
分析擴(kuò)展卡爾曼濾波算法中修正系數(shù)矩陣表達(dá)式可知,可以通過調(diào)節(jié)改變修正系數(shù)矩陣。為了實(shí)現(xiàn)算法的強(qiáng)跟蹤特性,引入漸消因子λk減小舊數(shù)據(jù)在估計(jì)值中的權(quán)重,即誤差協(xié)方差矩陣改進(jìn)為:
可以通過式(16)中的正交公式對式(17)求解,求解方法為梯度法和非線性規(guī)劃法,但是求解過程復(fù)雜、計(jì)算量巨大,因此給出次優(yōu)漸消因子為:
式中,λk為次優(yōu)漸消因子;tr()為矩陣的秩;V0,k為殘差協(xié)方差陣;ρ為遺忘因子;β為弱化因子,且β≥1。
將式(17)和式(18)代入到修正系數(shù)矩陣公式,得到強(qiáng)跟蹤卡爾曼濾波修正系數(shù)矩陣。
將鋰電池的狀態(tài)空間方程和觀測方程進(jìn)行離散化處理,即
根據(jù)式(22)給出的離散方程、式(18)給出的次優(yōu)漸消因子計(jì)算方法,強(qiáng)跟蹤卡爾曼濾波算法使用的迭代公式為:
狀態(tài)一步估計(jì):
計(jì)算觀測輸出:
誤差協(xié)方差矩陣:
修正系數(shù)矩陣:
系統(tǒng)狀態(tài)更新公式:
誤差協(xié)方差矩陣更新公式:
此6個(gè)公式反復(fù)迭代就實(shí)現(xiàn)了鋰電池SOC的強(qiáng)跟蹤最優(yōu)估計(jì)。
設(shè)計(jì)了兩組仿真驗(yàn)證,第1組仿真驗(yàn)證用于驗(yàn)證強(qiáng)跟蹤卡爾曼濾波對模型不準(zhǔn)確、系統(tǒng)狀態(tài)突變這兩種異常情況下的估計(jì)精度;第2組仿真驗(yàn)證用于驗(yàn)證電池SOC初始誤差較大情況下的SOC估計(jì)精度。
為驗(yàn)證算法對系統(tǒng)模型不準(zhǔn)確和狀態(tài)突變時(shí)的估計(jì)精度,在開路電壓中加入均值為0.01、方差為0.1的隨機(jī)噪聲,用于模擬模型不準(zhǔn)確的情況;同時(shí)設(shè)計(jì)了帶有電流突變的充放電試驗(yàn),用于模擬狀態(tài)突變。數(shù)據(jù)采集頻率為1 Hz,采集時(shí)間共8 320 s,仿真得到的電流、電壓曲線如圖3所示。
圖3 數(shù)據(jù)采集結(jié)果
分別使用擴(kuò)展卡爾曼濾波和強(qiáng)跟蹤卡爾曼濾波算法對電池SOC值進(jìn)行估計(jì),算法參數(shù)設(shè)定為:遺忘因子ρ=0.95、弱化因子β=1.2、觀測噪聲R=0.05、狀態(tài)初始值x0=[8 0 %,0,0]T、誤差協(xié)方差矩陣初始值P0=I3×3、狀態(tài)噪聲Q=diag(0 .001,0.1,0.1)。兩種算法對電池SOC估計(jì)結(jié)果如圖4所示。
從圖4可看出,在系統(tǒng)模型不準(zhǔn)確和狀態(tài)突變的情況下,擴(kuò)展卡爾曼濾波得到的SOC估計(jì)結(jié)果波動(dòng)較大,而強(qiáng)跟蹤卡爾曼濾波得到的SOC估計(jì)值波動(dòng)較小。為更加直觀比較兩個(gè)算法的估計(jì)結(jié)果,對估計(jì)誤差進(jìn)行統(tǒng)計(jì),強(qiáng)跟蹤卡爾曼濾波的估計(jì)誤差維持在2%之內(nèi),而擴(kuò)展卡爾曼濾波的最大估計(jì)誤差達(dá)到了4.5%。這是因?yàn)楫?dāng)出現(xiàn)模型不準(zhǔn)確和狀態(tài)突變等異常情況時(shí),強(qiáng)跟蹤卡爾曼濾波能夠及時(shí)調(diào)整修正系數(shù)矩陣,使殘差成為白噪聲序列,確保估計(jì)值的最優(yōu);而擴(kuò)展卡爾曼濾波的非線性誤差、狀態(tài)突變誤差、模型不準(zhǔn)確誤差相互疊加,使估計(jì)誤差較大。
圖4 兩種算法的SOC估計(jì)結(jié)果
第2組仿真驗(yàn)證的目的是驗(yàn)證電池SOC初始誤差較大時(shí)估計(jì)精度問題。根據(jù)式(4)可以準(zhǔn)確計(jì)算出SOC初始值,但是測量開路電壓時(shí),要求電池靜置0.5 h以上,這一條件在汽車使用過程中難以滿足,所以多數(shù)情況下電池SOC初始值難以計(jì)算。仿真時(shí)設(shè)置電池SOC真值為80.5%,為了驗(yàn)證算法對初始誤差的估計(jì)精度,將SOC初始值設(shè)置為40%,分別使用擴(kuò)展卡爾曼濾波和強(qiáng)跟蹤卡爾曼濾波對電池SOC進(jìn)行估計(jì),算法參數(shù)與第1組仿真一致。為了更加清晰地比較兩算法對初始誤差的修正速度,給出了前50個(gè)數(shù)據(jù)的估計(jì)結(jié)果,如圖5所示。
圖5 前50數(shù)據(jù)估計(jì)結(jié)果(放大圖)
從圖5可看出,兩種算法最終都可以收斂到真值,但是強(qiáng)跟蹤卡爾曼濾波算法在15 s內(nèi)就收斂至真值附近,而擴(kuò)展卡爾曼濾波在40 s時(shí)才收斂到真值附近,這充分說明強(qiáng)跟蹤卡爾曼濾波應(yīng)對SOC初始誤差時(shí)具有更快的收斂速度。這是因?yàn)閺?qiáng)跟蹤卡爾曼濾波的修正系數(shù)矩陣能夠依據(jù)異常情況自適應(yīng)地調(diào)整,使SOC估計(jì)值快速向真值靠攏。
建立了鋰電池的雙RC等效電路模型,在分析擴(kuò)展卡爾曼濾波基礎(chǔ)上,提出了強(qiáng)跟蹤卡爾曼濾波算法。通過仿真驗(yàn)證表明,所提出的強(qiáng)跟蹤卡爾曼濾波算法對狀態(tài)突變、模型不準(zhǔn)確、SOC初始誤差等異常情況時(shí)的估計(jì)精度和收斂速度明顯優(yōu)于擴(kuò)展卡爾曼濾波。因此通過調(diào)整增益矩陣,強(qiáng)行使殘差正交,可以使強(qiáng)跟蹤卡爾曼濾波算法應(yīng)對異常情況時(shí),SOC估計(jì)精度依然很高。