王浩 鄭燕萍 虞楊
(南京林業大學,南京210037)
主題詞:磷酸鐵鋰電池 粒子群優化 動態優選遺忘因子 在線辨識 擴展卡爾曼濾波
電動汽車動力電池荷電狀態(State of Charge,SOC)是電池和整車能量管理的基礎,其估算結果的準確性直接影響著電池和整車的使用性能與安全。
目前,電池SOC估算方法包括安時積分法、開路電壓法、數據驅動算法及等效電路模型觀測法等[1]。安時積分法計算簡單,但其對初值準確性要求高,且在估算過程中易產生累積誤差而無法自我修正;開路電壓法的開路電壓需要將電池充分靜置得到,不適合直接應用于實車,一般與安時積分法聯合使用[2];基于數據驅動的算法無需考慮系統內部模型,但對數據要求高,數據訓練難度較大;等效電路模型觀測法基于電路模型,利用充放電數據先進行模型參數辨識,再結合各種濾波算法進行電池SOC估算。模型參數影響模型精度,進而影響電池SOC估算準確性。參數辨識可分為離線與在線兩類。離線辨識方法中,較為簡單的最小二乘擬合法一般需要適當的初始參數,文獻[3]采用無需初始參數、收斂速度快且能獲得全局最優的模擬退火算法來辨識參數,獲得了較好估計精度。但隨著電池使用環境和循環次數的變化,其內部參數必然變化,離線辨識的精度再高,獲得的也只是當時環境下的參數情況。因此,有學者提出了在線辨識,實時更新等效電路模型參數以保證模型精度。文獻[4]提出一種遞推最小二乘-擴展卡爾曼濾波(Recursive Least Squares-Extended Kalman Filter,RLS-EKF)算法,其采用遞推最小二乘法實現參數的在線辨識后與擴展卡爾曼濾波聯合以估算電池SOC,其最小二乘在線辨識沒有引入遺忘因子,辨識結果有待改善。文獻[5]利用自適應擴展卡爾曼濾波(Adaptive Extended Kalman filter,AEKF)和遞推最小二乘法估計開路電壓(Open Circuit Voltage,OCV),進而通過SOC-OCV的關系估計電池SOC,試驗結果表明該方法有一定的準確性。但遞推最小二乘更適用于定常未知參數系統,而電池參數屬慢時變系統,遞推最小二乘法容易“數據飽和”[6]。為克服參數辨識時的“數據飽和”問題,文獻[7]采用含遺忘因子的遞推最小二乘與AEKF聯合算法,提高了算法跟蹤效果,但遺忘因子的選定對算法效果會有一定影響。
基于上述分析,本文提出通過粒子群算法實時優化遞推最小二乘遺忘因子,聯合擴展卡爾曼濾波實現磷酸鐵鋰電池SOC估計,旨在進一步提高基于在線模型參數辨識與EKF的聯合算法估算電池SOC的準確性。
電池模型是卡爾曼濾波估算電池狀態的前提,而二階RC等效電路模型比一階RC模型、新一代車輛合作伙伴關系(the Partnership for a New Generation of Vehicles,PNGV)模型等更能反映鋰離子電池的內部動態變化情況[8-10]。綜合模型精度與算法復雜度,本文選擇精度較高的二階RC等效電路模型,如圖1所示。其中:Uoc(t)為開路電壓;R0(t)為歐姆內阻;I(t)為工作電流,放電時取正;R1(t)、R2(t)分別為電化學極化內阻和濃差極化內阻;C1(t)、C2(t)分別為電化學極化電容和濃差極化電容[11];U1(t)、U2(t)分別為電化學極化環端電壓和濃差極化環端電壓;Ut(t)為電池端電壓。

圖1 二階RC等效電路模型
根據基爾霍夫電壓定律及基爾霍夫電流定律可得等效電路模型的電氣關系式為:

由于電池OCV與SOC之間存在確定的函數關系,本文通過試驗方法和多項式擬合得到電池SOC-OCV 曲線。針對磷酸鐵鋰電池存在的中間SOC 值處對應的開路電壓變化平坦、兩端SOC值處對應的開路電壓變化劇烈的特性,設計了分段等SOC間隔試驗方法來盡可能獲取有代表性的SOC-OCV點,設SOC值為Z,試驗方案為:
a.溫控箱控制試驗環境溫度為25 ℃,以1/3 C 倍率恒流充電至截止電壓3.65 V后,恒壓充電至電流小于4 A,靜置1 h;
b.從Z=100%處開始,每次以1/3 C 倍率放掉1.25%容量,靜置1 h后記錄端電壓,重復4次至Z=95%;
c.從Z=95%處開始,以1/3 C 倍率放掉5%容量至Z=90%,靜置1 h后記錄端電壓;
d.從Z=90%處開始,每次以1/3 C倍率放掉10%容量,靜置1 h后記錄端電壓,重復8次至Z=10%;
e.從Z=10%處開始,以1/3 C 倍率放掉5%容量至Z=5%,靜置1 h后記錄端電壓;
f.從Z=5%處開始,每次以1/3 C倍率放掉1.25%容量,靜置1 h后記錄端電壓,重復4次至Z=0。
在上述各SOC處靜置1 h后的端電壓即可等價為各對應SOC處的OCV,綜合考慮過擬合與欠擬合影響,選用6 階多項式擬合上述試驗所得的SOC-OCV 數據點,得出放電SOC-OCV 曲線關系如圖2所示,用Uoc表示開路電壓,則6階多項式擬合公式為:

圖2 6階擬合SOC-OCV曲線

式中,a1~a7為多項式系數。
擬合的多項式系數如表1所示。

表1 擬合多項式系數
基于遺忘因子遞推最小二乘法(Forgetting Factor Recursive Least Squares,FFRLS)進行參數辨識前,要將二階等效電路模型離散遞推轉化為最小二乘基本形式。將式(1)進行拉氏變換:

式中,s為s域上的拉普拉斯算子[12]。
雙線性變換公式為:

式中,T為采樣周期;z為離散z域上的對應算子,雙線性變換即實現連續時間系統與離散時間系統的轉換[13-14]。
利用(4)對式(3)進行從s域到z域的映射,得到系統在z域上的傳遞函數,并將其化簡,可得:

式中,θ1,k、θ2,k、θ3,k、θ4,k、θ5,k為k時刻化簡代表系數,具體表達式為:

式中,a=R1;b=τ1τ2;c=τ1+τ2;d=R0+R1+R2;e=R0(τ1+τ2)+R1τ2+R2τ1;τ1=R1C1;τ2=R2C2。
Ut(k)為試驗記錄的端電壓值,取y(k)=Ut(k)-Uoc(k),對式(5)離散化可得:

則最小二乘參數向量為θ(k)=(θ1,k,θ2,k,θ3,k,θ4,k,θ5,k)T,數據向量為φ(k)=(y(k-1),y(k-2),I(k),I(k-1),I(k-2))T,I(k)為試驗記錄的電流值。
θ(k)由遞推最小二乘實時估計,進而由式(6)可反求出:

再結合a~e的表達式可得:

遺忘因子遞推最小二乘引入遺忘因子λ來調整新、舊數據權重,λ取值接近1,一般取0.95≤λ≤1.00[6]。設增益系數為K(k),參數估計值為θ(k),協方差矩陣為P(k),遺忘因子最小二乘遞推方程為:

粒子群優化(Particle Swarm Optimization,PSO)算法作為進化類智能尋優算法,在優化領域應用廣泛,本文在遺忘因子遞推最小二乘算法上引入PSO算法,以端電壓誤差最小為優化目標,實時優化遺忘因子,從而提高參數在線辨識的準確性。
適應度函數為:

式中,U(k)為端電壓估算值;Uoc(k-1)由(k-1)時刻估算的SOC和SOC-OCV曲線獲得。
以遺忘因子λ為優化變量,λ的變化影響增益K(k)與協方差矩陣P(k),以J最小化為目標進行迭代尋優,進而對參數作出最優估計。
卡爾曼濾波只能應用于線性系統,電池模型系統呈現非線性,故無法直接應用卡爾曼濾波進行狀態估計,于是有學者提出了擴展卡爾曼濾波方法[15],該方法對非線性系統進行一階泰勒展開,省去高階項以達到近似線性化,進而可以利用線性卡爾曼濾波理論的遞推公式實現非線性系統的狀態估計[16-18]。二階等效電路擴展卡爾曼濾波估算電池SOC的過程如下:
a.設系統原非線性狀態方程為:

式中,x為系統狀態變量;u為系統輸入量;h為系統輸出量;ω為狀態噪聲;ν為觀測噪聲。
b.結合式(1),對非線性函數f和g在估計點處進行一階泰勒展開線性化,系統狀態量x=[U1,U2,Z]T,系統輸入量u=I,系統輸出量h=Ut,則系統離散狀態空間為:

其中,A(k)、B(k)、C(k)、D(k)的表達式為:

c.卡爾曼遞推過程,其中Q為狀態噪聲協方差矩陣,R為觀測噪聲協方差矩陣。
對狀態變量估計值x?和誤差協方差矩陣Pe進行初始化:

式中,E為單位矩陣。
狀態估計時間更新:

誤差協方差矩陣時間更新:

卡爾曼增益矩陣Ke更新:

狀態估計測量更新:

誤差協方差矩陣測量更新:

含遺忘因子的最小二乘法可以有效改善等效電路模型參數這類慢時變系統的“數據飽和”問題。但針對不同電池和環境,都需要手動挑選出較好的遺忘因子。本文借助粒子群優化算法實時自篩選最佳遺忘因子以應對不同電池及不同使用環境影響下對遺忘因子提出的動態要求,并聯合擴展卡爾曼濾波算法實現電池SOC估算,流程如圖3所示。

圖3 聯合算法流程
本文選用的磷酸鐵鋰電池技術參數為:額定容量100 A·h,單體額定電壓3.2 V,充電截止電壓3.65 V,放電截止電壓2.5 V,充電截止電流4 A,充、放電效率η=0.93。在對電池進行靜態容量測試時,取3次試驗平均值100.1 A·h,即CN=100.1 A·h,T=1 s。
參照電動汽車電池試驗手冊對電池進行動應力測試(Dynamic Stress Test,DST),DST工況的周期為360 s,設置70個DST循環,將電池容量從100%放電至10%左右。實際試驗中的1個DST周期的電流、電壓數據如圖4所示。

圖4 DST工況電壓、電流
基于MATLAB 的m 語言編程實現所提出的在線辨識及SOC 估計算法的仿真。將DST 試驗數據同時進行動態優選遺忘因子最小二乘辨識與普通遺忘因子最小二乘辨識。經初步試驗,動態優選遺忘因子λ的范圍設為0.98~1.00 效果較好。針對普通FFRLS,選擇遺忘因子分別為0.95和0.99進行對比,在線辨識端電壓誤差絕對值對比如圖5和圖6所示。

圖5 λ=0.95與動態λ端電壓誤差對比

圖6 λ=0.99與動態λ端電壓誤差對比
由圖5、圖6 可以看出,各算法的端電壓誤差都很小,端電壓跟隨較好??傮w上,動態λ的端電壓誤差比λ=0.95和λ=0.99時的端電壓誤差都小一些:動態λ的端電壓最大誤差為12.3 mV,平均端電壓誤差為2.18 mV;λ=0.95時的端電壓最大誤差為23 mV,平均端電壓誤差為7.14 mV;λ=0.99 時的端電壓最大誤差為13.1 mV,平均端電壓誤差為2.78 mV。
從端電壓誤差對比來看,動態遺忘因子λ的端電壓誤差始終處于極低水平,而選擇固定的λ時,其端電壓誤差的差別較大,故針對不同電池或試驗工況時,選擇合適的λ對端電壓仿真結果的影響較大,而動態λ則會自適應保持低誤差水平。
將上述在線辨識算法分別與擴展卡爾曼濾波聯合估算電池SOC 值,估算結果對比如圖7所示,電池SOC估計誤差對比如圖8所示。

圖7 SOC估計值對比

圖8 SOC估計誤差對比
由圖7 和圖8 可以看出,采用動態遺忘因子λ的電池SOC總體估計誤差水平最低。工況前期,三者的估計誤差非常接近,但在1 700 s后,采用λ=0.95的估計算法明顯偏離試驗結果,估計誤差急劇增加,采用λ=0.99的估計算法誤差也未能向下收斂而維持在較高誤差水平,而采用動態λ算法在1 700 s之后還可以繼續收斂誤差,誤差總體控制效果明顯高于2 個定遺忘因子的算法。采用動態遺忘因子λ的電池SOC 估計最大絕對誤差為1.48%,平均絕對誤差為0.92%;采用λ=0.95的電池SOC估計最大絕對誤差為4.05%,平均絕對誤差為1.59%;采用λ=0.99的電池SOC估計最大絕對誤差為1.97%,平均絕對誤差為1.18%。
本文基于磷酸鐵鋰電池搭建二階等效電路模型,采用粒子群優化算法自適應更新遺忘因子,結果表明,與傳統定遺忘因子算法相比,動態遺忘因子遞推最小二乘算法的端電壓跟隨性更好且誤差較低,其與擴展卡爾曼濾波聯合對電池SOC進行估計的精度更高。
本文提出的動態遺忘因子遞推最小二乘與擴展卡爾曼濾波聯合估算電池SOC的算法,與需挑選較優遺忘因子的傳統定遺忘因子算法相比,可實現實時自篩選最佳遺忘因子,滿足不同電池或不同使用環境下對遺忘因子提出的動態要求。