王海龍,左付山,張 營
(南京林業(yè)大學汽車與交通工程學院,江蘇 南京 210037)
荷電狀態(tài)(state of charge,SOC)反映電池的剩余容量,是電池的剩余容量與電池容量的比值。對于純電動汽車的電池管理系統(tǒng)(battey management system,BMS)來說,SOC 是重要的參數(shù)之一。對電池SOC 進行準確的估算,不僅可以提高電池系統(tǒng)的安全性,避免電池過充、過放,也有利于優(yōu)化后續(xù)的管理與控制。同時,SOC 的實時估算也直接影響到電動汽車的整車控制與性能。然而,電池SOC 受溫度、充放電率、自放電、老化等影響,很難直接通過傳感器測量得到。其需要通過采集到電池的電壓、電流作為基礎參數(shù),然后使用一些算法間接計算。SOC 估計必須快速、可靠、準確,以保證BMS 的高性能。但是由于電池復雜的內(nèi)部化學反應,使得電池SOC 的準確估計具有一定的困難和挑戰(zhàn)。
目前,常用的SOC 估算方法[1-2]主要有安時積分法[3]、開路電壓法[4]、卡爾曼濾波(Kalman filter,KF)法、機器學習方法[5-6]以及組合算法[7-8]。在這些算法中,卡爾曼濾波法不僅可以給出SOC 的估計值,還能給出SOC 的估計誤差。同時,它具有收斂快、估算精度高、對SOC 初值不敏感等優(yōu)點,因而得到廣泛研究。
利用卡爾曼濾波法進行電池SOC 估算[9],主要包括3 個步驟:電池模型的建立、狀態(tài)空間方程的離散化及參數(shù)辨識、卡爾曼濾波算法估算。電池模型的建立是卡爾曼濾波估算SOC 的首要步驟,可以模擬復制電池各種復雜的性能并輸出相應的物理參數(shù)。因此,具有高可靠性和精度的電池模型是SOC 估算的基礎和關鍵。
在電池的SOC 估算中,電池模型主要可以分為[10]:電化學模型(electrochemical model,ECM)、電等效電路模型(electrical equivalent circuit model,EECM)[11]、電化學阻抗模型(electrochemical impedance model,ECIM) 和數(shù)據(jù)驅(qū)動模型(data-driven model,DDM)[12-13]。其中,EECM 應用較多,更適合卡爾曼濾波算法SOC 估算,并且可實現(xiàn)電池模型精度與復雜度之間的平衡。
EECM 利用電感、電阻及電容等等效電器元件模擬電池的輸出特征,不僅能較好地體現(xiàn)電池靜態(tài)和動態(tài)特性,而且便于分析應用,通用性好。電等效電路模型包括Rint 模型、Randles 模型和nRC 模型3 種[10]。
Rint 模型是一種簡單的EECM,如圖1 所示。
圖1 Rint 模型Fig.1 Rint Model
Rint 模型通過用一個理想的電壓源UOC和電池直流內(nèi)阻RO串聯(lián)在一起,描述動力電池的動態(tài)特性。此模型結(jié)構比較簡單、易于實現(xiàn),但模型精度低,且不能描述動力電池內(nèi)部的極化現(xiàn)象,同時也忽視了鋰離子電池的遲滯效應。
Randles 模型最初被用于模擬鉛酸蓄電池的各種特性,而后也應用于鋰電池。Randles 模型如圖2 所示。圖2 中,CP為電池的儲能電容,并行組合的Cn和Rn模擬電池的電化學極化反應;RO為內(nèi)部電阻,RP為自放電電阻,模擬自放電特性。在此模型的基礎上,可以加入n個平行RC 支路來分析更多的瞬態(tài)響應[14]。
圖2 Randles 模型Fig.2 Randles Model
nRC 模型主要由一個內(nèi)部電阻(RO)和n個平行RC 分支組成。串聯(lián)的RC 分支的數(shù)量可以從1 到n。對SOC 進行估算時,為了既考慮模型的精度又考慮復雜度,通常取n為1 或2。1RC 模型也被稱為Thevenin模型。1RC 模型是在Rint 模型基礎上,添加了一個并聯(lián)RC 分支來描述電池充放電過程中的動態(tài)和瞬態(tài)響應。
Thevenin 模型如圖3 所示。
圖3 Thevenin 模型Fig.3 Thevenin Model
在1RC 模型的基礎上,電容Cb再與電阻RO串聯(lián),就可以構成新一代汽車合作伙伴關系(partnership for a new generation of vehicles,PNGV)模型。PNGV 模型如圖4 所示。
圖4 PNGV 模型Fig.4 PNGV Model
該模型既可以通過電阻Rp和電容CP來描述鋰離子電池的極化效應,也可以模擬SOC 變化對OCV 的影響。2RC 模型是一種用于SOC 估算的高度首選等效電路模型。與1RC 模型相比,2RC 模型精度更高。它由2 個RC 分支組成,其中:RP1和CP1用于描述鋰離子電池的電化學極化反應;RP2和CP2用于描述電池的濃差極化反應。2RC模型如圖5 所示。
圖5 2RC 模型Fig.5 2RC Model
基于卡爾曼濾波算法估算SOC 中,考慮到電池模型的復雜程度以及精度,Thevenin 模型、PNGV 模型、2RC 模型應用較為廣泛。文獻[14]以2RC 模型為基礎,估算電池SOC。該模型對于電池的3 種特性(電化學極化反應、歐姆極化反應、濃差極化反應)都進行了考慮。相比于1RC 模型,基于2RC 模型估算電池的SOC 精度更高、誤差更小。
在電池模型建立后,首先根據(jù)基爾霍夫定律建立等效電路的狀態(tài)空間方程。狀態(tài)空間方程中包括2 個方程,分別為狀態(tài)方程、觀測方程。然后需要將狀態(tài)方程和觀測方程進行離散化處理。離散化方法主要包括解析法、有限差分、有限元、微分求積等。將狀態(tài)方程和觀測方程離散化的目的是為之后利用卡爾曼濾波算法估算SOC 作好準備。
步驟二是對鋰電池的等效電路模型進行參數(shù)辨識。參數(shù)辨識的目的是獲得電池模型的參數(shù),包括電阻(RO、RP1、RP2),電容(CP1、CP2),開路電壓(UO)等。電池模型參數(shù)可通過在線和離線2 種方式獲取。離線的參數(shù)辨識方法通常是利用試驗與計算的方法,獲取不同SOC 狀態(tài)下電池模型的各個參數(shù)值。試驗的方法主要是脈沖放電方法。其計算簡單、容易實現(xiàn),但只能用于離線的參數(shù)估計,具有一定的局限性。同時,離線的參數(shù)辨識無法對所有電池都做這樣的工作,因此辨識的電池參數(shù)應用在其他未進行辨識的同類電池時并不十分準確,適應性較差。對于已經(jīng)建立的2RC 模型,文獻[15]采用脈沖放電法對電池模型中的參數(shù)進行了辨識,最終得到了在不同SOC 下的各個參數(shù)大小。
在線參數(shù)辨識法主要是通過動態(tài)規(guī)劃的方法,使用實時獲取的、電池目前和過去的輸入/輸出數(shù)據(jù),求得電池模型的參數(shù)。目前常用的參數(shù)辨識方法是基于遞推最小二乘法、遺傳算法等。這些方法都采用遞推的在線參數(shù)辨識方法。由于計算機不需要存儲和重復計算以往的全部輸入/輸出數(shù)據(jù),因而對于計算機存儲及計算能力要求較低。在這些算法中,遞推最小二乘法用于使在線參數(shù)辨識更為廣泛。文獻[16]、文獻[17]在2RC 模型的基礎上,提出了通過遞推最小二乘法對電池模型參數(shù)進行在線參數(shù)辨識。它無需存儲全部數(shù)據(jù),只需要一組觀測數(shù)據(jù),就可估計一次參數(shù)。對于參數(shù)在線實時辨識,相比較離線辨識方法,遞推最小二乘法更有利于提高SOC 估算精度。
卡爾曼濾波算法的基本原理是利用先前估計的狀態(tài)和當前測量信號遞推估計當前狀態(tài)。最初應用的是線性卡爾曼濾波算法。但是為了提高估算精度、解決非線性系統(tǒng)的問題,非線性卡爾曼濾波算法被提出。
利用卡爾曼濾波算法估算SOC,首先需要根據(jù)電池模型建立狀態(tài)方程以及觀測方程,并通過變換使其離散化;然后將SOC 估算值作為內(nèi)部的系統(tǒng)狀態(tài),利用前一時刻的SOC 估算值來預測這一時刻的SOC 估算值,并結(jié)合目前觀測到的電池參數(shù)進行最優(yōu)SOC 估算值的更新。不斷重復上述步驟,最終得到各個時刻SOC 的最優(yōu)估計值??柭鼮V波算法主要包括2 個部分:時間更新方程、測量更新方程。時間更新方程的主要作用是預測,即通過(k-1)時刻SOC 估算值預估k時刻的SOC 值。測量更新方程的作用是根據(jù)當前實際測量情況對上述估計值進行更新,得到最優(yōu)估計值。
卡爾曼濾波算法流程如圖6 所示。
圖6 卡爾曼濾波算法流程圖Fig.6 Kalman filter algorithm flowchart
由于電池在實際情況下是非線性的,為了提高SOC 估算精度,有必要建立非線性的狀態(tài)空間方程。為了解決利用非線性的狀態(tài)空間方程進行SOC 估算的問題,研究人員提出了非線性卡爾曼濾波算法。它主要分為3 大類:擴展卡爾曼(extended Kalman filter,EKF)、無跡卡爾曼(unscented Kalman filter,UKF)和立方卡爾曼(cubature Kalman filter,CKF)。
4.2.1 EKF 算法
上述利用線性卡爾曼濾波進行SOC 估算的方法,其電池模型的狀態(tài)方程和觀測方程是線性的。然而動力鋰電池在實際工況下是非線性的。電池SOC 同放電倍率、實際容量以及溫度等諸多因素成非線性的關系,會導致開路電壓誤差的積累。因此,需要對KF 算法進行擴展。在EKF 算法中,狀態(tài)方程和觀測方程是非線性的,所以需要通過泰勒公式的一階展開:用其一階量對非線性系統(tǒng)進行近似,將非線性的狀態(tài)方程和觀測方程線性化后,再利用卡爾曼濾波進行SOC 估算。文獻[18]、文獻[19]在KF 算法的基礎上提出了EKF 算法,并且對比了KF 算法和EKF 算法估算電池荷電狀態(tài)的試驗結(jié)果。試驗結(jié)果表明,EKF 算法SOC估算方法能夠把誤差控制在5%以內(nèi),估算精度更高。
由于在EKF 算法中,固定測量噪聲協(xié)方差(R)和過程噪聲協(xié)方差(Q)的假設降低了估計精度,所以引進了自適應擴展卡爾曼濾波算法(adaptive extended Kalman filter,AEKF)[20]。AEKF 在估計方法中加入了自適應更新協(xié)方差矩陣的特征,克服了誤差發(fā)散和有偏解的問題。文獻[21]在EKF 算法中引入了Sage-Husa 自適應算法,對噪聲進行實時預測和修正。試驗結(jié)果表明,相比EKF 算法估算電池SOC,應用AEKF算法估算電池SOC 的收斂速度更快、魯棒性更好、精度更高。
4.2.2 UKF 算法
EKF 算法在線性化過程中由于忽略了高階項,會使系統(tǒng)產(chǎn)生較大誤差,導致估算精度下降;同時,狀態(tài)空間方程的線性化是在先驗均值附近進行的,那么在真實后驗擴展中可能會出現(xiàn)顯著的誤差。為了彌補EKF 算法的不足,研究人員又提出了UKF 算法。
UKF 算法[22-23]是將標準KF 算法與無損變換(unscented transform,UT)相結(jié)合的一類非線性卡爾曼濾波算法。它通過UT 變換,使非線性系統(tǒng)方程適用于線性假設下的標準KF 算法。文獻[24]首先分析了EKF 算法在估算中精度不高的原因,然后提出了能克服上述缺點的UKF 算法。試驗結(jié)果表明,無跡卡爾曼濾波算法估算電池SOC 能將誤差控制得更小(遠遠小于EKF 的4%),并且提高了估算精度。同EKF 一樣,為了克服過程噪聲和測量噪聲的均值和協(xié)方差對于SOC 估計精度的影響,也需要將Sage-Husa 濾波等算法與UKF 算法相結(jié)合,得到自適應無跡卡爾曼濾波算法(adaptive unscented Kalman filter,AUKF)[25]。
4.2.3 CKF 算法
EKF 算法和UKF 算法具有發(fā)散性和維數(shù)性。為了解決這些問題,研究人員又提出了CKF 算法[26-27]。該算法的核心是球面徑向容積準則。采用CKF 算法進行SOC 估計,并將結(jié)果與EKF 算法和UKF 算法進行性能比較。結(jié)果表明,與EKF 算法相比,CKF 算法具有更高的計算精度和更長的計算時間。為了提高CKF 算法的性能,再次提出了一種新的自適應容積卡爾曼濾波(adaptive cubature Kalman filter,ACKF)算法,并將其與CKF 算法、EKF 算法進行了性能比較。對比結(jié)果表明,雖然ACKF 算法的計算時間超過了CKF 算法和EKF 算法,但ACKF 算法的精度最高、收斂速度最小,對測量誤差具有很強的魯棒性。
本文論述了卡爾曼濾波算法估算電池SOC 的主要步驟及原理,分析了不同電池模型以及卡爾曼濾波算法應用的優(yōu)缺點。通過上述研究與分析,基于卡爾曼濾波算法進行SOC 估算仍然有很多需要進一步研究的問題:第一是引進先進的電池模型,能更加全面、準確地模擬電池各種特性以及不確定性,并降低其復雜度,使實用性更強;第二是卡爾曼算法應與其他算法結(jié)合使用估算SOC,不僅可以降低整體計算量,也可以起到優(yōu)勢互補的作用;第三就是選擇更準確的適用于電池模型的在線參數(shù)辨識方法,從而減小估算誤差。