馬非凡,黃碧雄,嚴曉,王東征 ,王炯耿
(1.201620 上海市 上海工程技術大學機械與汽車工程學院;2.201620 上海市 上海玫克生儲能科技有限公司;3.310000 浙江省 杭州市 浙江華云信息科技有限公司)
隨著人們保護環境的意識不斷加強,以及化石燃料資源的日益枯竭,電動汽車代替傳統燃油汽車作為日常出行的代步工具已經成為大勢所趨,然而,電動汽車存在電池衰減不確定、充電不方便和續航里程短等問題,使廣大用戶對電動汽車存在信心不足[1]。而且,隨著最近幾年大數據技術的不斷成熟,機器學習方法在越來越多的領域取得了成功,利用數據創造更大的價值。本文在此背景下,利用數據平臺積累的電動汽車數據,結合XGBoost 算法,估算電池剩余容量,增強用戶的使用信心。
XGBoost 是最近一種廣受好評的集成學習算法,它在原來梯度集成學習的基礎之上演化而來,主要思想是通過集成多個弱分類器的訓練結果達到最終預測的目的[2-3]。XGBoost 算法模型具有如下幾點優勢:(1)通過弱分類器集成的方法能夠很好地解決非線性問題,并將更多的特征考慮進模型;(2)選用的弱分類器是樹形模型,相比較于深度學習,或者其他回歸模型,對特征的處理要求較低,不需要進行強制歸一化處理;(3)訓練時可以利用電腦的線程資源,大大提高模型的訓練速度。
XGBoost 近幾年已經在各類機器學習大賽中大放異彩,也證明了其模型的健壯性和可用性,本文利用電動汽車上傳的數據整理成可用特征,達到估算電池當前滿充容量的目的。XGBoost 模型主要公式推導具體如下:
假設XGBoost 中有K 個樹形模型,則每個模型如式(1)所示:

式中:fk——每一個集成單元;fk(xi)——每一弱學習器的計算結果。
為了防止模型過擬合,假設Ω(fk)為正則化表達式,則有

式中:γ,λ——懲罰系數;T,w——每一個集成單元的葉子結點數目和其權重。
XGBoost 的主要思想是對多個弱學習器結果進行總結。利用向前分布算法對目標函數進行訓練,因此,fi的優化目標可以表示為式(3):

為方便計算,需對式(4)進行泰勒公式展開,并將常數項去除,展開后的結果如式(4)所示:

式中:gi,hi——目標函數的1 階導數和2 階導數。目標函數可以改寫為式(5):

從上述公式推導中可以看出,XGBoost 集成學習是將每一棵回歸樹的結果進行融合的結果,在每一棵回歸樹中,會選擇不同的特征作為節點劃分數據集,如果某一特征同時被多棵不同的回歸樹選擇作為其節點,則說明該特征的重要程度較高,在模型重要度影響中占比較高。
從以往研究成果可知[4-6],電動汽車的電池容量與車輛行駛里程、日歷天數、溫度等因素有關。平臺上的數據只簡單記錄每一時刻電動汽車的狀態數據,如此刻的電流、電壓、溫度等,本文通過簡單的統計方法,重新計算出模型需要的輸入特征,最終整理好的特征確定如表1 所示。
在模型選取的特征中,當前月份(month)表示當前電動汽車工作所處的月份信息,用于表征當前電動汽車所處的季節,但是,如果我們直接用1~12 表示全年12 個月份,對于算法來說是不友好的,因為隨著數字的增大,電池包容量不會呈現很明顯的相關性,為了保證12 個月份之間信息的平等關系,本文對當前月份進行one_hot 處理。處理后的結果如表2 所示。

表1 模型輸入特征Tab.1 Model input characteristics

表2 獨熱編碼Tab.2 One-hot encoding
本實驗經過上述特征挖掘,已經整理完所有特征輸入與輸出容量,為了保證訓練集樣本數據量充足,本文按照8∶2 劃分為測試集與訓練集;同時,為了保證樣本廣泛性,本文通過隨機抽取的方式抽取訓練集和測試集。

表3 不 同模型比較Tab.3 Comparison of different models
通過比較不同算法的估算精度,發現XGBoost 缺失表現最好,MAE 和RMSE 達到0.014,0.072,R Square 也得到了最高評分0.818,說明該模型在保證足夠精度的同時還有很好的魯棒性。
最終的預測效果如圖1 所示,深色點為預測值,淺色點為真實值,從圖1 可以看出模型已經較準確地預估出當前的電池容量。

圖1 容量預測散點圖Fig.1 Scatterplot of capacity prediction
關于電池容量的研究一直是動力鋰電池領域的熱點研究話題,但是其研究方法以電池測試為主,雖然該方法計算精度高,卻不利于在生產環境中復用。本文從純數據驅動角度出發,基于數據中臺積累數據,提取具體特征,表征電池歷史行為,利用XGBoost 模型估計當前電池包的容量。該方法計算速度快,可復用到不同的場景,也可以考慮在未來電動汽車數據平臺中作為電池容量監控的一種策略。