劉興濤 , 李 坤 武 驥 ,何 耀,劉新天
(1.合肥工業(yè)大學(xué)車輛工程系,合肥 230009; 2.安徽省智能汽車工程實驗室,合肥 230009;3.合肥工業(yè)大學(xué)汽車工程技術(shù)研究院,合肥 230000)
鋰離子電池以其高比功率、高工作電壓、低污染、低自放電速率和長循環(huán)壽命等優(yōu)點,廣泛應(yīng)用于汽車、航天和船舶等領(lǐng)域。 而電池的SOC 預(yù)測對充放電管理和均衡管理等起著決定性作用,也會直接影響電池組的使用壽命與安全。 因此,對電池SOC的準(zhǔn)確估算成為研究的熱點。 已出現(xiàn)多種電池SOC估算方法。 (1)開路電壓法準(zhǔn)確、易行,但要求電池長時間的靜置,為實現(xiàn)實時估計,須對算法進行改進。 Chen 等[1]通過一種新的參數(shù)回溯策略,使用重建的OCV 曲線估算SOC,顯著提高了估算精度;陳宗海等[2]提出了一種面向工程應(yīng)用的SOC 估計方法,通過獲取端電壓與SOC 的關(guān)系,實現(xiàn)在非過充條件下的SOC 估計;Xiong 等[3]通過使用H∞濾波器在充放電中的電流電壓數(shù)據(jù)確定OCV-SOC 的關(guān)系,提高了SOC 估計的準(zhǔn)確性。 (2)安時積分法是應(yīng)用較為廣泛的方法。 其短時間內(nèi)估算精度高,但初始值誤差以及累計誤差會明顯降低估計精度。 劉東等[4]采用了一種改進的安時積分算法,綜合考慮溫度、充放電倍率和循環(huán)周期等對SOC 估計精度的影響,但只適用于電流變化不大的工況,實用性較差;劉新天等[5]通過Drift-Ah 積分法進行電池SOC 的估算,有效減少了漂移電流對精度的影響。 (3)數(shù)據(jù)驅(qū)動算法如神經(jīng)網(wǎng)絡(luò)法等,須采集大量數(shù)據(jù),對數(shù)據(jù)的依賴性很大,易陷入局部極小。 Guo 等[6]采用了一種在線神經(jīng)網(wǎng)絡(luò)的SOC 校正方法,可以實時跟蹤電池模型變化以及電池老化引起的可用容量變化;Guo 等[7]提出了一種基于模糊加權(quán)算法的SOC 估計方法,將GA-BP 神經(jīng)網(wǎng)絡(luò)與安時積分法相結(jié)合,但其估計精度易受樣本數(shù)據(jù)影響;Antón 等[8]利用電池參數(shù)的實驗數(shù)據(jù)集結(jié)合支持向量機算法,實現(xiàn)了SOC 實時在線更新;Bo 等[9]通過結(jié)合克隆選擇理論的BP 神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)了 SOC 高精度估計。(4)濾波算法如卡爾曼濾波法和粒子濾波等。 楊海學(xué)等[10]采用改進的無跡卡爾曼濾波算法動態(tài)估計電池SOC,有效降低了模型精度帶來的估計誤差;談發(fā)明等[11]提出了一種新型魯棒無跡卡爾曼濾波算法,能夠有效克服野值干擾,實現(xiàn)了SOC 估計精度和魯棒性的雙重提高;劉新天等[12]將基于Vmin模型的EKF 算法應(yīng)用于SOC 估計, 通過增強對噪聲的抗干擾能力,提高了估計精度;Wang 等[13]使用雙無跡卡爾曼濾波器估算電池SOC,提高了估計的精度和穩(wěn)定性,但運算復(fù)雜,實用性不強。 (5)非線性觀測器通過使用狀態(tài)方程作為輸出狀態(tài)建立模型,在下一階段將其分解為觀測方程,使其具有較強的魯棒性,但數(shù)學(xué)推導(dǎo)較為復(fù)雜。 Chen 等[14]利用基于等效電路模型的自適應(yīng)增益滑模觀測器來估計SOC。 在開關(guān)增益可調(diào)的情況下,很好地降低了抖振,達到了不錯的估計精度;Ma 等[15]通過考慮電池充放電切換過程中的遲滯效應(yīng)的滑模觀測器進行高精度SOC 估計,但模型未考慮電流噪聲對估計誤差的影響;皮釩等[16]采用了一種結(jié)合擴展粒子群算法的離散比例積分控制器來估計SOC,具有結(jié)構(gòu)簡單,估計精度高等優(yōu)點。
綜上所述,現(xiàn)階段所提的單一SOC 估計算法均有明顯缺陷,無法在估計精度、收斂速度、魯棒性、運算復(fù)雜度和模型泛化性等方面做到兼顧。 雖然以上文獻也通過改進算法來降低算法缺點的影響,但未綜合考慮算法在多個指標(biāo)上的表現(xiàn)。
鑒于此,本文中提出一種基于EKF 支持向量機(EKF-SVM)的組合算法,通過實現(xiàn)不同算法的優(yōu)勢互補,進一步提高SOC 的估計效果。 由于EKF 算法易受不規(guī)則噪聲影響,而SVM 算法魯棒性高,為結(jié)合兩者優(yōu)點,基于EKF 算法的電流、電壓、SOC 估計值等信息,利用SVM 算法的學(xué)習(xí)能力和復(fù)雜映射能力對EKF 算法估計誤差進行補償,修正估計偏差,在確??煽啃缘耐瑫r,進一步降低SOC 估計誤差。
綜合考慮電池組在實際應(yīng)用環(huán)境中的各種因素,建立相對簡單、準(zhǔn)確的電池模型是電池狀態(tài)估計的重要步驟。 其中,等效電路模型(equivalent circuit models,ECM)因為計算量小、參數(shù)易辨識、精度高等優(yōu)點而得到廣泛應(yīng)用。 研究表明,隨著RC 階數(shù)增加,模型計算復(fù)雜度明顯增加[17],而2 階以上模型的精度提高不明顯。 綜合考慮模型精確度和運算復(fù)雜度要求,本文最終選用如圖1 所示的2 階RC 等效電路模型作為電池仿真的研究對象。
圖1 中RP和CP表示電池的極化電阻和極化電容,Rd和Cd表示電池的擴散電阻和擴散電容,Ut表示電池的端電壓。 電池的電流電壓特性可表示為
SOC 的計算采用如下安時積分的定義:
式中:s(t)為t時刻的SOC 值;s(0)為初始時刻SOC值;QN為電池標(biāo)稱容量;η為庫倫效率,常取η=1;I(t)為放電電流。 結(jié)合式(1)和式(2)以及相關(guān)電路知識可由所建模型得到以下狀態(tài)方程:
式中:τp和τd為時間常數(shù);τp=RpCp;τd=RdCd。
式(1)中UOCV的值通常表示為SOC 的單調(diào)函數(shù)形式,即UOCV=f(SOC)。 通過小電流工況數(shù)據(jù),即以C/20 小電流充放電,通過每變化10%的SOC 后靜置得到的端電壓近似表示開路電壓,可將UOCV近似表示為SOC 的七次多項式:
模型參數(shù)的精確辨識有助于提高SOC 估計精度,而基于自適應(yīng)濾波理論發(fā)展而來的帶遺傳因子的遞歸最小二乘法[18]是常用的模型參數(shù)辨識方法。其基本思想是:本次估計量=上次估計量+補償值,對電池模型參數(shù)進行估計時,通過觀察電池狀態(tài)觀測值的誤差,自適應(yīng)調(diào)整模型參數(shù),降低了運算量和運算復(fù)雜度,便于實現(xiàn)對參數(shù)的在線辨識。 減少舊數(shù)據(jù)的信息量可以實現(xiàn)更好地跟蹤系統(tǒng)動態(tài)工作狀態(tài),因此置入遺忘因子λ=0.99,提高估計精度。 算法步驟如下。
(2)計算下一時刻增益K(k+1)
(3)計算下一時刻的P(k+1)
(4)計算下一時刻的狀態(tài)估計值θ^(k+1)
式中:K(k+1)為遞歸最小二乘增益矩陣;P(k)為協(xié)方差矩陣;I為單位矩陣;φ(k+1)為量測矩陣;為參數(shù)估計矩陣;e(k) 為觀測輸出誤差。 循環(huán)步驟(2) ~ (4),計算,從而得到實時模型參數(shù)。
對于非線性系統(tǒng)的濾波問題,常用方法是EKF算法,核心思想是利用泰勒公式對系統(tǒng)進行線性化。
結(jié)合式(1)和式(4),由所建等效電路模型可知系統(tǒng)狀態(tài)空間方程為
式中:x(k)= [s(k),Up,Ud(k)]T;y(k)為端電壓Ut;u(k)為I(k);w(k)為過程噪聲;v(k)為量測噪聲[19]。 EKF 算法的 SOC 估計步驟如下。
(1)初始化:k=0,初始狀態(tài)向量和初始偏差,即x(0)= [s(0),0,0]和P0。
(2)估計過程:k=1,2,3,…,噪聲協(xié)方差矩陣為Q,觀測協(xié)方差矩陣為R。
第1 步,時間更新。
狀態(tài)先驗估計:
計算誤差協(xié)方差:
第2 步,量測更新。
量測誤差更新:
更新增益系數(shù):
狀態(tài)更新:
更新誤差協(xié)方差:
第3 步,回到第1 步進行下一周期更新。
具體SOC 估計流程如圖2 所示。
圖2 EKF 算法流程圖
SVM[20-21]是分類與回歸中分析數(shù)據(jù)的監(jiān)督式學(xué)習(xí)算法。 其原理是通過構(gòu)造最優(yōu)劃分超平面,將問題轉(zhuǎn)化為線性可分問題。 其中,超平面的劃分可表示為
式中:w=(w1,w2,…,wd)為法向量;b為位移項。
為使超平面間距最大,即求解下式:
基于SVM 的回歸預(yù)測[22],其目的為給定樣本數(shù)據(jù)D={(x1,y1),(x2,y2),…,(xm,ym)},f(x)與y盡可能接近。 支持向量回歸( support vector regression,SVR)的核心思想是假設(shè)僅當(dāng)f(x)與y之間的絕對差值大于∈時才計算為損失。 于是,SVR問題可化為
式中:C為正則化常數(shù);l∈為不敏感損失函數(shù)。 引入松弛變量ξi和,可將上式寫為
為求其最小值,通過引入Lagrange 乘子μi≥0,≥0,ai≥0,≥0,可得 SVR 對偶問題:
上述過程須滿足KKT 條件,即要求:
由此可知,SVR 的解表示為
則回歸估算函數(shù)可表示為
式中:κ(x,xi)=φ(x)Tφ(x)為核函數(shù)。 在 SOC 估計中,根據(jù)電流、電壓與SOC 的關(guān)系特點,選擇了線性核函數(shù)。
EKF 算法中的線性化處理必將造成誤差,估計效果也易受不規(guī)則噪聲的影響。 而SVM 算法基于樣本數(shù)據(jù)結(jié)構(gòu)風(fēng)險最優(yōu)原則,有效避免了過擬合和維數(shù)災(zāi)難問題,在兼顧逼近數(shù)據(jù)的準(zhǔn)確性和近似函數(shù)復(fù)雜度的同時,具有最佳的泛化能力。 SVM 算法只對關(guān)鍵數(shù)據(jù)敏感的特點也決定了其擁有較高的魯棒性。
為彌補噪聲和模型精度對估計效果的影響,發(fā)揮兩種算法的優(yōu)點,通過EKF 算法提供SVM 算法所需樣本數(shù)據(jù),利用SVM 的回歸預(yù)測能力對EKF 估計值進行優(yōu)化和補償,進一步修正SOC 估計誤差,達到提高估計精度的效果。 組合算法流程如圖3所示。
訓(xùn)練SVM 模型,須選取合適的輸入和輸出。 考慮電池作為非線性系統(tǒng)的特點,在電池工作過程中,動態(tài)變化的電流、電壓是描述電池動態(tài)特性不可或缺的因素,且考慮到時變系統(tǒng)的特點,建立四輸入一輸出的 SVM 模型。 其中輸入量為k時刻的電流I(k)、 端電壓y(k)、EKF 算法的端電壓誤差y(k)-y^(k)、EKF 算法的 SOC 估計值s^(k),輸出量為 EKF算法估計誤差s(k)-s^(k)。 為保證所建模型的合理性,將EKF 算法所得數(shù)據(jù)中部分數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),建立SVM 訓(xùn)練模型。 設(shè)定迭代次數(shù)和累計誤差作為模型訓(xùn)練完成的標(biāo)志,之后利用驗證數(shù)據(jù)驗證模型的有效性。 訓(xùn)練得到的SVM 模型,通過模型輸出的誤差補償對EKF 算法得到的初次估計值起到有效的修正作用,兩者相加得到SOC 的二次估計值,從而在兼顧算法泛化性和魯棒性的同時,實現(xiàn)SOC 更高精度的估計,充分發(fā)揮了組合算法的優(yōu)越性。
圖3 EKF-SVM 算法流程圖
實驗選用標(biāo)稱容量為2 A·h 的鋰離子電池作為測試對象。 為盡量接近實際使用情況,實現(xiàn)電池狀態(tài)的精確估計,實驗所選數(shù)據(jù)來自馬里蘭大學(xué)電池動態(tài)應(yīng)力測試(dynamic stress test, DST)數(shù)據(jù)[23]。為避免電池過充過放,DST 工況設(shè)定為從80%到10%的SOC,在室溫25 ℃下,采樣周期為1 s。 按照模擬工況對電池進行放電實驗,電流變化如圖4 所示。 其中,放電電流為正,充電電流為負,記錄電池對應(yīng)時刻的端電壓和SOC 值。 由EKF 算法得到的仿真結(jié)果如圖5 所示。
圖4 DST 工況電流
圖5 端電壓與SOC 估計誤差圖
由圖5 可知,通過EKF 算法,端電壓估計值在整個充放電工況中有較好的收斂性,最大誤差小于0.04 V,具有較高精度,驗證了所建2 階RC 模型的準(zhǔn)確性。 EKF 算法的SOC 估計值可以較好地跟蹤真實值。 雖然對實際不規(guī)則噪聲的抑制能力有限,導(dǎo)致誤差有不斷增大的趨勢,但仍然保持最大誤差在1.5%以內(nèi),滿足驗證工況對SOC 估計精度的要求,表明EKF 算法對電池動態(tài)特性的適應(yīng)性較好??紤]所建SVM 模型要求能夠兼顧體現(xiàn)工況數(shù)據(jù)動態(tài)性以及估計精度的穩(wěn)定性,選用EKF 算法得到的DST 工況數(shù)據(jù)訓(xùn)練得到SVM 模型。 其中訓(xùn)練數(shù)據(jù)與驗證數(shù)據(jù)按照7∶3 的比例,隨機選取訓(xùn)練數(shù)據(jù)建立SVM 模型。 圖6 為所建模型驗證30%樣本數(shù)據(jù)的結(jié)果。
圖6 DST 數(shù)據(jù)驗證結(jié)果
由圖6 可知,相比于EKF 算法得到的SOC 估計的峰值誤差為1.5%左右,通過訓(xùn)練完成的SVM 模型可以準(zhǔn)確辨識SOC 的誤差補償值,SOC 二次估計峰值誤差僅為0.3%左右,大大降低了估計誤差,充分驗證了所建模型的有效性。
本文所提算法需要在電池實際工作中進行SOC估計,因此須考慮算法在不同工況下均具有良好的適應(yīng)性。 為盡量模擬實際工況,選取馬里蘭大學(xué)電池數(shù)據(jù)中的聯(lián)邦城市駕駛工況(the federal urban driving schedule, FUDS)、激烈駕駛工況(US06 supplemental FTP driving schedule, US06)以及北京動態(tài)應(yīng)力測試工況(Beijing dynamic stress test, BJDST)3種循環(huán)工況作為測試工況,分別驗證模型在不同工況下的估計效果和泛化性,結(jié)果如圖7~圖9 所示。
圖7 FUDS 數(shù)據(jù)驗證結(jié)果
圖8 US06 數(shù)據(jù)驗證結(jié)果
圖9 BJDST 數(shù)據(jù)驗證結(jié)果
為驗證算法的優(yōu)越性,選擇廣泛使用的BP 神經(jīng)網(wǎng)絡(luò)作為對比,通過EKF 算法所得數(shù)據(jù)建立四輸入一輸出的BP 神經(jīng)網(wǎng)絡(luò)模型,數(shù)據(jù)處理方法與EKF-SVM 算法相同,對比 EKF 算法、EKF-BP 算法和EKF-SVM 算法共3 種算法的SOC 估計效果。 由于BP 算法理論上存在局部最優(yōu)解問題,在實際運行中發(fā)現(xiàn)由隨機選取的訓(xùn)練數(shù)據(jù)所建BP 模型在估計效果上差異較大,為減少個別數(shù)據(jù)的影響,選取EKF-BP 算法的10 次估計誤差的平均值作為對比,SOC 誤差結(jié)果如表1~表3 所示。
表1 EKF 算法估計誤差
表2 EKF-BP 算法估計誤差
表3 EKF-SVM 算法估計誤差
結(jié)合圖7 ~圖9 和表1 ~表3 中的均方根誤差(root mean squard error, RMSE) 和平均絕對誤差(mean absolute error, MAE)可知:EKF 算法由于受噪聲影響較大,在不同工況下的估計效果差異較大,而EKF-BP 算法和EKF-SVM 算法均有良好的回歸預(yù)測能力,能在EKF 算法的誤差基礎(chǔ)上有效地修正誤差,將各驗證工況下0.7%~1.4%的平均絕對誤差降低至0.5%以下。 兩種算法除去在US06 工況數(shù)據(jù)中由于開始收斂過程導(dǎo)致的最大誤差(maximum error,ME)較大外,其余工況下分別有效地將最大誤差降低到2%和1%左右。 相比EKF 算法,EKF-SVM算法在不同驗證工況下,誤差指標(biāo)均有明顯改善,誤差波動幅度更小,充分表明了組合算法具有優(yōu)秀的泛化性和魯棒性,有效提高了SOC 估計效果。 而EKF-BP 算法由于BP 算法存在局部最優(yōu)解問題,在驗證FUDS 工況數(shù)據(jù)時出現(xiàn)了較大估計誤差,從而表明該算法魯棒性較差。
實驗結(jié)果表明,EKF 算法濾波效果較好但估算精度受不規(guī)則噪聲影響較大,泛化能力較弱。 作為基于結(jié)構(gòu)風(fēng)險最優(yōu)原則的學(xué)習(xí)算法,SVM 在回歸預(yù)測能力、泛化性和魯棒性方面具有優(yōu)勢,但需要足夠的樣本數(shù)據(jù)支持。 本文中提出的EKF-SVM 組合算法,通過EKF 算法數(shù)據(jù)訓(xùn)練SVM 模型,利用SVM 算法彌補EKF 算法缺點,實現(xiàn)了兩種算法的優(yōu)勢互補,在兼顧算法泛化性和魯棒性的同時,有效地提高了估計精度。
針對單一算法在SOC 估計中無法兼顧多項指標(biāo)效果的問題,提出了基于EKF-SVM 的組合算法。該組合算法克服了EKF 算法對電池模型精度依賴性強、濾波容易發(fā)散的問題,綜合了濾波算法和學(xué)習(xí)算法的優(yōu)勢,利用相關(guān)濾波數(shù)據(jù)建立SVM 模型的誤差補償,進一步優(yōu)化EKF 算法。 不同工況數(shù)據(jù)的仿真結(jié)果表明,對比 EKF 算法和EKF-BP 算法,所提EKF-SVM 算法可以實現(xiàn)電池SOC 的準(zhǔn)確實時估計,RMSE 最大為0.5%,最大估計誤差小于1%,全面提高了SOC 估計的泛化性、魯棒性和估計精度。