張志冬,李云伍,李楊柳,梁新成
(1.西南大學 工程技術(shù)學院, 重慶 400715;2.西南大學 計算機信息與科學學院軟件學院, 重慶 400715)
電動汽車是目前使用清潔能源的主要交通工具。鋰電池具備性能穩(wěn)定、壽命長、能量密度高的良好特性,因此成為了電動汽車動力電池的首選[1]。荷電狀態(tài)(state of charge,SOC)作為電動汽車電池管理系統(tǒng)(battery management system,BMS)的核心參數(shù),對其精確估計可以避免電動汽車動力電池過充或虧電,從而延長使用壽命。因此,SOC的準確估計對電動汽車技術(shù)的進一步發(fā)展至關(guān)重要[2]。
劉湘東等[3]采用安時積分法和開路電壓法融合估計鋰電池SOC,該方法可以解決電池長時間靜置的問題,但難以消除累計誤差;雷肖等[4]提出一種徑向基函數(shù)神經(jīng)網(wǎng)絡方法估計SOC,可以解決SOC不能非線性估計的問題,但所用模型結(jié)構(gòu)過多且復雜;劉鵬等[5]提出遺忘遞推最小二乘法與自適應無跡卡爾曼濾波估計鋰電池SOC,但不能保證估計的準確性。不同于上述方法,基于數(shù)據(jù)驅(qū)動的鋰電池SOC估算方法只需要通過機器學習或深度學習就能得到SOC與放電數(shù)據(jù)的關(guān)系,具有較強的非線性處理能力,能有效避免出現(xiàn)累計誤差,提高估計精度。目前,基于數(shù)據(jù)驅(qū)動的鋰電池SOC估計方法大多是單個分類器,其存在泛化能力較弱、分類精度低等缺點。駱秀江等[6]采用支持向量機方法(support vector machine,SVM)對鋰電池的SOC進行估計,但建模過程中參數(shù)選取難度高,不利于實際應用。王爽等[7]將遺傳算法(genetic algorithms,GA)和BP神經(jīng)網(wǎng)絡(back propagation,BP)結(jié)合作為融合算法估計鋰電池的SOC,但該方法訓練模型建立難度大。Wang等[8]建立AFSA-BP神經(jīng)網(wǎng)絡模型,實現(xiàn)了鋰電池SOC的準確估計,但訓練時間長、網(wǎng)絡收斂速度慢。
為了提高鋰電池SOC估計的實時性和精確度,基于一種新型的LightGBM算法,并與隨機森林、支持向量機、線性回歸、神經(jīng)網(wǎng)絡等4種常用的算法在估計SOC的速度及精度方面進行比較[9]。該算法具有2個特性:① 擁有傳統(tǒng)算法的計算速度快、泛化能力好等優(yōu)點;② 防止過擬合并支持數(shù)據(jù)采樣和列抽樣。此外,LightGBM算法可以降低時間復雜度并且提高估計精度。筆者首先介紹了LightGBM算法,然后應用隨機森林、支持向量機、線性回歸、神經(jīng)網(wǎng)絡4種算法對4個數(shù)據(jù)集(數(shù)據(jù)集a、b、c、d)分別進行訓練,最后通過對比4種訓練結(jié)果得出LightGBM算法在估計鋰電池SOC方面的優(yōu)越性。
傳統(tǒng)的SOC估計方法包括安時積分法、開路電壓法、電導法、卡爾曼濾波法等[10]。安時積分法通過實時監(jiān)測電池工作狀態(tài)的充放電量從而準確得到電池的剩余電量,但是需要獲得精確的SOC初值[11]。開路電壓法根據(jù)電池的開路電壓估計SOC值,將放電過后的電池靜置后,端電壓與容量存在相對固定的函數(shù)關(guān)系,但是電池靜置時間較長不能滿足估計的實效性[12]。電導法通過對鋰電池電導或電阻的大量測試數(shù)據(jù)分析出鋰電池電導與SOC的關(guān)系,從而實現(xiàn)對鋰電池SOC的估計??柭鼮V波法在等效電路模型的基礎(chǔ)上在線估計鋰電池SOC,可實時獲得被估計狀態(tài)量的最優(yōu)估計值,但是估計的準確性依賴于電路模型建立的準確性[13]。相比于傳統(tǒng)估計方法,新型估計方法有著估計精度高、估計方法簡單的優(yōu)點。
新型估計方法主要有支持向量回歸法、多元線性回歸法、多種深度學習網(wǎng)絡模型融合算法、滑模觀測器方法(sliding mode observer,SMO)等多種方法,可以有效解決傳統(tǒng)SOC估計方法的不足[14]。
神經(jīng)網(wǎng)絡法通過對大量的樣本數(shù)據(jù)進行多次訓練,只需依靠輸入和輸出間的映射關(guān)系即可建立估計模型,無需考慮系統(tǒng)內(nèi)部的實際反應情況。Li等[15]建立了一種基于外部輸入全并行非線性自回歸神經(jīng)網(wǎng)絡的鋰電池SOC估計方法,將實時測得的電池電流、電壓和溫度作為網(wǎng)絡的輸入,而SOC作為輸出。姚芳等[16]使用了3層BP神經(jīng)網(wǎng)絡模型對電池SOC進行了數(shù)據(jù)識別。支持向量機是一種針對二分類任務設(shè)計的數(shù)據(jù)驅(qū)動模型,但是估計SOC數(shù)據(jù)量過大時模型精度會下降,速度會降低。融合算法可實現(xiàn)對現(xiàn)有算法的優(yōu)化,提高數(shù)據(jù)的綜合能力和非線性擬合能力。大數(shù)據(jù)及數(shù)據(jù)挖掘技術(shù)的發(fā)展使SOC數(shù)據(jù)驅(qū)動估計方法逐漸成為主流估計方法。
各種SOC估計方法優(yōu)缺點如表1所示。
表1 各種SOC估計方法優(yōu)缺點對比
LightGBM是一種快速、分布式和高性能的梯度提升框架,基于決策樹算法實現(xiàn)。相較于其他方法,它具有更高的訓練效率、更低的內(nèi)存占用和更高的準確率,同時支持高效的并行化學習。
在LightGBM算法提出之前,XGBoost算法是主要的GBDT工具。XGBoost算法相比LightGBM算法的缺點是計算量大、內(nèi)存占用大、易產(chǎn)生過擬合,由于迭代方式為Level-wise,故采用排序的方式會消耗大量空間。LightGBM算法框架的提出高效地解決了GBDT在處理較大數(shù)據(jù)集時的不足,有利于GBDT更好更快地應用于工業(yè)實踐。此外,XGBoost算法需要保存數(shù)據(jù)的特征值和對應的排序結(jié)果,故需要消耗數(shù)據(jù)集2倍的內(nèi)存,效率比較低。XGBoost的目標函數(shù)如下:
(1)
(2)
式(2)表示有k個樣本,在XGBoost里每棵樹是逐次往里加的,以下各式為XGBoost集成的核心:
(3)
(4)
(5)
(6)
(7)
LightGBM算法支持3種并行方式:特征并行、數(shù)據(jù)并行和基于投票的數(shù)據(jù)并行。特征并行的主要思想是在不同的機器和不同的特征集上分別尋找最優(yōu)的分割點,然后在機器之間同步最優(yōu)的分割點。數(shù)據(jù)并行的主要思想是讓不同的機器先在本地構(gòu)造直方圖,然后進行全局的合并,最后在合并的直方圖上尋找最優(yōu)分割點。而基于投票的數(shù)據(jù)并行能夠解決數(shù)據(jù)并行在直方圖合并時通信代價大的缺點。LightGBM估計速度是XGBoost的1/10,而內(nèi)存占用率只為XGBoost的1/6。LightGBM與隨機森林、支持向量機、線性回歸、神經(jīng)網(wǎng)絡(3層)的時間復雜度見表2所示。n為訓練實例數(shù),k為決策樹數(shù)量,d為數(shù)據(jù)維數(shù)。
LightGBM優(yōu)化了對類別特征的支持,可以直接輸入類別特征而不需要額外展開,并在決策樹算法上增加了類別特征的決策規(guī)則。LightGBM采用histogram算法通信代價小,通過使用集合通信算法實現(xiàn)并行計算的線性加速。
在應用LightGBM訓練模型之前,需要對初始數(shù)據(jù)集進行預處理以達到更好的估計效果。采用Panasonic-18650PF-Data公開鋰電池數(shù)據(jù)集[17]。該數(shù)據(jù)集已實現(xiàn)全氣候動力電池的全壽命高效管理,電池實驗狀態(tài)為室溫狀態(tài)25 ℃。首先,構(gòu)建輸入數(shù)據(jù)集對應的標簽和特征,該數(shù)據(jù)集的特征包含電壓、電流、電池溫度、放電時間,標簽為電池SOC,數(shù)據(jù)集預處理方式見圖1。
圖1 數(shù)據(jù)集預處理框圖
將該數(shù)據(jù)集劃分為4個子數(shù)據(jù)集分別進行4次訓練,以減小訓練誤差從而獲得更好的SOC估計效果。處理數(shù)據(jù)集時刪除一些噪聲影響以及其他影響的數(shù)據(jù)點,然后選擇精確點。將數(shù)據(jù)集95%劃分為訓練集,5%為測試集,通過訓練集確定擬合參數(shù)的曲線,測試集測試已經(jīng)訓練好的模型的誤差,并對機器學習模型的泛化誤差進行評估。最后,將數(shù)據(jù)可視化,以顯示參數(shù)之間的任何明顯趨勢,調(diào)優(yōu)統(tǒng)計模型以確定所需的變量,繪制特征之間的關(guān)系圖。圖2為子數(shù)據(jù)集SOC的變化曲線。
選擇最優(yōu)參數(shù)的方法為交叉驗證法,即通過多次循環(huán)來尋找最優(yōu)估計數(shù),首先將各子數(shù)據(jù)集劃分為100個大小相等的樣本子數(shù)據(jù)集,依次遍歷每個子數(shù)據(jù)集,每次把當前子數(shù)據(jù)集作為驗證集,其余所有樣本作為訓練集進行模型訓練和評估,該方法可以充分利用數(shù)據(jù)集。圖3分別為4個子數(shù)據(jù)集帶有LightGBM循環(huán)的最優(yōu)估計數(shù),4個子數(shù)據(jù)集最優(yōu)估計數(shù)分別為298、298、298、299。
圖3 帶有LightGBM循環(huán)的最優(yōu)估計數(shù)
選擇平均絕對誤差(mean absolute error,MAE)、均方根誤差(root mean square error,RMSE)、R2-score作為預測模型的評價準則。
(8)
(9)
(10)
經(jīng)過多次循環(huán)之后得到數(shù)據(jù)集a的MAE為0.011 13,MSE為0.013 9;數(shù)據(jù)集b的MAE為0.007 9,MSE為0.000 1;數(shù)據(jù)集c的MAE為0.007 5,MSE為0.000 1;數(shù)據(jù)集d的MAE為0.011 3,MSE為0.000 2。
在對LightGBM算法進行調(diào)參時,學習率(learning_rate)、弱學習器最大迭代次數(shù)(n_estimators)、最大樹深(math_depth)、單葉最小權(quán)重(min_child_weight)、葉子節(jié)點數(shù)(num_leaves)為主要參數(shù)。上述參數(shù)的取值標準:取較小的學習率可以提高模型性能;弱學習器最大迭代次數(shù)越大,模型準確性越好;最大樹深是LightGBM算法的核心參數(shù),根據(jù)數(shù)據(jù)集特征取值在100~1 000;單葉最小權(quán)重即單個葉子上的最小樣本數(shù),取值過小停止分裂,過大則會造成過擬合;葉子節(jié)點數(shù)對模型的性能具有很大的影響,默認值為31。
設(shè)置迭代循環(huán)估計次數(shù)為200次,為了加速分析減少過多迭代,將學習率設(shè)置為0.1,該數(shù)據(jù)集特征數(shù)量多,在尋找分割點時容易產(chǎn)生過擬合,可以在group邊界上找到分割點,將樹中的最小數(shù)據(jù)設(shè)置為較大值來限制樹的深度,完成最優(yōu)調(diào)參后訓練數(shù)據(jù)集得到的SOC估計結(jié)果,如圖4所示。
圖4 LightGBM與實際對比
由圖4可以得出,估計值與真實值的擬合結(jié)果比較準確,調(diào)至最優(yōu)參數(shù)的訓練模型在估計時間和精度方面都得到提升,4個子數(shù)據(jù)集的訓練效果都比較好,說明LightGBM模型估計鋰電池SOC的效果較好,滿足實際需求。
目前,估計鋰電池SOC的新型方法主要有隨機森林(random forest)、支持向量機(support vector machine)、線性回歸(linear regression)、神經(jīng)網(wǎng)絡(neural network)4種模型。將對比4種模型與LightGBM模型的訓練結(jié)果,通過分析對比訓練結(jié)果的準確率與速率來體現(xiàn)其模型估計SOC的優(yōu)勢。
1) 隨機森林模型
隨機森林模型調(diào)參,將估計循環(huán)次數(shù)調(diào)至與LightGBM一致的200次,森林中樹的深度設(shè)置為10。隨機森林模型的重要參數(shù)主要有隨機發(fā)生器的種子數(shù)、最大特征數(shù)、決策樹的最大深度、強學習器的最大迭代次數(shù)等參數(shù)。
2) 支持向量機模型
SVM允許決策邊界很復雜,在低維數(shù)據(jù)和高維數(shù)據(jù)下的表現(xiàn)都比較好,缺點是運行時間和內(nèi)存使用方面消耗比較大?;赟VM的估計模型輸入變量為電壓,輸出變量為SOC。計算得出SVM模型的MAE為0.033 23,MSE為0.045 1。
3) 線性回歸模型
應用線性回歸模型對數(shù)據(jù)集進行訓練,本次研究中特征值為電壓,目標值為SOC。設(shè)置計算時使用的核數(shù)為默認值1,減小loss函數(shù)值,增大學習比率值。線性回歸模型應用簡單,訓練速度快,但是估計結(jié)果準確率較低。
4) 神經(jīng)網(wǎng)絡模型
神經(jīng)網(wǎng)絡調(diào)參將所有的參數(shù)值權(quán)重設(shè)置為0,均值為0,方差較小的正態(tài)分布初始化,選用的神經(jīng)網(wǎng)絡模型迭代第100次需要的時間為23.961 4 s,loss函數(shù)為0.001 1,MAE為0.026 8,第500次需要的時間為119.097 5 s,loss函數(shù)值為0.001 0,MAE為0.025 7。迭代500次訓練模型準確度與調(diào)整至最優(yōu)參數(shù),正式訓練整個數(shù)據(jù)集迭代至3 000次,訓練時間為717.630 2 s,loss函數(shù)值為0.000 6,MAE值為0.018 5,MSE為0.000 6。
將LightGBM模型與經(jīng)過參數(shù)調(diào)優(yōu)的隨機森林、支持向量機、線性回歸、神經(jīng)網(wǎng)絡4種主流的機器學習算法模型進行對比,再將數(shù)據(jù)集分別代入各機器學習模型進行訓練,并且對模型進行參數(shù)調(diào)優(yōu)以達到各自最優(yōu)的估計結(jié)果,訓練結(jié)果如圖5所示。
圖5為LightGBM與隨機森林模型估計結(jié)果對比。從曲線中可以得出,LightGBM模型的估計結(jié)果比隨機森林模型估計結(jié)果更加接近SOC真實值,模型估計精度和擬合度都比較好。調(diào)參完成后的模型的估計速度和精度得到提升,相比其他4種對比模型,具有快速、高精度的優(yōu)點。證明LightGBM模型估計鋰電池SOC的變化結(jié)果比較準確,可以作為電池工作過程中SOC變化的參考,監(jiān)測電池工作狀態(tài),延長電池使用壽命。
圖6為LightGBM模型訓練數(shù)據(jù)集估計SOC的誤差。從圖中可以看出,模型訓練的整個過程中誤差值比較小,且模型估計誤差的波動也小。考慮外界因素如電池放電過程中溫度、運行工況等的影響,整個電池放電過程中誤差值最大達到0.10,整體誤差不超過0.06,誤差值集中在0.02以內(nèi),其中數(shù)據(jù)集c的誤差最小。訓練結(jié)果表明,LightGBM模型估計SOC效果較好,且可滿足實際的需求。
圖6 誤差分析
表3為LightGBM模型與4種對比算法的SOC估計結(jié)果對比。表中各算法訓練的數(shù)據(jù)集均為同一數(shù)據(jù)集,各個模型均經(jīng)過參數(shù)調(diào)優(yōu)至各自最佳的訓練效果。由表3中數(shù)據(jù)可知,LightGBM的估計速率以及精確度都優(yōu)于其他幾種算法,估計結(jié)果誤差小且實驗數(shù)據(jù)精確度高,在MAE、MSE、R2-score均取得較好的結(jié)果,LightGBM算法在保證高效率的同時防止了訓練產(chǎn)生過擬合,顯著提高了鋰電池SOC估計的速率與精確度。
表3 各算法訓練結(jié)果對比
1) 提出新型的機器學習方法估計鋰電池SOC,得到比傳統(tǒng)方法更好的估計效果。
2) 采用Panasonic-18650PF-Data鋰電池實驗數(shù)據(jù)集驗證了所提出的LightGBM算法的創(chuàng)新性,減小了數(shù)據(jù)訓練誤差,并評估機器學習模型的泛化誤差,將實驗數(shù)據(jù)進行可視化處理,可顯示參數(shù)之間的相互關(guān)系。
3) 應用LightGBM算法及支持向量機等對比算法訓練Panasonic-18650PF-Data鋰電池數(shù)據(jù)集,得出估計時間為對比算法隨機森林的1/22,支持向量機的1/88,神經(jīng)網(wǎng)絡的1/1 330。改進的LightGBM算法具有更快的估計速度和更高的估計精度。