朱景哲,張 希,高一釗,李家琦
(上海交通大學機械與動力工程學院,上海 200240)
鋰離子電池在電動汽車中應用時,常見的外部故障有傳感器(含溫度、電壓和電流傳感器)故障、連接故障和冷卻系統故障等;常見的內部故障有過充電、過放電、內部和外部短路、過熱、加速退化以及熱失控等,其中電芯內部故障,如內短路與異常老化,與熱失控緊密相關。已有很多將數據驅動法用于鋰離子電池故障診斷的報道,主要可分為基于案例分析法、基于模型法和非基于模型法。W.Gao等[1]分析了實車發生熱失控時電壓、溫度的臨界值,并進行了誘因溯源。Z.T.Liu等[2]基于電流、電壓數據,對電化學模型及等效電路模型進行參數辨識、狀態估計,通過分析時變參數,判斷電池是否發生故障。非基于模型法包括基于信息量和統計量法、基于機器學習法[3]。前者通常基于信息量和統計量,對實車數據進行清洗后,計算時間序列數據的小波包分解結果、電壓單體相關系數和香農熵等參數,啟發式地確定信息量的閾值,再判別故障;后者可分為基于無監督法[如密度聚類(DBSCAN)的異常值檢測算法]和基于深度學習[如長短期記憶(LSTM)人工神經網絡]的端到端診斷算法。
上述方法在應用時仍存在問題。基于案例分析法多針對個例,泛化性能較差,難以推廣到實車診斷領域;基于鋰離子電池故障注入的研究方式多基于實驗進行分析,對故障類別覆蓋較差,且多使用控制變量(如溫度)方式進行實驗,導致所得結論難以推廣到溫度、工況耦合的實際場景。
相關研究表明,多種方法的組合效果一般較好,但線上場景對電化學參數辨識的實時性要求較高,因此,本文作者提出一種端到端的結合電化學參數的電池故障診斷算法,主要關注電池故障(內短路、異常老化)的診斷預測,并避免模型在線上推斷過程中實時辨識電化學參數。
電池在發生內部電化學反應的同時,會發生副反應。某些副反應會對電池產生長期的老化影響和安全風險,包括:①Li+損失[見式(1)];②電池負極化學當量偏移[見式(2)];③固相體積分數減小[見式(3)];④液相體積分數減小[見式(4)];⑤固體電解質相界面(SEI)膜增長[見式(5)]。文獻[4]闡述了上述副反應帶來的影響,并進行建模。
(1)
(2)
(3)
(4)
(5)

基于MATLAB的Simulink仿真功能,將上述過程化簡并構建傳遞函數,對鋰離子電池老化過程進行建模。對于給定的電流、電壓和溫度序列,可通過列文伯格-馬夸爾特(LM)算法,迭代辨識出相關電化學參數。
卷積神經網絡(CNN)是一類包括卷積計算且有深度前饋結構的前饋神經網絡。目前常用的CNN,整體結構通常由卷積層、池化層和全連接層組成。卷積層的數學模型見式(6):
Xi=f(Xi-1Wi+bi)
(6)
式(6)中:Xi為第i層輸出的特征向量;Wi、bi分別為第i層卷積核的權重矩陣和偏置向量;f為激活函數(通常使用Relu函數),賦予神經網絡非線性擬合能力。
一維卷積層輸出形狀[Dout,Hout,Wout]公式為:
(7)
(8)
式(7)、(8)中:[Hin,Win]是該層輸入特征的前2個維度;H、W為當前層卷積核的高度和寬度;P為補零數量;S為卷積核滑動步長。此外,Dout取當前卷積層卷積核的數量。

(9)
全連接層主要學習高層特征和下游任務之間的映射關系,如式(10)所示:
Y=Softmax(WTX+b)
(10)
式(10)中:X、Y分別為輸入、輸出特征向量;Softmax為激活函數。
在算法中,對實車數據進行卷積主要是在時間序列上滑動多個卷積核,得到多組特征。各卷積核相當于不同的特征提取器,用于學習實車數據到故障類別之間的映射關系。
基于電動汽車實車工況數據,對電池故障類型進行分類。與僅使用信息量和統計學特征進行故障分析的方法不同,算法引入電化學模型,通過辨識參數,對實車數據進行分析和故障標注,并端到端訓練故障診斷模型。技術路線見圖1。
首先,收集實車數據并進行數據清洗和數據預處理,如異常值處理、插值等;然后,基于已有電氣故障和實車數據特征,對原始數據進行初步篩選,得到非電氣故障導致異常的電池序列;對篩選后的數據集進行電化學參數敏感度分析和分階段電化學參數辨識,并基于關鍵電化學參數的分布和組合,對數據標注電池內短路和老化異常;最后,基于深度學習模型,端到端地實現對全量實車行駛數據的故障分類。
動力電池故障有多種類型。在實車場景下,部分電氣故障可被較準確地判別,如傳感器故障、電池連接異常等。上述片段應提前篩選,作為單獨歸類,不計入之后的故障分類。剩余的實車數據中,需確定可能存在的高危故障(如內短路、過快老化)備選片段,進行后續分析。按如下策略,對排除了電氣故障的片段進行篩選:①溫度極差不低于5 ℃;②電壓極差不小于0.3 V;③電壓單體KL散度大于4×10-6;④電壓單體截面數據極差(X)和標準差(Y)的相關系數小于0.6。

圖1 結合電化學參數的故障診斷方法路線Fig.1 Route of fault diagnosis method combined with electrochemical parameters
對實車數據,人為設定滑動窗口長度和滑動步長,沿時間序列,分別計算指定長度內每只電池單體電壓和模組電壓均值的KL散度(DKL),如式(11)所示:
(11)
式(11)中:p為電池模組各單體的電壓均值序列;q為每只電池單體的電壓序列;k為序列標號;m為電池單體數量。
電壓序列的相關系數(r)的計算如式(12)所示:
(12)

在上述故障初步判別策略中,溫度和電壓極差常被用作典型的異常分析條件[5],可覆蓋大多數熱失控事故車輛。電池單體KL散度在一定程度上體現了電壓序列的不一致性。基于策略③、④直接篩選,得到的實車數據片段見圖2。
從圖2可知,對各單體電壓極差-標準差相關系數大于閾值的片段,電壓數據常呈現個別單體電池數據偏小的現象;對單體電壓KL散度大于閾值的片段,部分單體電池的電壓在汽車行駛過程中波動異常。這表明,提取實車數據片段的特征,并依此加以篩選,可初步定位電壓表現異常的區域。
為了對未知故障模式的數據進行進一步分析,需要提取傳感器獲得的電池數據所對應的電化學參數特征。除了可以直接測得的部分參數(如結構參數)外,其余參數在沒有實驗檢測設備的實車環境下,可借助優化算法進行自動辨識。為避免電化學參數在辨識過程中陷入局部最優,需要按電化學參數敏感度和參數實際意義,分階段辨識。

圖2 KL散度異常與相關系數異常Fig.2 KL divergence anomaly and correlation coefficient anomaly
首先,對電化學參數進行敏感度分析,使用拉丁超立方體采樣[6],并進行敏感度分析。高敏感度參數略微變動,會導致電化學模型輸出變化較大;而低敏感度參數的變化,對電化學模型輸出的影響較小。
同時,考慮電化學參數的實際物理含義,建立如表1所示的3個階段電化學參數辨識流程。

表1 3個階段電化學參數辨識流程Table 1 Schematic diagram of 3-stage electrochemical parameter identification
表1中:Lpos為正極片厚度;Rs,n、Rs,p分別為負極、正極粒子半徑;Soc,init為電池初始容量百分比;Lsep為隔膜厚度;εs,p、εe,p分別為正極固相和電解液的體積分數;εe,m為負極孔隙率;Cs,p,max為正極固相最大Li+濃度;Rf為電池內阻;θn,100為電池滿電狀態的負極固相Li+濃度。
通常,電池類型和結構參數,即表1中的固有參數(A、Lneg和Lpos)是已知的,無需辨識。對于中高敏感度參數,即表1中的階段1和階段2,認為單輛車各電池單體的對應參數相同,因此用當前車輛電池包各單體電壓、電流和溫度的均值進行辨識,且各參數在階段1時,相對階段2有更高的敏感度,要先進行辨識。對考慮老化的電化學模型提及的老化相關時變參數和低敏感度參數,即表1中的階段3,要基于電池單體電壓分別辨識。通過上述辨識流程,可獲得各單體電池對應的電化學參數。將辨識所得參數反填入電化學模型,并輸入真實工況下的電流和溫度,比較電化學模型輸出的仿真電壓和真實電壓,平均誤差小于12 mV,見圖3。

圖3 電壓估計圖Fig.3 Voltage estimation diagram
由于發生熱失控的車輛數據極少,且車端反饋的國標故障類別和預警級別通常與實際采集數據的分析結果不匹配,誤報、漏報較多,在分析熱失控車輛的數據后,應針對實車數據的特征和電化學參數組合確定閾值,進行故障分類。
分析動力電池內短路實驗及實車內短路故障的數據,發現電池發生內短路時,通常伴隨著電壓下降、異常溫升和熱失控等3個過程。具體到電化學特征和實車數據特征層面,表現為Rf減小,且電池包單點發生異常放熱,導致溫度探針的測量值不一致。結合實際熱失控車輛的數據和辨識得到的電化學參數,約定當電池包溫度探針極差大于5 ℃且Rf小于1.84×10-5Ω時,標注當前電池包存在內短路風險。
對于電池單體容量的異常衰減,根據文獻[4]分析考慮老化電化學模型中對應的老化相關時變參數,由式(13)-(15)計算各個單體電池在已知各個電化學參數下的負極容量,作為電池的老化衡量量(Q):
(13)
(14)
Q=min(Qneg,Qpos)
(15)
式(13)-(15)中:Qneg、Qpos分別為負極、正極容量;θp,0、θp,100分別為電池放空和滿電狀態的正極固相Li+濃度。
分析實車數據中的電化學參數,可得到各單體電池的老化程度。對電池動態特性較強的片段,不論工況如何,同一款車在相近時間內,各單體電池的老化現象很接近;而對靜置或充電部分較多的片段,辨識出的電化學參數代入式(13)計算得到的負極容量的不確定性較大,不能直接描述電池的老化程度。對動態特性較差的片段,標注為沒有容量異常衰減的征兆;對動態特性較豐富的數據片段,通過設定各單體電池負極容量極差閾值的方式,標注是否異常衰減,取得存在容量異常衰減風險的標簽。在實際預測時,由滑動窗口截取實車序列數據,在行駛過程中可檢測出存在單體電池過快老化征兆的車輛,不必擔心靜置或充電時無法檢測。
數據初篩可獲得不同電流電壓序列下電池的故障分類標簽。為避免模型在線上使用時,反復調用電化學模型影響效率,對原始實車數據片段和故障風險分類標簽構建輸入輸出訓練對,搭建基于一維CNN的深度學習模型,學習傳感器數據到電池故障分類的映射關系。模型結構見圖4。
從圖4可知,該網絡由向量嵌入層、特征抽取層、池化層和特征匯聚層等組成。由于輸入數據特征維度較高,且對于單體電池的電壓特征需要學習共性知識,首先要將輸入映射到低維特征空間中。由于輸入時序相關,使用門控循環網絡(GRU)進行特征低維嵌入。為了同時對短期和長期特征進行建模,基于文本一維卷積(TextCNN)模型結構,使用不同大小的卷積核分通道進行特征抽取,并連接最大池化層進行下采樣,對于小卷積核通路,采用全卷積網絡;堆疊卷積層并使用隨機神經元丟棄,增強模型的魯棒性;特征匯聚層的作用是將不同通道抽取的特征進行聚合,采用沿最后一個維度對齊的方式進行拼接,展開成一維向量并接批歸一化操作;最后,使用全連接層實現故障的分類。

圖4 故障分類模型神經網絡結構 Fig.4 Neural network structure of fault classification model
數據集與驗證集數據來自中汽研重慶采集的實車數據。車輛為重慶地區85輛純電動汽車,以轎車尤其是出租車為主,含故障車輛。基于Li(Ni0.8Co0.1Mn0.1)O2三元正極材料鋰離子電池(韓國產),標稱容量為152 Ah。測試集和驗證集數據涵蓋了各種工況(快充、慢充、靜置及各種特點的行駛、動態放電工況);分析時間戳和溫度數據可知,大部分數據的時間跨度超過1 a,溫度探針記錄的溫度為-3~55 ℃。
采用上述數據,按圖4的模型進行訓練。用式(16)、(17),在數據平衡后的測試集上計算各故障類別的準確率和召回率。式(18)結合準確率和召回率,評價故障診斷效果。
(16)
(17)
(18)
式(16)-(18)中:TP為實際發生故障且被正確預測的樣本個數;FP為未發生故障但預測錯誤的樣本個數;FN為未發生故障且被正確預測的個數;Pprecision為故障片段的分類精度;Rrecall為故障片段的召回率;F1為綜合考慮模型精確率和召回率的分數。
各個故障類別的準確率和召回率結果如表2所示。

表2 故障分類結果Table 2 Fault classification results
表2中的數據為實車數據對切分的數據片段故障類型進行分類的結果。從表2可知,分類模型的平均F1分數為0.841 1。通過調整損失函數,在保證精度不低于70%,即錯誤召回率不超過30%的前提下,故障樣本召回率可以提升至0.933 5。上述模型已部署于實際場景,并通過模型評審。
本文作者基于實車數據,使用電化學參數和實際數據的相關特征,對數據時間序列滑動窗口切分得到的片段進行標注。針對低采樣且云端場景下無檢測條件的問題,提出同類電化學參數初始化模型和分階段參數辨識的方法,以進行準確辨識,辨識后的模型,電壓預測值與電壓真實值平均誤差小于12 mV。
為避免在實際應用中對電化學參數進行實時辨識,構造數據集,使用一維CNN,在訓練集上學習實車數據片段到故障標簽之間的映射關系,平均F1分數為0.841 1。通過調整損失函數,故障平均召回率為0.933 5。