巫春玲 付俊成 徐先峰 孟錦豪 鄭克軍 胡雯博
(1.長安大學 能源與電氣工程學院,陜西 西安 710064;2.西安交通大學 電氣工程學院,陜西 西安 710049)
鋰離子電池因其容量大、無記憶、能量密度高、對高溫和低溫適應性強等優(yōu)點[1],在動力電池和儲能領(lǐng)域得到了廣泛應用。但其存在熱失控,尤其是大功率的鋰電池,它的安全隱患較大。因此,為了確保鋰電池安全穩(wěn)定運行,建立完備的電池管理系統(tǒng)以監(jiān)測電池的各個狀態(tài)是前提。荷電狀態(tài)(State of Charge,SOC)表示電池中剩余的可使用能量,是電池管理系統(tǒng)的核心指標,而上述狀態(tài)預測的前提條件是基于準確的電池模型參數(shù)[2]。因此,SOC估計應綜合考慮如何提高電池模型參數(shù)的辨識精度和SOC估計精度兩個方面。
目前的SOC估計方法主要有安時積分法、開路電壓法、神經(jīng)網(wǎng)絡法、擴展卡爾曼濾波算法(Extended Kalman Filter,EKF)等。安時積分法計算電池放出的電量有一定準確度,但是依賴設備精度和初始SOC 值,誤差容易累積增大。開路電壓(Open Circuit Voltage,OCV)法簡單易行,但無法動態(tài)估計且精度較差。神經(jīng)網(wǎng)絡法需要大量的數(shù)據(jù)進行訓練,并且難以理解內(nèi)部的機制[3]。擴展卡爾曼濾波算法計算速度快且精度比較高,適合不斷變化的系統(tǒng),因此被廣泛應用于SOC的實時估計[4-6]。
在上述SOC估計的過程中,電池模型參數(shù)的精度直接影響著SOC估計的準確性。因為離線辨識電池模型參數(shù)的精度較低,所以為提高辨識的精度,通常采用在線參數(shù)辨識的方法。其中,遞推最小二乘(Recursive Least Squares,RLS)算法計算簡單、實現(xiàn)方便,是應用最多的一種方法[7-8]。本文也將應用RLS算法進行參數(shù)辨識。
多新息理論是一種將新息的修正技術(shù)從單新息擴展到了新息向量[9]的方法。該方法可以同時利用多個時刻的新息,因此對很多算法的收斂速度和估計精度有良好的改進效果,其在研究系統(tǒng)辨識、故障檢測診斷、船舶航天等方面都有廣泛的應用[10-12]。目前,基于多新息理論的研究成果包括多新息隨機梯度型辨識方法、多新息EKF的改進算法等[13]。本文選用多新息理論對遞推最小二乘算法和擴展卡爾曼濾波算法進行改進。
現(xiàn)有SOC估計方法中沒有考慮電池模型參數(shù)的動態(tài)變化,導致SOC的估計不夠精準,因此,本文采用多新息最小二乘(MILS)算法對鋰離子電池模型中的參數(shù)進行在線辨識,以進行電池模型的實時修正,同時將修正后電池模型采用多新息擴展卡爾曼濾波(Multi Innovation Extended Kalman Filter,MIEKF)算法進行SOC估計。
等效電路模型拋去了復雜的電化學內(nèi)部機理分析,利用電阻、電容、電感和電壓源等基本的電氣元件,通過將其組合來模擬鋰離子電池的充放電效應,能夠較為準確地描述電池的真實狀態(tài),因此被廣泛應用[14]。文獻[15]中介紹了各種等效電路模型,并對其優(yōu)缺點進行了分析。
綜合考慮參數(shù)辨識和SOC估計的精度,以及計算復雜度等,本文選擇了二階RC 等效電路模型。二階RC 等效電路模型如圖1 所示,圖中:電容Cb為理想電壓源;Vb為開路電壓;電阻R1和電容C1用于描述擴散現(xiàn)象;電阻R2和電容C2描述電池雙電層部分的荷電變化;Ri為歐姆內(nèi)阻;V1和V2為極化電壓;V為端電壓;I為端電流。
圖1 二階RC等效電路模型Fig.1 Second-order RC equivalent circuit model
根據(jù)基爾霍夫定律,可得電壓和電流之間的關(guān)系式:
將電池的荷電狀態(tài)、極化電壓V1和V2看作狀態(tài)變量,再進行離散化,可得系統(tǒng)的狀態(tài)空間方程:
式中,Z(k)為k時刻的荷電狀態(tài),τ1、τ2為時間常數(shù),τ1=R1C1,τ2=R2C2,Ca為電池容量,Δt為采樣時間,I(k)為k時刻系統(tǒng)輸入電流,η為庫倫效率。
開路電壓(OCV)是電池在靜態(tài)條件下的一個重要特征物理量,能夠很好地反映出電池真實的SOC,因此兩者之間存在著一種非線性的關(guān)系[16]。其中實驗對象為錳酸鋰電池單體,其主要參數(shù)如表1所示。
表1 實驗電池的主要參數(shù)Table 1 Main parameters of experimental battery
電池放電結(jié)束后,由于較長時間靜置后的端電壓值與電池的放電開路電壓值比較接近,因此將電池間斷放電,并且每次放電靜置后取其值,即可得到電池放電過程的OCV 實驗值。本文所用OCV 實驗值數(shù)據(jù)從北京理工大學先進儲能科學與應用課題組獲取,通過多項式擬合方法擬合OCV 實驗值得到SOC-OCV 曲線,以殘差平方和(Residual Sum of Squares,RSS)和擬合系數(shù)R2為評價指標,不同多項式的擬合結(jié)果統(tǒng)計如表2所示。綜合考慮擬合效果和計算量,選擇6階多項式對OCV實驗值進行擬合,擬合結(jié)果如圖2所示。擬合多項式為
表2 不同多項式的擬合結(jié)果Table 2 Fitting results of different polynomials
圖2 SOC-OCV曲線Fig.2 SOC-OCV curve
本文仿真實驗所用數(shù)據(jù)從北京理工大學先進儲能科學與應用課題組申請獲得,實驗對象為1.2節(jié)中介紹的錳酸鋰電池單體。錳酸鋰電池單體在動態(tài)應力測試(DST)工況下的端電壓與端電流如圖3所示。
圖3 DST工況數(shù)據(jù)Fig.3 DST working condition data
根據(jù)上述DST工況數(shù)據(jù),結(jié)合在線參數(shù)辨識和SOC 估計聯(lián)合的算法,實現(xiàn)了對電池模型參數(shù)Ri、R1、R2、C1、C2的辨識和SOC的估計。
由于傳統(tǒng)的RLS算法進行在線參數(shù)辨識過程中存在初始階段辨識精確度較低的問題,進而導致誤差累積,最終使得SOC估計精度變差。因此本文選用多新息最小二乘法進行在線參數(shù)辨識,其基本原理是在RLS算法基礎上加入多新息理論。
RLS辨識算法將采樣所得的當前時刻觀測值與遞推所獲得的當前時刻的估計值之間誤差作為修正值,通過對上一時刻估計值的修正,得出當前時刻的估計值。其對二階RC 等效電路模型的參數(shù)辨識具體步驟可見參考文獻[17]。
對式(1)進行拉普拉斯變換及離散化,可得RLS辨識算法的差分方程為
式中:β1、β2、β3、β4、β5為待定系數(shù);y(k) =Vb(k) -V(k),V(k)為當前時刻端電壓,Vb(k)為當前時刻開路電壓OCV。由式(6)可得參數(shù)向量θ和數(shù)據(jù)向量?(k)為
則RLS辨識算法的主要遞推運算公式為
式中:P(k- 1)為上一時刻的協(xié)方差矩陣;E為單位矩陣;為上一時刻所估計的參數(shù)值;K(k)為增益。
由此標量新息表達式為
基于多新息理論,將式(8)標量新息e(k)擴展為如下新息矩陣[18]:
式中,p為新息的長度。
擴展后的輸出向量和數(shù)據(jù)向量的矩陣分別為
則式(9)可化為
最終可以得出MILS算法的遞推運算過程如下:
式中,Ep為p階單位矩陣。
模型參數(shù)求解方程如下:
式中,T為采樣周期,τ1=R1C1,τ2=R2C2,β0=T2+(τ1+τ2)T+τ1τ2。
解耦式(12)方程組,可得出二階RC 等效電路模型的每個參數(shù)。
綜合以上推導得到MILS 算法實現(xiàn)具體步驟,如圖4所示。
圖4 MILS算法流程Fig.4 MILS Algorithm flow
利用上述的MILS 算法在1.3 節(jié)中介紹的DST工況下對鋰電池進行在線參數(shù)辨識,得到Ri、R1、R2參數(shù)辨識結(jié)果,如圖5所示,其中t為時間。
圖5 Ri、R1、R2參數(shù)辨識結(jié)果Fig.5 Ri、R1、R2 parameter identification results
從圖5(a)和5(b)可以看出,參數(shù)辨識25 min之前這一階段,電路模型的參數(shù)變化較為劇烈,這是由于選取的模型參數(shù)初值與真實值有偏差;25 min之后模型參數(shù)逐漸穩(wěn)定下來,Ri最終穩(wěn)定在1.2 mΩ左右,R1最終穩(wěn)定在0.13 mΩ左右。從圖5(c)可以看出,120 min 之前模型參數(shù)變化劇烈;120 min 之后模型參數(shù)逐漸穩(wěn)定下來,并且呈現(xiàn)緩慢上升趨勢,最終穩(wěn)定在1.4 mΩ 左右。R2上升值大于Ri和R1下降值之和,這說明鋰電池放電過程中總電阻是增加的。
C1、C2的參數(shù)辨識結(jié)果如圖6所示。
圖6 C1、C2參數(shù)辨識結(jié)果Fig.6 C1、C2 parameter identification results
由圖6可以看出,C1和C2的變化趨勢相同,在100 min之前先快速增加,100 min后逐漸趨于平緩,C1最終穩(wěn)定在2.3 kF 左右,C2最終穩(wěn)定在18 kF 左右。這說明鋰電池放電過程中總電容也是增加的。
標準卡爾曼濾波算法只能用于線性系統(tǒng),并不適用于非線性系統(tǒng),因此擴展卡爾曼濾波便是為了將算法應用于非線性系統(tǒng)而提出的。擴展卡爾曼濾波算法圍繞濾波值將非線性函數(shù)展開成泰勒級數(shù),并略去二階及以上項,得到一個近似的線性化模型,然后應用卡爾曼濾波完成狀態(tài)估計[19]。
依據(jù)式(2)、(3)建立的狀態(tài)方程,鋰離子電池的非線性系統(tǒng)描述為
式中:f(·)為非線性的過程方程;h(·)為非線性的測量方程;xk為k時刻的狀態(tài)變量,xk=[ZkV1,kV2,k]T;yk為k時刻系統(tǒng)測量值;wk-1為系統(tǒng)過程噪聲,其方差為Q;vk-1為系統(tǒng)觀測噪聲,其方差為R。
結(jié)合式(2)-(4)與式(13)建立的電池非線性系統(tǒng)方程及EKF算法的運算步驟如下[20]。
(1)初始化
設定狀態(tài)變量初始值x(0)與對應的誤差協(xié)方差矩陣初始值P(0)。
(2)狀態(tài)一步預測
其中,
(3)一步預測誤差協(xié)方差矩陣
(4)卡爾曼增益矩陣
其中,
式中,Kk為k時刻卡爾曼增益向量,Ck-1為k- 1時刻系統(tǒng)狀態(tài)空間模型的系數(shù)矩陣。
(5)后驗狀態(tài)估計值
式中,為k時刻狀態(tài)變量的估計值;yk-1為k- 1時刻電池的端電壓值;Dk-1為k- 1 時刻系統(tǒng)狀態(tài)空間模型的系數(shù),Dk-1=-Ri。
(6)后驗誤差協(xié)方差矩陣
(7)重復步驟(2)-(6),進行遞推濾波計算。
由于EKF算法在非線性函數(shù)泰勒級數(shù)展開時忽略了高階項,這就使得EKF估計產(chǎn)生了誤差。針對以上EKF算法的局限性,基于第2節(jié)中的多新息理論,將擴展卡爾曼濾波算法進行推廣,由原來的單新息擴展為多新息,不僅考慮了系統(tǒng)當前的測量值,而且充分考慮了之前時刻的有用信息,從而使得濾波精度和穩(wěn)定性得到改善。另外,在SOC估計算法中,新測量的數(shù)據(jù)能提高參數(shù)估計精度,而陳舊數(shù)據(jù)存在著累積干擾的問題。因此,為了調(diào)整新舊歷史數(shù)據(jù)的權(quán)重,引入遺忘因子在一定程度上減少了累積干擾問題,從而提高了SOC 估計精度[21]。將式(17)中增益向量Kk擴展為多新息增益矩陣:
遺忘因子矩陣定義為
式中,遺忘因子權(quán)值矩陣可以取為
其中,ζ為歷史數(shù)據(jù)遺忘率,滿足0 ≤ζ≤1。
將式(19)和(20)代入式(17),將原來卡爾曼濾波器的狀態(tài)估計方程擴展為
式中,E(p,k) 為式(17)中的新息向量yk-1-的新息矩陣,同式(9)求法。
綜合以上推導得到MIEKF算法如下。
步驟1初始化。采樣時間Δt= 1 s;設定狀態(tài)變量初始值x(0)與對應的誤差協(xié)方差矩陣初始值P(0),以及電池的相關(guān)初始參數(shù)、Z和Ca。
步驟2狀態(tài)一步預測:
步驟3一步預測誤差協(xié)方差矩陣:
步驟4卡爾曼增益矩陣:
步驟5多新息矩陣和多新息增益矩陣見式(9)和(19)
步驟6后驗狀態(tài)估計值:
步驟7后驗誤差協(xié)方差矩陣:
步驟8重復步驟2-7。
以上便是MIEKF 獲取最佳狀態(tài)估計的循環(huán)迭代過程。在利用MIEKF 算法求解荷電狀態(tài)的時候還需要代入電池模型參數(shù),一個迭代周期的具體過程如圖7所示。
圖7 SOC估算過程Fig.7 SOC estimation process
為驗證新算法的有效性,首先在相同條件下,分別使用MILS 算法和傳統(tǒng)的RLS 算法對鋰離子電池進行參數(shù)辨識,并將仿真的端電壓進行對比,以此來驗證MILS算法有更高的精度和魯棒性。其次,在上述參數(shù)辨識驗證的基礎上,選用精度和魯棒性更好的MILS 算法進行參數(shù)辨識,并將辨識的結(jié)果使用MIEKF 和EKF 兩種算法對鋰離子電池荷電狀態(tài)進行估計,同時將仿真SOC進行對比。
本節(jié)中所用的數(shù)據(jù)為1.3 節(jié)中介紹的DST 工況數(shù)據(jù),所用的對象為1.2節(jié)中介紹的錳酸鋰電池單體,電池模型采用的是二階RC等效電路模型。參數(shù)辨識算法的初始參數(shù)設置如下:誤差協(xié)方差矩陣初始值P(0) = diag(10-1,10-1,10-1,10-1,10-1),模型的參數(shù)向量θ(0) =(0.1,0.1,0.001,-0.01,-0.00)。SOC估計算法初始參數(shù)設置如下:估計誤差協(xié)方差矩陣初始值P(0) = diag(10-1,10-1,10-1),過程噪聲方差初始值Q(0) = diag(10-9,10-9,10-9),測量噪聲方差初始值R(0) = 0.01。
為對參數(shù)辨識和SOC估計方法的估計結(jié)果進行比較,按照式(23)、(24)、(25)比較估計值和真實值的誤差。
式中:X為真實值;?為估計值;ε為絕對誤差;εmax為最大絕對誤差;RRMSE為均方根誤差;N為總的采樣點數(shù)。
為了驗證本文使用的MILS 算法參數(shù)辨識結(jié)果的準確性,在Matlab 中搭建Simulink 仿真模型,然后分別對MILS 算法和傳統(tǒng)RLS 算法在線估計的端電壓進行對比。MILS 算法和RLS 算法在線估計端電壓與真實端電壓的對比如圖8所示,兩種算法與真實值的誤差對比如圖9所示。
圖8 端電壓估算對比Fig.8 Comparison of terminal voltage estimation
圖9 端電壓估計絕對誤差的對比Fig.9 Absolute error comparison of terminal voltage estimation
由圖9 可以看出,在整個參數(shù)辨識的過程中,尤其是150 min 之前的時間,MILS 算法端電壓估計絕對誤差遠遠小于RLS算法。兩種算法端電壓估計的εmax和RRMSE如表3所示。
表3 兩種算法端電壓的εmax和RRMSETable 3 εmax and RRMSE of terminal voltage for two algorithms
由表3可以看出,本文使用的MILS算法的最大絕對誤差εmax和均方根誤差RRMSE均遠遠小于RLS算法。RLS 算法端電壓估計的均方根誤差為1.9 mV,本文算法的均方根誤差為1.4 mV,可知本文算法估計精度提高了26.3%,從而驗證了MILS算法的魯棒性能良好。
實驗采用MILS算法進行參數(shù)識別,SOC真實值為電池充放電設備可測得的電池剩余容量與最大可用容量的比值,使用1.3節(jié)中介紹的DST 工況進行SOC 估算。將MIEKF 算法與EKF、AEKF 算法得出的SOC 與真實值進行誤差對比,驗證上述MILSMIEKF聯(lián)合算法的可行性,下文中簡稱為聯(lián)合算法。
設置SOC 初始值為1 時,MIEKF 算法與EKF、AEKF 算法的SOC 估計結(jié)果如圖10 所示,3 種算法的SOC估計誤差如圖11所示。
圖10 DST工況下的SOC估計結(jié)果Fig.10 SOC estimation result under DST conditions
圖11 DST工況下的SOC估計絕對誤差Fig.11 Absolute error of SOC estimation under DST conditions
從圖11可以看出,基于MIEKF算法的SOC估計絕對誤差要比EKF 和AEKF 算法更接近零值,說明SOC估計值更接近于真實值,并且收斂速度更快。
為更直觀地展示本文算法SOC 估計精度的提升,對MIEKF 算法和EKF、AEKF 算法的最大絕對誤差和均方根誤差進行對比,結(jié)果如表4所示。
表4 3種算法SOC估計的εmax和RRMSETable 4 εmax and RRMSE for SOC estimation using three algorithms
從表4可以看出,MIEKF 算法估計的最大絕對誤差εmax和均方根誤差RRMSE均小于EKF、AEKF 算法。MIEKF 算法SOC 估計的RRMSE為0.003 7,相比于EKF 算法的0.007 3,估計精度提高了49.31%;相比于AEKF 算法的0.005 2,估計精度提高了28.84%。從以上分析可以看出MIEKF 算法穩(wěn)定性能更好、精度更高。
為研究在初始SOC未知或錯誤的情況下,本文提出的聯(lián)合算法是否仍有效,本節(jié)預先設定準確初始SOC值和錯誤初始SOC值,準確初始SOC值設定為1,錯誤初始SOC值分別設置為0.9、0.8和0.6。將DST工況實驗數(shù)據(jù)代入仿真程序,所得到的SOC估計結(jié)果如圖12所示。
圖12 不同初值時的SOC仿真結(jié)果Fig.12 SOC simulation results with different initial values
從圖12 中可以看出,在SOC 初始值為0.9、0.8和0.6情況下,聯(lián)合算法均很快修正了估計值,約在30 s左右就追蹤到了理論值附近,從而說明了在初始SOC值未知或錯誤的情況下,本文提出的聯(lián)合算法仍然有效。
為了說明所提出算法估計的魯棒性,表5中給出不同SOC 初值下,算法收斂后的最大絕對誤差,以及全時間尺度(測試實驗開始至結(jié)束的整個時間段稱為全時間尺度)的最大絕對誤差。
表5 不同SOC初值的最大絕對誤差Table 5 Maximum absolute error of initial value of different SOC
由表5可以看出,全時間尺度的最大絕對誤差εmax與SOC 初始值有關(guān),初始SOC 值設置的誤差越大,最大絕對誤差則越大。這是因為全時間尺度的εmax通常出現(xiàn)在算法迭代初期,因此設定的SOC 初始值與實際值較為接近時全時間尺度εmax較小。另外,在不同的SOC 初始值下算法收斂后的εmax均為0.007 4。綜上所述,本文方法具有較好的魯棒性。
針對現(xiàn)有SOC 估計方法中的電池模型參數(shù)恒定,沒有考慮電池模型參數(shù)的動態(tài)變化而導致SOC的估計不夠精準,本文提出一種基于多新息最小二乘和多新息擴展卡爾曼濾波算法的SOC 估計方法。首先對鋰離子電池進行二階RC 等效電路建模,采用多新息最小二乘(MILS)算法對模型進行在線參數(shù)精準辨識,并基于所辨識參數(shù),使用多信息擴展卡爾曼濾波(MIEKF)算法對電池SOC進行估計,從而完成聯(lián)合算法對鋰離子電池的SOC在線估計。
為驗證聯(lián)合算法的估計效果,將MILS 和RLS用于在線參數(shù)辨識,并將MIEKF 和EKF、AEKF 分別用于電池SOC 估計。實驗發(fā)現(xiàn):對于模型參數(shù)辨識,MILS 算法辨識的最大絕對誤差εmax和均方根誤差RRMSE均遠小于RLS 算法,表明本文所提算法的辨識精度有較大提升;對于參數(shù)辨識后的SOC估計,MIEKF 算法估計的最大絕對誤差以及均方根誤差均遠遠小于EKF、AEKF 算法估計的相應誤差,因此本文采用的MIEKF 算法穩(wěn)定性能更好、精度更高;在給定SOC 初始值錯誤的情況下,新算法在電池開始工作后30 s左右就能夠收斂到真實值,故新算法具有較好的魯棒性。由此可知本文所提出的算法是一種精度高而且魯棒性好的有效估計方法。