劉世林 ,李德俊 ,姚偉 ,王寧
(1.安徽工程大學 電氣工程學院,安徽 蕪湖 241000;2.華中科技大學 電氣與電子工程學院,湖北 武漢 430074)
鋰電池因其具有能量密度高、循環壽命長等優點,已被廣泛應用于電動汽車、儲能電站和航空航天等眾多領域[1-2].荷電狀態(State of Charge,SOC)用來表征電池的剩余可使用電量,其準確估計不僅是保證電池安全的前提,也是電池管理系統進行均衡充放電控制的基礎.為了獲得更加準確的SOC 參數,國內外學者開展了大量工作,其中基于等效電路模型的卡爾曼濾波類算法最受關注,先后提出擴展卡爾曼濾波(Extend Kalman Filter,EKF)[3-4]、無跡卡爾曼濾波(Unscented Kalman Filter,UKF)[5-7]和容積卡爾曼濾波(Cubature Kalman Filter,CKF)[8-10]等多種非線性卡爾曼濾波算法.CKF 因其具有高精度、低復雜度和收斂性好等優點,得到了廣泛研究和應用.相對于EKF,CKF 不需要計算雅可比矩陣并且能夠消除線性化誤差,解決了EKF的理論局限性問題;而相較于UKF,CKF 在解決高維強非線性系統的濾波問題時,則具有更加穩定的性能和更高的濾波精度.
CKF 作為一種非線性卡爾曼濾波算法,其對等效電路模型的準確度要求也非常高.由于鋰電池內部的化學反應過程非常復雜且具有時變性,因此其等效電路模型參數客觀上一定會存在誤差.此外,CKF 算法中需要的系統噪聲先驗統計特性往往也無法準確獲得,從而造成噪聲模型不匹配的問題.為了克服模型誤差的影響,目前主要有兩類方法:1)提高模型的準確度或利用模型融合提高模型的適用性.李凌峰等[11]和李路路等[12]在傳統的等效電路模型基礎上分別提出了變階模型和分數階模型;談發明等[13]在建模時考慮了滯回效應的影響;孫朝暉等[14]提出了一種混合等效電路模型,能夠較好地描述電池在大倍率放電工況下的SOC 變化.上述方法雖然在一定程度上提高了模型的精度,但同時使模型變得更復雜,增加了參數辨識的難度.2)改進濾波器的設計,構成自適應濾波算法.Zeng 等[15]提出了基于Sage-Husa 自適應濾波原理的改進算法,該算法可以實時更新噪聲統計特性,減小噪聲模型誤差的影響,但會帶來大量運算,同時也易出現濾波發散問題;Xia 等[16-17]提出了基于漸消記憶濾波原理的強跟蹤卡爾曼濾波算法,通過漸消因子強迫殘差序列正交,以此在線調整卡爾曼增益矩陣,達到減小模型誤差的目的,但增益矩陣控制的敏感性極易引起估計結果的波動.
近年來,隨著數據驅動建模方法的快速發展,有學者提出在卡爾曼濾波算法中引入誤差修正機制,利用數據驅動方法強大的非線性擬合能力對濾波誤差進行修正,從而減小模型誤差的影響,獲得更高的濾波精度.孔祥創等[18]、劉興濤等[19]分別提出將BP神經網絡和支持向量機(Support Vector Machine,SVM)與EKF 相結合,并訓練得到BP 模型和SVM 模型用于補償EKF 算法的估計誤差,在一定程度上克服了EKF算法對模型精度依賴性強以及濾波易發散的問題.王曉蘭等[20]提出采用結構簡單且訓練耗時短的極限學習機(Extreme Learning Machine,ELM)構建誤差預測模型.但是,ELM 模型的準確度非常依賴隱含層節點數,且隱含層連接權值和偏置具有隨機生成特性,導致所建模型的泛化性和魯棒性較差.
本文提出一種核極限學習機(Kernel Extreme Learning Machine,KELM)與CKF 融合的SOC 估計算法(KELM-CKF),在遞歸最小二乘法(Recursive Least-Squares,RLS)和CKF 聯合算法的基礎上,利用基于KELM 的誤差預測模型對SOC 初始估計值進行誤差校正,從而達到降低估計誤差的目的.仿真實驗結果表明,本文方法在泛化性、魯棒性和SOC 估計精度方面均有明顯提升.
鋰電池的等效電路模型因具有簡單、高效等特點,目前得到廣泛研究和應用.綜合考慮模型的精度、計算復雜度等因素,本文采用Thevenin 等效電路模型[21],其結構原理如圖1所示.圖中,E為電池電動勢,即電池的開路電壓;Re為電池的歐姆內阻;RP為電池的極化電阻;CP為電池的極化電容;RPCP并聯電路表征電池的極化效應;UP為電池的極化電壓;I為電池的工作電流;U為電池的端電壓.

圖1 Thevenin等效電路模型Fig.1 Thevenin equivalent circuit model
依據基爾霍夫定律可得t時刻圖1 中各電氣量的關系如下:
圖1 中的電池電動勢E是Thevenin 模型中的一個重要參數,也是參數辨識必須要用到的狀態量,其值與SOC 存在函數關系[22].本文采用美國馬里蘭大學的電池測試數據[23]獲得E-SOC 關系,即以C/2 倍率電流對電池進行恒流充放電,采用SOC 每變化10%并靜置2 h 后的電池端電壓近似表示電池電動勢.為了減小充放電過程中遲滯現象的影響,取電池電動勢的平均值作為擬合數據進行7 次多項式擬合,得到E-SOC關系如下:
RLS 算法的基本思想是利用本次的觀測數據修正上次的估計值從而得到當前的最優估計值,可以實現模型參數的定期更新和校正,具體工作原理描述如下.
由式(1)消去中間變量并進行離散化得到:
式中:a1、a2和a3為包含待辨識模型參數Re、RP和CP的變量,其對應關系如下:
整理式(3)并定義:
式中:yk為系統的輸出向量;φk為系統的輸入向量;θk為待辨識參數向量.其中,Uk,Ik和Ik-1可以通過實驗測量得到,而Ek則可以根據式(2)中E-SOC 函數關系計算得到.
根據上述獲得的數據,利用RLS 算法對待辨識參數向量θk進行遞推辨識,其遞推方程為:
式中:Pk為RLS 算法的協方差矩陣;Kk為增益矩陣.根據式(5)和式(6)即可在每次輸入新數據時辨識出參數向量θk,再通過式(4)反解獲得模型參數.
CKF 算法基于球面徑向容積準則,采用權值相同的容積點近似估計系統狀態的后驗分布,是當前一種最接近貝葉斯濾波的非線性濾波算法.在應用CKF 算法估計電池SOC 時,需要建立基于電池模型的離散狀態方程.本文以鋰電池的工作電流I為輸入變量,工作電壓U為輸出變量,以極化電壓UP和荷電狀態SOC 為狀態變量,結合安時積分法和式(1),建立基于Thevenin模型的離散狀態方程和量測方程:
式中:Δt為采樣周期;τ=RPCP為時間常數;QN為電池額定容量;w為過程噪聲;Q為其協方差矩陣;v為量測噪聲;R為其協方差矩陣;w、v視為相互獨立且均值為零的高斯白噪聲.
令狀態向量xk=[UP,kSOCk];量測向量yk=Uk;輸入向量uk=Ik.將式(7)表示為如下形式的非線性離散系統:
式中:fk和hk分別為狀態函數和量測函數.
結合式(7)和式(8)建立的非線性系統方程,采用CKF算法進行SOC估計的具體過程如下:
步驟1濾波器初始化
給出初始狀態值x0,狀態誤差協方差矩陣P0,噪聲協方差矩陣Q0,量測協方差矩陣R0,并對P0進行Cholesky分解,即
式中:S0為P0進行Cholesky分解后的下三角矩陣.
步驟2時間更新
①容積點選取和傳播后的容積點計算:
式中:Pk為k時刻狀態誤差協方差矩陣;Sk為PkCholesky分解后矩陣;ξi為容積點集,定義如下:
式中:εi為矩陣ε的第i列向量;n為狀態向量的維數,本文n=2.矩陣ε的表達形式如下:
②狀態預測值和狀態誤差協方差矩陣計算:
步驟3量測更新
①對Pk+1/k進行Cholesky分解:
②容積點和傳播后的容積點計算:
③量測預測值計算:
④殘差計算:
⑤殘差協方差陣和互協方差矩陣計算:
⑥濾波增益矩陣計算:
⑦狀態量和狀態誤差協方差矩陣更新:
其中,式(17)中的殘差rk為電壓量測值yk與預測值之間的差值.需要說明的是,理想情況下殘差應該是零均值白噪聲,但在實際的復雜系統中,由于受到模型誤差的影響,殘差往往不再為零均值白噪聲.因此,為了評估濾波器性能的優劣以及系統模型誤差對濾波器的影響程度,通常采用殘差的均值和方差作為評價指標[24-25].假設l為一段時間內的統計數,則濾波器的殘差均值r和方差Pr分別定義為:
根據2.1 節的CKF 算法原理可知,基于Thevenin等效電路模型的CKF 算法,其性能必然會受到模型準確度和不確定性噪聲的影響.為了提高SOC 估計的精度,本文在CKF算法中引入誤差補償機制,建立基于KELM 的SOC 誤差預測模型,對CKF 算法的SOC估計值進行修正.
KELM 是在ELM 算法基礎上引入核函數進行改進的單隱層神經網絡算法.不同于ELM,KELM 通過核映射取代ELM 中的隨機映射,利用核函數將輸入樣本的低維空間數據映射到高維特征空間,使得模型具有更強的泛化性和魯棒性[26-27].本文選取可以描述電池動態特性變化并且能夠實測得到的電池端口電壓U、工作電流I以及CKF 算法的殘差均值r和方差Pr作為誤差預測模型的輸入變量,對應的SOC估計誤差作為輸出變量.根據核映射理論,基于KELM的誤差預測模型可以表示為:
式中:h(x)β為ELM 模型的輸出,h(x)為隱含層輸入函數;β為輸出層連接權值向量;H為隱含層輸出矩陣,為一隨機映射矩陣;I為單位對角矩陣;C為懲罰參數;x為模型的輸入數據向量[U I r Pr]T;x1,x2,…,xN為訓練樣本輸入數據向量;N為輸入樣本數;T為訓練樣本目標輸出向量;ΩELM為KELM 取代ELM中隨機矩陣HHT的核矩陣,其定義如下:
式中:K(xi,xj)為核函數,本文選擇徑向基函數,即
式中:‖xi,xj‖為樣本間歐式范數;γ為核函數參數.
值得注意的是,由于KELM 算法中的核函數采用內積的形式,在求解模型的預測輸出值時,無須設置隱含層的節點數,從而也不必設置隱含層連接權值和偏置.
本文提出的基于核極限學習機與容積卡爾曼濾波融合的鋰電池SOC 估計算法(KELM-CKF)的原理如圖2所示.具體工作流程為:

圖2 KELM-CKF算法原理圖Fig.2 Schematic diagram of the KELM-CKF algorithm
1)基于Thevenin等效電路模型,利用RLS算法對模型的參數進行在線辨識,進而采用CKF算法對電池的SOC進行預估計,并將預估計值與實驗獲得的真實值xk作差,得到SOC的估計誤差ek=xk-
2)將預估計中獲得的電池端口電壓U、工作電流I、CKF 算法的殘差均值r和方差Pr,以及對應的SOC 估計誤差ek進行預處理,歸一化到[-1,1]區間,作為訓練集數據.
3)根據2.2節中誤差預測模型原理,設定懲罰參數C和核參數γ,建立基于KELM 算法的SOC 估計誤差預測模型,并利用訓練集數據對模型進行訓練.
4)利用訓練后的KELM 誤差預測模型,回歸預測CKF 算法的SOC 估計誤差,并將預測結果反歸一化得到,再與CKF 的預估計值疊加,獲得補償后的最終估計結果xe,k=
為了驗證本文方法的有效性和先進性,以2 A·h鋰離子電池(18650 LiNiMnCoO2)為研究對象,采用Arbin電池測試平臺,在常溫(25 ℃)條件下對電池分別進行聯邦城市駕駛工況(Federal Urban Driving Schedule,FUDS)、動態應力測試(Dynamic Stress Test,DST)、城市高速(Urban High Speed,US06)和北 京動態應 力測試(Beijing Dynamic Stress Test,BJDST)模擬工況實驗,采樣周期為1 s.為避免電池過充過放,各工況下的電池SOC 設定為80%到10%.各工況的一個完整周期電流如圖3 所示,其中放電電流為正,充電電流為負.實驗數據來自馬里蘭大學開放的電池測試數據庫[23].

圖3 各工況下周期電流Fig.3 Cycle current at each working condition
實驗選取能夠兼顧模型精度穩定性和一般工況普適性的FUDS 工況數據完成對誤差預測模型的訓練,并在FUDS 工況下,將RLS 的模型參數辨識值代入Thevenin 模型中估算出電池的端電壓,通過與實驗采集的端電壓作誤差分析,驗證參數辨識結果的準確性.仿真參數設置如表1 所示,其中I3代表三階單位陣.端電壓估計誤差結果如圖4 所示,CKF 算法的殘差均值和殘差方差如圖5所示,SOC初始估計誤差結果如圖6 所示.將CKF 算法獲得的相關濾波數據組成建模數據集,隨機提取數據集的50%作為訓練集,基于KELM 訓練得到誤差預測模型,剩余50%工況數據作為測試集.KELM 模型的SOC誤差預測值與CKF 算法的SOC 實際估計誤差對比結果如圖7 所示,預測的絕對誤差如圖8 所示.CKF 算法和本文提出的KELM-CKF 算法的SOC 估計誤差對比結果如圖9所示.

表1 仿真參數表Tab.1 Simulation parameters table

圖4 端電壓估計誤差Fig.4 Terminal voltage estimation error

圖5 殘差均值與殘差方差Fig.5 Mean and variance of residuals

圖6 SOC初始估計誤差Fig.6 SOC initial estimation error

圖7 KELM模型的SOC預測值與實際值對比Fig.7 Comparison of SOC predicted values and actual values of KELM model

圖8 KELM模型預測的絕對誤差Fig.8 Absolute error of KELM model prediction

圖9 測試集SOC誤差對比Fig.9 Comparison of SOC error of test dataset
由圖4 可知,端電壓估計值與實驗采集值的最大誤差不超過60 mV,說明RLS 算法辨識得到的模型參數能夠較好地表征電池的動態工作特性.
由圖5 可知,由于受等效電路模型準確度和噪聲模型所引起的模型誤差的影響,CKF 算法在實際運行過程中殘差已不再是零均值白噪聲,均值最大達到40.3 mV.由圖6進一步可以看出,由于模型誤差的影響,SOC 估計誤差在放電前期明顯不斷增大,在放電中后期達到最大,最大誤差為1.4%.
圖7、圖8可知,KELM 誤差預測模型的預測值能夠較好地跟蹤目標值,預測最大絕對誤差為0.002 8.根據圖9 可知,相比于CKF 的估計值,本文提出的KELM-CKF 算法的SOC 估計精度明顯提高,估計誤差大大減小,最大絕對誤差在0.5%以內,表明了基于KELM 所建立的誤差預測模型有良好的回歸預測能力,能夠有效克服模型誤差的影響.
為了比較本文所提算法的泛化性和魯棒性,采用與KELM 相同的訓練數據集及數據處理方法,訓練并建立基于ELM 的SOC 估計誤差預測模型,并用模型的預測輸出值補償CKF 算法的SOC 估計值,稱之為ELM-CKF 算法.選取DST、US06 和BJDST 三種循環工況數據作為測試集,對比分析采用CKF、ELM-CKF 和KELM-CKF 對三種循環工況的SOC 估計效果.
經過多次實驗,確定ELM 的隱含層節點數為30,激勵函數選擇Sigmoid 函數.由于ELM 輸入權值和偏置的隨機性在實際運行中造成估計結果不穩定且有較大差異,為了增加可信度,選取10 次運行結果的平均值進行對比,結果如圖10~圖12 所示.為了更好地評估各算法的性能,通過引入最大誤差(Maximum Error,ME)、平均絕對值誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Square Error,RMSE)3 個評價指標進行定量對比分析,結果如表2所示.其中,ME、MAE和RMSE定義如下:

圖11 US06工況估計誤差對比Fig.11 Comparison of US06 working condition errors

圖12 BJDST工況估計誤差對比Fig.12 Comparison of BJDST working condition errors
式中:n為算法迭代次數;xk分別為第k次SOC 的真實值和估計值.
根據圖10~圖12 的誤差對比和表2 的評價指標可以看出,CKF 算法由于受模型誤差的影響,在三種工況的放電中后期SOC 估計均有較大的誤差,最大ME、MAE 和RMSE 分別為1.203%、0.789% 和0.853%.而經融合而成的ELM-CKF 算法和KELMCKF 算法的誤差指標均有顯著改善,最大ME 降至0.9%以下,最大MAE 和RMSE 降至0.2%以下,表明了基于ELM 和KELM 所建立的誤差預測模型均具有良好的回歸預測能力,能夠有效克服模型誤差的影響.值得注意的是,在三種工況下,ELM-CKF 的SOC估計誤差均有不同程度的跳躍和波動.其中,在DST工況的放電中期和后期跳躍最為明顯,最大誤差ME為0.652%,在BJDST工況的放電前期波動較大,收斂性差,最大誤差ME 達到0.896%.這主要是由ELM 的隱含層連接權值和偏置具有隨機生成特性所導致,同時也表明該算法的泛化性和魯棒性較差.而KELM-CKF 由于采用核函數替代隨機映射方式,相比于ELM-CKF,有更優異的性能,最大誤差ME始終保持在0.5%以下,各種評價指標均是最優,充分表明本文方法有更高的估計精度、更強的泛化性和魯棒性.
本文提出一種KELM 與CKF 融合的SOC 估計算法,在基于CKF 的SOC 估計算法基礎上,引入基于KELM 的誤差預測模型,對SOC 初始估計值進行補償,克服了CKF算法對模型準確度依賴性強、濾波易發散的問題.主要結論如下:
1)KELM 采用核函數將輸入樣本映射到高維特征空間,且無須設置隱含層節點數,解決了ELM因隨機映射造成模型輸出不穩定的問題.
2)在KELM 誤差預測模型的訓練數據選取方面,考慮了能夠反映模型誤差影響的殘差均值和殘差方差濾波數據,從而使經KELM 模型修正的CKF算法可以兼顧由等效電路模型和噪聲模型所引起的模型誤差影響,獲得更高的濾波精度.
3)多種工況下的對比實驗結果表明,本文所提方法在泛化性、魯棒性和SOC 估計準確性方面均具有更優的效果.