趙云飛,徐俊,王霄,徐浩,梅雪松
(1.西安交通大學陜西省智能機器人重點實驗室,710049,西安;2.西安交通大學機械制造與系統工程國家重點實驗室,710049,西安;3.西安交通大學機械工程學院,710049,西安)
電池管理系統(BMS)是電動汽車的關鍵部件之一。電池荷電狀態(SOC)估計是BMS控制策略的基礎,準確估計SOC可以提高電池安全性、更好地管理電池能量和延長電池壽命[1-2]。
電池荷電狀態估計易受溫度、充放電倍率以及容量等因素影響,且電池系統是復雜的非線性系統,致使準確SOC估計變得困難。目前SOC估計存在幾種主流的估計方法:安時積分法[3]是工程上最常用的算法,它是一種開環估計方法,簡單易行,但電流的累積誤差會導致估計誤差變大;開路電壓法[4]只能在靜態條件下通過開路電壓與SOC關系精確辨識SOC值,不適用于動態過程;基于模型的方法[5-8]利用電池信息來建立電池模型,使用測量的電壓信號作為反饋形成閉環估計,完成高精度的SOC估計。
擴展卡爾曼濾波(EKF)算法是最常用的基于模型的估計方法,具備閉環和在線估計等優點。然而,在利用EKF算法估計電池SOC時,系統統計噪聲的不確定性和當前濾波值對舊數據的過度依賴等問題,會導致估計誤差較大、收斂較慢和濾波發散。何洪文教授指出,利用卡爾曼濾波算法來估計電池SOC時,由于電池模型和系統噪聲的不確定性,容易引起濾波發散[9]。孫逢春院士進一步研究了卡爾曼濾波算法,指出在估算過程開始時,過程噪聲協方差或測量噪聲協方差太小,會使估計誤差變大;反之,過程噪聲協方差或測量噪聲協方差過大,則會出現濾波發散等現象[10]。北京理工大學的熊瑞副教授深入研究了自適應擴展卡爾曼濾波(AEKF)算法,通過自適應地更新過程和測量噪聲協方差來提高電池SOC估計的準確度[11-12]。馬來西亞理工大學的學者繼續提出一種新的AEKF算法[13],降低了算法的復雜度,實現電池SOC的在線估計。但是,這類估計算法依然存在明顯弊端,即在利用AEKF算法估計電池SOC時,存在當前濾波值對舊數據的過度依賴問題,從而導致估計誤差變大甚至發散。
針對以上問題,本文提出一種雙自適應衰減擴展卡爾曼濾波(DAFEKF)算法。該算法采用時變衰減因子來抑制濾波器的記憶長度,以便充分利用當前觀測數據,減小陳舊量測值的影響,同時自適應地調整過程噪聲和測量噪聲協方差。實驗結果表明,本文提出的方法與EKF和AEKF算法相比,能有效地提高電池SOC估計精度和收斂速度。
等效電路模型是電路模型的主流發展方向,其結構簡單,易用數學方程來表達,且通用性強。它是由電路元器件組合而成的電路網絡,通過增加RC網絡數量來提高模型的準確度,但是這樣會使模型的復雜度增加,計算效率降低,實用性降低,所以本文采用一階RC模型[14-15],如圖1所示。

R1為歐姆內阻;R2、C2分別為極化內阻和極化電容;V2為極化電壓;E0為電池的開路電壓
在圖1中,V2和電流I的關系可以通過并聯的R2和C2得到,即
(1)
同時,根據基爾霍夫電壓定律有
V0=E0+IR1+V2
(2)
用z代表SOC,根據SOC定義有
(3)
分段線性插值可得到開路電壓E0與z的關系E0(z)=anz+bn,其中an和bn為擬合參數。
綜上,可以獲得電池模型的狀態空間表達式

(4)

最小二乘法因其原理簡單、收斂較快、易于理解、易于編程實現,常用于動態系統的模型參數辨識。
對式(4)進行拉氏變換,并將式(4)中狀態方程的變換結果代入觀測方程,可以得到
(5)
vt(k)=a1vt(k-1)-a2vt(k-2)+b0i(k)-
b1i(k-1)+b2i(k-2)
(6)
遞推最小二乘算法[16-18]是自適應控制領域中最流行的在線參數估計,在遞推最小二乘算法的基礎上加入遺忘因子,可以加快收斂速度,提高跟蹤性能。本文采用含自適應遺忘因子的遞推最小二乘(AFFRLS)算法辨識電池模型參數,遞推公式為
y(k)=φT(k)θ
(7)
(8)
(9)
(10)
(11)
L(k)=-round(μe2(k))
(12)

(13)
式中:e(k)是y(k)的預計誤差;λ(k)、λmin分別是遺忘因子和遺忘因子的最小值;K(k)是增益因子;P(k)是協方差矩陣;φT(k)=[vt(k-1),-vt(k-2),i(k),-i(k-1),i(k-2)];θ=[a1,a2,b0,b1,b2];round是四舍五入取整函數。

圖2 脈沖測試電壓曲線
通過混合動力脈沖能力特性測試獲得電壓實驗數據,進行離線參數辨識后得到R1、R2、C2真實值,具體過程如圖2所示。采用電池10 s放電(AC段)和放電后40 s擱置(CE段)的電壓數據,利用Matlab中cftool工具箱擬合電壓時間曲線來獲得參數真實值,分別是R1=0.041 Ω、R2=0.011 Ω和C2=2 kF。
采用AFFRLS算法估計負載電壓誤差如圖3,參數估計值與實際值對比如圖4所示。
真實測量端電壓與模型端電壓間的絕對誤差如圖3所示,其負載電壓最大誤差為0.020 5 V,平均誤差為0.001 6 V,相對誤差是0.43%,表明模型端電壓對真實測量端電壓具有很好的追蹤效果。

圖3 采用AFFRLS算法估計的負載電壓誤差

(a)歐姆內阻

(b)極化內阻

(c)極化電容
理論上電池模型參數不可能出現負值,所以可以設置參數R1、R2、C2的下限為0,據此得到電池參數辨識的結果(見圖4)。由圖4可知,電池模型參數快速收斂于真實值,到達穩態后波動很小,表明AFFRLS算法適用于電池參數的在線辨識。
圖3和圖4的分析結果表明,本文所建立的電池模型和參數辨識方法是可靠的。下面,將采用AFFRLS對電池模型參數進行在線辨識。
將式(4)離散化并結合在線辨識參數,可得離散電池模型
(14)
(15)
(16)
(17)
(18)
式中:ωk和vk為零均值不相關白噪聲向量;ωk表示系統噪聲,其協方差矩陣為Qk;vk表示觀測噪聲,其協方差矩陣為Rk;exk+1是系統狀態量誤差;ek+1是殘差,Pk+1是系統狀態量誤差的協方差;Pyk+1是殘差的協方差;cov表示協方差。
針對卡爾曼濾波法在鋰離子電池SOC估計時存在誤差較大、收斂較慢等問題,提出了基于DAFEKF算法的SOC估計算法。該算法采用時變衰減因子來減弱過去數據對當前濾波值的影響,提高濾波器的魯棒性和精度,自適應地調整過程噪聲和測量噪聲協方差,提高了濾波器的精度和收斂速度。
本文雙自適應衰減擴展卡爾曼濾波算法的思想如下。

(19)

(20)
(3)自適應衰減因子。為了提高濾波器的魯棒性和精度,可加入衰減因子α。當模型精準時,卡爾曼濾波的輸出殘差序列是不自相關的高斯白噪聲序列,因此要求不同時刻的殘差序列處處保持相互正交,即下式成立
k=0,1,2,…,j=1,2,…
(21)
通過式(21)可以實現衰減因子α的自適應。綜上,
DAFEKF的理論推導已完成。DAFEKF算法的實現流程如圖5所示。

圖5 DAFEKF算法的實現流程圖
雙自適應衰減擴展卡爾曼濾波的具體遞推流程如下。
(1)初始條件為
x0/0=E(x0),P0/0=E[(x-x0)(x-x0)T]
(22)
(2)向前推算狀態變量
(23)
(3)向前推算誤差協方差
Pk/k-1=(Ak+E)α(k)Pk-1(Ak+E)T+Qk
(24)
(4)卡爾曼增益更新
Kk=Pk/k-1CT[(CPk/k-1CT+Rk)]-1
(25)
(5)狀態估計測量更新
(26)
(6)誤差協方差測量更新
Pk/k=[I-K(k)Ck]Pk/k-1
(27)
(7)測量噪聲和觀測噪聲更新
Qk=Qk-1+1/LQ(Q*-Qk-1)
(28)
(29)
Rk=Rk-1+1/LR(R*-Rk-1)
(30)
(31)
式中:LQ和LR分別表示過程噪聲和測量噪聲調整窗口值。
(8)衰減因子更新
(32)
(33)
(34)
(35)
通過上述流程,完成雙自適應衰減擴展卡爾曼濾波的計算,得到準確的SOC估計。
電池測試臺的原理如圖6所示,其中包括電池測試系統NEWARE CT4032、Temp & Humi可編程室、主機和用于編程CT4032的BTS軟件。其中主機的BTS軟件將當前信息發送到NEWARE CT4032系統,NEWARE CT4032系統根據主機中BTS軟件的當前信息對電池進行充電和放電。電流、電壓和溫度由傳感器收集并傳輸到主機。Temp & Humi可編程室控制電池充放電時的環境溫度和濕度。采用NCR18650鋰離子電池,其額定電壓為3.7 V,實際測量容量為1 573 mA·h。電池測試實驗平臺如圖7所示,實驗前電池為滿充狀態,以UDDS循環放電至截止電壓,總時間約5 000 s,根據得到的數據進行電池參數在線辨識和SOC估計。

圖6 電池測試臺原理圖

圖7 電池測試實驗平臺
分別使用了安時積分(Ah)算法、擴展卡爾曼濾波(EKF)算法、自適應卡爾曼濾波(AEKF)算法和本文的雙自適應衰減卡爾曼濾波(DAFEKF)算法估計電池SOC(用符號SSOC表示),其中在知道初始SOC時,采用可以得到較高的估計精度,所以用Ah算法得到的SOC作為參考值,AEKF與EKF算法的SOC估計對比如圖8所示,本文DAFKF算法與EKF算法的對比如圖9所示。

(a)SOC估計

(b)SOC估計誤差

(a)SOC估計
由圖8可知,當SOC初始化誤差為20%時,SOC估計誤差降到1%,采用AEKF算法需要116 s,采用EKF算法需要425.5 s,AEKF相比于EKF,整體收斂速度變快,誤差減小。但AEKF存在超調現象,在800 s和2 200 s時,估計誤差超過EKF,采用AEKF算法估計的SOC誤差超出2%。

(b)SOC估計誤差
由圖9可知,當SOC初始化誤差為20%時,SOC估計誤差降到1%,采用新型DAFEKF算法需要77.3 s,采用DAFEKF估計的SOC誤差相對于EKF收斂速度變快和誤差范圍整體縮小,同時解決AEKF的超調問題,收斂后的整體誤差小于2%。
本文提出了一種雙自適應衰減擴展卡爾曼濾波(DAFEKF)算法來估計鋰離子電池SOC。首先采用了等效電路模型對鋰離子電池進行建模分析,并使用含自適應遺忘因子的遞推最小二乘法在線辨識模型參數,然后利用所提出的DAFEKF算法估計電池SOC。為了驗證本文所提算法的有效性,將本文算法的估計結果與安時積分法、EKF和AEKF算法的估計結果進行比較,實驗結果表明:本文所提算法可以提高鋰電池SOC的估計精度,使SOC估計誤差小于2%;本文所提算法可以提高鋰電池SOC估計的收斂速度,進而有利于快速獲得準確的SOC估計值。