謝奕展,程夕明
(北京理工大學機械與車輛學院,電動車輛國家工程試驗室,北京100081)
鋰離子電池高能量密度和低成本技術的快速發展促進了電動汽車的市場化步伐,而電池管理系統的基本功能之一,是對電池的諸多狀態進行準確的估計,包括電池的荷電狀態SOC、健康狀態SOH和剩余使用壽命RUL[1-2]。
目前,蓄電池的SOC估計、SOH估計和RUL預測的方法主要有基于模型的方法和數據驅動方法兩類。基于模型的SOC估計方法有安時積分法[3]、開路電壓法[4]和等效電路模型法[5]等。累積誤差、長時間靜置和等效電路模型參數非線性時變等問題使基于模型的電池狀態估計方法的應用受到限制。基于模型的SOH估算方法有實驗測量法[6-7]、差分法[8]、等效電路模型[9]和電化學模型[10]等。其中,實驗測量法直接對電池容量、內阻和阻抗譜進行測量,這些參數測量的車載條件穩定性差,缺乏可比性。差分法建立蓄電池的容量電壓微分曲線峰值與SOH的函數關系,要求測量數據的電流倍率小,易受噪聲污染。等效電路模型法通過參數辨識方法建立模型參數與SOH的映射關系,其普適性尚待研究。基于模型的RUL預測有衰減模型法[11]、等效電路模型法[12]等。其中,衰減模型法通過尋找溫度、充放電倍率、充放電深度等因素與電池的SOH之間的函數關系,建立電池的容量衰減曲線與循環工況參數的數學表達式,該方法需要大量的蓄電池老化實驗,對于在特定條件應用的蓄電池具有一定的可行性。基于電路模型的方法則是通過分析已估算的電池SOH的變化趨勢,預測電池RUL。以上兩種方法依賴電池SOH估計的可靠性。
鋰離子電池是一種高度非線性時變的電化學系統,其內部狀態受到SOC、溫度、倍率、外力和時間等外部因素的耦合影響,且一個封閉環境的運行狀態不易通過外部儀器觀測。盡管基于模型的方法具有較為明確的物理意義,但是對高度非線性時變、強耦合和時間跨度大的鋰離子電池建模將十分復雜而耗時、專業性強,而且模型的可靠性需要電池行為持續性數據的支持。
電池狀態估計的機器學習方法是指采用機器學習算法估計電池狀態的數據驅動方法。它具有由于其強大的非線性映射能力,如單層神經網絡和徑向基神經網絡均能以任意精度逼近任意函數[13-14]。本文中將鋰離子電池視為一種黑箱系統,運用如RVM、GP、神經網絡等機器學習算法,自適應建立蓄電池的電流、電壓、溫度等可測量數據與其狀態SOC、SOH、RUL之間的函數關系[15-18],無需對蓄電池復雜機理的理解,將主要工作聚焦于對象的數據處理,擴大了從業人員的專業范圍,備受業界關注。
機器學習方法旨在建立系統的輸入與輸出的映射關系。將用于鋰離子電池狀態預測與估計的系統描述為由離散的狀態方程和觀測方程組成的表達式,記為

式中:xk為系統中間狀態量;zk為系統觀測量;uk為系統輸入量;wk、vk分別為過程噪聲和觀測噪聲。
機器學習算法旨在習得系統狀態函數f和觀測函數h,而噪聲wk和vk既可作為已知量,也可作為未知量。系統輸入uk通常為蓄電池的溫度、電流或電壓,zk則通常表示蓄電池的狀態如SOC、SOH和RUL等。對式(1)和式(2)簡化或擴充,便可建立各種機器學習算法的函數表達式。
用于鋰離子電池SOC估計的算法旨在建立溫度、電流、電壓與SOC的映射關系,既可以是遞歸算法也可以是非遞歸算法。記k時刻的電流、電壓、溫度、SOC分 別 為Ik、Uk、Tk、SOCk。記D={(u1,z1),(u2,z2),…,(uk,zk),…,(uN,zN)}為 整 個 數 據集,那么系統的輸入uk=[Ik,Uk,Tk],系統的輸出zk=SOCk。
遞歸算法旨在尋找輸入序列{uk}與輸出序列{zk}的映射關系,而非遞歸算法則是求得點uk與點zk的一一映射關系。無論是SVR[19]、BPNN[20]、ELM[21]、MLP[22]和CNN[23]等非遞歸算法,還是Elman NN[24]、NARXNN[25-26]、LSTM?RNN[27]等遞歸算法,都能準確估計電池SOC。它們著重研究數據集劃分[20,23,27-30]、超參數優化[21,24-26,31]、模型訓練加速[32]、求解器性能比較[22]、濾波器融合[33-35]和學習算法融合[36-37]等。
其中,濾波器融合算法將基于模型的濾波器與機器學習算法融合,提高SOC估計精度,例如基于1階RC等效電路模型的EKF和BPNN融合算法。由于BPNN有效補償了EKF在動態工況的SOC估計誤差,使相應的RMSE從3.43%減小到0.83%[33]。
融合多種學習算法也能夠提高數據驅動方法的電池SOC估計性能。例如,文獻[37]中將增量學習應用于RVM,前一個RVM的相關向量與后一個訓練樣本訓練新的RVM,如此重復進行,每次僅保存相關向量,而摒棄了其它數據,減少了存儲空間,其預測效果與總數據集訓練的RVM相比,SOC預測精度相近。
蓄電池SOH估計與SOC估計的不同之處在于SOH是一個長期狀態,在幾個循環周期內,可以假定其保持不變,這意味著估計SOH的數據驅動算法的數據比SOC更多而復雜。通常情況下,鋰離子電池采用穩定的恒流-恒壓兩段式充電,不同SOH的蓄電池充電電壓變化曲線能夠呈現出明顯的差異性[38],因此SOH估計算法的輸入量常由蓄電池的充電數據生成。
蓄電池SOC估計采用點對點的數據計算,而SOH估計則為曲線或者面對點的數據計算。SOH的輸入量提取通常有兩種處理方法,第1種將充電數據整體作為模型的輸入,第2種方法以提取充電曲線的特征數據作為模型的輸入。因此,蓄電池SOH與SOC估計方法的主要不同之處體現在數據驅動算法的輸入處理方法在數據時間、數據量和數據行為存在明顯的差異。
非 遞 歸 算 法SVR[39]、RVM[40]、BPNN[41-42]、ELM[43]、MLP[44-45]、CNN[46]、ANFIS[47]和 遞 歸 算 法LSTM-RNN[48]都已應用于電池SOH的估計,并側重于健康因子選擇[39-40,49]、網絡訓練加速[42,45-46,48]和算法融合[50-52]等方面研究。其中,平均放電電壓、平均放電溫度、充電平均電壓、充電平均電流、充電平均溫度和等效電路模型參數等都可作為電池SOH估計模型的健康因子。對于算法訓練,自編碼器常用來降低數據維度,減少算法訓練時間[42,50]。
多個機器學習算法融合用來增強電池SOH估計性能。例如,文獻[51]中以多組容量衰減電池的特定區間電量變化為健康因子,輸入RF算法,輸出相應的SOH,其中模型融合了500個決策樹。相比GP,RF算法的SOH估計RMSE和運行時間分別減小了約15%和90%。文獻[52]中利用一個大型數據集訓練CNN估計SOH,生成模型參數。然后,在另一個小型數據集上繼續訓練舊模型參數,結果表明重新訓練的CNN比原CNN的SOH估計RMSE減小0.6%。
基于SOH估計,電池的RUL預測是由歷史容量衰減規律性預測電池將來容量的變化。當預測的容量到達EOL時,對應的循環次數減去當前已循環的次數即為RUL,因此RUL預測和SOH預測可被劃分為蓄電池狀態估計的同一類問題。RUL預測方法通常有兩類:第1類是以前半段容量衰減數據作為估計算法的訓練集;第2類是以SOH估計方法估計前半段循環容量,然后根據估計的前半段循環容量數據作為訓練集,用第1類方法同時預測SOH和RUL。
遞 歸 算 法LSTM?RNN[53]、GRU?RNN[54]、NARXNN[55]和 非 遞 歸 算 法SVR[56]、LSSVM[57]、RVM[58]、GP[59]、RBFNN[60]、MLP[61]、CNN[62]等都已應用于構建電池容量衰減模型,預測電池RUL,側重于數據集劃分[56]、數據增強[57]、超參數優化[58-60]、輸入變量選擇[55,59,62]、模型融合[60-61]和集成學習[63-64]。
將濾波器與機器學習融合可增強電池RUL預測的可靠性。例如,文獻[60]中以雙指數模型作為UKF的觀測方程預測RUL,然后以RBFNN補償UKF的預測誤差,與僅采用UKF算法相比,融合算法的電池RUL預測結果少了4個循環。集成學習也能改善電池RUL預測的性能。例如,bagging方法比boosting方法有更高的RUL估計精度,且對數據的離群點不敏感[63]。
基于機器學習的數據驅動方法實施過程包括數據準備、模型選擇與評價、超參數確定、數據預處理和模型訓練等5個環節,這些環節都影響到電池狀態估計模型的性能。
機器學習算法的狀態估計效果依賴于訓練數據,訓練數據與實車電池工況越相似,則數據驅動算法輸出的結果越可靠。因此,電池實驗應能夠反映車輛行駛工況的環境溫度和電流的隨機復雜性,然而諸如世界輕型車行駛工況(WLTC)[65]和新歐洲循環工況(NEDC)[66]等典型行車工況僅反映了車速-時間關系。依據工況車速,利用車輛動力學關系計算行車功率,由模型電壓可計算實驗電池的充放電倍率[67]。
電池容量衰減測試是SOC估計、SOH估計和RUL預測可靠性驗證的前提條件,然而相應電池充放電循環上百千次,實驗時間長,比如電池容量衰減實驗持續了56周[68]。因此,許多文獻利用已有的電池數據集驗證其算法性能,比如NASA PCoE Battery Dataset[69]、NASA Randomized Battery Usage Dataset[70]、CALCE Battery Datasets[71]、Stanford Cycle Life Prediction Dataset[72]、Standford Fast-Charging Optimization Dataset[73]、Oxford Battery Degradation Dataset[74]和Panasonic 18650PF Li-ion Battery Dataset[75]等。
為了解決數據驅動算法的大量數據需求而成本過高問題,文獻[76]中利用一種生成對抗式神經網絡GAN?CLS創建數據,并用于訓練LSTM?RNN估計SOC,相應的估計均方誤差小于0.002 5,且比實驗采集數據的方法快50倍。
模型的選擇應綜合考慮擬合精度、成本和魯棒性。模型的擬合精度,要求電池狀態估計與預測的誤差小和置信區間小。模型實施成本可分為訓練成本和測試成本,前者指模型利用訓練集得到滿意結果而耗費的成本,如訓練時間和訓練設備等;測試成本指模型訓練的實際應用成本,例如計算速度、內存大小、程序移植所需成本等。算法的魯棒性指模型能夠在數據存在噪聲或異常值等情況下仍能夠取得較高的精度,或者對訓練數據外的數據仍能保持較高的精度[77]。
2.2.1 評價指標
模型評價指標常由均方誤差、均方根誤差、絕對誤差、平均絕對誤差和平均絕對百分比誤差等表示,這些指標越小,模型的性能越好。然而,它們應結合真實值的取值范圍進行評價。假設yˉ落在某個區間的概率為p,則該區間稱為p置信區間,如常用的95%置信區間表示yˉ落在該區間的概率為95%。yˉ落在包含y的置信區間越小,模型性能越好[29]。而決定系數(R squared,R2)[78]是衡量模型擬合程度的無量綱指標,取值范圍為-∞~1,越接近于1,表明模型的擬合效果越好。記y為真實值,yˉ、y?i分別為平均值和估計值,n為樣本數,相應表達式為

2.2.2 精度
一般而言,數據驅動算法在理論上都能夠映射任意函數,但是算法實現的前提是系統輸入與輸出確實存在函數關系,能夠找到相應的具體實現。函數關系的存在與否關鍵在于數據輸入特征的選擇,例如不同數據特征使模型估計電池SOH的效果不同。算法實現則取決于數據和模型求解方法,例如RUL估計的訓練數據包含的循環數越多,預測精度越高[78]。算法除了提供點估計外,還應提供置信區間估計。目前,僅有少數算法如RVM和GP等能提供置信區間估計。為此,可通過蒙特卡羅算法為模型結果添加區間估計[79]。
機器學習模型的精度會有所區別,例如LSTM?RNN、GRU RNN、Elman NN等遞歸算法的估計和預測精度略高于RVM、SVR、GP、BPNN等非遞歸算法;LSTM?RNN、GRU?RNN、CNN等深度學習網絡具有比傳統機器學習算法更高的估計精度。
2.2.3 實施成本
傳統機器學習方法由于其固有缺陷,如需要矩陣求逆、支持向量隨著數據增長而增長,導致訓練和測試成本大幅升高,存在大規模數據的適應性問題。深度學習算法如LSTM?RNN、GRU?RNN、CNN等的訓練過程需要顯卡進行輔助計算[23,52],訓練時間長,導致訓練成本上升。
實際算法必須嵌入硬件運行,因此必須考慮算法的運行時間和內存占用等因素對系統成本的影響。基于NASA和Oxford兩個數據集,文獻[80]中比較了不同算法估計SOH的訓練時間和內存需求,結果表明:GRU?RNN的訓練時間分別是GP和SVR的70~130倍和4~5倍,而CNN的訓練時間則是GP的6~10倍。對于算法的測試時間,SVR<GP<GRU?RNN<CNN。文獻[46]中使用CNN和RVM兩個算法估計SOH,結果表明CNN的訓練時間是RVM的7.6倍,但RVM的測試時間是CNN的9.8倍,而且RVM的內存需求是CNN的139.1倍。對于SOC估計的算法運行成本,文獻[51]中的研究結果表明RF的測試時間是GP的10倍以上,文獻[25]的研究結果表明PSO優化中NARXNN的訓練時間和測試時間僅為BPNN的20%左右,文獻[23]的研究結果表明GRU?RNN、LSTM?RNN和CNN算法的運算時間相當,約為1.4 s。然而,LSTM?RNN和GRU?RNN的每秒浮點運算次數為CNN的1.75倍,說明前兩者需占用更多內存才能運行。
2.2.4 魯棒性
魯棒性表示算法對電池運行數據的噪聲、異常值、測試數據與訓練數據的分布不盡相同等情況的適應能力。電池狀態估計算法的魯棒性包括疊加噪聲的測試數據的算法性能評估[81]和同批次電池的實驗數據檢驗[61]兩種。
遞歸機器學習算法的魯棒性要求更高,原因在于遞歸算法的一部分輸入來自于上一步的輸出,可能導致算法誤差的累積效應,致使算法喪失魯棒性。然而,不同算法的誤差累積效應嚴重程度不同,例如文獻[26]中比較了LSTM?RNN和NARXNN的SOC估計性能,使用試錯法確定兩者的最優參數,兩者均表現出估計值累積誤差,但NARXNN比LSTM?RNN更嚴重。解決遞歸算法的誤差累積問題的途徑之一是應用傳統濾波器進行算法定時校正,例如構建卡爾曼濾波器和機器學習的融合算法,以安時積分法和GRU?RNN分別作為SOC估算結果的狀態方程和觀測方程,結果顯示該方法能夠校正GRU?RNN的累積誤差[35]。
影響機器學習算法性能的關鍵因素之一是超參數。與徑向基核函數和多項式核函數相比,一種混合核函數的LSSVM估計SOH的RMSE值小0.1%~0.2%[82]。但算法的最優超參數值卻與訓練數據密切相關。例如,使用回溯搜索優化算法(backtracking search optimization algorithm,BSA)估計SOC的RBFNN和ELM的隱藏層節點數,不同溫度和工況的數據驅動的網絡隱含層節點數各不相同,最大相差1.5~2倍[20]。
超參數可采用試錯法、經驗法或優化算法等來確定。例如,由試錯法確定CNN卷積層層數[46]和NARXNN的輸入延時階數和反饋延時階數[26],由經驗法確定BPNN的隱層節點數[83]。
超參數的優化算法種類多,例如PSO算法用來優化RVM核函數加權系數和內部參數[40],量子粒子群算法(quantum?behaved particle swarm optimization algorithm,QPSO)算法用來優化多核RVM核函數加權系數[58],ACO優化Elman NN隱層節點數[24]、BSA優化BPNN隱層節點數[20]、k折交叉驗證法用于優化最小二乘支持向量機的超參數[28],貝葉斯優化算法用于SVR超參數尋優[84],梯度下降法確定高斯過程超參數最優值[85]。不同的優化算法得到的超參數對算法的效果不同,例如由GA優化的SVR比交叉驗證法網格尋優的SOC預測精度提高了0.3%~0.9%[84]。注意,超參數優化會增加算法的復雜度和計算負擔。
常規數據預處理方法包括數據缺失與重復處理、濾波、重采樣、特征選擇、特征縮放和數據集劃分等。濾波主要是為了濾除數據噪聲,數據的重采樣是為了選擇有效數據[80,86]。特征縮放是指采用歸一化、標準化和中心化等方法處理數據,用于消除不同特征數值范圍的差異[87-88]。此外,為了防止算法過擬合,數據往往疊加高斯噪聲,增加樣本數據的隨機性[80,57]。
2.4.1 RUL預測數據預處理
RUL是通過預測電池容量,再依據電池容量衰減曲線而獲得的。就趨勢而言,鋰離子電池容量隨著充放電循環次數的增多而不斷衰減,然而容量再生現象[78]使容量衰減曲線的變化趨勢難以預測,應采用特殊方法處理容量衰減曲線,比如高低頻成分的小波分解[78]、經驗模態分解[89]和集合經驗模態分解[58]等方法。
2.4.2 SOH估計數據預處理
在樣本數據的特征選擇階段,SOC估計算法選擇某一時刻的電流、電壓和溫度等數據,而SOH估計則選擇與容量衰減相關的特征數據(健康因子)。由于電池容量變化的長久性,SOH估計所能夠選擇的健康因子相對較多。在單次或相鄰幾次充放電循環內,可認為SOH不變,因此可從短時充放電循環數據提取特征,建立健康因子與SOH的函數關系。
電池放電工況電流、溫度和工作時間的不確定性導致健康因子提取困難,因此SOH估計的健康因子以充電工況數據提取為主,例如充電時某一確定電壓區間變化時長、充電時某一確定電流區間變化時長[40]、充電曲線恒流充電時間與恒壓充電時間之比[90]等。為了解決健康因子提取對完整充電循環的依賴性,可從短脈沖電流的電壓響應曲線提取健康因子[68,91],或采用極限學習機補缺不完整的充電曲線數據[82]。
健康因子也有優化和篩選方法,比如主成分分析法[92-94]、泊松相關系數法[95]、灰色關聯分析法[96]、和spearman相關系數法[59]等。此外,CNN能自提取健康因子[46]。
2.4.3 數據集劃分
數據集一般劃分為訓練集、驗證集和測試集。訓練集用于訓練模型,驗證集用于評估模型,防止模型過擬合,保證模型的泛化能力。測試集則用于評估模型性能。訓練集、驗證集和測試集可按照一定比例隨機劃分數據集數據。
在SOC估計問題中,測試集和訓練集可采用兩組截然不同的工況驗證模型的泛化性[27]。在SOH估計問題中,為了驗證模型的外延估計能力,訓練集可選前段充放電循環的數據,測試集則選后半段充放電的數據[97]。對于RUL預測,可采用容量衰減曲線的前段、中段和后段分別作為訓練集、驗證集和測試集,驗證集具有矯正模型預測趨勢的能力[56]。
相比于傳統機器學習方法如SVR、LSSVM、GP、RVM、RF、Adaboost和GBT等,神經網絡訓練復雜而差異性大。模型訓練的目的在于以較低的成本獲取一個擬合程度適中的模型,即既不過擬合,也不欠擬合,成本較低,收斂速度較快,內存占用較小。欠擬合表示該模型在訓練集上擬合精度低、誤差大,過擬合則表示該模型在訓練集以外的數據擬合精度低、誤差大。一方面神經網絡具有強大的非線性映射能力,很容易出現過擬合現象[98];另一方面神經網絡并不是凸優化問題,導致其求解過程中可能陷入局部極小值點[99]而出現欠擬合。因此選擇合適的訓練算法對于模型的性能十分重要。
神經網絡算法一般采用梯度下降算法對網絡進行求解,恰當的求解算法有助于加快收斂速度和取得較好的訓練結果。根據數據量將梯度下降法分為隨機梯度下降法、小批量梯度下降法和批量梯度下降法。為了加快收斂速度和減小陷入局部極小值的概率,一些新的算法如帶動量的梯度下降法、Adagrad、Adadelta、RMSprop和Nadam也被用于神經網絡的算法求解[100]。文獻[22]中比較了至少6種算法分析MLP和LSTM?RNN估計SOC的誤差影響,結果顯示MLP應用Adadelta和Nadam算法求解的效果最好,而LSTM RNN則應用RMSProp和AdaGrad算法求解的效果最好。
防止算法過擬合有L1正則化[101]、L2正則化[102]、早停[103]、Dropout[104]和k-折交叉驗證[105]等方法,相應效果存在差異。文獻[79]中比較了避免算法過擬合的電池RUL預測結果,結果表明Dropout、L1正則化和L2正則化算法預測RUL可分別少了16、77和153個循環數,而沒有采取防止過擬合方法的算法則無法預測RUL。
針對鋰離子電池BMS的SOC估計、SOH估計和RUL預測問題,歸納了機器學習算法的問題求解方法和研究進展,闡述電池狀態估計機器學習方法實施過程的關鍵問題,包括數據準備、模型選擇、算法評價、超參數確定、數據預處理和模型訓練。其中,提出了評價相關機器學習算法的精度、成本和魯棒性3大指標。算法的實施成本差異大,如LSTM?RNN、GRU?RNN和CNN等雖能取得較高的估計精度,但訓練時間長,成本高。然而,現有研究關注于算法精度,缺少對算法的實施成本和魯棒性的評估。
盡管電池狀態估計方法趨向多機器學習算法融合,但超參數確定仍然是機器學習算法的一個難點。現有確定方法的通用性差,原因在于:超參數缺少明確的物理意義,最優超參數依賴于樣本數據,導致花費大量成本訓練好的模型僅能應用于特定場景,而新的場景下必須使用新的數據重新訓練模型。隨著電池的老化,估計模型出現不適應性,但如果丟棄原有的模型和數據,將導致訓練成本的升高和面臨著數據不足的風險。
因此,鑒于機器學習已進入了流程化的研究階段,應構建自主的、具普適性的、多區域、跨季節、多模式和長時間的車用電池工況數據庫,更好地促進電池狀態估計的機器學習算法研究,包括評估不同算法的成本和魯棒性,增強機器學習算法的實用性、根據數據特性確定機器學習算法的超參數的方法和增強機器學習算法的通用性的途徑。