李練兵,孫 坤,季 亮,何桂欣,王 佳,孫騰達
(河北工業大學 人工智能與數據科學學院,天津 300130)
針對儲能電池SOC的估算問題,國內外專家學者進行了大量的研究[1-3]。其中,安時積分法、開路電壓法和神經網絡法等算法為開環估算算法中的代表;卡爾曼濾波法(Kalman filter,KF)、粒子濾波法和滑膜觀測器等算法則為典型的閉環估算算法[5]。劉淑杰等提出了基于改進粒子濾波算法、自適應遞推最小二乘法與無跡卡爾曼濾波[6-8]的電池SOC估算方法。文獻[9]提出了一種使用輸入時間延神經網絡的鋰離子電池SOC估計方法,文獻[10]對電池松弛效應及極化現象影響進行建模補償,文獻[11]采用擴展卡爾曼濾波估算電池的SOC,文獻[12]提出了基于自適應回歸擴展卡爾曼濾波的電動汽車動力電池全生命周期的荷電狀態估算方法,文獻[13]提出了一個集成的荷電狀態估計模型,文獻[14]提出了一種基于減法聚類的神經模糊系統的荷電狀態估計方法,都提供了充電狀態估計的替代方案,但是實驗結果的誤差都比較大。針對上述問題,本文采用基于二階Thevenin模型的等效電路模型,獲取狀態空間方程,在經過對比電池參數的離線辨識和在線辨識的情況下,采用結合改進協同濾波算法的雙卡爾曼濾波(double Kalman filter,DKF)的方法實現電池參數的確定和SOC的估算,經實驗驗證,采用DKF算法估算電池SOC具有良好的收斂性和精度。
混合動力脈沖功率特性(hybrid pulse power characteri-stic,HPPC)測試實驗是在電池允許的最大放電倍率下,對電池進行周期性的放電和充電實驗,體現動態性能的一種特征[15]。通過記錄電池在放電、靜置和充電這一運行過程中的電壓數據[16],利用電路的等效電路模型計算出在不同的荷電狀態下電池歐姆內阻、電化學極化阻容和濃差極化阻容[17]。
模型參數辨識方法包括離線辨識和在線辨識。離線辨識是通過批量處理實際工況下采集到的數據,結合電路模型的電氣特性進行分析計算獲得各參數的估計值。在線辨識是根據系統運行過程中的實時數據,通過遞推公式不斷迭代更新得到模型參數的最優值,二者最大的區別在于實時性。鋰離子電池的SOC不能直接測量得到,需要通過開路電壓(open circuit voltage,OCV)等外特性來完成對荷電狀態的估算。由圖1可知,二階Thevenin等效電路模型中需要辨識參數有開路電壓UOCV、歐姆內阻R0、電化學極化電阻R1、電容C1和濃差極化電阻R2、電容C2。結合電路模型的電氣特性得到這些參數與實驗采集數據函數關系,得到電池等效電路模型參數進而估算電池SOC。本文對電池進行的測試均在恒溫箱中進行,設定溫度為25 ℃,消除其它的干擾因素同時忽略電池循環壽命對參數的影響。

圖1 二階Thevenin等效電路模型
電池處于工作狀態下,具體表現為隨著荷電狀態的減少開路電壓隨之降低。聯合恒流放電和安時積分法計算出電池荷電狀態值,同時采集放電過程的電壓值,通過提取特定荷電狀態值下開路電壓數據進行擬合,即可得到OCV與SOC曲線以及函數關系。
對放電過程中的SOC值進行標定,并得出如圖2所示的OCV與SOC的關系的擬合曲線,進一步得到OCV-SOC函數表達式。

圖2 OCV-SOC擬合結果
相應的函數關系如式(1)所示
UOCV=11.08SOC6-25.581SOC5+17.54SOC4-
1.159SOC3-2.386SOC2+1.263SOC+3.422
(1)
歐姆內阻反映電池端電壓的突變特性,表現在電池端電壓在放電開始和結束的瞬間產生跳躍式的變化。圖3為脈沖放電實驗過程中電池端電壓的響應曲線。電流加載瞬間,端電壓陡降;放電結束瞬間,端電壓陡升,這兩個壓差稱為電壓回彈特性,利用兩個電壓差可以求出內阻值。定義圖中電流加載前后的電池端電壓分別為VA、VB,脈沖電流卸載前后電池端電壓分別為VC、VD。

圖3 脈沖放電過程中電壓響應曲線
為了減少誤差帶來的干擾,取電流加載瞬間的電壓差和電流卸載瞬間的電壓差的平均值對脈沖電流的比值作為歐姆內阻,計算公式如式(2)所示
(2)
對不同SOC處求取電池內阻值,得到歐姆內阻R0。
脈沖放電電流卸載后電池處于靜置狀態下,即圖3中從C點到E點的電壓變化曲線視為兩個RC網絡的零輸入電壓響應,其端電壓響應表達式如式(3)所示
UL(t)=UOCV-e-t/R1C1U1(0)-e-t/R2C2U2(0)
(3)
式中:U1(0) 為等效電路模型中電化學極化R1C1網絡的初始電壓,U2(0) 為等效電路模型中濃差極化R2C2網絡的初始電壓。
將放電靜置階段電壓響應數據導入matlab中,使用cftool中的Custom Equations功能進行指數擬合,根據端電壓響應表達式(3)選取的擬合曲線表達式為(4)
y=a-be-ct-de-ft
(4)
式中:a,b,c為常數。
電池靜置1 h后,內部的極化反應已經消失,如圖3中從A點到C點,此時電壓響應為零狀態響應,端電壓零狀態響應表達式如式(5)所示
UL=UOCV-IR0-IR1(1-e-t/R1C1)-IR2(1-e-t/R2C2)
(5)
在C點處,RC并聯環節的電壓等于初始電壓,即

(6)
公式聯立,可以求得電池極化參數R1、C1、R2、C2的值。
離線參數表只能涵蓋部分工作條件,適用范圍具有局限性,因此離線辨識并不能保證跟蹤準確性。此外,鋰離子電池運行過程中內部化學反應復雜,且受外界環境溫度變化影響,通過查表法獲取模型的離線參數應用于SOC估算會導致較大的誤差。由于電池系統的時變性,為了提高荷電狀態的估計精度,提高電路模型的適應能力,需要對參數進行在線辨識并且根據實時采集數據實現參數的更新修正。在線辨識參數基于采集電池工作數據,通過算法更新修正電池參數,追蹤電池的實際工作狀態[18]。
本文采用結合協同過濾方法的卡爾曼濾波法辨識電池等效電路模型參數。協同過濾算法基于不同的偏好對數據結果進行群組劃分并歸類相似的數據。電池在線參數辨識步驟分為預測階段和修正階段,預測階段也常稱為時間更新階段,此階段內容是依據系統的狀態方程由k時刻的狀態估計值推算k+1時刻的狀態先驗估計值;修正階段又稱為測量更新階段,此階段是通過k+1時刻的實際輸出與模型輸出的差值對狀態先驗估計值進行修正,從而使k+1時刻的狀態估計值更加接近真實值。模型參數辨識結果及分析如圖4所示。

圖4 模型參數辨識結果
通過辨識結果可以看出歐姆內阻在整個放電階段一直保持在3 mΩ左右。兩個極化電容差值在兩個數量級以上,分別對應在電流突變時電壓快速變化的過程以及電壓緩慢穩定的變化過程。電化學極化內阻R1和濃差極化電阻R2與相對應的電化學極化電容C1、濃差極化電容C2變化趨勢相反。
標準卡爾曼濾波法適用于線性動態系統,當系統非線性時,對系統的非線性方程通過數學中的泰勒公式對方程進行線性化,再進行卡爾曼濾波處理,這個過程稱為擴展卡爾曼濾波(extended Kalman filter,EKF)原理。由于電池系統呈現高度的非線性,故采用EKF原理對電池SOC進行估算。
非線性離散系統的狀態空間和輸出方程如下

(7)
非線性系統的狀態方程框架如圖5所示。

圖5 非線性離散系統的狀態空間模型結構框架
本文在二階Thevenin等效電路模型的基礎上,建立了其電池狀態空間模型。根據二階Thevenin等效電路模型,結合安時積分法以電池的SOC、電池極化電容C1兩端的電壓U1、表征濃差極化電容C2兩端的電壓U2作為系統的狀態變量,充放電電流I(標定放電電流為正)作為輸入量,端電壓U作為系統的輸出量,經過離散化和線性化處理后推導出電池的系統狀態方程和輸出方程如下所示

(8)
將上述式子進項離散化后的狀態方程為

(9)
式中:Δt為系統采樣時間,QN為電池的實際容量, SOC(k) 為k時刻的電池的荷電狀態,U1(k) 是k時刻的電化學極化電阻R1兩端的電壓,U2(k) 是k時刻的電化學極化電阻R2兩端的電壓,I(k) 為k時刻的電池的工作電流,放電時取正。 SOC(k+1) 通過SOC(k) 加上電流對于采樣時間的積分得到。輸出方程為
U(k)=UOCV(SOC(k))-U1(k)-U2(k)-RoI(k)
(10)
系統的狀態變量為:x=[x1x2x3]T=[SOC(k)
U1(k)U2(k)]T, 系統的輸入量為工作電流I(k), 輸出量為電池負載電壓UL(k), 輸出方程為UL(k)=I(k)。 通過泰勒公式線性化系統的狀態空間模型方程,矩陣參數如下所示
(11)
(12)

(13)
利用線性化后矩陣參數通過卡爾曼濾波算法的遞推過程實現對電池SOC的估算。
本文采用了卡爾曼濾波算法對電池二階Thevenin等效電路模型的參數進行在線辨識,為實際工況下的電池提供實時的模型參數,保證跟蹤準確性,有效減小模型誤差,使當前時刻電池模型更加準確模擬電池狀態,從而提高電池SOC估算精度。基于以上原因,本文結合協同過濾的卡爾曼濾波算法實現電池的在線參數辨識,采用擴展卡爾曼濾波算法估算電池SOC。雙卡爾曼濾波估算SOC和模型參數的實施步驟為:
(1)通過HPPC測試實驗記錄電池在放電、靜置和充電這一運行過程中的電壓數據,利用電路的等效電路模型計算出在不同的荷電狀態下電池歐姆內阻、電化學極化阻容和濃差極化阻容。
(2)采用結合協同濾波的卡爾曼濾波算法進行電池參數的在線辨識并且根據實時采集數據實現參數的更新修正。
(3)將實時參數帶入電池空間狀態方程,修正電池模型,減少模型誤差。
(4)啟動擴展卡爾曼濾波對SOC進行估算。
為了驗證雙卡爾曼算法的收斂性和精度,在Matlab中編寫了雙卡爾曼濾波法估計荷電狀態的程序。本文采用UDDS(urban dynamometer driving schedule)測試工況中采集到的電流、電壓和荷電狀態代入程序來實現對電池的SOC估算驗證。分別在參數在線辨識情況下和EKF初值不準確兩種情況下對算法進行驗證,將實驗平臺中得到的SOC實際值和EKF程序估算的SOC仿真值以及安時積分法得到的SOC計算值進行分析對比。實驗工況過程中電流和電壓變化情況如圖6所示。

圖6 UDDS工況下的電壓電流曲線
結合本實驗用鋰離子電池放電倍率,在國際通用城市道路循環UDDS工況下,縮小一定的比例作為本實驗驗證的UDDS工況數據,如圖6所示。UDDS工況下一個周期放電期間,電流輸出的平均值為1.0276 A,最大值為3.884 A,制動過程中產生的最大電流為2.563 A,平均電流為0.2846 A,歷時1400 s一個循環,環境溫度為25 ℃。
將UDDS實驗工況過程的電流和電壓變化情況帶入雙卡爾曼算法程序。算法初始參數為
X(0)=[0 0 0.8]T,P=105e3
Q=10-9,R=0.01
通過圖7中的SOC仿真結果可以看到,在UDDS工況下,由于誤差積累效應安時積分法計算得到的荷電狀態隨著電池的放電逐漸偏離實際值,誤差積累越來越明顯。而雙卡爾曼濾波法能很好追蹤到實際的SOC值,放電終止時的SOC誤差僅為0.3%,仿真過程中最大誤差為0.89%,具有良好的精度。圖7中仿真結果說明了UDDS工況下,雙卡爾曼濾波估算法的效果明顯好于安時積分法,能夠保證跟蹤的準確性。

圖7 不同方法SOC估計值
通過圖8中的SOC估計局部仿真結果可以看到,在UDDS工況下,隨著時間的進行,安時積分法計算得到的荷電狀態由于誤差積累已經偏離實際值,誤差積累越來越明顯。而雙卡爾曼濾波法前期誤差較大,但明顯小于安時積分法,并且隨著時間的進行,能很好追蹤到實際的SOC值,與實際值的誤差逐漸減小,具有良好的收斂性。圖中仿真結果說明說明了UDDS工況下,雙卡爾曼濾波估算法的具有良好的收斂性,能夠保證跟蹤準確性。

圖8 不同方法SOC估計值局部放大
如圖9所示,由誤差曲線結果可以看出基于二階Thevenin模型的雙卡爾曼濾波算法SOC估計方法的誤差曲線變化趨勢是一個逐漸收斂至0的過程,而通過安時積分法得到的誤差曲線逐漸發散。

圖9 不同方法SOC估計結果誤差曲線
結果表明,在算法初始值準確的情況下,通過雙卡爾曼算法估算的SOC值能夠很好的追蹤到實際SOC值,其最大誤差為0.89%,具有良好的精度和收斂性。
電池工作在實際工況中,由于異常開關機或者其它故障會導致BMS遺失荷電狀態信息,即在不了解剩余電量的初始狀態信息的情況下去估算電池系統的SOC值。通過改變雙卡爾曼算法的初值,探究算法在初值不準確情況下估算SOC的精度和收斂性。選取剩余電量狀態為0.8放電至剩余電量為0.2的數據,將EKF算法初始SOC值設置為0.5。估算結果如圖10所示。

圖10 初值不準時SOC估計結果對比實際值
在雙卡爾曼算法估計的前期,由于模型初始荷電狀態異常,得到仿真值與實際值誤差較為明顯,盡管這一階段電池工作在放電狀態,算法的SOC估算值卻處于上升過程,逐漸追蹤SOC實際值。中后期階段隨著算法的遞推,估算的SOC值逐漸逼近實際值,誤差越來越小。說明通過雙卡爾曼算法估算的SOC值能夠很好追蹤到實際SOC值,具有良好的可行性和收斂性,圖11是算法估算SOC值與實際值的誤差曲線。

圖11 初值不準時SOC估計結果誤差曲線
由雙卡爾曼SOC誤差曲線可以看出誤差變化趨勢是一個逐漸收斂的過程,在假設算法初值不準確的情況,設定了SOC初值30%的誤差,但隨著雙卡爾曼算法的迭代,誤差值逐漸縮小,且始終保持在5%以內。并且在后期,算法估計的SOC值逼近實際值,最終誤差小于1.2%。
通過以上仿真結果結果可以看出在剩余電量初始狀態準確的情況下,采用雙卡爾曼濾波算法估算SOC具有良好的精度和收斂性,估算SOC值逐漸逼近實際值,誤差逐漸縮小,最后估算誤差保持在1%以內。當初始狀態不準確時,隨著算法的迭代,采用雙卡爾曼濾波算法能通過自身濾波特性,使估算值跟蹤實際值的變化,逐漸逼近實際值,且達到穩定狀態后誤差在5%左右,最終誤差保持在1.2%以內。以上驗證了雙卡爾曼濾波算法估算電池SOC的收斂性、精度以及可行性。
通過對擴展卡爾曼濾波算法的原理進行闡述,在二階Thevenin電池等效模型的基礎上獲得離散化的狀態空間方程,利用泰勒展開公式將電池的非線性狀態方程線性化,結合改進協同濾波的卡爾曼濾波算法在線辨識方法,在Matlab環境下編寫了雙卡爾曼濾波的SOC估算以及驗證程序,基于常溫UDDS工況下實驗采集到的電壓、電流和SOC值,在算法初值準確和算法初值有誤差兩種情況下對雙卡爾曼濾波算法估算SOC的精度和收斂性進行驗證。仿真結果表明,在UDDS工況下,采用DKF算法估算電池SOC具有良好的收斂性和精度,具有較高的應用價值。