丁羿茗,呂瑞強(qiáng),蔣 超
(空軍勤務(wù)學(xué)院,江蘇徐州 221000)
荷電狀態(tài)(SOC)作為鋰電池特性的一個(gè)重要參數(shù),它的精確估計(jì)對鋰電池正常工作十分重要。傳統(tǒng)的SOC計(jì)算方法依賴于電池自身特性,如開路電壓法和安時(shí)積分法,智能估計(jì)算法有神經(jīng)網(wǎng)絡(luò)算法和擴(kuò)展卡爾曼濾波算法。文獻(xiàn)[1]采用基于數(shù)值優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)(LM-BP)算法對SOC進(jìn)行估算,提高了收斂速度。神經(jīng)網(wǎng)絡(luò)算法可以不需要鋰電池模型進(jìn)行估計(jì),但是估算精度和樣本的質(zhì)量關(guān)系密切。文獻(xiàn)[2]運(yùn)用擴(kuò)展卡爾爾曼濾波(EKF)估算鋰電池SOC,減小了安時(shí)積分法的累積誤差,但是它的近似非線性以及恒定的過程噪聲會(huì)帶來誤差影響。文獻(xiàn)[3]運(yùn)用雙卡爾曼濾波提高了估算SOC的精度,但是沒有減小擴(kuò)展卡爾曼濾波器近似非線性誤差。文獻(xiàn)[4]運(yùn)用自適應(yīng)擴(kuò)展卡爾曼濾波算法修正了噪聲恒定帶來的誤差,但是對歷史新息數(shù)據(jù)沒有充分利用。
本文在分?jǐn)?shù)階鋰電池模型基礎(chǔ)上,提出了多新息自適應(yīng)EKF 算法,改進(jìn)了EKF 濾波器過程噪聲與觀測噪聲恒定所帶來的的誤差,充分利用了歷史新息,通過聯(lián)合估計(jì)實(shí)時(shí)修正模型參數(shù)。Matlab 仿真驗(yàn)證表明該方法可以有效提高SOC估算精度和跟蹤速度。
關(guān)于分?jǐn)?shù)階微積分的定義有很多,本文用G-L 定義直接離散化分?jǐn)?shù)階微分方程,G-L 定義[5]如下:
式中:α 代表方程的階數(shù),階數(shù)的范圍在(0,1)之間;h表示采樣時(shí)間;k是整數(shù)。
使用分?jǐn)?shù)階理論進(jìn)行鋰電池建模[6],可以反映極化、擴(kuò)散和非線性因素帶來的影響,提高模型的精度,鋰電池的分?jǐn)?shù)階等效電路模型如圖1 所示。VOCV是電池的開路電壓,R0為電池內(nèi)阻,R1、R2為純阻性內(nèi)阻,分?jǐn)?shù)階元件用CPE 表示,系數(shù)分別為C1、C2,分?jǐn)?shù)階階次表示為α、β,取值范圍是(0,1),將理想電容元件用分?jǐn)?shù)階電容CPE 代替,可以更好地反映電極表面的彌散效應(yīng)。
圖1 分?jǐn)?shù)階等效電路模型
將VCPE1(t)、VCPE2(t)作為系統(tǒng)的狀態(tài),I0(t)作為系統(tǒng)的輸入,系統(tǒng)的輸出為VO(t),分?jǐn)?shù)階電池模型的狀態(tài)方程如下:
電容CPEI、電容CPE2用分?jǐn)?shù)階表示如下:
遺傳算法步驟如下:隨機(jī)產(chǎn)生初值并轉(zhuǎn)換為二進(jìn)制代碼,代表不同個(gè)體的二進(jìn)制代碼可以通過相互交換、獨(dú)自變異[7]產(chǎn)生新個(gè)體。將二進(jìn)制碼解碼后代入適應(yīng)度函數(shù),判斷是否滿足要求,當(dāng)滿足設(shè)定條件時(shí)停止[8],適應(yīng)性條件如式(4)所示:
式中:Ye(j)是預(yù)測輸出;Yr(j)是期望輸出;M是被測數(shù)據(jù)組的長度。
遺傳算法流程圖如圖2 所示。
圖2 遺傳算法流程圖
一代種群中,個(gè)體的不同會(huì)導(dǎo)致適應(yīng)度和遺傳概率的不同,不同個(gè)體的交叉概率和變異概率可以表示如下:
式中:Jmin表示適應(yīng)性條件的最小值,可以看出最優(yōu)的個(gè)體概率均為0,J(i)的值越大,獲得進(jìn)化的機(jī)會(huì)越多。
自適應(yīng)遺傳算法(AGA)辨識(shí)出來的分?jǐn)?shù)階模型參數(shù)(R0、R1、R2、C1、C2)是整個(gè)脈沖放電過程的最優(yōu)解,參數(shù)辨識(shí)結(jié)果如表1 所示。分?jǐn)?shù)階模型與整數(shù)解模型的誤差對比如圖3 所示,誤差數(shù)據(jù)如表2 所示,分?jǐn)?shù)階模型的最大誤差為0.037 5 V,平均誤差為0.004 6 V,均優(yōu)于整數(shù)階模型。
表1 AGA 算法參數(shù)辨識(shí)結(jié)果
圖3 分?jǐn)?shù)階模型與整數(shù)解模型誤差對比
表2 模型誤差對比 V
EKF 算法可以處理非線性系統(tǒng)的問題,原理是將非線性系統(tǒng)的空間方程在xk處進(jìn)行泰勒級數(shù)展開,只保留一階項(xiàng),得到近似的線性空間方程,對EKF 的狀態(tài)變量,用G-L 定義求分?jǐn)?shù)階導(dǎo)數(shù)[9-10],采樣時(shí)間h取為1,得到如下表達(dá)式:
式中:Δ 是差分算子;n是階數(shù)。
將式(2)分?jǐn)?shù)階模型表達(dá)式離散化,可得離散化分?jǐn)?shù)階鋰電池模型表達(dá)式[11-12]:
基于分?jǐn)?shù)階模型,用EKF 算法估算鋰電池SOC,運(yùn)用Matlab 軟件在城市循環(huán)工況(UDDS)下對算法進(jìn)行仿真驗(yàn)證,結(jié)果如圖4~5 所示,分?jǐn)?shù)階模型的引入使算法的精度得到了提高,整數(shù)階EKF 算法因?yàn)槟P途葐栴},誤差始終向一側(cè)偏移,將模型更改為分?jǐn)?shù)階后,模型的精度提高,雖然在初始階段,EKF 算法誤差較小,但是隨著時(shí)間的累計(jì),分?jǐn)?shù)階擴(kuò)展卡爾曼濾波(FOEKF)算法精度逐漸提高。經(jīng)計(jì)算,EKF 算法估算SOC誤差平均值為0.015 3,最大誤差為0.033 3,F(xiàn)OEKF算法估算SOC誤差平均值為0.011 2,最大誤差為0.032 5。
圖4 FOEKF和EKF算法估算SOC曲線圖
圖5 FOEKF和EKF算法估算SOC誤差對比圖
EKF 算法的狀態(tài)噪聲和觀測噪聲是恒定值,這會(huì)導(dǎo)致估計(jì)誤差變大。自適應(yīng)擴(kuò)展卡爾曼濾波(AEKF)算法可以對新息或者殘差進(jìn)行實(shí)時(shí)監(jiān)測,修正狀態(tài)噪聲和觀測噪聲。AEKF 算法過程如下:
式中:ek代表新息,若為則表示殘差。
觀測噪聲方差Rk和狀態(tài)噪聲方差Qk的自適應(yīng)過程如下:
式中:Fk為新息的實(shí)時(shí)估計(jì)方差;M為滑動(dòng)數(shù)據(jù)窗口長度[13]。
將多新息和EKF 算法結(jié)合,計(jì)算量會(huì)略有增大,但是精度得到了提高。將單新息ek擴(kuò)展到新息矩陣,如下所示[14]:
同時(shí),將增益Kk也擴(kuò)展成為增益矩陣,那么,狀態(tài)向量的更新如下所示:
式中:Ki,k是k時(shí)刻的增益;Ep,k是新息矩陣;p是新息長度。
在UDDS 工況下,運(yùn)用Matlab 軟件對算法進(jìn)行仿真驗(yàn)證,將AGA 算法辨識(shí)出來的參數(shù)代入模型中,仿真結(jié)果如圖6~7 所示,仿真數(shù)據(jù)如表3 所示,分?jǐn)?shù)階多新息自適應(yīng)擴(kuò)展卡爾曼濾波(FOMIAEKF)算法估計(jì)誤差的平均值和最大值都有所減小,說明該算法可以有效提高SOC估計(jì)精度。
圖6 FOMIAEKF和FOEKF算法估算SOC曲線圖
圖7 FOMIAEKF和FOEKF算法估算SOC誤差對比圖
表3 FOEKF 與FOMIAEKF 算法估計(jì)SOC 誤差對比
用UKF 算法估算鋰電池健康狀態(tài)(SOH),將電池容量C和電池內(nèi)阻R0作為健康狀態(tài)的估計(jì)量,UKF 算法估計(jì)流程首先確定狀態(tài)值初始值x0和后驗(yàn)狀態(tài)誤差協(xié)方差初始值P0,計(jì)算采樣點(diǎn):
式中:L為狀態(tài)向量的長度。
UKF 算法增益矩陣的更新如式(14)所示:
鋰電池在使用過程中會(huì)不斷老化,它的內(nèi)阻會(huì)變化,容量會(huì)降低。但是辨識(shí)出來的模型參數(shù)是根據(jù)實(shí)驗(yàn)結(jié)果得到的定值。將SOC和SOH聯(lián)合估計(jì),根據(jù)SOH估計(jì)出來的內(nèi)阻值和容量值實(shí)時(shí)修正SOC估計(jì)的參數(shù)[15],從而提升SOC估計(jì)的精度。圖8 是聯(lián)合估計(jì)算法估算SOC的曲線圖,圖9 是聯(lián)合估計(jì)算法估算SOC的誤差圖,聯(lián)合估計(jì)算法誤差在2.5%之內(nèi)。圖10 為不同算法估算SOC誤差對比圖,聯(lián)合估計(jì)算法比FOMIAEKF 算法精度更高,說明聯(lián)合估計(jì)算法可以有效提高SOC估算精度。表4 為不同算法估算SOC 誤差對比。
圖8 聯(lián)合估計(jì)算法SOC估計(jì)值
圖9 聯(lián)合估計(jì)算法估算SOC誤差圖
圖10 不同算法估算SOC誤差對比圖
由表4 可知,普通EKF 算法估算SOC的平均誤差為0.015 3,用分?jǐn)?shù)階理論提高模型精度后,F(xiàn)OEKF 算法估算平均誤差為0.011 2。針對EKF 算法濾波過程中狀態(tài)噪聲和預(yù)測噪聲恒定不變的情況,提出一種自適應(yīng)EKF 算法,可以實(shí)時(shí)更新噪聲方差矩陣,F(xiàn)OAEKF 算法估算SOC的平均誤差為0.010 1,精度得到了提高,但是沒有充分利用歷史新息數(shù)據(jù)。針對這種情況,將單新息變?yōu)槎嘈孪⒕仃?,充分利用了之前未被利用的新息?shù)據(jù),F(xiàn)OMIAEKF 算法估算SOC的平均誤差為0.009 1,精度相比于普通的EKF 算法有了明顯提高。針對隨著鋰電池不斷老化,模型參數(shù)會(huì)發(fā)生變化的情況,提出了聯(lián)合估計(jì)算法,用UKF 算法估算SOH,實(shí)時(shí)更新分?jǐn)?shù)階模型參數(shù),聯(lián)合估計(jì)算法估算SOC的平均誤差為0.007 6,精度有了進(jìn)一步的提高。
表4 不同算法估算SOC 誤差對比
本文引入分?jǐn)?shù)階思想建立鋰電池等效電路模型,用AGA算法離線辨識(shí)模型參數(shù),通過脈沖放電實(shí)驗(yàn)對模型精度進(jìn)行驗(yàn)證,結(jié)果表明,分?jǐn)?shù)階的引入有效地提高了模型的精度。在UDDS 工況下,運(yùn)用EKF 算法對整數(shù)階模型和分?jǐn)?shù)階模型的SOC值進(jìn)行估算,仿真結(jié)果進(jìn)一步證明了分?jǐn)?shù)階模型的精度更高。隨后,針對EKF 算法的不足進(jìn)行改進(jìn),提出了多新息自適應(yīng)EKF 算法,解決了EKF 算法噪聲恒定以及未充分利用新息數(shù)據(jù)的問題,并通過與SOH聯(lián)合估計(jì)實(shí)時(shí)修正分?jǐn)?shù)階模型參數(shù),減少模型老化帶來的影響。仿真結(jié)果表明,F(xiàn)OMIAEKF 算法和聯(lián)合估計(jì)算法可以有效地提高SOC估算精度和跟蹤速度。