(青島大學(xué)電氣工程學(xué)院 青島 266071)
電動(dòng)汽車行業(yè)的蓬勃發(fā)展,帶動(dòng)了車載鋰電池的電池管理系統(tǒng)(Battery Management System,BMS)的研究深化,作為電池管理系統(tǒng)中的重要一環(huán),電池剩余電量(State Of Charge,SOC)的精確級(jí)數(shù)制約著對(duì)電池能源的利用效率[1],而如何提高估算精度,一直是電池領(lǐng)域科研事業(yè)的重中之重。目前國內(nèi)通用的SOC估算方法[2]有基于電池自身特性的安時(shí)積分法,開路電壓法,內(nèi)阻法等;也有通過算法優(yōu)化基礎(chǔ)方法的卡爾曼濾波算法,BP神經(jīng)網(wǎng)絡(luò)算法[3],粒子濾波算法等。其中鮑慧論文在原有安時(shí)積分法基礎(chǔ)上進(jìn)行四個(gè)系數(shù)的修正[4],使SOC估算精度提高到5%以內(nèi),但其固有的系統(tǒng)累積誤差沒辦法消除;林春景的基于電池內(nèi)阻隨溫度變化進(jìn)而求得電池狀態(tài)[5],對(duì)電池內(nèi)阻特性進(jìn)行了深入研究,不過內(nèi)阻在電池滿電時(shí)其變化特性和電池狀態(tài)函數(shù)關(guān)系不明顯,故該算法有一定局限性;商云龍所研究的神經(jīng)網(wǎng)絡(luò)和擴(kuò)展卡爾曼濾波結(jié)合[6],使電池估算精度極大地提高,可筆者認(rèn)為該算法過于復(fù)雜,對(duì)器件要求精度過高,不適合應(yīng)用在普通電池的BMS中。
本文基于二階Thevenin模型下的無跡卡爾曼(Unscented Kalman Filter,UKF)算法,通過對(duì)得到的電池?cái)?shù)據(jù)進(jìn)行UT變換,得到相同概率密度下的SOC估算值,從而提高SOC估算精度。
本文在傳統(tǒng)的Thevenin模型的基礎(chǔ)上搭建二階Thevenin模型,如圖1。相較于一階模型,二階模型綜合考慮了電池的電化學(xué)極化和濃差極化現(xiàn)象,能更精確地反映化學(xué)反應(yīng)程度,實(shí)時(shí)模擬電池狀態(tài),進(jìn)而提高SOC的估算精度[7]。
圖1 二階Thevenin模型
該模型的數(shù)學(xué)表達(dá)式為
通過對(duì)電池研究發(fā)現(xiàn),電池模型中各個(gè)路原件隨著電池剩余電荷量的變化不斷波動(dòng),為更好反映電池本身情況,分別對(duì)電池模型中電路原件和SOC進(jìn)行擬合確定函數(shù)關(guān)系。對(duì)電池進(jìn)行HPPC脈沖放電實(shí)驗(yàn),分別截取不同電池初值放電后的靜置曲線[8]。在CFtool工具中,結(jié)合基爾霍夫定律和二階電路全響應(yīng)分析得到該模型的擬合方程。
圖2 HPPC脈沖放電實(shí)驗(yàn)電流電壓變化曲線
以圖2為例對(duì)180s~300s電壓曲線以式(3)進(jìn)行擬合得到該SOC下的各個(gè)參數(shù),分別擬合不同SOC初值下的極化現(xiàn)象曲線并進(jìn)行參數(shù)辨識(shí)。其中已知電池的脈沖電流,電池的開路電壓a為穩(wěn)定后的電壓值,電池濃差極化現(xiàn)象的時(shí)間常數(shù)c取值固定,而由于電化學(xué)極化現(xiàn)象不明顯,其時(shí)間常數(shù)的取值總是波動(dòng),為提高擬合曲線的精度,對(duì)各SOC值下時(shí)間常數(shù)e的取值進(jìn)行數(shù)據(jù)處理將其固定。則各SOC初值情況系的電路元件系數(shù)可求。截取部分實(shí)驗(yàn)數(shù)據(jù)如表1。
表1 截取部分實(shí)驗(yàn)數(shù)據(jù)
在Cftool工具中分別將R0、R1、C1、R2、C2…與SOC擬合,并將擬合函數(shù)用于搭建仿真模型。同時(shí)根據(jù)記錄下來的電壓值可得到電池的SOC-OCV曲線,如圖3。對(duì)其關(guān)系進(jìn)行五階函數(shù)擬合得到關(guān)系式:
圖3 SOC-OCV曲線
根據(jù)已有電池原件及其函數(shù)關(guān)系在Matlab/Simulink搭建電池模型,如圖4。
采用國標(biāo)QCT 897-2011中的工況電流三來測(cè)試該模型的穩(wěn)定性,其真實(shí)電壓和模擬電壓對(duì)比如圖5,其誤差控制在1.5%以內(nèi),分析電池模型可知該誤差主要由工況電流反向充電引起,因本仿真只考慮電池放電故其存在的仿真誤差在接下來放電實(shí)驗(yàn)可避免。
圖4 二階仿真模型
圖5 工況電流三實(shí)驗(yàn)電壓對(duì)比
卡爾曼濾波器實(shí)際上可以看做是狀態(tài)變量在由觀測(cè)矩陣生成的線性空間上的映射,進(jìn)而通過觀測(cè)矩陣來修正估計(jì)的狀態(tài)方程。由于電池狀態(tài)的變化是非線性的,所以應(yīng)生出擴(kuò)展卡爾曼濾波算法,將非線性的電池系統(tǒng)離散化,使之適用于線性的卡爾曼濾波器[9~11]。其中卡爾曼濾波的狀態(tài)方程和測(cè)量方程分別為
狀態(tài)方程:
觀測(cè)方程:
式中Xk為狀態(tài)矩陣,Uk為控制矩陣,Yk為觀測(cè)矩陣,Ak狀態(tài)轉(zhuǎn)移矩陣,Bk為狀態(tài)控制矩陣,Ck為觀測(cè)矩陣,Dk為觀測(cè)控制矩陣,wk為k時(shí)刻的動(dòng)態(tài)噪聲,vk為k時(shí)刻的觀測(cè)噪聲。將卡爾曼濾波算法,安時(shí)積分法和二階Thevenin模型結(jié)合得到式(6)和式(7)。
將卡爾曼濾波算法和電池模型相結(jié)合的程序框圖如圖6所示,將電池的輸出電流和端電壓作為輸入,電池的SOC作為輸出,用已經(jīng)求得的開路電壓曲線來修正安時(shí)積分法所輸出的SOC值。
圖6 卡爾曼濾波算法
無跡卡爾曼濾波也是基于卡爾曼濾波原理的一種應(yīng)用[12],不同于擴(kuò)展卡爾曼濾波對(duì)電池模型進(jìn)行泰勒級(jí)數(shù)展開并略去高階無窮小項(xiàng),雖然使電池模型線性化,但在其過程中被忽略的高階所帶來的誤差,會(huì)引起濾波器精確度降低以至于發(fā)散[13]。
UKF算法對(duì)電池模型中函數(shù)關(guān)系的概率密度進(jìn)行分析[14],通過無跡變換得到估計(jì)值對(duì)應(yīng)的sig?ma點(diǎn),由一系列的sigma點(diǎn)來逼近狀態(tài)的后驗(yàn)概率密度,從而保證估計(jì)值的準(zhǔn)確性,避免了對(duì)狀態(tài)轉(zhuǎn)移矩陣和觀測(cè)矩陣求其雅各比矩陣的復(fù)雜運(yùn)算,同時(shí)也沒有忽略高階項(xiàng)對(duì)矩陣的影響,從而保證估計(jì)值的準(zhǔn)確性,式(8~9)為UT變化方程,即通過UT轉(zhuǎn)化確定sigma點(diǎn)及其權(quán)重。
其中下標(biāo)c表示協(xié)方差的權(quán)重,下標(biāo)m表示均方差的權(quán)重,λ=α2(n+κ)-n,λ代表縮放比,α=0.01表示采樣點(diǎn)的分布狀態(tài),當(dāng)α較大時(shí)表明平均值處sigma點(diǎn)權(quán)重越大,β=2是權(quán)數(shù),用來合并方程中高階項(xiàng)的動(dòng)差,κ=3-n。
首先列寫基本的狀態(tài)方程和從測(cè)量方程。
代入式(8~9)進(jìn)行UT變換,得到k時(shí)刻的X列向量的sigma點(diǎn)矩陣。
將矩陣式(11)代入式(10)中的狀態(tài)方程,求得下一時(shí)刻的系統(tǒng)狀態(tài)。
此時(shí)得到的是X(k+1|k)時(shí)刻的狀態(tài)矩陣,由式(9)求X(k+1|k)的加權(quán)均值和更新后的協(xié)方差矩陣。
根據(jù)更新后的狀態(tài)矩陣式(13)和協(xié)方差矩陣式(14),再次使用UT變換,產(chǎn)生新的sigma點(diǎn)集,并將該點(diǎn)集代入式(10)中的觀測(cè)方程得到估計(jì)的觀測(cè)值,通過兩次的UT變換使估測(cè)的觀測(cè)值具有系統(tǒng)代表性。
同樣的由式(10)加權(quán)求得到估計(jì)預(yù)測(cè)值及其協(xié)方差。
根據(jù)式(18~19)可求得Kalman增益系數(shù)K,并通過增益系數(shù)K更新系統(tǒng)的狀態(tài)和協(xié)方差矩陣。
在Matlab/Simulink中搭建電池放電電路[15],通過Pulse Generator模塊產(chǎn)生周期為200s占空比為80%的電流脈沖信號(hào),同時(shí)為模擬工況,分別在電流采集和電壓采集處添加高斯白噪聲,將帶有噪聲的信號(hào)作為輸入,經(jīng)S-Function中的UKF濾波后,輸出到示波器中,仿真如圖7。
圖7 仿真圖
將輸出結(jié)果用Matlab畫圖表示,圖8是在SOC初值為85%時(shí)的電池模型輸出結(jié)果,圖9是EKF算法UKF算法分別和真實(shí)值做殘差;由圖像分析得相較于EKF算法3%的誤差,UKF算法可將誤差控制在1.5%以內(nèi)。
圖8 初值為85%時(shí)SOC估算曲線
圖9 初值為85%時(shí)誤差對(duì)比曲線
圖10和圖11是在SOC初值錯(cuò)誤的情況,觀察其對(duì)應(yīng)算法的修正能力,由圖11殘差對(duì)比圖可以較為明顯地觀察到UKF算法會(huì)超前于EKF算法追蹤到真實(shí)的電池狀態(tài),驗(yàn)證了UKF算法具有更優(yōu)秀的收斂性和魯棒性。
圖10 初值有誤差時(shí)SOC估算曲線
圖11 初值有誤差時(shí)誤差對(duì)比曲線
本文從常規(guī)的擴(kuò)展卡爾曼濾波算法框架中加入無跡變換,提出了一種基于無跡卡爾曼濾波算法的電池SOC估算方法,建立二階Thevenin電池模型,并在Matlab/Simulink對(duì)EKF和UKF算法進(jìn)行了仿真對(duì)比。結(jié)果表明UKF算法相較于EKF算法具有更優(yōu)秀的收斂性和魯棒性,具有實(shí)際價(jià)值。本算法的局限性在于沒有對(duì)電池充電情況進(jìn)行考慮,如電池模型仿真時(shí),在工況電流條件下電池存在反向充電電流,其電池模型相對(duì)于放電模型有細(xì)微差別,故該實(shí)驗(yàn)仍有很大的優(yōu)化空間。