蔣 聰,吳 斌,王順利,熊 鑫
(西南科技大學(xué)信息工程學(xué)院,四川 綿陽 621010)
近年來,隨著鋰電池內(nèi)部正負極、隔膜和電解液等材料的不斷優(yōu)化改進,工作性能高速發(fā)展,使得鋰電池大量運用在新能源汽車、航空、分布式儲能等領(lǐng)域。而鋰電池荷電狀態(tài)(state of charge,SOC)的準確估算是鋰電池組安全高效工作的重要參數(shù)[1],是判斷電池管理系統(tǒng)(battery management system,BMS)優(yōu)劣的關(guān)鍵依據(jù)。但因為動力鋰電池所具有很強的非線性特征,以及外部復(fù)雜環(huán)境和使用工況的影響,如溫度、放電倍率等,在實際應(yīng)用中仍然難以保證算法的可靠性和對SOC估計精度,最終將降低電池管理系統(tǒng)的工作效率和安全性。本文提出一種基于改進擴展卡爾曼的SOC估算算法,可以有效防止因計算機字長度有限而引起的濾波發(fā)散。
電池等效電路模型圖如圖1所示。
圖1 電池等效電路模型
一般電池模型分為電化學(xué)模型、等效電路模型、純數(shù)學(xué)模型,由于等效電路模型具有結(jié)構(gòu)簡單、物理意義明確的特點,在研究中使用較為廣泛。常用等效電路模型有Rint模型、Thevenin模型、PNGV模型和二階等效模型。
在Rint模型中:R0為鋰電池的歐姆內(nèi)阻,表征鋰電池電流突變引起的瞬時壓降;UOC為理想電壓源表征開路電壓;I為電池的環(huán)路電流,設(shè)定其放電方向為正;UL為鋰電池負載端電壓。在Rint模型基礎(chǔ)上添加1個RC并聯(lián)回路表征電池的極化效應(yīng),分別為極化內(nèi)阻Rp、極化電容Cp,模擬電池充放電過程中的電壓緩慢變化,得到了Thevenin模型。在Thevenin模型上添加Cb,表征負載電流隨時間產(chǎn)生的開路電壓變化,得到了PNGV模型。在Thevenin模型上再添加一個RC并聯(lián)回路,得到了二階等效模型。
簡單的模型便于計算,但不能準確地描述電池的工作特性,復(fù)雜的模型能更好地表征電池的充放電特性,但計算量會大大增加,降低了模型的適應(yīng)性和推廣應(yīng)用。Lai等比較了不同階數(shù)等效電路模型對于SOC估算效果的影響[2-5],其中二階以上,模型精度增加并不明顯,但計算量大大增加。綜合考慮精確建模和模型簡約,本文采用二階等效電路模型。根據(jù)基爾霍夫(Kirchhoff)電路定律,結(jié)合圖1(d),可以列出式(1)。
(1)
式中:UL為負載端電壓;Uoc(SOC)為開路電壓;i為負載電流;RO為歐姆內(nèi)阻;UP1、UP2為兩個極化電容端電壓;CP1、CP2為極化電容;t為時間。
針對所選取的二階等效模型,選取[SOCUP1UP2]作為狀態(tài)變量,結(jié)合式(1)及SOC的定義,經(jīng)過離散化可以列出鋰電池離散狀態(tài)空間方程如式(2)所示。
(2)
式中:下標k為當前時刻,k+1代表下一時刻;Qn為電池額定電量;SOC為電池荷電狀態(tài),當前電量和電池額定電量的比值;h為庫倫效率;T為采樣周期;RO為歐姆內(nèi)阻;Rp1、Rp2為極化內(nèi)阻;UP1、UP2為兩個極化電容端電壓;t1、t2為時間常數(shù),t1=Rp1Cp1、t2=Rp2Cp2;UL為負載端電壓;Uoc為開路電壓。
二階等效電路模型所需要辨識的參數(shù)有歐姆內(nèi)阻RO、開路電壓Uoc、極化內(nèi)阻Rp1、Rp2和極化電容Cp1、Cp2。這里選擇對動力鋰電池進行混合脈沖功率性能(hybridge pulse power characteristic,HPPC)測試試驗,根據(jù)鋰電池外部特性變化,運用Matlab軟件根據(jù)最小二乘原理進行離線參數(shù)辨識。
以中航鋰電三元鋰電池LFP50AH為研究對象,電池測試設(shè)備為亞科源BTS750-200-100-4,參考《美國Freedom CAR電池試驗手冊》對鋰電池進行HPPC試驗。單次HPPC試驗工步過程為:以放電倍率1 C(這里電流為50 A)恒流放電10 s、擱置40 s、以放電倍率1 C(這里電流為50 A)恒流充電10 s、再擱置。HPPC試驗電流電壓曲線如圖2所示。
圖2 HPPC試驗電流電壓曲線圖
分析圖2,可以得到以下4個階段特點。
①t1時刻開始放電。鋰電池端電壓從U1突降變?yōu)閁2。這主要是由于鋰電池歐姆內(nèi)阻引起的電壓變化。
②從t2到t3期間,鋰電池端電壓從U2緩慢下降到U3。這是由于電池極化效應(yīng)存在,放電電流對極化電容充電的過程,是雙RC串聯(lián)回路的零狀態(tài)響應(yīng)。
③從t3到t4期間,鋰電池端電壓從U3突升變?yōu)閁4。這同樣是由于鋰電池歐姆內(nèi)阻引起的電壓變化。
④從t4到t5期間,鋰電池端電壓從U4緩慢回升到U5。這是極化電容對極化電阻放電的過程,是雙RC電路的零輸入響應(yīng)。
1.3.1 開路電壓
開路電壓UOC是電池在長時間靜置狀態(tài)下電池正負兩端穩(wěn)定的電壓。試驗表明,將電池靜置40 min后的電壓穩(wěn)定,可以認為等于電池的開路電壓。故可以取圖2(a)中U1為該SOC值下對應(yīng)的開路電壓。通過上述HPPC試驗,可以直接讀出SOC值0.1~1對應(yīng)的10個開路電壓值。
1.3.2 歐姆內(nèi)阻
由特征可知,鋰電池在放電瞬間以及停止瞬間端電壓會突變,均是由于歐姆內(nèi)阻導(dǎo)致的。故可以選取兩電壓差求均值除以電流得到歐姆電阻,如式(3)所示。
(3)
式中:U1為圖2(c)中開始放電時鋰電池端電壓;U2為圖2(c)中U1突降后端電壓;U3為圖2(c)中放電10 s結(jié)束時端電壓;U4為圖2(c)中U3電壓突升后端電壓;I為放電電流,其值為50 A。
1.3.3 極化電容極化電阻
從圖2(a)特征可以看出,從t2到t3期間,鋰電池端電壓從U2緩慢下降到U3。這是由于電池極化效應(yīng)存在,放電電流對極化電容充電的過程是雙RC回路串聯(lián)的零狀態(tài)響應(yīng)。對電路進行時域分析,選取t2到t3期間數(shù)據(jù),可以得到一個端電壓UL與時間t的函數(shù)關(guān)系,如式(4)所示。
UL(t)=U2-IRP1[1-e-t/τ1]-IRP2[1-exp-t/τ2]
(4)
式中:UL(t)為負載端電壓;t為時間,從U2為0時刻開始計時。
將極化內(nèi)阻Rp1、Rp2以及t1、t2作為未知量,根據(jù)公式(4)和從t2到t3期間的數(shù)據(jù)。運用Matlab中的cftool擬合工具,可以直接得到4個值,再根據(jù)公式t1=Rp1Cp1、t2=Rp2Cp2,求出極化電容Cp1、Cp2。
電池的SOC估算是一個明顯的隱馬爾科夫模型,針對傳統(tǒng)SOC估算方法對初值的依賴以及算法的穩(wěn)定性,提出一種在擴展卡爾曼算法基礎(chǔ)上,將狀態(tài)協(xié)方差矩陣進行平方根分解得到的擴展卡爾曼濾波(extended Kalman filter,EKF)算法,具有SOC初值自適應(yīng)修正能力,也有效防止因為計算機字長有限而可能引起的濾波發(fā)散。
卡爾曼濾波主要步驟是設(shè)定狀態(tài)向量初值X(0|0)及其協(xié)方差矩陣初值P(0|0),根據(jù)模型計算下一時刻估計值,再計算卡爾曼增益,通過卡爾曼增益修正估計值。在實際運用中,有時出現(xiàn)濾波發(fā)散問題。這可能是由于計算機的舍入誤差(計算誤差),使得P(k|k-1)、P(k|k)的計算值失去非負定性,導(dǎo)致K(k)的計算失真,造成誤差越來越大。對于矩陣S,可得SST是對稱非負定的。
鋰電池SOC估算流程如圖3所示。
圖3 鋰電池SOC估算流程圖
因此,可將狀態(tài)協(xié)方差矩陣P(k|k)進行分解為S(k|k)S(k|k))T,任何時刻至少具有非負定性。矩陣的分解方法如式(5)和式(6)所示。
(5)
(6)
式中:Pnn為協(xié)方差矩陣中第n行n列的值;Snn為分解協(xié)方差矩陣中第n行n列的值。
根據(jù)式(5)、式(6),對協(xié)方差矩陣P進行矩陣分解,故此可以得到相應(yīng)的改進擴展卡爾曼算法。首先是設(shè)定算法初值X(0|0)、S(0|0)。然后進入時間更新預(yù)測階段,根據(jù)狀態(tài)空間模型從(k-1)時刻的最優(yōu)預(yù)測值X(k-1|k-1)根據(jù)式(2)直接計算出的k時刻預(yù)測值X(k|k-1)及其對應(yīng)狀態(tài)變量協(xié)方差矩陣P(k|k-1)的分解矩陣S(k|k-1),改進的擴展卡爾曼算法計算過程預(yù)測階段式(7)和式(8)所示。
X(k|k-1)=A(k)X(k-1|(k-1)+BIk
(7)
S(k|k-1)=A(k)S(k-1|k-1)
(8)
式中:X(k|k-1)為根據(jù)公式從(k-1)時刻計算得到k時刻系統(tǒng)狀態(tài);X(k-1|k-1)為(k-1)時刻觀測更新修正后的系統(tǒng)狀態(tài);A(k)為狀態(tài)轉(zhuǎn)移矩陣;B為控制矩陣;S(k|k-1)為從(k-1)時刻計算得到k時刻協(xié)方差分解矩陣;S(k-1|k-1)為(k-1)時刻觀測更新修正后協(xié)方差分解矩陣。
接著觀測更新修正階段,通過計算卡爾曼增益K(k),如式(9)所示。再對直接計算出的k時刻預(yù)測值X(k|k-1)及協(xié)方差分解矩陣S(k|k-1)進行修正,得到了最優(yōu)估計值X(k|k)。計算過程如式(10)和式(11)所示。
(9)
X(k|k)=X(k|k-1)+K(k)[UL(k)-H(k)×
(k|k-1)-BI(k)]
(10)
(11)
式中:K(k)為卡爾曼增益;Fk、αk、γk為使公式簡潔的中間量;R為觀測白噪聲的方差;H(k)為觀測矩陣;X(k|k)為k時刻觀測更新修正后的系統(tǒng)狀態(tài);H(k)為狀態(tài)轉(zhuǎn)移矩陣;S(k|k)為k時刻觀測更新修正后協(xié)方差分解矩陣。
在給定初值X(0|0)、S(0|0)的情況下,通過以上公式進行迭代,就可以得到每個時刻狀態(tài)向量X(k|k)。根據(jù)所選取的狀態(tài)向量為[SOCUP1UP2]T,輸出估計狀態(tài)量的第一項即為需要的SOC估計值。根據(jù)以上算法進行SOC估算,因為P(0|0)非負定,至少應(yīng)保證狀態(tài)協(xié)方差矩陣P(k|k)總是非負定的,從而克服因計算機字長有限而可能引起的濾波發(fā)散。
本文參考北京公交動態(tài)測試(Beijing bus dynamic stress test,BBDST)工況,設(shè)置工況試驗,對所用中航鋰電LFP50AH三元鋰電池進行測試。電池充放電設(shè)備是由深圳市亞科源科技有限公司提供的BTS750-200-100- 4電池檢測設(shè)備,BBDST工況是對北京公交車起步、加速、滑行、制動、急加速、停車等各個環(huán)節(jié)的數(shù)據(jù)采集后進行處理所得到工況。由于本文是對鋰電池單體進行研究,根據(jù)實際情況,將每步工況功率按比例縮小。BBDST工況描述如表1所示。
表1 BBDST工況描述
表1中:Ph為真實的公交車起步加速滑行等工況下電池輸出功率。由于是對50 Ah鋰電池單體進行試驗,對Ph進行減小,得到了Pc中數(shù)據(jù)。Pc為本次對中航鋰電LFP50AH三元鋰電池進行試驗所用工況數(shù)據(jù)。單步為每一步工況時長,累計為工況累計時長。從表1可知,一次完整BBDST工況時長300 s。這里對電池進行20次BBDST工況測試。BBDST工況試驗數(shù)據(jù)如圖4所示。
圖4 BBDST工況試驗數(shù)據(jù)
隨著循環(huán)次數(shù)增加,放電電流增大,電池端電壓整體呈現(xiàn)下降趨勢
選擇在Matlab/Simulink中建立仿真系統(tǒng)模型,用于驗證算法SOC估算效果。結(jié)合根據(jù)前面知識,如所獲得二階等效電路模型參數(shù)數(shù)據(jù)、BBDST試驗數(shù)據(jù),建立Simulink仿真模型[6-10]。
運行仿真后得到SOC估算結(jié)果如圖5所示。
圖5 SOC估算結(jié)果
從圖5(a)所示的SOC估算圖可知:20次BBDST工況試驗,所用鋰電池SOC從100%下降到65%,初始SOC誤差為25%;改進EKF迭代10s后誤差降低到10%,80 s后最大誤差低于2%。對誤差值取絕對值后,再取平均數(shù),得到平均誤差為0.45%。結(jié)果表明,算法估算效果良好,且具有很強的修正初值誤差的能力。
對動力鋰電池LFP50AH建立二階等效電路模型,使用改進EKF算法進行SOC估算。在BBDST工況下,設(shè)定初始SOC誤差為25%。仿真結(jié)果表明,鋰電池SOC估算誤差在10 s后低于10%,在80 s后最大誤差低于2%,全程平均誤差為0.45%。改進EKF算法能有效修正SOC初值引起的誤差,并防止因為計算機字長有限而引起的濾波發(fā)散,且估算效果良好。