費 陳,趙 亮,王云恪,王樹泉
(武警士官學(xué)校 基礎(chǔ)部,杭州 311400)
鋰離子電池作為電動汽車的儲能設(shè)備,因其具有功率密度高、充電速度快、使用壽命長等特點而被廣泛運用。隨著電池壽命的減少,電池的整體性能下降,表現(xiàn)為容量衰減和內(nèi)阻增加[1-3],這限制了電池的推廣和使用。因此,準確地對電池SOH(健康狀態(tài))進行估算[4-5],有利于及時對電池進行維護,避免電池的過充電和過放電,延長電池壽命。
SOH定義為電池的當(dāng)前容量與額定容量之比,可用百分比形式表示。當(dāng)電池SOH 小于80%時,一般認定該電池已經(jīng)報廢,無法使用。SOH 的變化具體反映在內(nèi)阻、容量和其他一些指標的變化上,目前一般通過內(nèi)阻來對SOH進行監(jiān)測[6-7]。電阻法通過測量電池的內(nèi)阻來估算鋰離子電池的SOH,但是易受測量噪聲的影響且高度依賴于測量技術(shù),而且考慮的影響因素較少。也可以通過概率和統(tǒng)計方法來估算SOH[8-10],該方法將數(shù)學(xué)知識與經(jīng)驗知識相結(jié)合,構(gòu)建經(jīng)驗?zāi)P突虬虢?jīng)驗?zāi)P?,需要花費大量時間來獲取實驗數(shù)據(jù)。基于阻抗模型的方法通過繪制阻抗譜與SOH 之間的關(guān)系[11-12],根據(jù)測量的阻抗譜來估算SOH,這種方法需要全面了解電化學(xué)反應(yīng)機制且成本較高?;诘刃щ娐纺P偷姆椒ㄊ窃陔娀瘜W(xué)的基礎(chǔ)上,利用電化學(xué)元器件模擬電池內(nèi)部化學(xué)反應(yīng),然后確定模型參數(shù),根據(jù)這些模型參數(shù)來估算SOH[13-14],這種方法需要建立電路表達式,計算復(fù)雜。神經(jīng)網(wǎng)絡(luò)法通過模擬生物神經(jīng)網(wǎng)絡(luò)的行為特征來估算SOH[15-17],但實驗數(shù)據(jù)的收集和處理較困難。
針對上述方法存在的問題及局限性,本文提出一種基于XGBoost算法的鋰離子電池SOH估算方法。首先利用Matplotlib對鋰離子電池數(shù)據(jù)進行分析并提取特征量,通過平均電壓、電壓差、電流差和溫度差來描述電池的老化過程。然后,利用XGBoost算法建立估算模型,對SOH進行智能估算。該方法不僅可進行特征重要性分析,還可以保證SOH估算的精確性和可靠性,具有一定的實際應(yīng)用意義。
XGBoost算法的建模思路為[18-19]:給出一個泛化的目標函數(shù)定義,在每一輪迭代中找到一個合適的回歸樹去擬合上次預(yù)測的殘差,最小化目標函數(shù),使估算值逼近真實值,如圖1 所示。圖1中:Treek{X,θk}為第k棵樹的預(yù)測值;fk(X,θk)為真實值;θk為特征向量。
圖1 XGBoost算法原理
在本文中,定義數(shù)據(jù)([ΔU1,ΔT1,Uave1],SOH1),([ΔU2,ΔT2,Uave2],SOH2),…,([ΔUi,ΔTi,Uavei],SOHi),i=1,2,…,n,其中ΔUi、ΔTi、Uavei、SOHi分別為第i組數(shù)據(jù)對應(yīng)的電壓差、溫度差、平均電壓、SOH值,n為數(shù)據(jù)總組數(shù)。
迭代第t次的回歸樹ft(xi)定義如下:
式中:xi為第i個樣本;wq(x)為葉子權(quán)重,其下標q(x)表示樣本x對應(yīng)的葉子節(jié)點,使葉子節(jié)點與樣本一一對應(yīng);T為樹中葉子節(jié)點的個數(shù)。
樹的復(fù)雜度Ω(ft)定義為:
式中:wj為第j個葉子的權(quán)重;γ和λ為控制葉子權(quán)重的系數(shù)。
目標函數(shù)定義為:
將目標函數(shù)展開如下:
如圖2所示,XGBoost建模主要包括數(shù)據(jù)設(shè)置和XGBoost估算過程2個步驟。
圖2 模型構(gòu)建流程
步驟1:預(yù)處理數(shù)據(jù)與設(shè)置各種參數(shù),例如eta、max_dept、min_child_weight、seed、colsample_bytree、gamma等。
步驟2:建立訓(xùn)練集和測試集,并使用XGBoost 算法對SOH 預(yù)測模型進行訓(xùn)練。如果不是最佳參數(shù),則預(yù)測值與真實值的誤差較大,需要重置參數(shù),重復(fù)上述操作并調(diào)整參數(shù),直至獲得最佳參數(shù),建立最優(yōu)模型。
XGBoost算法構(gòu)建如表1所示。
表1 XGBoost算法構(gòu)建
圖3為不同健康狀態(tài)下,輸入特征量隨時間的變化曲線[20]。
圖3(a)為不同SOH下,鋰離子電池的電壓變化曲線。隨著SOH 不斷變化,平均電壓Uave也隨之變化。在相同時間間隔內(nèi),電壓差ΔU隨著SOH 的降低而增加。因此,平均電壓Uave和電壓差ΔU可以用來描述電池在放電過程中的老化特性。
圖3(b)為不同SOH下,鋰離子電池的溫度變化曲線。隨著SOH的降低,相同時間間隔內(nèi),溫度差ΔT不斷增大。因此,溫度差ΔT可以用來描述電池在放電過程中的老化特性。
圖3(c)為不同SOH 下,鋰離子電池的SOC(荷電狀態(tài))變化曲線。SOC隨著SOH的增加而增加,但是SOC一般不作為預(yù)測SOH的特征量,通常會根據(jù)SOH對SOC進行校正。
圖3(d)為不同SOH下,鋰離子電池的電流變化曲線。電流不隨SOH的變化而變化,因此電流不能用來描述電池在放電過程中的老化特性。
圖3 特征變化曲線
綜上所述,相同時間間隔內(nèi)的電壓差、溫度差、平均電壓可以用來描述電池在放電過程中的老化特性,故將電壓差、溫度差、平均電壓作為估算SOH的特征輸入。
基于XGBoost 算法的SOH 估算模型如圖4 所示,主要分為特征選擇、XGBoost模型建立、XGBoost估算3個部分。首先,從NASA數(shù)據(jù)集中提取特征輸入,將電壓差、溫度差和平均電壓作為特征輸入描述鋰離子電池的放電過程;然后將數(shù)據(jù)集分為訓(xùn)練集和測試集,訓(xùn)練集用于XGBoost模型建立和XGBoost 模型訓(xùn)練,測試集用于對鋰離子電池的SOH進行估算,檢驗XGBoost模型。
圖4 基于XGBoost算法的SOH估算模型
實驗中使用的數(shù)據(jù)來自NASA Ames 研究中心。在穩(wěn)態(tài)放電條件下,通過3 種不同的操作(充電、放電、阻抗)獲得4 組鋰離子電池(B0005、B0006、B0007、B0018)的數(shù)據(jù)集。
B0005 和B0006 的放電數(shù)據(jù)(電壓、電流、溫度、SOH)如圖5所示。
圖5 B0005和B0006放電數(shù)據(jù)
為了驗證XGBoost算法在SOH估算上的普遍性,將XGBoost 模型中的參數(shù)設(shè)置為最常見的參數(shù),學(xué)習(xí)率設(shè)置為0.2,最小葉子權(quán)重設(shè)置為1,樹的深度設(shè)置為3,實驗結(jié)果表明該模型收斂。
為了更進一步證明XGBoost算法在對SOH進行估算時具有普遍適應(yīng)性,而不是針對某一類特定數(shù)據(jù)集才具有更高的估算精度,隨機劃分訓(xùn)練集和測試集并進行兩組實驗:一組將B0006 和B0007 的放電數(shù)據(jù)作為訓(xùn)練集用于模型的訓(xùn)練,將B0005 的放電數(shù)據(jù)作為測試集用于測試模型的性能;另一組將B0005 和B0007 的放電數(shù)據(jù)作為訓(xùn)練集用于模型的訓(xùn)練,將B0006 的放電數(shù)據(jù)作為測試集用于測試模型的性能。
誤差評估指標選擇MAE(平均絕對誤差)、RMSPE(均方根百分比誤差)、ME(最大估算誤差),各指標計算公式為:
式中:eMAE、eRMSPE、eME分別為MAE、RMSPE、ME 的值;ypredict為預(yù)測值;ytrue為實際值;N為數(shù)據(jù)總數(shù)。
上述3項技術(shù)指標的值越低,說明模型擬合的結(jié)果越好。
為了驗證基于XGBoost 算法的鋰離子電池SOH 估算方法的準確性,將預(yù)測結(jié)果與LR(線性回歸)、RF(隨機森林)、SVM(支持向量機)、KNN(K 近鄰算法)這4 種回歸算法的預(yù)測結(jié)果進行比較。圖6、圖7 分別為數(shù)據(jù)集B0005 和B0006上的SOH預(yù)測結(jié)果。
圖6 B0005預(yù)測結(jié)果
圖6 的預(yù)測結(jié)果表明:在B0005 數(shù)據(jù)集上,LR、SVM、KNN的估算結(jié)果與真實值相差較大;在后期估算中XGBoost和RF的結(jié)果比較接近,但在前期估算中XGBoost的精度更高。
圖7 的預(yù)測結(jié)果表明:在B0006 數(shù)據(jù)集上,XGBoost的估算值比其他4種回歸算法更加接近真實值,估算精度更高。
各預(yù)測方法的殘差曲線對比如圖8所示。從圖8(a)可以看出:在B0005 數(shù)據(jù)集上,在后期估算中,XGBoost 和RF 的殘差曲線在0 附近波動;但在前期估算中,RF的殘差曲線波動范圍較大,所以RF在前期估算中并不準確。
從圖8(b)可以看出:在B0006 數(shù)據(jù)集上,其他4 種回歸算法所產(chǎn)生的殘差曲線波動范圍較大,而XGBoost的殘差曲線在0附近波動。
各方法的B0005 和B0006 電池數(shù)據(jù)集預(yù)測誤差指標對比如圖9所示??梢钥闯?,無論在數(shù)據(jù)集B0005還是數(shù)據(jù)集B0006上,XGBoost具有更高的估算精度,ME 控制在±0.4%左右。在3 個誤差指標中,XGBoost均優(yōu)于其他4種算法。
圖9 各預(yù)測方法的誤差指標對比
特征重要性分析如圖10 所示,貢獻最大是平均電壓,其次是溫度差,而電壓差最小。因此在估算過程中,可以根據(jù)特征重要性等級,增加或減少某個特征量比重,提高特征數(shù)據(jù)準確性,進一步提高估算精度。
圖10 特征重要性分析
本文提出一種基于XGBoost 算法的鋰離子電池SOH估算方法,研究成果如下:
1)通過數(shù)據(jù)分析對鋰離子電池數(shù)據(jù)進行分析并提取特征量,通過平均電壓、電壓差、溫度差來描述電池老化過程。
2)建立XGBoost模型,得到具有魯棒性的SOH估算值。與LR、RF、SVM、KNN 這4 種回歸算法相比,XGBoost 算法的預(yù)測精度最高,可以將ME 控制在±0.4%左右,并且具有較高的泛化能力和普遍適用性。
3)可根據(jù)特征重要性分析結(jié)果調(diào)整特征量比重,進一步提高估算精度。