顧乃朋,王亞平,楊駒豐,栗歡歡
(1.江蘇大學(xué)汽車工程研究院,江蘇鎮(zhèn)江 212013;2.江蘇大學(xué)材料科學(xué)與工程學(xué)院,江蘇鎮(zhèn)江 212013)
鋰離子電池因其循環(huán)壽命長、自放電率低、無記憶效應(yīng)等優(yōu)點,成為電動汽車的主要動力來源。要想保證鋰離子電池安全高效地使用,可靠的電池管理系統(tǒng)必不可少。電池的狀態(tài)估算是電池管理系統(tǒng)中重要的一環(huán),準(zhǔn)確的電池狀態(tài)估算可以為電動汽車整車的能量管理策略提供重要依據(jù)。因此,性能優(yōu)異的電池管理系統(tǒng)不僅需要對電池進(jìn)行電流、電壓以及溫度等狀態(tài)的監(jiān)測,還需要對電池荷電狀態(tài)(state of charge,SOC)和健康狀態(tài)(state of health,SOH)進(jìn)行準(zhǔn)確的估算,以保證電池始終工作在安全可靠的范圍內(nèi)。
由于電池的SOC與電壓、內(nèi)阻等因素之間呈現(xiàn)較強的非線性關(guān)系,因此需要通過建模來對電池的充放電特性進(jìn)行分析[1]。電池模型主要分為基于電化學(xué)模型[2]和基于等效電路模型[3]兩種,其中電化學(xué)模型通過幾組偏微分方程對電池內(nèi)部復(fù)雜的電化學(xué)反應(yīng)進(jìn)行建模,來描述電池內(nèi)部的反應(yīng)機理,因此該模型雖然能夠很精確地描述電池的內(nèi)特性,但是復(fù)雜度較高,難以應(yīng)用到實際。與之相反,等效電路模型從電池外特性出發(fā),通過電容電阻來模擬電池復(fù)雜的極化特性,因此復(fù)雜度較低,且經(jīng)過多年的發(fā)展,等效電路模型是應(yīng)用最為廣泛的模型。
僅僅通過建模仍然無法得到電池的實時SOC值,因此,許多學(xué)者將模型與狀態(tài)估計算法結(jié)合對電池進(jìn)行SOC估算??柭鼮V波算法是目前應(yīng)用最廣泛的算法。Xiong 等[4]在擴展卡爾曼濾波(EKF)算法的基礎(chǔ)上結(jié)合自適應(yīng)濾波算法,提出了自適應(yīng)擴展卡爾曼濾波(AEKF)算法,并對電池進(jìn)行SOC估算,解決了在實際運行中噪聲矩陣時變的問題。徐等[5]采用了自適應(yīng)平方根無跡卡爾曼(ASRUKF)算法進(jìn)行了鋰離子電池的SOC估算,通過對協(xié)方差矩陣平方根分解,解決了無跡卡爾曼(UKF)在迭代過程中由于計算機字節(jié)舍入誤差導(dǎo)致協(xié)方差矩陣出現(xiàn)非正定,從而使濾波發(fā)散的問題。吳等[6]引入了粒子濾波(PF)算法對UKF 進(jìn)行修正,結(jié)果表明該算法精度高于UKF 以及PF,最大誤差保持在2.1%以內(nèi)。
SOH指電池的健康狀態(tài),用來表示電池的衰退程度。通常用一些指標(biāo)如容量、內(nèi)阻等參數(shù)來表征電池的健康狀態(tài),估算方法主要有直接測量法、內(nèi)阻法、數(shù)據(jù)驅(qū)動法以及基于模型的方法[7]。其中,直接測量法和內(nèi)阻法需要通過離線實驗獲取電池的容量以及內(nèi)阻,因此難以實時獲取電池健康狀態(tài)。數(shù)據(jù)驅(qū)動法需要大量的樣本數(shù)據(jù)進(jìn)行訓(xùn)練,易受數(shù)據(jù)不確定性的影響,且運算量大仍是目前面臨的難題?;谀P偷姆椒軌蛲ㄟ^建模很好地反映電池的物理以及電化學(xué)特性,且無需大量的樣本數(shù)據(jù)也可以進(jìn)行預(yù)測,步驟較為簡單,主要分為兩步:模型參數(shù)獲取以及狀態(tài)預(yù)測。
SOC的定義為當(dāng)前剩余容量與最大可用容量之間的比值,而電池最大可用容量與電池的老化有著直接的聯(lián)系,隨著電池老化程度增加,最大可用容量會隨之減小。因此固定的最大可用容量值不能描述SOC與老化之間的關(guān)系,而SOC與老化狀態(tài)之間存在著一定的耦合關(guān)系,以一個確定的老化狀態(tài)去估算SOC,其實際意義不大。熊瑞[8]采用多時間尺度的雙卡爾曼濾波算法對電池進(jìn)行了SOC和容量的聯(lián)合估算,結(jié)果表明該方法可以對SOC以及容量值進(jìn)行精確的預(yù)測。
本文以三元鋰離子電池為研究目標(biāo),考慮到電池工作時環(huán)境的復(fù)雜性,采用參數(shù)在線辨識的方法對電池模型進(jìn)行參數(shù)辨識。在EKF 的基礎(chǔ)上,引入改進(jìn)的Sage-Husa 自適應(yīng)濾波算法以及多新息算法,并且創(chuàng)新性地使用兩組高斯方程來計算新息的權(quán)重,以此解決傳統(tǒng)多新息算法迭代過程中易出現(xiàn)過校正的問題。然后采用該方法對鋰離子電池進(jìn)行SOC估算,并在該方法的基礎(chǔ)上提出了一種改進(jìn)的雙卡爾曼濾波算法對電池的容量和SOC進(jìn)行實時的聯(lián)合估算。
綜合考慮模型的精度以及復(fù)雜度,選取二階等效電路模型作為研究對象,對電池進(jìn)行狀態(tài)估算研究,該模型通過兩組RC 環(huán)節(jié)特別考慮了電池內(nèi)部的極化特性,如圖1 所示。圖中:Uoc為電池的開路電壓;U和I分別為電池端電壓和電流,其中電流充電為正,放電為負(fù);R0為電池內(nèi)部的歐姆內(nèi)阻;R1和R2為極化內(nèi)阻;C1和C2為電池的極化電容。
圖1 鋰離子電池二階等效電路模型
根據(jù)基爾霍夫電壓定律,可以得到模型的狀態(tài)空間方程:
經(jīng)過離散化處理,可以得到模型的離散化形式:
式中:T為采樣時間;τ1=R1C1,τ2=R2C2,為電池的極化時間常數(shù);U1和U2分別為兩個RC環(huán)節(jié)的兩端電壓。
電池SOC可以通過安時積分表達(dá)式獲得:
同樣進(jìn)行離散化處理:
式中:SOCk為k時刻的SOC值;η為庫侖效率;Qmax為最大可用容量。
電池的開路電壓-荷電狀態(tài)(OCV-SOC)關(guān)系通過25 ℃下的混合脈沖特性(HPPC)實驗獲得,實驗步驟如下:
(1)將電池在25 ℃下靜置2 h 使電池內(nèi)部穩(wěn)定;
(2)以0.3C電流將電池恒流充電至4.2 V,再以4.2 V 將電池恒壓充電至截止電流為1/20C;
(3)將電池靜置2 h,獲得并記錄電池此時的開路電壓;以2C對電池放電10 s,靜置40 s,再以2C對電池充電10 s,靜置40 s;
(4)以0.3C對電池放電5%;
(5)重復(fù)步驟(3)~(4),直至電池放電至截止電壓2.5 V。
由于電池模型的參數(shù)隨著電池工作環(huán)境溫度以及電池自身老化的變化而變化,離線辨識不能適應(yīng)電池實際運行過程中復(fù)雜因素的影響,因此本文選取最小二乘法對模型進(jìn)行在線參數(shù)辨識。由于傳統(tǒng)最小二乘法在計算過程中,隨著運行數(shù)據(jù)重復(fù)性的增加,容易導(dǎo)致數(shù)據(jù)飽和,造成誤差的累積[9],因此本文選取變遺忘因子的遞推最小二乘法(VFFRLS)進(jìn)行參數(shù)辨識[10]。計算公式如下:
式中:θk-1為數(shù)據(jù)向量;yk為輸出量;λ為遺忘因子;σ為與λ相關(guān)的常數(shù)。
需要注意的是定遺忘因子不能很好地跟蹤電池工作過程中的時變特性。然而,變遺忘因子最小二乘法可以通過電池運行時參數(shù)的變化速率自適應(yīng)調(diào)整遺忘因子的大小。根據(jù)所建立的電池二階等效電路模型,對公式(1)進(jìn)行拉普拉斯變換:
得到傳遞函數(shù)如下:
式中:a1、a2、a3、a4、a5為與辨識參數(shù)相關(guān)的常數(shù)。
可以通過公式(7)和(8)推導(dǎo)得出差分方程:
公式(9)的矩陣形式為:
通過上述的推導(dǎo)過程可以得到模型的離散化形式。模型的參數(shù)可以用參數(shù)向量θ(k)表示。令z-1=,公式(8)可以表達(dá)為:
結(jié)合公式(7)和(11),可以得出:
卡爾曼濾波算法目前已被廣泛應(yīng)用于鋰離子狀態(tài)估算研究,該算法通過利用一組狀態(tài)方程,根據(jù)觀測量的輸出,對狀態(tài)量進(jìn)行最優(yōu)估計。對于鋰離子電池二階等效電路模型,以端電壓作為觀測量,從公式(2)可以看出,觀測方程是非線性的,因此需要用擴展卡爾曼濾波算法,將觀測方程用泰勒公式線性展開來進(jìn)行研究。
針對非線性問題,對于擴展卡爾曼濾波算法,首先有一組離散化的狀態(tài)空間方程:
將擴展卡爾曼濾波算法應(yīng)用于鋰離子電池SOC估算時,結(jié)合二階等效電路模型,令:
初始化噪聲協(xié)方差矩陣:R0,Q0
狀態(tài)更新:
新息值為端電壓觀測值與預(yù)測值之間的誤差,計算公式為:
卡爾曼濾波增益計算:
其中,
測量更新以及協(xié)方差矩陣更新:
盡管已經(jīng)建立了精確的電池數(shù)學(xué)模型,但是電池在實際運行過程中會不可避免地受到噪聲的干擾,也就是說觀測噪聲矩陣Rk以及過程噪聲矩陣Qk并非固定不變的。如果不考慮噪聲的影響,難免會造成濾波的發(fā)散。因此,為了保證算法的穩(wěn)定性,需要通過對觀測量新息值的提取,對Rk以及Qk進(jìn)行自適應(yīng)調(diào)整。本文引入Sage-Husa 自適應(yīng)濾波算法[11]對噪聲進(jìn)行實時修正,噪聲矩陣計算公式如下:
已經(jīng)有文獻(xiàn)指出[12],Rk和Qk同時更新會造成濾波發(fā)散的現(xiàn)象,然而狀態(tài)噪聲的取值變化主要依賴于模型的精度,因此過程噪聲Qk可以通過經(jīng)驗進(jìn)行取值。與之相反,觀測噪聲容易受到受到外部因素的影響,如電流電壓傳感器誤差、環(huán)境溫度變化等。因此,對觀測噪聲進(jìn)行自適應(yīng)更新更加具有現(xiàn)實意義,且能夠減少計算量。此外,文獻(xiàn)[9]同樣指出,觀測噪聲的計算公式存在減法運算,這就導(dǎo)致了在算法迭代過程中觀測噪聲會出現(xiàn)非正定的風(fēng)險,從而導(dǎo)致算法發(fā)散。為了保證觀測噪聲的正定性,本文采用有偏估計的方法,對噪聲進(jìn)行更新。改進(jìn)后的觀測噪聲計算公式如下:
Ding 等[13]最初引入了多新息算法來解決隨機梯度辨識算法中收斂能力較差的問題。算法將新息值從標(biāo)量形式擴展到向量形式,在算法的校正過程中考慮了新息變量的當(dāng)前值和先前值。
與傳統(tǒng)EKF 不同,多新息算法將單個新息值拓展成新息向量:
相應(yīng)地,卡爾曼濾波增益也要拓展成向量形式與新息向量進(jìn)行計算:
式中:L為新息窗口長度。
然而,在不同的迭代步驟,系統(tǒng)誤差呈現(xiàn)不同的分布。且由于電流電壓傳感器誤差的存在,額外引入一系列歷史新息會導(dǎo)致誤差的累積。由衰減因子卡爾曼得到啟發(fā),越靠近當(dāng)前時刻的測量數(shù)據(jù)越重要。Chen 等[14]從粒子濾波中得到啟發(fā),構(gòu)建了一種權(quán)重計算方法,該方法假設(shè)計算過程中隨著迭代次數(shù)的增加,觀測誤差值逐漸接近0,因此僅僅為觀測誤差值接近0 的新息賦予較大的權(quán)重。Han 等[15]將該加權(quán)多新息算法應(yīng)用到卡爾曼濾波中進(jìn)行電池的SOC估算,結(jié)果表明該算法精度比普通的EKF 提高了1.5%。然而,這種權(quán)重計算方法在應(yīng)用到卡爾曼濾波算法估算SOC時,所假設(shè)的條件是不成立的。因為在電池工作時,模型的端電壓輸出誤差即新息值分布是隨機且不規(guī)律的,而不是逐漸趨于0。從公式(17)中可以看出,在狀態(tài)更新階段如果觀測誤差值較大,新息被賦予很小的權(quán)重,會導(dǎo)致最后的估算結(jié)果接近公式(14)中的狀態(tài)預(yù)測值,即安時積分法計算出的SOC值,這樣雖然會比普通的EKF 估算精度高,但是會導(dǎo)致算法的魯棒性變差。而卡爾曼濾波這類閉環(huán)算法相比于安時積分的優(yōu)勢就是能抵抗在電池實際運行過程中的各種干擾,如初始SOC誤差。為解決這一問題,本文提出了一種更加合理的權(quán)重計算方法,即對距離當(dāng)前時刻較近以及觀測誤差值較大的新息賦予更大的權(quán)重,這樣既能削減歷史數(shù)據(jù)累積誤差的干擾,也能保證算法的魯棒性,計算公式如下:
式中:j=k-L+1:k;wt,j和we,j分別為時間相關(guān)的新息權(quán)重以及誤差相關(guān)的新息權(quán)值;σ1、σ2為標(biāo)準(zhǔn)差;ωj為最后歸一化的結(jié)果。
由于普通多新息算法中,各新息權(quán)重為1,權(quán)重和為向量長度L,為了更加合理地表達(dá)權(quán)重公式,在每一個ωj前乘以一個L。
加權(quán)后的新息向量為:
基于公式(20)~(22),改進(jìn)后的算法觀測更新可以表達(dá)為:
電池的使用過程中不可避免地會老化,從而導(dǎo)致電池容量的衰退,如果不及時更新實時容量,會導(dǎo)致SOC估算不準(zhǔn)確。因此,本文提出一種改進(jìn)的多時間尺度雙卡爾曼濾波算法對SOC和容量進(jìn)行聯(lián)合估算,其中,WMIAEKF 用于SOC估算,AEKF 用于容量估算。并且,AEKF 在估算容量的同時,估算出的容量也可實時修正由WMIAEKF 估算出的SOC值,為SOC計算提供準(zhǔn)確的實時額定容量。
考慮到容量與電池端電壓之間的聯(lián)系不大,而與電池的輸入電流有著直接的關(guān)系,因此選用安時積分法估算SOC的方程作為觀測方程[16],可以得到容量估算的狀態(tài)空間方程:
式中:θk為電池k時刻的額定容量Qmax,k。
與SOC的變化相比,容量的變化是緩慢的,需要經(jīng)過長時間的循環(huán),容量才會有明顯的變化。因此,本文引入兩個時間尺度的狀態(tài)空間方程來分別對SOC和容量進(jìn)行估算,即宏觀時間尺度和微觀時間尺度[17]。SOC每1 s 更新一次,容量每60 s更新一次。
結(jié)合上述推導(dǎo),改進(jìn)后的多時間尺度雙卡爾曼濾波算法,選取k和l分別作為宏觀和微觀時間尺度指標(biāo),Lz作為每個時間尺度分隔指標(biāo),有tk,0=tk-1,Lz,即一個宏觀時間尺度有Lz個微觀時間尺度。在此,為了區(qū)分新息窗口長度和時間尺度長度,令i為總的仿真時間,每當(dāng)微觀時間尺度l增加一次,i也會相應(yīng)的增加。改進(jìn)的算法框架圖如圖2 所示。
圖2 改進(jìn)多尺度雙卡爾曼濾波算法框架
多時間尺度的聯(lián)合估算狀態(tài)空間方程為:
結(jié)合電池模型,公式(26)可表達(dá)成:
結(jié)合上述公式推導(dǎo),改進(jìn)后的雙卡爾曼濾波算法步驟如下。
初始化:
微觀時間尺度AWMIEKF 狀態(tài)更新:
微觀時間尺度新息計算:
微觀時間尺度測量噪聲更新:
微觀時間尺度卡爾曼濾波增益計算:
微觀時間尺度新息向量、卡爾曼濾波增益向量以及各自權(quán)重計算:
加權(quán)后新息向量:
微觀時間尺度測量更新:
微觀時間尺度協(xié)方差矩陣更新:
宏觀時間尺度AEKF 更新容量:
其中:
為驗證所提方法,本文選取某款21700 三元鋰電池為研究對象,標(biāo)稱容量為3 Ah。為驗證容量估算的準(zhǔn)確性,本文主要針對老化電池來驗證所提聯(lián)合估算算法的性能,電池老化循環(huán)200 次之后的額定容量為2.8 Ah,在25 ℃室溫下進(jìn)行容量標(biāo)定、HPPC、NEDC 測試。
首先是OCV-SOC關(guān)系的獲取,通過HPPC 測試間歇放電獲取了OCV與SOC之間的關(guān)系,并且通過八階多項式擬合出兩者之間的關(guān)系。OCV-SOC關(guān)系如圖3 所示。
圖3 OCV-SOC關(guān)系圖
選取在NEDC 工況測得的電流電壓數(shù)據(jù),來驗證VFFRLS 參數(shù)辨識的精確性。從圖4 可以看到,整個NEDC 工況運行過程中電流的變化是復(fù)雜的,用此工況足以驗證所提參數(shù)辨識方法的準(zhǔn)確性。參數(shù)辨識的結(jié)果如圖5 所示,可以看出電池的各參數(shù)在電池運行過程中是不斷變化的。將參數(shù)辨識結(jié)果代入到電池模型中,模型的輸出電壓與真實電壓之間的誤差如圖6 所示,可以看出,除了放電后期電池內(nèi)部反應(yīng)不穩(wěn)定,VFFRLS 可以將電壓誤差控制在0.05 V 以內(nèi)。說明基于變遺忘因子最小二乘法的參數(shù)辨識方法可以為后面的SOC估算提供支撐。
圖4 NEDC工況電流測試曲線
圖5 參數(shù)辨識結(jié)果
圖6 參數(shù)辨識誤差
圖7 所示為不同算法(WMIAEKF、MIAEKF、AEKF)在NEDC 工況下的估算結(jié)果,表1 列出了各算法詳細(xì)的估算誤差。從圖中可以看出,MIAEKF 與AEKF 的最大誤差分別為3.12% 以及3%,而WMIAEKF 的表現(xiàn)最好,可以始終將最大誤差控制在1.15%之內(nèi)。由此可見,僅僅將傳統(tǒng)的卡爾曼濾波算法中的單新息拓展成新息向量并不能明顯地提高估算的精確度,而本文提出的加權(quán)多新息算法在整個估算過程中可以將平均誤差控制在0.52%。
表1 不同算法的SOC 估算誤差 %
圖7 不同算法的SOC估算結(jié)果
在實際使用過程中,由于電池本身的自放電效應(yīng),初始SOC往往會不準(zhǔn)確。為驗證所提改進(jìn)算法的魯棒性,分別設(shè)置了不同的初始SOC誤差來驗證算法的收斂能力。如圖8 所示,盡管存在0.8 的初始誤差,依然可以在20 s 內(nèi)將SOC收斂至真實值附近,說明所改進(jìn)的算法具有較強的魯棒性。此外,平均誤差也能控制在0.53%。說明所提的加權(quán)多新息算法在有著高魯棒性的同時,依舊具有良好的精確性。
圖8 在不同初始SOC誤差下的SOC估算結(jié)果
圖9 展示了改進(jìn)多時間尺度雙卡爾曼濾波算法的SOC與容量聯(lián)合估算結(jié)果,其中,圖9(a)和(b)展示了采用聯(lián)合估算以及單獨估算SOC之間的對比。需要注意的是,這里給定了錯誤的初始容量值,來驗證算法對錯誤容量的糾正能力。從圖中可以看出,估算初期,聯(lián)合估算與單獨估算SOC在估算效果上并沒有太大的區(qū)別,而到了中后期,受到錯誤初始容量值的影響,單獨估算SOC誤差逐漸增大,而聯(lián)合估算SOC可以迅速將容量修正到正確值,并且始終都能將SOC保持在真實值附近。
圖9 SOC與容量聯(lián)合估算結(jié)果
本文針對傳統(tǒng)多新息(MI)算法在迭代過程中易出現(xiàn)過校正而導(dǎo)致狀態(tài)估計誤差增大的問題,提出了一種加權(quán)多新息(WMI)算法。并將其運用到自適應(yīng)擴展卡爾曼濾波(AEKF)算法中,得到改進(jìn)后的自適應(yīng)加權(quán)多新息擴展卡爾曼濾波算法(WMIAEKF),并在NEDC工況下進(jìn)行算法的比較驗證。結(jié)果表明,與MIAEKF 以及AEKF 相比,所提算法表現(xiàn)最好,能夠?qū)AE 控制在0.52%,RMSE 控制在0.65%。此外,該算法對錯誤的初始SOC值也有很強的修正能力,即使在0.8 的初始SOC誤差情況下,也能在20 s 內(nèi)將估算SOC值修正到正確值附近。此外,基于所提的WMIAEKF 算法,提出了一種改進(jìn)的多尺度雙卡爾曼濾波算法用于SOC和容量的聯(lián)合估算,用AEKF估算出的容量來不斷修正WMIAEKF 估算的SOC。結(jié)果表明,在給定一個錯誤初始容量的情況下,聯(lián)合估算方法能始終將估算的SOC值保持在正確值附近。綜上所述,本文所提SOC以及容量聯(lián)合估算方法具有高穩(wěn)定性以及魯棒性。