王 越 李立偉
(青島大學自動化與電氣工程學院 青島 266071)
為延長鋰電池壽命、改善鋰電池的使用性能,動力電池組在使用中需要配備一套電池管理系統(BMS,Battery Management System),BMS需要具備均衡功能以及電池組狀態監測的功能[1]。SOC估算是電池組狀態監測中的重要功能,一般通過百分比的形式直觀地反映出當前電池組的剩余電量,合格的SOC估算能為使用人員或智能設備提供一個準確的剩余電量參考,防止過充、過放對電池組帶來的損害[2]。
現有的BMS大多采用安時積分法配合開路電壓法的方式對SOC進行估算,不僅在使用上受到限制,估算的精確度也難以得到保障[3],為改善以上缺點,本文介紹了擴展的卡爾曼濾波器(EKF,Extended Kalman Filter)在SOC中的應用,在Simulink仿真環境下建立了電池模型、搭建鋰電池充放電模擬電路、編寫EKF程序對SOC進行估算,在仿真基礎上驗證了EKF估算SOC的準確性和可行性。
目前比較常用的SOC估算方法有放電實驗法、開路電壓法、安時積分法、神經網絡法、卡爾曼濾波法等,使用放電實驗法時需要使電池組停止工作,不適合應用在動力電池組中;而神經網絡法需要大量的參考數據進行訓練,時間成本使得其在BMS中的應用并不廣泛[4~6]。故本文暫針對BMS中常用的開路電壓法、安時積分法以及卡爾曼濾波法進行討論。
鋰離子電池內阻包括符合歐姆定律的歐姆內阻和呈容性的極化內阻,一階戴維寧等效模型能較準確地模擬電池的充放電動態特性,在Simulink環境下建立鋰電池一階戴維寧等效模型,如圖1所示。E為鋰電池電動勢,在數值上近似于開路電壓;R1為歐姆內阻,引起電池充放電瞬間端電壓的突變;R2、C1分別為極化電阻和極化電容,引起電池充放電時端電壓的漸變[7~8]。

圖1 一階戴維寧等效模型
由于鋰電池的開路電壓(Open Circuit Voltage,OCV)在數值上與電動勢近似,而SOC值與電動勢之間存在對應關系,故可通過讀取電池的開路電壓來估算SOC。在仿真環境下對容量為10Ah、標稱電壓為3.7V的鋰電池進行電流為1C的放電,每放電5%后靜置1800s以使開路電壓完全穩定,直至SOC值為0%。測得SOC與OCV的對應關系如圖2所示,可以看出在SOC值兩端SOC與OCV對應關系較為明顯,而在中間部分OCV的變化幅值并不明顯。在中間部分容易引起SOC估算誤差,以及需要長時間靜置使得開路電壓穩定的特點使得開路電壓法并不是一種理想的SOC估算方法。

圖2 SOC-OCV曲線圖
由于電池內部參數是不斷變化且難以測量的,安時積分法直接將整個電池看做一個節點,通過不斷測量電池輸入、輸出電流并積分對SOC進行估算,其估算公式為

其中,SOC0表示初始SOC值,Qr為額定容量,η為充放電倍率為時間t內流過的電量。可見安時積分法的精確度完全依賴于初始SOC值的精確度,且隨著時間的增加,電流的測量誤差將會積累,因此安時積分法常結合其他方法使用[9]。
卡爾曼濾波器用來估計一個由線性隨機差分方程所描述的時間離散系統的狀態量,從觀測值中得到系統狀態量在最小均誤差意義下的最佳逼近值。它利用前一時刻估計值和現時刻的觀測值來更新對狀態變量的估計,其對初始值的不敏感性非常適合應用在SOC估算中[10~11]。其離散模型為
狀態方程:

觀測方程:

其中A、B、C、D分別為狀態轉移矩陣、狀態量控制矩陣、觀測矩陣與觀測量控制矩陣,均由系統特性所決定;X、Y、U分別為狀態量、觀測量、控制量;Wt、Vt分別為過程噪聲和觀測噪聲,一般為方差為0的高斯白噪聲。在BMS中通常可以測量電池的電流及端電壓,在不考慮充放電倍率的情況下,結合安時積分法與一階戴維寧等效電路,得出SOC估算中離散的狀態方程與觀測方程為

其中I為流過電池的電流,UC為極化電容兩端的電壓。除了SOC之外,將UC作為另一個狀態量,根據一階電路全響應方程計算UC

將UC作為狀態量加入狀態方程,得到SOC估算中的卡爾曼濾波器計算公式:


其中Et為電池的電動勢,與狀態變量SOC之間存在對應關系

通過圖2顯然這個對應關系是非線性的,而普通卡爾曼濾波器只適用于線性系統,故因此提出了擴展的卡爾曼濾波器。
擴展的卡爾曼濾波即通過線性變換將非線性系統轉換成線性系統,使之適應卡爾曼濾波[12]。對于非線性系統,其離散的狀態空間模型如下:



至此任一時刻的狀態轉移函數和觀測函數全為線性系統,那么結合以上公式,SOC中擴展卡爾曼濾波器的離散模型為

擴展的卡爾曼計算公式及流程如下:

得出擴展卡爾曼計算公式之后,還需要對公式中的各參數進行辨識,即鋰電池等效模型中的R1、R2、C1。對鋰電池進行以1C電流放電5%、靜置180s的循環放電,讀取鋰電池的開路電壓,截取4000s~5000s繪制放電電流、電壓圖。如圖3所示,在電流由10A降為0A的瞬間,因歐姆內阻的存在使得電池電壓瞬間升高,通過Workspace中的數據得出ΔU1為0.037V,故歐姆內阻R1為3.7mΩ。

圖3 鋰電池放電曲線圖
由于在鋰電池中極化內阻會隨SOC的變化而改變,故 R2、C1是SOC的函數,以t為4140時刻為例說明極化電阻與極化電容的辨識過程。當t=4140s時端電壓由3.8879V瞬間升至3.9249V,靜置至電壓穩定后測得電壓為3.9771V,故ΔU2等于52.2mV,得出R2=5.22mΩ。根據一階電路的零輸入響應公式:

在電壓緩慢上升的過程中任取時間t=4170s,由數據得此時端電壓為3.9745V,那么此時電容上的電壓 UC1為 0.0026V(即 3.9771~3.9249),又有Δt=30s,將各數據代入式(18)計算得出此時C1為1915F。為得出R2、C1隨SOC的變化關系,分別對SOC為10%至90%共17個點進行參數辨識,并通過cftool工具進行擬合,擬合曲線如圖4所示,圖中橫坐標SOC的1即為100%,擬合公式為

同樣地對鋰電池進行以1C電流放電5%、靜置180s的循環放電,待電壓穩定后讀取開路電壓。因電池的過充、過放對電池損耗較大,故暫不研究極端情況,取SOC為20%至90%區間進行擬合,擬合曲線如圖5所示,公式為


圖5 SOC-OCV擬合曲線
為驗證擴展卡爾曼濾波器估算SOC的可行性,在Simulink環境下搭建鋰電池充放電電路。如圖6所示,CCS為壓控電流源,通過信號發生器產生一定幅值、一定周期的電平驅動CCS以實現對鋰電池的均衡充放電;由于擴展卡爾曼算法較為復雜,不適合使用Simulink自帶模塊搭建,故將算法寫入S-Function模塊,電池端電壓作為觀測量、電池電流作為控制量輸入S-Function,經S-Function計算處理后輸出SOC估算值;同時為了調試觀察,利用Scope模塊觀測各量狀態,并通過Simout模塊將觀測數據輸出到Workspace中用于分析。

圖6 Simulink仿真電路
對鋰電池進行電流為1C的循環放電,每放電180s后靜置120s,并且通過S-Function對輸入電壓、電流分別加入方差為零、幅值分別為0.005、0.01的高斯白噪聲。將鋰電池模型的初始電量設置為80%,即認為電池初始的真實電量為80%,為驗證擴展的卡爾曼濾波法對SOC初始值的不敏感性以及對SOC誤差的矯正能力,分別設置輸入濾波器的初始SOC為100%和30%,通過仿真實驗與安時積分法進行對比,仿真結果如圖7、8所示,分別作兩種情況下的EKF估算值與理論值的殘差圖如圖9、10所示。

圖7 初始SOC為100%時的EKF估算SOC曲線圖

圖8 初始SOC為30%時的EKF估算SOC曲線圖

圖9 初始SOC為100%時的EKF估算SOC殘差圖

圖10 初始SOC為30%時的EKF估算SOC殘差圖
通過仿真結果得出以下結論:單純使用安時積分法時,若初始值有誤,則初始誤差將會一直存在,大大降低了SOC估算的準確性;使用EKF估算SOC對初始值不敏感,EKF能在短時間能矯正SOC值,通過對數據分析可以得出,在初始SOC與真實SOC相差50%時,EKF能在60s內將誤差矯正至5%以內;在EKF完成大誤差矯正后,其估算誤差因加入高斯白噪聲的緣故在-2%至2%之間浮動,最大不超過3%;且隨著時間的推進、迭代次數的增加,EKF誤差將越來越小,估算SOC值越來越逼近真實值。
以上結論證明了EKF在SOC估算中的可行性、準確性與對初值的不敏感性。
通過實驗證明了擴展卡爾曼濾波器在SOC估算中的良好應用,其具有較高的可靠性與穩定性。工程應用中可將算法移植到各種嵌入式設備中,如電動汽車BMS主控、航天鋰電池供電設備、精密供電儀器等用鋰電池供電的場合,具有一定的實用價值[15]。本文實驗建立在仿真基礎上,實際應用中仍需考慮許多其他影響因素,如溫度、放電倍率、電池老化程度等對SOC估算的影響,但對于擴展的卡爾曼濾波器而言,只要模型建立可靠、參數辨識準確,就可以將SOC估算值向真實值上靠攏。下一步將結合實驗室條件對鋰電池進行實際參數辨識,并將其他影響因素加入到算法中,以期更準確地對SOC進行測量。