蘇 航,高懷斌,李爭光,李洪峻,劉劍飛,佐曉波,紀(jì)林林
(1西安科技大學(xué)機(jī)械工程學(xué)院,陜西西安 710054;2中國人民解放軍 32181部隊(duì),陜西西安 710032)
目前,鋰離子電池以其比能量高、體積小等優(yōu)點(diǎn)被廣泛應(yīng)用于電動汽車動力電池領(lǐng)域。動力電池作為電動汽車的動力來源,對汽車動力和安全性起著至關(guān)重要的作用,是制約電動汽車發(fā)展的主要因素[1]。電池管理系統(tǒng)作為動力電池的核心技術(shù)之一,能夠?qū)崟r地監(jiān)測管控動力電池的工作狀態(tài),防止其出現(xiàn)過充、過放的現(xiàn)象,并確保其工作在合理的溫度區(qū)間內(nèi),使動力電池發(fā)揮出最大效能[2]。SOC作為電池管理系統(tǒng)的關(guān)鍵狀態(tài)參數(shù),不僅反映了電動汽車剩余續(xù)駛里程,還能夠?yàn)槠渌麪顟B(tài)參數(shù)提供數(shù)據(jù)支持。在實(shí)際應(yīng)用中,由于動力電池很強(qiáng)的非線性特征(電池內(nèi)部參數(shù)受溫度、內(nèi)阻和循環(huán)次數(shù)等諸多因素的影響且隨著這些因素的改變呈現(xiàn)出非線性變化趨勢)和工作環(huán)境的復(fù)雜性使得精確估計SOC成為了難點(diǎn)。
常用的SOC 估計方法有開路電壓法、安時積分法、基于模型的方法以及基于數(shù)據(jù)驅(qū)動的方法[3]。開路電壓法簡單易行,但需要對電池進(jìn)行長時間靜置處理以獲得穩(wěn)定的開路電壓值,難以適用于汽車實(shí)際運(yùn)行工況,一般用于實(shí)驗(yàn)室研究[4]。安時積分法計算簡便,應(yīng)用較為廣泛,但對初始值和傳感器精確度要求較高,且存在誤差累積等問題[5]?;跀?shù)據(jù)驅(qū)動的方法通過電池和電壓等歷史數(shù)據(jù)進(jìn)行充分訓(xùn)練學(xué)習(xí)后建立電流、電壓和SOC 的映射關(guān)系[6],其估計的精確性依賴于訓(xùn)練數(shù)據(jù)和訓(xùn)練方法,在實(shí)際中應(yīng)用較少?;谀P偷姆椒ㄖ饕獞?yīng)用的是卡爾曼濾波類算法。Li 等[7]采用擴(kuò)展卡爾曼濾波算法(EKF)進(jìn)行SOC估計,EKF對非線性函數(shù)采用泰勒展開后只保留一階項(xiàng)的方式來達(dá)到線性化的目的,會產(chǎn)生截斷誤差。魏孟等[8]將高斯過程回歸和無跡卡爾曼濾波算法(UKF)相結(jié)合用來估計電池SOC,相較于EKF 估計精度有所提高。Peng 等[9]將模糊控制器引入容積卡爾曼濾波算法(CKF)中以修正其增益矩陣,降低模型誤差對SOC 估計精度的影響,但其系統(tǒng)噪聲被看作是恒定的,這可能會導(dǎo)致濾波發(fā)散,同時沒有考慮不確定性噪聲對參數(shù)辨識的影響。
針對上述問題,本文采用偏差補(bǔ)償最小二乘法(BCRLS)進(jìn)行在線參數(shù)辨識,以減小由噪聲引起的估計誤差。辨識完成后采用自適應(yīng)容積卡爾曼濾波算法(ACKF)估算電池SOC,ACKF 能夠?qū)ο到y(tǒng)和過程噪聲進(jìn)行實(shí)時修正從而提高SOC 估計精度。同時,利用奇異值分解的方法代替Cholesky分解,提高了數(shù)值計算的穩(wěn)定性。最后將兩種算法相結(jié)合,實(shí)現(xiàn)了模型參數(shù)和SOC的聯(lián)合估計。
目前,常用的等效電路模型有Rint模型、戴維南模型、二階RC 模型和PNGV 模型等[10]。電池模型的合理選取是實(shí)現(xiàn)SOC 精確估計的前提,綜合考量模型精確度和計算的復(fù)雜度后,本文選用如圖1所示的二階RC等效電路模型[11]。
圖1 二階RC等效電路模型Fig.1 Second-order RC equivalent circuit model
基于基爾霍夫電壓和電流定律可得模型的狀態(tài)方程
式中,Uoc為電池開路電壓;U為電池端電壓;U1、U2為極化電壓;R0為電池歐姆內(nèi)阻;R1、R2和C1、C2分別為極化內(nèi)阻和極化電容。
在電動汽車運(yùn)行中,電池的工作環(huán)境較為復(fù)雜,其內(nèi)部參數(shù)也在時刻發(fā)生變化,離線辨識的參數(shù)不能夠?qū)崟r更新,將導(dǎo)致SOC 估計精度出現(xiàn)較大誤差。在線參數(shù)辨識基于當(dāng)前時刻采集的電流電壓信息和上一時刻的狀態(tài)估計值來實(shí)時更新模型參數(shù),能夠提高動力電池SOC估算精度[12]。
由模型空間狀態(tài)方程(1)可得頻域下狀態(tài)方程
令E(s)=Uoc(s)-U(s),可得系統(tǒng)傳遞函數(shù)
對式(3)進(jìn)行雙線性變換
式中,k1、k2、k3、k4、k5為包含電池模型參數(shù)的常數(shù)。
整理式(5),可得離散化后的標(biāo)準(zhǔn)最小二乘法形式
將θ(k)作為待辨識參數(shù),利用上述公式反推即可得到電池模型的各個參數(shù)。
常用的在線參數(shù)辨識方法主要以遞推最小二乘法(FFRLS)為主。但在電動汽車運(yùn)行過程中,電池電流、電壓的采集常伴隨有不確定性噪聲信號,這會導(dǎo)致FFRLS 的辨識結(jié)果出現(xiàn)有偏現(xiàn)象。針對此問題,本文在FFRLS 的基礎(chǔ)上添加偏差補(bǔ)償項(xiàng),采用BCRLS 進(jìn)行在線參數(shù)辨識以減弱不確定性噪聲帶來的影響[13],其計算過程如下。
計算算法增益矩陣
計算估計誤差
參數(shù)估計
計算誤差準(zhǔn)則值
更新噪聲方差
其中矩陣D為
更新協(xié)方差矩陣
進(jìn)行偏差補(bǔ)償后的參數(shù)估計值
以U1、U2和SOC為狀態(tài)向量,Ik為輸入,端電壓Uk為輸出,由電池模型狀態(tài)方程和安時積分法可得到適用于容積卡爾曼濾波算法的狀態(tài)方程,如下
式中,SOCk表示k時刻的電池荷電狀態(tài);T為采樣時間;Cn為電池的額定容量;Uoc,k(SOC)表示由k時刻SOC值求得的Uoc值。
EKF算法通過對非線性函數(shù)進(jìn)行泰勒級數(shù)展開使之線性化,舍棄高階項(xiàng)的同時帶來了截斷誤差。UKF 算法利用無跡變換產(chǎn)生的Sigma 點(diǎn)的高斯密度來近似狀態(tài)方程的概率密度函數(shù),其估計精度能達(dá)到三階泰勒展開精度[14]。CKF 算法基于球面-徑向容積準(zhǔn)則,相較于UKF 有著更為嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)理論作支撐,且采樣點(diǎn)數(shù)目較少,計算量小,濾波精度更高[15]。但在算法迭代過程中,由于計算機(jī)的截斷誤差等因素會使得協(xié)方差矩陣失去正定性從而導(dǎo)致Cholesky 分解無法進(jìn)行。因此,本文采用奇異值分解的方法代替Cholesky 分解,以提高數(shù)值計算的穩(wěn)定性[16]。
基于奇異值分解的容積卡爾曼濾波算法估計SOC的步驟如下。
(1)點(diǎn)集和權(quán)值計算
式中,i=1, 2, …,m。m為容積點(diǎn)個數(shù),m=2n,其中n為狀態(tài)向量維數(shù)。Ai表示矩陣A的第i列,A=[In×n,-In×n]。本文n=3,則
(2)狀態(tài)更新
對CKF算法的協(xié)方差矩陣Pk-1進(jìn)行奇異值分解
式中,U和V分別為P的左、右奇異向量,S=diag(s1,s2???st),為矩陣P的奇異值。
通過狀態(tài)方程傳播后的容積點(diǎn)
狀態(tài)預(yù)測
協(xié)方差預(yù)測
(3)量測更新
對Pxx進(jìn)行奇異值分解
計算容積點(diǎn)
通過測量方程傳播后的容積點(diǎn)
量測預(yù)測
協(xié)方差預(yù)測
互協(xié)方差預(yù)測
(4)更新增益矩陣
(5)更新狀態(tài)向量
(6)更新狀態(tài)協(xié)方差矩陣
在標(biāo)準(zhǔn)的CKF 算法中,過程噪聲和量測噪聲均被看作是恒定值,而實(shí)際工程中,由于系統(tǒng)隨機(jī)干擾和電池的時變特性等因素會導(dǎo)致過程噪聲和測量噪聲發(fā)生變化,這種情況下CKF 算法的精度會相應(yīng)降低。因此,本文引入自適應(yīng)協(xié)方差匹配思想,即利用真實(shí)測得的電壓與模型輸出電壓的新息序列對過程噪聲和測量噪聲協(xié)方差進(jìn)行實(shí)時更新,以提高SOC的估計精度。
由開窗估計原理計算新息協(xié)方差矩陣
式中,M為開窗大小,ek為k時刻的系統(tǒng)信息。更新噪聲協(xié)方差
BCRLS在線辨識算法能夠?qū)崟r更新模型參數(shù),通過偏差補(bǔ)償?shù)姆绞接行Ы鉀Q不確定性噪聲對模型參數(shù)辨識的干擾,并將辨識得到的參數(shù)提供給ACKF 算法用以估計電池SOC。ACKF 算法完成SOC估計后將其估計值反饋給BCRLS算法用于實(shí)時修正開路電壓值,解決了在參數(shù)辨識時由于SOC值不準(zhǔn)確導(dǎo)致開路電壓計算誤差較大的問題,提高了模型參數(shù)辨識精度,從而進(jìn)一步提高SOC估計精度。BCRLS-ACKF 算法的流程圖如圖2所示。
圖2 BCRLS-ACKF算法流程圖Fig.2 Flow chart of BCRLS-ACKF algorithm
為了驗(yàn)證BCRLS-ACKF算法估計SOC的有效性和精確性,本文采用18650單體電池測試數(shù)據(jù)來進(jìn)行驗(yàn)證。為了降低電池本身對實(shí)驗(yàn)測試數(shù)據(jù)的影響,每次測試前將電池電量放空并靜置至端電壓達(dá)到穩(wěn)定值,再采用恒流恒壓的方式將電池充滿并靜置。靜置后進(jìn)行恒流放電,放電至電池容量為80%,放電完畢且充分靜置(電池內(nèi)部化學(xué)反應(yīng)完全結(jié)束)后再加載不同工況進(jìn)行測試。每個循環(huán)測試過程保持環(huán)境溫度恒定為25 ℃,并且忽略電池老化對實(shí)驗(yàn)測試結(jié)果產(chǎn)生的影響。
為了更好地模擬電動汽車實(shí)際行駛工況,本文選用DST 和BJDST 兩種工況來驗(yàn)證算法在不同工況估計SOC 的精確性。實(shí)驗(yàn)在恒溫25 ℃條件下(SOC 初始值為80%)進(jìn)行。圖3(a)、(b)分別為兩種不同工況下電池的測試電流曲線。
圖3 不同工況電流Fig.3 Current under different working conditions
本文分別采用FFRLS和BCRLS算法來進(jìn)行在線參數(shù)辨識,辨識得到的具體參數(shù)如表1所示。
表1 不同算法的參數(shù)辨識結(jié)果Table 1 Parameter identification results of different algorithms
本文采用端電壓絕對誤差來表征兩種算法的精度,如圖4 所示??梢钥闯?,BCRLS 算法辨識得到的端電壓絕對誤差明顯小于FFRLS 算法。前者估計誤差在0.032 V 以內(nèi),后者估計誤差在0.02 V以內(nèi)。另外,在放電后期由于電池內(nèi)部化學(xué)反應(yīng)的不穩(wěn)定會使得誤差增大,但總體上BCRLS 算法能夠有效降低噪聲對參數(shù)辨識造成的影響。
圖4 在線參數(shù)辨識Fig.4 Online parameter identification
通常以SOC 估計值與真實(shí)值的絕對誤差來描述算法的精確性。本文在DST 和BJDST 工況下采用BCRLS-ACKF 算法進(jìn)行SOC 估計,結(jié)果如圖5所示。從圖5可知,不同工況下本文提出的基于奇異值分解的BCRLS-ACKF 算法的估計值能夠很好地跟隨真實(shí)值變化,可以實(shí)現(xiàn)SOC 的精確估計。從圖6 可知,算法的估計誤差始終控制在3.5%以內(nèi)。在DST 工況下最大絕對誤差為3.49%,平均絕對誤差為0.67%;BJDST 工況下最大絕對誤差為2.68%,平均絕對誤差為1.29%。能夠適用于汽車行駛工況下的SOC估計。
圖5 不同工況下SOC真實(shí)值與估計值對比Fig.5 Comparison of SOC real value and estimated value under different working conditions
圖6 不同工況下的絕對誤差Fig.6 Absolute error under different working conditions
由以上分析可知,當(dāng)SOC 初始值準(zhǔn)確時,在不同工況下BCRLS-ACKF算法均能夠滿足SOC估計精度要求。但在實(shí)際應(yīng)用中,準(zhǔn)確的SOC 初始值通常難以獲取。因此本文將SOC 初始值分別設(shè)置為90%和50%(真實(shí)值為80%)用于驗(yàn)證在SOC初始值不準(zhǔn)確條件下的估計精度,估計結(jié)果如圖7所示。從圖中可知,當(dāng)初始值設(shè)置為90%和50%時,在起始階段SOC 估計誤差較大,經(jīng)過短暫的時間間隔后均可以收斂到真實(shí)值附近且絕對誤差始終保持在4%以內(nèi)。另外,由于50%初始值偏離真實(shí)值較大,故與90%初始值相比其收斂時間略長。
圖7 初始值不精確時的估計結(jié)果Fig.7 Estimation results with inaccurate initial values
為了進(jìn)一步驗(yàn)證本文所提算法的估計精度,在DST 工況下分別采用不同的算法進(jìn)行SOC 估計,結(jié)果如圖8所示。從圖中可知,幾種算法均能較準(zhǔn)確地實(shí)現(xiàn)SOC 估計,其精度均在4%以內(nèi)。其中,BCRLS-CKF 算法相比FFRLS-CKF 算法有效降低了噪聲的影響,精度有所提高。BCRLS-ACKF 算法相比BCRLS-CKF 算法提高了噪聲的自適應(yīng)性,估計結(jié)果更優(yōu)。另外,與同屬近似非線性函數(shù)概率密度方法的UKF 算法形成的BCRLS-AUKF 算法相比,仍具有更高的估計精度。這充分說明了本文所提BCRLS-ACKF算法估計SOC的精確性。
圖8 不同算法估計結(jié)果對比Fig.8 Comparison of estimation results of different algorithms
本文采用最大絕對誤差(Max-AE)、平均絕對誤差(MAE)和均方根誤差(RMSE)三個指標(biāo)來對不同算法進(jìn)行對比分析,其結(jié)果如表2 所示??梢?,本文所提BCRLS-ACKF 算法的Max-AE 值比其他算法略有減小,為3.49%。MAE值有大幅降低,為0.65%。RMSE 值也均小于其他算法,為0.85%。由此可以說明本文所提算法具有較高的精度。
表2 不同算法的估計誤差Table 2 Estimation errors of different algorithms
鋰離子電池SOC估計是BMS最核心的功能之一,其估計精度同時取決于模型參數(shù)辨識和SOC估計算法二者的精度。本文基于二階RC 等效電路模型,采用BCRLS算法對模型參數(shù)進(jìn)行在線辨識,減弱了不確定性噪聲帶來的影響,提高了辨識精度。在估計算法方面,采用ACKF 算法估計SOC,實(shí)現(xiàn)了對過程噪聲和測量噪聲的實(shí)時更新,提高了估計精度。在算法迭代過程中,采用奇異值分解代替Cholesky 分解,提高了數(shù)值計算的穩(wěn)定性。最后將BCRLS 與ACKF 相結(jié)合實(shí)現(xiàn)了模型參數(shù)和SOC 的聯(lián)合估計。結(jié)果表明,本文提出的基于奇異值分解的BCRLS-ACKF 算法在不同工況和初始值不精確情況下均能精確地實(shí)現(xiàn)SOC 的估計,估計誤差在2%以內(nèi),可以滿足實(shí)際的應(yīng)用需求。