張周燦 謝長君 曹夏令 費亞龍 李小龍
(武漢理工大學,武漢 430070)
電池荷電狀態(tài)(State Of Charge,SOC)估計是電池管理系統(tǒng)的核心問題之一,而電池荷電狀態(tài)受充放電電流、環(huán)境溫度、循環(huán)次數(shù)等各種因素的影響,導致鋰電池SOC值很難被直接測量。常用的SOC估計方法有以下幾種:安時積分法[1]算法簡單、易行、精度較高,但存在累計誤差;開路電壓法由于需要長時間靜置,不適宜在線估計;神經(jīng)網(wǎng)絡算法[2]雖然精度高,但結構復雜,需要訓練大量的數(shù)據(jù)。擴展卡爾曼濾波算法[3](Extended Kalman Filter,EKF)是在電池荷電狀態(tài)估計中廣泛使用的算法之一,但其依賴精確的數(shù)學模型。在非線性處理上,其將非線性部分進行一階泰勒展開,忽略了高階項。因此在非線性很強情況下,容易使估算值嚴重偏離真實值。
無跡卡爾曼濾波(UKF)算法[4]、自適應卡爾曼濾波(AKF)算法[5,6]是當前的研究熱點。但UKF算法應用前提是要精確獲得系統(tǒng)過程噪聲和觀測噪聲的統(tǒng)計特性,較為不便。AKF算法在線估計過程噪聲和測量噪聲的協(xié)方差矩陣,可提高系統(tǒng)狀態(tài)的估計效果,但非線性較強時,濾波效果并不好。在兩者基礎上的自適應無跡卡爾曼濾波(AUKF)算法[7,8]結合概率統(tǒng)計知識,采用概率分布的思路處理非線性問題,是極具發(fā)展前景的非線性估計算法。本文將采用基于UT變換(Unscented Transformation,也稱無跡變換)的自適應無跡卡爾曼濾波算法,基于鋰電池2階RC模型,對鋰電池SOC進行估計。該算法是在傳統(tǒng)UKF算法的基礎上引入衰減因子與自適應調節(jié)因子,能夠有效減少系統(tǒng)噪聲的影響,提高算法濾波的穩(wěn)定性。
文中選用磷酸鐵鋰電池進行試驗??紤]到模型的準確度和計算復雜度,選擇2階RC電路模型作為鋰電池SOC估計模型,電路模型如圖1所示。2階RC模型對電池的3種特性(歐姆極化、電化學極化和濃差極化)分別進行建模。模型中Uoc表示開路電壓;Vo代表電池的端電壓;Re是歐姆內阻;Rs與Cs環(huán)路描述電池電化學極化效應;Rs與Cp環(huán)路模擬電池內部的濃差極化效應;u為端電流。
根據(jù)圖1所示電路圖,以SOC、兩電容上的電壓Us、Up為狀態(tài)變量,端電流u為輸入變量,端電壓Vo為輸出變量。
圖1 2階RC等效電路模型
由基爾霍夫定律建立圖1所示等效電路的狀態(tài)空間模型并離散化,得到其離散狀態(tài)空間模型:
u(k)為輸入變量;T是系統(tǒng)采樣周期。
為得到開路電壓與SOC的關系,本試驗采用中航鋰電公司生產(chǎn)的額定容量為40A·h的磷酸鐵鋰電池,開路輸出電壓(標稱電壓)為3.2V。建立的試驗測試裝置主要由電源、采集板、顯示器、鋰電池、放電裝置、霍爾電流傳感器等組成。通過調節(jié)放電裝置,使鋰電池進行恒流放電試驗。具體測試流程如下:先采用專用充電機將電池充滿電,直至電池SOC為1(充滿電狀態(tài)),然后靜置12h;在常溫下,將電池的SOC值從1到0進行10等分的恒流脈沖放電試驗,每次脈沖放電試驗結束后將電池靜置4h,并記錄此時電池的開路電壓值。脈沖放電電流為0.2C。
由上述試驗數(shù)據(jù)可得開路電壓Uoc與電池SOC的關系曲線如圖2所示。由5階曲線擬合可得它們之間的函數(shù)關系式如公式(2)所示:
圖2 開路電壓與SOC的關系
本文采用遞推最小二乘法來離線辨識鋰電池模型參數(shù),根據(jù)圖1電池模型等效電路原理圖,得到如下參數(shù)辨識原理式:
經(jīng)過雙線性變換處理得到如下方程式:
其中,T為采樣周期,取狀態(tài)變量:
得到最小二乘形式:
其中,e(k)是誤差函數(shù)。最小二乘法遞推計算公式如下:
初始值:θ(0)設置為0,協(xié)方差矩陣初始值P(0)=aI,a為很大的正數(shù),I為5階單位矩陣。
利用遞推最小二乘法公式(7)估計出模型參數(shù),然后采用公式(5)反推出模型的電容、電阻值:
UKF算法本質上是通過線性插值方法,對非線性模型進行的高精度變換。當非線性程度較小時,可以削弱非線性誤差的影響。其缺點是在非線性程度較強時,協(xié)方差更新時容易出現(xiàn)負定矩陣的情況。另外,UKF算法受初始值影響較大,系統(tǒng)噪聲較為明顯。在數(shù)據(jù)采集過程中噪聲統(tǒng)計特性未知,會導致卡爾曼濾波法的估計精度降低,甚至會引起發(fā)散,導致濾波結果不穩(wěn)定產(chǎn)生較大的誤差。為了提高系統(tǒng)精度需要在傳統(tǒng)UKF算法基礎上加以改進。
按照卡爾曼的遞推公式,根據(jù)新數(shù)據(jù)和前一狀態(tài)的估計值,再借助系統(tǒng)本身的狀態(tài)轉移方程,得出當前時刻的狀態(tài)估計值。鋰電池的非線性系統(tǒng)離散狀態(tài)空間方程為:
式中,f為非線性狀態(tài)方程;g為非線性觀測方程;Wk、Vk為隨機變量x與觀測變量y的高斯白噪聲,其方差矩陣分別為 Qw和 Rv:
初始化X0=(SOC0,0,0 )設置為狀態(tài)變量初始值,其方差估計P0:
根據(jù)狀態(tài)變量的統(tǒng)計量xk-1及其協(xié)方差,狀態(tài)變量的維數(shù)L=3;基于UT變換的自適應卡爾曼濾波估計鋰電池SOC的算法步驟如下:
a.計算采樣點
采用Sigma點對稱采樣策略,得到x點的Sigma點集,以及其對應的均值加權值和方差的加權值:
b.時間更新
根據(jù)狀態(tài)方程式(1)計算狀態(tài)更新:
計算預測狀態(tài)值:
計算狀態(tài)預測值的協(xié)方差:
根據(jù)方程式(1)測量更新:
計算預測測量值:
計算測量估計yk的協(xié)方差:
計算Xkk-1與Ykk-1的協(xié)方差:
c.測量更新
計算卡爾曼增益矩陣:
更新狀態(tài):
更新誤差協(xié)方差:
為了在非線性程度較強時能夠有效提高電池SOC估算精度,降低初始值和系統(tǒng)噪聲對濾波結果的影響,提高算法濾波的穩(wěn)定性。在傳統(tǒng)UKF算法基礎上引入衰減因子與自適應調節(jié)因子,組成帶有衰減記憶效應的無跡卡爾曼濾波器。由于系統(tǒng)噪聲也會影響到濾波結果,因此引入自適應調節(jié)因子調節(jié)相關的協(xié)方差矩陣,在一定程度上可改變其在濾波過程的作用。
在UKF算法的基礎之上引入衰減因子,組成帶有衰減記憶效應的無跡卡爾曼濾波器。這種算法與傳統(tǒng)UKF算法的主要不同之處是在公式(14)的基礎上增加了衰減因子S,使得公式(14)轉換成公式(22):
仿真結果表明,引入衰減因子后的算法帶有衰減記憶效應,并且衰減因子S的選取對濾波結果有較大影響,濾波精度隨著S的增大而減少,有時甚至會引起濾波發(fā)散。因此為有效提升濾波效果、提高系統(tǒng)穩(wěn)定性,還需引入自適應調節(jié)因子。
傳統(tǒng)UKF算法受初始值影響較大,此外,系統(tǒng)噪聲同樣也會影響濾波結果。因此,為了減少這些影響,自適應調節(jié)相關的協(xié)方差矩陣,可以在一定程度上改變其在濾波過程的作用。
對協(xié)方差矩陣公式(17)、式(18)、式(21)進行修正得到:
當UKF算法初始值存在誤差或系統(tǒng)存在異常擾動時,自適應因子αk<1,此時模型預測信息對最終濾波解的貢獻??;當預測信息異常時,會很大,此時自適應因子接近于0,預測完全不起作用。下面通過具體工況試驗驗證引入衰減因子與自適應調節(jié)因子之后AUKF算法的優(yōu)越性。
通過不同初始值情況下恒流放電工況試驗,得到AUKF算法對SOC估計及誤差曲線。在恒流脈沖充放電工況、美國城市循環(huán)工況(Urban Dynamometer Driv-ing Schedule,UDDS)兩種工況試驗下驗證AUKF算法在傳統(tǒng)UKF算法基礎上引入衰減因子和自適應調節(jié)因子之后對濾波結果、SOC狀態(tài)估計與估計誤差的影響。
為了驗證該算法不依賴初始值,對額定容量為單節(jié)40Ah的鋰電池進行恒流充放電試驗,試驗環(huán)境溫度為常溫,放電累計時間為200s。放電試驗前,對電池進行12h的充分靜置,根據(jù)開路電壓與電池SOC的對應關系獲取初始SOC值。在試驗過程中,實時采集電壓電流值,采樣頻率為10次/s,對單體電池進行0.2C的恒流放電試驗。通過測量得知,電池開路電壓初始值為3.137V,電池SOC值為0.912,作為安時積分法的初始SOC值。
為驗證SOC估算算法不依賴初始值的特性,假設SOC初始值偏離實際值,分別設定為0.8、0.6、0.96。采用AUKF算法來估計SOC值,并與安時積分法獲得的參考值進行比較。試驗數(shù)據(jù)曲線如圖3、圖4所示。從圖3可知,不同的SOC初始值,基于AUKF算法均能快速收斂到參考值附近。從圖4所示不同初始值下的估計誤差曲線可知,在誤差曲線后期,它們的估計誤差均能保持在(-0.80%,0.80%)之間。由此可得,AUKF算法對初始值不敏感,且收斂速度較快。
圖3 不同SOC初始值下AUKF算法對鋰電池SOC估計曲線
為驗證動態(tài)工況下算法的跟蹤能力,選取自定義恒流脈沖充放電工況試驗,電流工況數(shù)據(jù)如圖5所示,負數(shù)代表放電,正數(shù)代表充電。分別采用安時積分、UKF算法與AUKF算法估算的SOC值曲線如圖6所示,UKF和AUKF的估算誤差曲線如圖7所示。從圖6中可知,這兩種算法均能很好地跟蹤SOC參考值的變化。從圖7中可知,在初始階段,基于AUKF算法的估計曲線更快收斂到參考值附近,且在后期,AUKF的誤差比UKF的誤差要小。兩者均能保持在(-0.80%,0.80%),而傳統(tǒng)UKF算法的誤差最大會達到2%。
圖4 不同SOC初始值下AUKF算法對鋰電池SOC估計誤差曲線
圖5 恒流脈沖充放電電流工況數(shù)據(jù)
圖6 恒流脈沖充放電的鋰電池SOC估計
圖7 恒流脈沖充放電的鋰電池SOC估計誤差
為更好說明動態(tài)工況下算法的跟蹤能力,選取美國城市循環(huán)工況(UDDS)驗證試驗。實時電壓電流值的采樣頻率為10次/s。電流工況數(shù)據(jù)如圖8所示,負數(shù)代表放電,正數(shù)代表充電。同樣分別采用安時積分、UKF算法與AUKF算法估算的SOC值曲線如圖9所示,UKF和AUKF的估算誤差曲線如圖10所示。
圖8 UDDS工況下電流變化曲線
圖9 UDDS工況下鋰電池SOC值估計
圖10 UDDS工況下鋰電池SOC估計誤差
仿真曲線表明,在UDDS與恒流脈沖充放電兩種動態(tài)工況下AUKF曲線更加接近參考曲線,AUKF算法估算鋰電池SOC的波動性較小。此工況驗證試驗結果與自定義恒流脈沖充放電工況試驗結果相符。引入衰減因子與自適應調節(jié)因子之后的AUKF算法估算鋰電池SOC的波動性比傳統(tǒng)UKF算法小,系統(tǒng)噪聲更低,自適應能力更強。
鋰電池SOC值的在線估計是當前研究的熱點和難點問題。文中提出了在UKF算法基礎上引入衰減因子和自適應調節(jié)因子的AUKF算法,在上述多種動態(tài)實時工況中進行了對鋰電池SOC估計的試驗。試驗結果證明,相比傳統(tǒng)UKF算法,本文提出的基于AUKF算法對鋰電池SOC估計具有更高精度及更好的跟蹤性,提高了算法對初始值和系統(tǒng)噪聲的魯棒性,驗證了AUKF算法在電池SOC估計方面實用性強、精度高和收斂快等優(yōu)點。
[1]李申飛,易菊蘭,琚小明.電池電量精確測量方法的研究與實現(xiàn)[J].計算機工程與應用,2009,45(17):244-248.
[2]劉征宇,楊俊斌,張慶,等.基于QPSO-BP神經(jīng)網(wǎng)絡的鋰電池SOC預測[J].電子測量與儀器學報,2013,27(3):224-228.
[3]郭孔輝,付皓,丁海濤.基于擴展卡爾曼濾波的汽車質心側偏角估計[J].汽車技術,2009(4):1-3.
[4]沈艷霞,周園.基于無損卡爾曼濾波的鋰離子電池組SOC估計[J].電源技術,2014,38(5):828-831.
[5]張頔,馬彥,柏慶文.基于自適應卡爾曼濾波的鋰離子電池SOC估計[J].汽車技術,2011(8):42-45.
[6]劉和平,許巧巧,胡銀全,等.自適應卡爾曼濾波法磷酸鐵鋰動力電池剩余容量估計[J].重慶大學學報:自然科學版,2014,37(1):68-74.
[7]魏克新,陳峭巖.基于自適應無跡卡爾曼濾波算法的鋰離子動力電池狀態(tài)估計[J].中國電機工程學報,2014,34(3):445-452.
[8]胡志坤,劉斌,林勇,等.電池SOC的自適應平方根無跡卡爾曼濾波估計算法[J].電機與控制學報,2014,18(4):111-116.