童佳俊 方忠慧 端鵬 齊國慶 張莉娟
(南京中歐威能新能源動力系統有限公司)

電池的荷電狀態(SOC)反映的是電池的剩余電量。SOC的估算是電池管理系統(BMS)中的一項關鍵技術,也是整個系統設計的難點之一,其估算的準確度將直接影響到整車的控制策略。目前通常采用的方法是建立電池的等效電路模型來分析電池外部特性從而計算SOC,而傳統的Rint和Thevenin電池模型其結構較為簡單,精度不高,并且目前國內外產品中普遍采用的SOC計算方法是安時積分法,這種估算方法雖然原理較為簡單,易于實現,但是其估算精度有限,依賴于SOC初值,并且容易產生累計誤差。基于以上問題,該文采用了2階RC等效電路模型,并運用擴展卡爾曼濾波算法(EKF)來估算SOC,經過仿真驗證,達到了預期的效果。
電池的充放電過程是一段復雜的電化學過程,為了確定其電壓、電流、SOC及內阻等特征量之間的數學關系,首先需要建立電池的等效模型,如圖1所示。Thevenin模型具有較為良好的非線性,能夠模擬出電池的充放電特性,并且模型較為簡單,便于計算,因此得到了廣泛應用,其電路結構,如圖1a所示,模型中使用單RC環來表示電池的極化現象。然而在電池實際的充放電過程中存在著多個極化現象,例如:濃差極化和電化學極化等,因此可以在模型中采用多個RC環相串聯來表示不同的極化現象,從而提高電池模型的精度,但同時這樣計算量也會大大增加,通過權衡模型精度以及計算難度后,文章采用2階RC的等效電路模型,如圖1b所示。

圖1 電池等效電路模型
在確定了電池的等效模型之后,需要根據電池的實際性能對模型中的參數進行辨識。這里需要辨識的參數有:UOC,R0,R1,C1,R2,C2。文章所使用的電池是一個由45塊18650型三元電池并聯組成的電池模塊包,額定電壓為3.6 V,額定容量為117 A·h。模型的參數辨識通過脈沖放電試驗來實現,試驗步驟為:在不同的SOC下,將電池以58.5 A電流恒流放電400 s后靜置2 h,利用電池測試柜實時采集電池的電壓和電流等動態參數。試驗過程中電壓和電流變化曲線,如圖2所示。

圖2 脈沖放電試驗中電流與電壓的變化曲線
1.2.1 開路電壓的辨識
在電池的充放電過程中,電池的SOC與電池電動勢之間有一個相對穩定的對應關系。電池電動勢的獲取比較困難,而在電池長時間靜置后,其內部的極化反應消失,此時其開路電壓與電池的電動勢近似相等,因此采用開路電壓來代替電池電動勢。通常測定“SOC-開路電壓”關系采用的方法是選取不同的SOC點,測量電池充分靜置后的開路電壓,然而這種方法需要花費大量的時間。文獻[1]提出了一種快速測量開路電壓的方法,并對該方法的有效性進行了驗證。試驗步驟為:在某個SOC點,電流58.5 A放電10 s,靜置40 s;電流58.5 A充電10 s,靜置40 s,取2次靜置40 s后電壓的均值,即為當前SOC狀態下的開路電壓,再利用MATLAB軟件對試驗數據進行擬合,得到SOC-開路電壓曲線,如圖3所示。

圖3 SOC-開路電壓擬合曲線
擬合所得公式,如式(1)所示。

1.2.2 歐姆內阻及極化參數的辨識
在圖2所示的放電過程中,放電開始和放電結束時電壓有一個瞬間的直線下降過程,這是由電池的歐姆內阻(R0)引起的。利用這個特性計算電池的歐姆內阻,如式(2)所示。

式中:UA,UB——電池在圖2中A,B點處的電壓,mV。
由于電池開始放電前已經經過長時間的靜置,其內部極化反應已經消失,故圖2中A~C過程可以看作是電壓的零狀態響應過程。電池兩端的電壓,如式(3)所示。

式中:e——常數,e=2.718 281 8…;
t——時間,s。
圖2中,C~E過程是電池在放電后靜置的過程,其電壓變化過程可以看作是零輸入響應過程,表達式如式(6)所示。

式中:U1C,U2C——電阻R1,R2在圖2中C點處電壓,mV。
令:

式中:tC——圖2中C點處對應的時間,s。
則式(6)可以化簡成:

然后利用MATLAB擬合工具,對圖2中的DE曲線按照式(8)進行自定義公式擬合,得到 a,b,c,d,f的值,再根據式(7),即可得到 R1,R2,C1,C2的辨識結果。
最終 R0,R1,R2,C1,C2的辨識結果,如表 1 所示。

表1 2階RC等效電路模型參數辨識結果
EKF算法是對經典卡爾曼濾波器的擴展,將非線性系統的狀態空間方程進行線性化處理,再利用卡爾曼濾波算法的遞推過程對系統狀態進行最優估算[2]。
EKF狀態方程和輸出方程,如式(9)所示[3]。

式中:xk+1,xk——系統的狀態變量;
uk——控制函數;
yk——系統的觀測變量;
f(xk,uk)——非線性狀態轉移函數;
g(xk,uk)——非線性測量函數;
wk,vk——k時刻的過程噪聲、測量噪聲。
根據圖1,選取電池的SOC以及2個RC回路上的電壓(U1,U2)作為電池的狀態參數,并以I為輸入量,U為輸出量。則在電流激勵下,各狀態參數的關系,如式(10)所示。

式中:T——采樣周期,s;
Q——電池的額定容量,A·h;
τ1,τ2——R1C1環、R2C2環的時間常數,s;
U1(k),U2(k)——在k時刻電阻R1,R2兩端的電壓,mV。
令:xk=[SOCkU1(k)U2(k)]T,可將式(10)改寫為:


由電池等效電路模型得知,輸出量(即電池兩端電壓U)與狀態參數的關系,如式(13)所示。

式中:Uk——k時刻電池兩端電壓,mV。
由1.2小節可知,UOC與SOC之間是非線性關系,因此UOC(SOCk)是非線性函數,根據EKF原理,對其進行線性化處理[4]:

式中:Ck——雅克比矩陣。
令:yk=Uk,則電池模型的輸出方程,如式(15)所示。

最后,利用EKF算法估算電池SOC的具體步驟如下:
1)為 xk、均方估計誤差(Pk)、過程噪聲方差(Qk)、觀測噪聲方差(Rk)設定初值。
2)根據前一時刻的狀態估計值(xk-1)和均方誤差估計值(Pk-1),對當前時刻的狀態變量和協方差矩陣進行預估計:

3)計算卡爾曼增益:

4)根據當前時刻的電壓測量值(yk)和卡爾曼增益(Kk),修正狀態估計值和均方差估計值,得到最優估計:

循環步驟2)~4)即可得到每個時刻的SOC值。
基于以上計算,在MATLAB/Simulink環境下搭建了SOC估算仿真模型,如圖4所示。模型由參數估計、電池模型及EKF算法3個子系統組成,模型輸入為電池工作電流,以當前時刻的SOC估計值作為下一時刻的輸入,通過算法的不斷迭代得到每一時刻的SOC最優估計,最后將仿真結果與SOC理論值對比來驗證算法的準確度。

圖4 EKF估算SOC仿真模型
圖5示出仿真模型計算出的估計值和SOC理論值的對比,SOC的初值為0.8。為了驗證EKF算法的有效性,將模型的初始SOC值分別設為0.85和0.75,仿真結果表明,EKF算法估算精度較高,并且不依賴于初值,對初始誤差有很強的修正作用。

圖5 EKF估算SOC仿真結果
文章在Thevenin模型的基礎上進行改進,建立了2階RC等效電路模型,通過脈沖放電試驗完成了電池內部參數的離線辨識,提高了電池模型的精確度;并將EKF算法應用在SOC的估算上,解決了傳統安時積分法所帶來的初始誤差與累計誤差的問題。該算法在提高SOC估算精度的同時,也提高了其可靠性。仿真結果表明,該算法具有較好的收斂性,在不同的SOC初值下都能夠較快地收斂于真值。
文章建立的2階RC等效電路模型參數是通過試驗數據離線辨識得到,由于電池在工作過程中模型參數是實時變化的,因此通過離線方式辨識的模型參數并不一定能很好地跟蹤模型真實值。可以通過在線辨識的方法來提高模型參數的準確度,從而建立更準確的電池模型,這也是下一步的研究工作之一。