葉麗華,王海鈺,施燁璠,薛定邦,李 杰,施愛平
(1.江蘇大學 汽車與交通工程學院,江蘇 鎮江 212013;2.紐約州立大學 電子與計算機工程學院,紐約 13903;3.江蘇大學 農業工程學院,江蘇 鎮江 212013)
鋰離子電池因其綿長的循環壽命和超高的能量密度被廣泛應用于電動汽車,為了保證電動汽車安全可靠且高效地運行,一個精密的電池管理系統(BMS)至關重要,而作為其核心技術的SOC估算,近年來一直是研究的熱點問題。動力電池的建模作為SOC估算的基礎,其重要性不言而喻,等效電路模型通過一系列的電阻、電容及恒壓源等電路元器件組成電路網絡來模擬其外特性,如PNGV、Rint及Thevenin模型等[1]。
卡爾曼濾波(KF)正是一種基于模型的SOC估算方法,它通過構建狀態空間方程,將SOC視為狀態變量進行迭代計算來提高估算精度[2-4]。隨著研究的深入,卡爾曼濾波算法發展出了不同的種類:擴展卡爾曼濾波算法(EKF)通過將經典卡爾曼濾波在一階泰勒公式展開略去高階項得到,它是KF的非線性化延伸,缺點在于面對高度非線性化的系統時,SOC估算值不收斂[5-6];無跡卡爾曼濾波(UKF)利用無跡變換(UT),通過非線性模型選擇并傳播一組Sigma點,從而提供狀態向量的均值和協方差的近似值,缺點在于魯棒性稍差且UT變化比較復雜[7-9];分數階卡爾曼(FOKF)基于分數階微積分而提出,部分程度上解決了整數階模型無法準確描述鋰離子電池固相鋰離子擴散和雙層效應的問題,但問題在于其很大程度上依賴于底層模型的準確度[10-12];容積卡爾曼濾波(CKF)是在3階球面徑向體積準則的基礎上,利用一組體積點,逼近附帶高斯噪聲的非線性系統的狀態均值和協方差,其不足之處在于底層模型往往過于簡單,無法精確模擬電壓的回彈特性[13-14]。在等效電路模型足夠精確的情況下,任意一種KF算法均可實現較高的SOC估算精度,但問題在于除EKF外,其余算法過于復雜且計算量巨大,對于電動汽車BMS的硬件配置提出了更高的要求。
擴展卡爾曼濾波算法能得到狀態變量的最優估計,不僅適用于動態系統狀態估計,還可用于動態系統時變參數的估計,其不足之處在于辨識效果嚴重依賴噪聲統計特性,而在單獨使用EKF進行SOC估算時,其系統噪聲協方差矩陣以及觀測噪聲協方差矩陣多為隨機給出,因此,僅依靠EKF,系統噪聲和測量噪聲的統計特性很難獲得最優解。粒子群優化算法(PSO)是一種生物進化算法,種群中的每個粒子都代表問題的一個潛在解,對應一個由適應度函數決定的適應度值。每個粒子都具有位置和速度2個屬性,離子的位置即當前的值,粒子的速度決定了粒子移動的方向和距離,速度隨自身及其他粒子的移動經驗進行動態調整,實現個體在可解空間中的尋優[15-17]。PSO全局尋優的特性非常契合EKF中對于噪聲協方差矩陣中元素的尋優,但PSO算法也存在遍歷性差和容易陷入局部極小的缺陷。
在此基礎上,本文提出了一種改進粒子群算法(IPSO)耦合EKF算法的融合算法,通過對粒子群尋優算法(PSO)的改進[18],對EKF的噪聲協方差矩陣進行種群尋優,從而提高SOC的估算精度。本文的創新性有以下2點:
1)以往的卡爾曼濾波算法及其變體算法出于簡便性及魯棒性的考慮,等效電路模型往往比較簡陋,多為1階或者2階RC電路,本文采用了一種新型的3階等效電路模型作為底層電路模型,結合離線辨識的方法辨識模型參數,在保證模型不至于太過復雜的同時,保證了模型的精確性。
2)以往的基于等效電路模型的SOC估算方法,為了保證算法的精確性,融合了很多繁復的數學思維和推導變換過程,使得估算過程過于龐雜且耗時較長,與此同時,又忽略了對于噪聲的優化。本文提出了一種將EKF方法與IPSO算法相結合的融合算法,在EKF迭代過程中,利用IPSO算法對系統噪聲和觀測噪聲進行尋優,提高SOC的估算精度。
以18650磷酸鐵鋰動力電池為對象展開研究,其單體電池主要性能參數如表1所示。

表1 單體電池性能參數
本文中所用到的電池測試設備是寧波拜特公司的NBT30V100AC4-T的電池測試系統,主要由高精度數據測試采集一體機、恒溫箱和上位機組成,其主要技術參數如表2所示。

表2 NBT30V100AC4-T電池測試系統主要技術參數
電池測試平臺及數據采集設備原理圖如圖1所示。

圖1 電池測試平臺及數據采集設備
等效電路模型以動力電池的伏安特性關系為基礎進行建模,使用一系列電容、電阻及恒壓源等電路元器件組成電路網絡,描述動力電池的外特性,且復雜程度較低,具有較高的估算精度,是目前應用最廣泛的電池模型。由于鋰電池的外特性并不是完全一致的,基于本次所用動力電池的特性,即OCV-SOC曲線呈現出來的雙平臺特性,PNGV模型、Rint模型及Thevenin模型顯然不能充分模擬電池電壓的回彈特性及滯回特性,所以綜合考慮模型精度及復雜程度的基礎上,采用如下的3階RC等效電路模型,如圖2所示。

圖2 3階RC等效電路模型
圖2中,Ccap代表電池的額定容量,表示EMF的電壓源受電池的SOC(VSOC)控制,表示滯回電壓Vh的電壓源受電池的SOC(VSOC)以及VLh控制,其中,VLh控制是充電滯回還是放電滯回;RΩ代表歐姆內阻,Rs,Rm,Rl代表極化內阻,Cs,Cm,Cl代表極化電容,VB代表開路電壓OCV。A、B、C支路組成受控等效電壓源,模擬電池內部由于電化學極化和濃度差極化現象導致的電壓滯回特性;3階RC電路組成等效阻抗,模擬電池的回彈特性。在電流激勵的作用下,上述模型的狀態空間方程可表述為:
(1)
將式(1)離散化,離散時間的方程如下:
(2)
一般選取SOC和歐姆內阻兩端的電壓作為狀態方程的狀態變量,但是由式(2)可知,3階RC網絡兩端的電壓也會隨電流的變化而發生狀態變化,令
則式(2)可改寫為如下形式:
xk=Axk-1+Bik-1
(3)
將3階RC網絡兩端的電壓也列為狀態變量進行迭代計算,因此,EKF濾波器狀態變量的選取如下:
xk=[SOC,UΩ,Us,Um,Ul]
(4)
觀測變量選擇動力電池的開路電壓,即
yk=VB=UOCV
(5)
EKF的迭代流程可用圖3表示。

圖3 EKF迭代流程示意圖
參數辨識分為在線辨識和離線辨識,在線辨識可以通過傳感器實時監測的數據實現模型的在線更新,精準的捕捉系統的參數變化;而離線辨識則是通過HPPC工況,獲取電池脈沖充放電瞬間的電壓變化結合歐姆定律來辨識電池的阻抗參數。僅從算法的角度來說,在線辨識是以數學公示進行實時擬合,其魯棒性更好,由于本課題采用的等效電路模型為3階,需要辨識的阻抗數目較多,相對于Rint模型和Thevenin模型來說,模型較為復雜,在線辨識的結果并不理想。相對于在線辨識方法,離線辨識的參數更加準確和穩定。由于所用的底層電路模型為3階等效電路模型,高階模型在微小擾動下的辨識結果會有很大的波動,為了盡可能提高辨識精度,選擇0.2C、0.4C、0.6C、0.8C、1.0C、1.2C、1.4C、1.6C、1.8C、2.0C,共10組放電倍率,對電池的阻抗參數進行離線辨識,并繪制成三維圖像,結果如4所示:圖4中,(a)(b)(c)為等效極化電阻,分別對應圖2中Rs,Rm,Rl,(d)(e)(f)為等效極化電容,分別對應圖2中Cs,Cm,Cl。每一個3維圖片中,放電倍率定義為x軸,SOC定義為y軸,阻抗特性定義為z軸,上述圖片反映了在3階等效電路模型的基礎上,等效阻抗在不同放電倍率和SOC值下的變化特性,從圖中可以看出,當放電電流恒定時,極化內阻隨SOC的降低而增大;當SOC恒定時,極化內阻隨放電倍率(即放電電流)的增大而減小。極化電容的變化趨勢與極化電阻相反,因為二者并聯,符合電池的工作特性。

圖4 等效極化電阻(a)與等效極化電容(b)的參數辨識結果
1)針對遍歷性差
采用Tent映射對粒子群位置和速度進行初始化[19],它是分段線性一維映射的一種形式,又稱帳篷映射,其數學表達式為:
xn+1=α-1-α|xn|,α∈(1,2]
(6)
Tent映射的Lyapunov指數為:
(7)
當α≤1時,λ≤0,系統處于穩定狀態;當α>1時,λ>0,系統處于混沌狀態;當α=2時,λmax=ln2,為中心Tent映射,其數學表達式為:

(8)
將初始化結果映射到[-1,1]區間,表達式如下:
ef,d=rf,d(2xk-1)
(9)
該式所得即為粒子群初始速度值和初始位置值。
Tent映射結構簡單,具有很好的遍歷均勻性,更適合大數量級數據序列的運算處理,迭代速度和遍歷性要快于Logistic映射。
2)針對算法易早熟、后期易在全局最優解附近震蕩
為了保持種群內部的多樣性,避免算法過早在局部最優處收斂,進而導致早熟現象,引入一個帶變異算子的變異控制函數[20-21],用來控制變異的粒子數目,變異控制函數為:
y(h)=(1-(h/hmax)α)β
(10)
式中:h為當前迭代次數;hmax為最大迭代次數;α、β為控制系數。
變異算子的控制率計算公式如下:
u=m·y(h)
(11)
式中:u為變異率;m為預設變異率,設定后不變。
由式(10)(11)可以看出,通過控制α、β及變異率u的值可以控制變異函數,在算法運行前期,為了種群搜索的全面性,α、u取較大的值,迭代次數更多;在算法運行后期,為了集中尋優,快速收斂,β、u取較小的值,迭代次數更少。
進行變異操作的粒子數通過變異率確定,如下式:
M=[N·u]
(12)
式中,M是進行變異操作的粒子數。
對粒子的變異操作為:首先對種群粒子進行Tent映射,并將初始化結果按照式(9)進行賦值,之后從中選擇M個粒子進行變異操作,假設第k個粒子被選中進行變異操作,如Xk=(xk1,xk2,…,xkD),其中第j個元素發生了變異,其操作策略為:
xk,j=xk,j+rand·y(h),rand∈(-a,a)
(13)
由式(13)可以看出,在算法前期,變異后的粒子距離變異前的粒子比較遠;在算法后期,變異后的粒子距離變異前的粒子比較近。這也就意味著,算法前期搜索空間比較大,減小了過早陷入局部最優解的概率;后期搜索空間比較小,能夠集中資源向全局最優解方向搜索,提高算法的收斂精度。
3)針對粒子易陷入極小值
以粒子群的位置協方差矩陣的取值作為標準,當其小于指定值時,表明粒子群陷入局部極小,重新由式(8)進行混沌映射初始化,表達式如下:
Δ=δf,d(f=1,2,…,n;d=1,2,…,D)
(14)
4)適應度函數的選取
以模型電壓的模擬值與試驗電壓的測量值的絕對累積誤差值,作為IPSO算法的適應度函數,表達式如下:
(15)
利用IPSO-EKF融合算法進行SOC估算中的噪聲優化主要分為2個步驟,首先是在Simulink中建立基于3階等效電路的EKF模型,其次是利用m腳本編寫IPSO程序,在每個采樣時刻,調用EKF模型1次,進行噪聲尋優,具體的步驟如下:
在Simulink中搭建基于3階等效電路的EKF模型,并設置好From Workspace以及To Workspace等調用接口;在Matlab中編寫m腳本,并利用options=simset(′SrcWork-space′,′current′)以及sim(′EKF′,[],options)設置好句柄;
步驟1 利用式(8)對PSO種群粒子進行Tent中心映射,并完成初始化;
步驟2 判斷是否達到最大迭代次數;
步驟3 用式(15)計算粒子適應度值;
步驟4 計算各個粒子的協方差矩陣;
步驟5 利用式(14)判斷種群是否陷入局部極小,判斷標準為所有粒子群都滿足式(14);
步驟6 判斷為是,利用式(10)對種群粒子進行變異操作,并返回步驟1;
步驟7 判斷為否,更新粒子位置和速度,并按照式(9),將粒子群最優解賦值給Simulink中EKF模型的噪聲協方差矩陣Q、R;
步驟8 將Q、R帶入EKF模型進行一次迭代計算,并對電流、仿真電壓、測試電壓以及雅可比矩陣進行采樣,并計算SOC。
步驟9 輸出SOC,將此時的Q、R所對應的粒子群速度和位置定義為種群歷史最優,并將其值返回步驟3,繼續進行迭代計算。
以上為IPSO-EKF在SOC估算中進行噪聲尋優的遞推步驟,其融合算法流程以及子模塊局部放大圖如圖5所示。

圖5 IPSO-EKF融合算法流程框圖以及子模塊局部放大圖
首先對3階等效電路模型下的離線辨識結果進行驗證,驗證的方式為端電壓驗證,即在Simulink模型中輸入不同動態工況的電流激勵,模型會產生一個對應的仿真電壓,將其與試驗電壓進行對比即可,IPSO-EKF算法的仿真電壓定義IPSO-EKF,試驗工況的真實電壓以具體的試驗名稱定義。
如圖6所示,驗證工況選用DST工況、UDDS工況以及NEDC工況,其中,DST工況和UDDS工況側重于模擬城市駕駛條件下動力電池的負載變化;而NEDC工況兼顧城市和市郊駕駛條件下動力電池的負載變化。由圖6可以看出,基于3階等效電路模型下的模型仿真電壓與動態工況測試電壓觀測值大部分重合,誤差基本在-0.02~0.06 V,說明在離線參數辨識的情況下,3階等效電路模型可以很好地進行模型參數識別。

圖6 DST、UDDS以及NEDC工況下的電壓驗證
分別基于DST工況、UDDS工況以及NEDC工況進行了IPSO-EKF算法驗證,結果如圖7所示。圖7中,以實驗室狀態下安時積分法測得的SOC作為基準值,并定義為True SOC;EKF算法估算的SOC定義為EKF-SOC,需要注意的是,系統噪聲協方差矩陣和觀測噪聲協方差矩陣均為仿真平臺隨機生成,以此作為對比;IPSO-EKF算法估算的SOC定義為IPSO-EKF-SOC,該曲線是已經經過IPSO-EKF算法優化噪聲之后的SOC估算曲線。由圖中可以看出,在SOC估算初期,由于EKF算法的噪聲協方差矩陣為仿真平臺隨即給出,其SOC估算曲線沒有及時收斂到True SOC,導致后期估算曲線越來越偏離真實值,并且逐漸出現發散的趨勢;而IPSO-EKF-SOC由于對噪聲進行尋優,曲線從放電開始,就及時收斂到了True SOC,且在后續的SOC估算過程中,一直保持在True SOC附近。此外,從誤差曲線也可以看出,在仿真開始的一瞬間,IPSO-EKF-SOC立刻收斂到True SOC附近,且在整個仿真過程中,估算誤差一直保持在5%以內,而EKF-SOC估算誤差越來越大,且沒有出現收斂的跡象。相比于EKF算法,IPSO-EKF算法具有更高的估算精度,其估算誤差比較平穩,且具有良好的適應性。

圖7 DST、UDDS以及NEDC工況下的SOC估算精度比較
通過適應度值收斂曲線隨算法迭代次數的變化來表征IPSO-EKF融合算法的收斂速度,如圖8所示。由圖8可知,本文提出的IPSO-EKF融合算法迭代速度較快,在前5次迭代過程中迅速收斂到全局最優位置,并且在隨后的迭代過程中,最佳適應度值趨向于穩定。

圖8 DST、UDDS以及NEDC工況下的IPSO-EKF算法適應度值收斂曲線
RMSE值和MAPE值通常用來作為評價一個回歸模型精度的指標,其值越小,代表模型精度越高,Yang等在研究鋰離子電池SOC估算問題時,提出可以用RMSE和MAPE來表征算法的精度和可靠性[9],即將試驗電壓的各個采樣點數據看作是離散空間中的點集,而將算法擬合的SOC曲線看作是一條回歸方程。不同動態工況下的RMSE和MAPE值如表3所示。

表3 DST、UDDS以及NEDC工況下EKF算法和IPSO-EKF算法的RMSE和MAPE值
由表3可知,DST工況以及UDDS工況下EKF算法和IPSO-EKF算法的RMSE值和MAPE值差別不大,這可能是由于DST和UDDS側重模擬城市駕駛條件下動力電池的負載變化,電流激勵比較單一,EKF和IPSO-EKF算法都具有比較好的適應性;但是在NEDC工況下出現了巨大的差距,EKF算法的RMSE值和MAPE值分別達到了10.956 5和827.392 9,而IPSO-EKF算法的RMSE值和MAPE值僅為0.368 4和0.706 7,這是因為NEDC工況包括4個市區工況小循環和1個郊區工況循環,需要兼顧城市和市郊駕駛條件下動力電池的負載變化,電流激勵在市區循環和郊區循環之間切換時會發生比較大的波動,對算法的適應性提出了更高的要求,顯然,IPSO-EKF算法的精度和適應性要優于EKF算法。
綜合看來,相比于EKF算法,IPSO-EKF算法的RMSE和MAPE值更小,從統計學的角度來講,具有更高的精度和可靠性;同時無論是偏向城市駕駛條件下動力電池的負載變化;還是兼顧城市和市郊駕駛條件下動力電池的負載變化,本文提出的IPSO-EKF算法均表現出很強的適應性。
1)采用3階RC等效電路模型,在不同放電倍率的基礎上,利用離線辨識的方法辨識模型參數,試驗與仿真結果表明,在離線參數辨識的情況下,3階等效電路模型可以很好的進行模型參數識別。
2)本文所提出的IPSO-EKF融合算法,可以在EKF迭代過程中,利用IPSO優化系統噪聲和觀測噪聲,提高SOC的估算精度。從試驗和仿真的結果可知,相對于EKF算法,IPSO-EKF算法具有較高的估算精度和良好的適應性,無論是側重于模擬城市駕駛條件下動力電池負載變化的DST工況和UDDS工況,還是兼顧城市和市郊駕駛條件下動力電池負載變化的NEDC工況,本文提出的算法都可以很好的進行噪聲優化,提高SOC的估算精度。
3)本文提出的IPSO-EKF融合算法迭代速度較快,在5次左右的迭代過程中迅速收斂到全局最優位置,并且在隨后的迭代過程中,最佳適應度值趨向于穩定。
4)相比于EKF算法,IPSO-EKF算法的RMSE和MAPE值更小,從統計學的角度來講,具有更高的精度和可靠性;同時無論是偏向城市駕駛條件下動力電池的負載變化;還是兼顧城市和市郊駕駛條件下動力電池的負載變化,本文提出的IPSO-EKF算法均表現出很強的適應性。
5)除此之外,本文為其他類型的鋰電池SOC估算提供了思路,即從噪聲尋優的角度對SOC估算精度進行優化。