丁羿茗,呂瑞強,蔣 超
(空軍勤務學院,江蘇徐州 221000)
荷電狀態(SOC)作為鋰電池特性的一個重要參數,它的精確估計對鋰電池正常工作十分重要。傳統的SOC計算方法依賴于電池自身特性,如開路電壓法和安時積分法,智能估計算法有神經網絡算法和擴展卡爾曼濾波算法。文獻[1]采用基于數值優化的BP 神經網絡(LM-BP)算法對SOC進行估算,提高了收斂速度。神經網絡算法可以不需要鋰電池模型進行估計,但是估算精度和樣本的質量關系密切。文獻[2]運用擴展卡爾爾曼濾波(EKF)估算鋰電池SOC,減小了安時積分法的累積誤差,但是它的近似非線性以及恒定的過程噪聲會帶來誤差影響。文獻[3]運用雙卡爾曼濾波提高了估算SOC的精度,但是沒有減小擴展卡爾曼濾波器近似非線性誤差。文獻[4]運用自適應擴展卡爾曼濾波算法修正了噪聲恒定帶來的誤差,但是對歷史新息數據沒有充分利用。
本文在分數階鋰電池模型基礎上,提出了多新息自適應EKF 算法,改進了EKF 濾波器過程噪聲與觀測噪聲恒定所帶來的的誤差,充分利用了歷史新息,通過聯合估計實時修正模型參數。Matlab 仿真驗證表明該方法可以有效提高SOC估算精度和跟蹤速度。
關于分數階微積分的定義有很多,本文用G-L 定義直接離散化分數階微分方程,G-L 定義[5]如下:

式中:α 代表方程的階數,階數的范圍在(0,1)之間;h表示采樣時間;k是整數。
使用分數階理論進行鋰電池建模[6],可以反映極化、擴散和非線性因素帶來的影響,提高模型的精度,鋰電池的分數階等效電路模型如圖1 所示。VOCV是電池的開路電壓,R0為電池內阻,R1、R2為純阻性內阻,分數階元件用CPE 表示,系數分別為C1、C2,分數階階次表示為α、β,取值范圍是(0,1),將理想電容元件用分數階電容CPE 代替,可以更好地反映電極表面的彌散效應。

圖1 分數階等效電路模型
將VCPE1(t)、VCPE2(t)作為系統的狀態,I0(t)作為系統的輸入,系統的輸出為VO(t),分數階電池模型的狀態方程如下:

電容CPEI、電容CPE2用分數階表示如下:

遺傳算法步驟如下:隨機產生初值并轉換為二進制代碼,代表不同個體的二進制代碼可以通過相互交換、獨自變異[7]產生新個體。將二進制碼解碼后代入適應度函數,判斷是否滿足要求,當滿足設定條件時停止[8],適應性條件如式(4)所示:

式中:Ye(j)是預測輸出;Yr(j)是期望輸出;M是被測數據組的長度。
遺傳算法流程圖如圖2 所示。

圖2 遺傳算法流程圖
一代種群中,個體的不同會導致適應度和遺傳概率的不同,不同個體的交叉概率和變異概率可以表示如下:

式中:Jmin表示適應性條件的最小值,可以看出最優的個體概率均為0,J(i)的值越大,獲得進化的機會越多。
自適應遺傳算法(AGA)辨識出來的分數階模型參數(R0、R1、R2、C1、C2)是整個脈沖放電過程的最優解,參數辨識結果如表1 所示。分數階模型與整數解模型的誤差對比如圖3 所示,誤差數據如表2 所示,分數階模型的最大誤差為0.037 5 V,平均誤差為0.004 6 V,均優于整數階模型。

表1 AGA 算法參數辨識結果

圖3 分數階模型與整數解模型誤差對比

表2 模型誤差對比 V
EKF 算法可以處理非線性系統的問題,原理是將非線性系統的空間方程在xk處進行泰勒級數展開,只保留一階項,得到近似的線性空間方程,對EKF 的狀態變量,用G-L 定義求分數階導數[9-10],采樣時間h取為1,得到如下表達式:

式中:Δ 是差分算子;n是階數。
將式(2)分數階模型表達式離散化,可得離散化分數階鋰電池模型表達式[11-12]:

基于分數階模型,用EKF 算法估算鋰電池SOC,運用Matlab 軟件在城市循環工況(UDDS)下對算法進行仿真驗證,結果如圖4~5 所示,分數階模型的引入使算法的精度得到了提高,整數階EKF 算法因為模型精度問題,誤差始終向一側偏移,將模型更改為分數階后,模型的精度提高,雖然在初始階段,EKF 算法誤差較小,但是隨著時間的累計,分數階擴展卡爾曼濾波(FOEKF)算法精度逐漸提高。經計算,EKF 算法估算SOC誤差平均值為0.015 3,最大誤差為0.033 3,FOEKF算法估算SOC誤差平均值為0.011 2,最大誤差為0.032 5。

圖4 FOEKF和EKF算法估算SOC曲線圖

圖5 FOEKF和EKF算法估算SOC誤差對比圖
EKF 算法的狀態噪聲和觀測噪聲是恒定值,這會導致估計誤差變大。自適應擴展卡爾曼濾波(AEKF)算法可以對新息或者殘差進行實時監測,修正狀態噪聲和觀測噪聲。AEKF 算法過程如下:

式中:ek代表新息,若為則表示殘差。
觀測噪聲方差Rk和狀態噪聲方差Qk的自適應過程如下:

式中:Fk為新息的實時估計方差;M為滑動數據窗口長度[13]。
將多新息和EKF 算法結合,計算量會略有增大,但是精度得到了提高。將單新息ek擴展到新息矩陣,如下所示[14]:

同時,將增益Kk也擴展成為增益矩陣,那么,狀態向量的更新如下所示:

式中:Ki,k是k時刻的增益;Ep,k是新息矩陣;p是新息長度。
在UDDS 工況下,運用Matlab 軟件對算法進行仿真驗證,將AGA 算法辨識出來的參數代入模型中,仿真結果如圖6~7 所示,仿真數據如表3 所示,分數階多新息自適應擴展卡爾曼濾波(FOMIAEKF)算法估計誤差的平均值和最大值都有所減小,說明該算法可以有效提高SOC估計精度。

圖6 FOMIAEKF和FOEKF算法估算SOC曲線圖

圖7 FOMIAEKF和FOEKF算法估算SOC誤差對比圖

表3 FOEKF 與FOMIAEKF 算法估計SOC 誤差對比
用UKF 算法估算鋰電池健康狀態(SOH),將電池容量C和電池內阻R0作為健康狀態的估計量,UKF 算法估計流程首先確定狀態值初始值x0和后驗狀態誤差協方差初始值P0,計算采樣點:

式中:L為狀態向量的長度。
UKF 算法增益矩陣的更新如式(14)所示:

鋰電池在使用過程中會不斷老化,它的內阻會變化,容量會降低。但是辨識出來的模型參數是根據實驗結果得到的定值。將SOC和SOH聯合估計,根據SOH估計出來的內阻值和容量值實時修正SOC估計的參數[15],從而提升SOC估計的精度。圖8 是聯合估計算法估算SOC的曲線圖,圖9 是聯合估計算法估算SOC的誤差圖,聯合估計算法誤差在2.5%之內。圖10 為不同算法估算SOC誤差對比圖,聯合估計算法比FOMIAEKF 算法精度更高,說明聯合估計算法可以有效提高SOC估算精度。表4 為不同算法估算SOC 誤差對比。

圖8 聯合估計算法SOC估計值

圖9 聯合估計算法估算SOC誤差圖

圖10 不同算法估算SOC誤差對比圖
由表4 可知,普通EKF 算法估算SOC的平均誤差為0.015 3,用分數階理論提高模型精度后,FOEKF 算法估算平均誤差為0.011 2。針對EKF 算法濾波過程中狀態噪聲和預測噪聲恒定不變的情況,提出一種自適應EKF 算法,可以實時更新噪聲方差矩陣,FOAEKF 算法估算SOC的平均誤差為0.010 1,精度得到了提高,但是沒有充分利用歷史新息數據。針對這種情況,將單新息變為多新息矩陣,充分利用了之前未被利用的新息數據,FOMIAEKF 算法估算SOC的平均誤差為0.009 1,精度相比于普通的EKF 算法有了明顯提高。針對隨著鋰電池不斷老化,模型參數會發生變化的情況,提出了聯合估計算法,用UKF 算法估算SOH,實時更新分數階模型參數,聯合估計算法估算SOC的平均誤差為0.007 6,精度有了進一步的提高。

表4 不同算法估算SOC 誤差對比
本文引入分數階思想建立鋰電池等效電路模型,用AGA算法離線辨識模型參數,通過脈沖放電實驗對模型精度進行驗證,結果表明,分數階的引入有效地提高了模型的精度。在UDDS 工況下,運用EKF 算法對整數階模型和分數階模型的SOC值進行估算,仿真結果進一步證明了分數階模型的精度更高。隨后,針對EKF 算法的不足進行改進,提出了多新息自適應EKF 算法,解決了EKF 算法噪聲恒定以及未充分利用新息數據的問題,并通過與SOH聯合估計實時修正分數階模型參數,減少模型老化帶來的影響。仿真結果表明,FOMIAEKF 算法和聯合估計算法可以有效地提高SOC估算精度和跟蹤速度。