柏云耀,鄒時(shí)波,李頂根
(華中科技大學(xué) 能源與動(dòng)力工程學(xué)院,武漢 430074)
作為新興的車用動(dòng)力來源,鋰離子動(dòng)力電池在技術(shù)上依然存在一些問題和瓶頸,由于濫用導(dǎo)致的電池系統(tǒng)事故時(shí)有發(fā)生。電池濫用是動(dòng)力電池系統(tǒng)常見的故障類型,主要有過充電、在高溫環(huán)境下使用導(dǎo)致內(nèi)部過熱和電池殼體損壞導(dǎo)致內(nèi)部短路等幾種故障形式。因此,加快電動(dòng)汽車電池系統(tǒng)故障診斷和安全管理的研究就變得尤為重要[1-3]。
當(dāng)前,對(duì)于電池濫用故障的研究多采用實(shí)驗(yàn)室模擬的手段。常見方法主要包括采用針刺的方法模擬機(jī)械碰撞導(dǎo)致電池殼體損壞引發(fā)電池?zé)崾Э豙4],采用過充電或過放電的方式模擬電池濫用故障[5-6],采用烤箱或直接加熱的方式模擬電池在高溫環(huán)境下的濫用故障[7-8]。但這些方法均是在確定了濫用故障類型的情況下進(jìn)行試驗(yàn),對(duì)于實(shí)際使用中發(fā)生未知類型的濫用故障,這些方法缺乏有效的故障判別和檢測(cè)手段。同時(shí),實(shí)驗(yàn)中對(duì)于電池故障的判斷和分析主要依靠直觀的實(shí)驗(yàn)現(xiàn)象和簡(jiǎn)單的數(shù)據(jù)分析,對(duì)于動(dòng)力電池實(shí)際使用中發(fā)生濫用故障所產(chǎn)生的大量數(shù)據(jù)缺乏有效的處理手段。而在使用中產(chǎn)生大量電流、電壓等數(shù)據(jù)正是動(dòng)力電池系統(tǒng)的一大特征。
因此,為了克服一般實(shí)驗(yàn)手段對(duì)電池濫用故障類型缺乏有效判別方法和對(duì)故障產(chǎn)生的大量數(shù)據(jù)缺乏有效處理手段的弊端,本文提出了基于局部異常因子(local outlier factor, LOF)算法和感知器網(wǎng)絡(luò)的電池濫用故障診斷處理方法。利用LOF算法找出數(shù)據(jù)集中的異常數(shù)據(jù)點(diǎn),利用經(jīng)過算法處理后的數(shù)據(jù)對(duì)感知器進(jìn)行訓(xùn)練,在感知器中對(duì)數(shù)據(jù)集進(jìn)行快速分類,進(jìn)而判斷電池是否發(fā)生了濫用故障。
LOF算法是一種聚類分析方法。
圖1所示為一個(gè)聚散分布非常明顯的數(shù)據(jù)集。在這個(gè)數(shù)據(jù)集中,C1區(qū)域內(nèi)各點(diǎn)的距離比較平均,點(diǎn)密度及離散分布情況基本一致,可以視作同一簇?cái)?shù)據(jù)。同理,C2區(qū)域內(nèi)的點(diǎn)也可以認(rèn)為是同一簇?cái)?shù)據(jù)。而對(duì)于圖中的o1、o2點(diǎn),它們相對(duì)于 C1、C2區(qū)域內(nèi)的點(diǎn),與其他點(diǎn)的間距較大,相對(duì)孤立,可以視為異常數(shù)據(jù)點(diǎn)。LOF算法,正是一種能夠?qū)崿F(xiàn)在 C1和 C2這種密度差異巨大的數(shù)據(jù)集合中,找出異常點(diǎn)的通用性算法。
圖1 數(shù)據(jù)點(diǎn)分布圖Fig. 1 Data point distribution
下面簡(jiǎn)單介紹LOF算法的有關(guān)概念:
(1)在數(shù)據(jù)集中任取p、o兩點(diǎn),p點(diǎn)和o點(diǎn)之間的距離為d(p,o)。
(2)第k距離(k-distance)dk(p)。定義同時(shí)滿足:①在集合中至少有不包括 點(diǎn)p在 內(nèi) 的k個(gè) 點(diǎn)o′ ∈C{x≠p}, 滿 足d(p,o′)≤d(p,o);②在集合中至多有不包含點(diǎn)p在內(nèi)的k? 1個(gè)點(diǎn)o′ ∈C{x≠p},滿足d(p,o′)≥d(p,o)。簡(jiǎn)單來講,點(diǎn)p的第k距離,就是距離p點(diǎn)第k遠(yuǎn)的點(diǎn)到點(diǎn)p的距離,如圖2。圖中顯示的是p點(diǎn)的第5距離,即距離p點(diǎn)最近的5個(gè)點(diǎn)中,與p點(diǎn)距離最遠(yuǎn)的點(diǎn)到p點(diǎn)的距離。
圖2 點(diǎn)p的第5距離Fig. 2 The 5th-distance to p
(3)p點(diǎn)第k距離鄰域(k-distance neighborhood ofp)Nk(p),是在點(diǎn)p的第k距離以內(nèi)的所有點(diǎn),其中也包括第k距離的點(diǎn)。簡(jiǎn)單來講,就是以p點(diǎn)為圓心,op距離為半徑畫圓,圓內(nèi)及圓上所有除過p點(diǎn)的點(diǎn)都是點(diǎn)p的第k距離鄰域內(nèi)的點(diǎn)。
(4)可達(dá)距離(reach-distance)。點(diǎn)o到點(diǎn)p的第k可達(dá)距離定義為:
可以看出,點(diǎn)o到點(diǎn)p的第k可達(dá)距離,是點(diǎn)o的第k距離和o、p間真實(shí)距離這兩者中的最大值。距離點(diǎn)o最近的k個(gè)點(diǎn),o到它們的可達(dá)距離是相同的,都是dk(o)。
(5)局部可達(dá)密度(local reachability density,LRD)。點(diǎn)p的局部可達(dá)密度表示為:
在數(shù)學(xué)上,點(diǎn)p的局部可達(dá)密度表示為點(diǎn)p的第k鄰域內(nèi)點(diǎn)到p的平均可達(dá)距離的倒數(shù)。值得注意的是,公式中采用的平均可達(dá)距離,是鄰域點(diǎn)到p的平均可達(dá)距離,而不是點(diǎn)p到其領(lǐng)域點(diǎn)的平均可達(dá)距離,兩者不能混為一談。而對(duì)于重復(fù)點(diǎn),則要在計(jì)算時(shí)將其剔除。局部可達(dá)密度的含義可以理解為:這是一個(gè)表示數(shù)據(jù)點(diǎn)密度的值,值越大,數(shù)據(jù)越集中,則越可能屬于同一簇?cái)?shù)據(jù),相反,值越小,數(shù)據(jù)越分散,則越可能是異常點(diǎn)。如果p點(diǎn)和周圍鄰域點(diǎn)之間相互距離較小,很可能屬于同一簇?cái)?shù)據(jù),那么其可達(dá)距離就很可能是較小的,其可達(dá)距離之和也必然較小,密度值較高;相反,若p和周圍領(lǐng)域點(diǎn)相互距離較遠(yuǎn),那么可達(dá)距離則很可能是兩點(diǎn)間的真實(shí)距離,可達(dá)距離之和較大,密度較小,是離群點(diǎn)。
(6)局部異常因子(LOF)。點(diǎn)p的局部異常因子表示為:
上式的數(shù)學(xué)意義表示點(diǎn)p的鄰域點(diǎn)的局部可達(dá)密度與點(diǎn)p的局部可達(dá)密度之比的平均數(shù)。如果這個(gè)比值接近1,說明p點(diǎn)附近鄰域點(diǎn)的密度相差不大,p點(diǎn)很有可能和其領(lǐng)域點(diǎn)是同一簇?cái)?shù)據(jù);如果這個(gè)比值小于 1,說明p點(diǎn)附近數(shù)據(jù)點(diǎn)的密度更大,數(shù)據(jù)更密集,p為密集點(diǎn);反之,如果這個(gè)比值大于1,說明p點(diǎn)可達(dá)密度較其領(lǐng)域點(diǎn)較小,p點(diǎn)附近數(shù)據(jù)較少,或p點(diǎn)距離數(shù)據(jù)點(diǎn)較遠(yuǎn),更可能是異常點(diǎn)。
總的來說,LOF算法是一個(gè)通過比較每個(gè)點(diǎn)p和其鄰域點(diǎn)的密度的大小來判斷該點(diǎn)是否為異常點(diǎn)的算法。如果點(diǎn)p的密度越小,則點(diǎn)p附近的數(shù)據(jù)點(diǎn)越少,點(diǎn)p越可能是異常點(diǎn)。而密度主要是通過距離來計(jì)算的,點(diǎn)與點(diǎn)之間距離越近,密度則必然越大,距離越遠(yuǎn),密度必然越小。同時(shí),LOF算法主要計(jì)算數(shù)據(jù)點(diǎn)的第k鄰域距離,即只考慮第k距離的局部,而不需要全局計(jì)算,因此,對(duì)于多個(gè)局部分布的密集數(shù)據(jù)簇的處理具有很強(qiáng)的可靠性[9-12]。
本文數(shù)據(jù)主要來源于某整車企業(yè)車輛實(shí)際運(yùn)行數(shù)據(jù),記錄了電池發(fā)生濫用故障時(shí)的電壓、電流、電功率等數(shù)據(jù)的變化。使用局部異常因子算法對(duì)由于濫用導(dǎo)致內(nèi)部過熱的電池故障數(shù)據(jù)進(jìn)行分析處理,對(duì)照故障現(xiàn)象,確定故障引起的異常數(shù)據(jù)點(diǎn),將此數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)代入單層感知器(一種用于數(shù)據(jù)簡(jiǎn)單線性劃分問題的單層神經(jīng)網(wǎng)絡(luò))中進(jìn)行訓(xùn)練,將未知是否發(fā)生故障的另一組電池?cái)?shù)據(jù)作為待分類數(shù)據(jù)。利用訓(xùn)練好的感知器對(duì)該數(shù)據(jù)進(jìn)行分類,判斷是否發(fā)生故障。
選取電池內(nèi)部過熱數(shù)據(jù)進(jìn)行算法的驗(yàn)證分析。根據(jù)故障現(xiàn)象的說明,電池在13分5秒左右開始冒煙,在16分11秒時(shí)停止數(shù)據(jù)采集。電池故障前重量為41.125 g,電池發(fā)生故障后重量為34.825 g,這些現(xiàn)象說明在電池內(nèi)部過熱的情況下,電池本身發(fā)生了明顯變化,需要關(guān)注的正是從冒煙到結(jié)束這一階段的數(shù)據(jù)。
利用LOF算法對(duì)發(fā)生濫用故障的電池?cái)?shù)據(jù)進(jìn)行處理,依靠Matlab軟件,首先計(jì)算出在二維坐標(biāo)軸上任意兩點(diǎn)之間的距離,然后選取合適的第k距離,由于算例中數(shù)據(jù)樣本數(shù)量不多,極差不大,取k= 5,計(jì)算出任意點(diǎn)的第5距離(5-distance)和第5可達(dá)距離(reach-distance5),將 reach-distance5的結(jié)果帶入式(1),得到任意點(diǎn)在其第5領(lǐng)域內(nèi)的局部可達(dá)密度(LRD5),再將各點(diǎn)的LRD5代入式(2),得到k取5的情況下的各點(diǎn)局部異常因子(LOF5),結(jié)果如表1所示。
表1 發(fā)生濫用故障電池各數(shù)據(jù)點(diǎn)LOF值Table 1 LOF value of battery abuse failures
為便于直觀觀察,利用 Matlab軟件繪圖。如圖3所示。
圖3 發(fā)生濫用故障電池各數(shù)據(jù)點(diǎn)LOF值Fig. 3 LOF value of battery abuse failures
由于各數(shù)據(jù)點(diǎn)對(duì)應(yīng)的LOF值較小,在圖3中以各點(diǎn)所在位置為圓心,各點(diǎn)LOF值擴(kuò)大十倍后的值為直徑作圓,以便于觀察各點(diǎn)LOF值的大小。
利用表1的數(shù)據(jù)訓(xùn)練感知器。首先根據(jù)表1中電壓和功率各自的最大值和最小值作為初始數(shù)據(jù)創(chuàng)建感知器,然后將從70 s到670 s區(qū)域內(nèi)的正常數(shù)據(jù)的對(duì)應(yīng)期望輸出設(shè)置為1,從730 s到936 s區(qū)域內(nèi)的異常數(shù)據(jù)對(duì)應(yīng)期望輸出設(shè)置為 0。以表 1中各點(diǎn)的電壓和電功率作為訓(xùn)練數(shù)據(jù),其對(duì)應(yīng)的期望輸出值作為目標(biāo)向量代入感知器對(duì)感知器進(jìn)行訓(xùn)練,獲得合適的權(quán)值和偏移量,使感知器具有數(shù)據(jù)分類能力,最后將需要判斷是否發(fā)生故障的電池?cái)?shù)據(jù)代入感知器中進(jìn)行分類。分類結(jié)果如表2所示。
表2 未知故障電池?cái)?shù)據(jù)感知器分類結(jié)果Table 2 Data perceptron classification results of the heating experiment of unknown failure battery
利用Matlab軟件對(duì)感知器分類結(jié)果繪圖,如圖4。在圖4中,感知器輸出結(jié)果為0的是故障導(dǎo)致的異常數(shù)據(jù)點(diǎn),用“o”表示;輸出結(jié)果為1的是工作正常的數(shù)據(jù)點(diǎn),用“+”表示。圖中的分界線,是以訓(xùn)練后的感知器的權(quán)值為斜率,偏移量為截距的一次曲線。
另外,為了驗(yàn)證方法的可靠性,采集一組正常電池充電數(shù)據(jù)作為對(duì)照組。代入感知器進(jìn)行分類,結(jié)果如表3。
圖4 未知故障電池加熱實(shí)驗(yàn)數(shù)據(jù)感知器分類結(jié)果Fig. 4 Data perceptron classification results of the heating experiment of unknown failure battery
表3 對(duì)照組數(shù)據(jù)感知器分類結(jié)果Table 3 Data perceptron classification results of control group
利用Matlab分類結(jié)果如圖5所示。
圖5 對(duì)照組數(shù)據(jù)感知器分類結(jié)果Fig. 5 Data perceptron classification results of control group
根據(jù)表1和圖3所示,大部分?jǐn)?shù)據(jù)的LOF值都約為1,而從670 s到936 s故障發(fā)生后采集到的數(shù)據(jù)點(diǎn)的LOF值都較大,均大于1,在圖3中,這部分?jǐn)?shù)據(jù)也脫離故障發(fā)生前正常數(shù)據(jù)所在的集中區(qū)域,是離散分布的異常數(shù)據(jù)點(diǎn)。同時(shí),伴隨故障發(fā)生時(shí)間增長(zhǎng),故障發(fā)展程度深入,對(duì)應(yīng)數(shù)據(jù)點(diǎn)的LOF值也逐漸增大,偏離正常數(shù)據(jù)集中區(qū)域的距離增大。處理結(jié)果符合實(shí)驗(yàn)現(xiàn)象,證明利用LOF算法篩選故障數(shù)據(jù)點(diǎn)的方法是可行的。
根據(jù)表2、表3、圖4和圖5所示,發(fā)生濫用故障的電池?cái)?shù)據(jù)經(jīng)過感知器處理后,正常工作時(shí)采集的數(shù)據(jù)輸出結(jié)果為 1,發(fā)生故障后采集的數(shù)據(jù)輸出結(jié)果為 0,位于分界線的上方。對(duì)照組數(shù)據(jù)分類結(jié)果表明,正常充電數(shù)據(jù)經(jīng)過感知器分類后的結(jié)果均為代表工作正常的“1”。證明訓(xùn)練后的感知器分類結(jié)果是有效的。
分類結(jié)果與實(shí)驗(yàn)現(xiàn)象相吻合,證明經(jīng)過訓(xùn)練的單層感知器網(wǎng)絡(luò)對(duì)于電池是否發(fā)生濫用故障具有判斷功能。將待診斷的電池?cái)?shù)據(jù)代入感知器進(jìn)行處理,若輸出結(jié)果均為 1,表明電池未發(fā)生故障,工作正常。若輸出結(jié)果中有“0”輸出,表明電池發(fā)生了故障。同時(shí),根據(jù)感知器的分類結(jié)果,能夠確定具體的異常數(shù)據(jù)點(diǎn)及其范圍,確定電池故障開始的時(shí)間和發(fā)展的時(shí)間,在本次實(shí)驗(yàn)中,感知器得出的故障開始時(shí)間為730 s,實(shí)際試驗(yàn)中為785 s,判斷誤差為55 s,具有參考價(jià)值。因此,結(jié)合LOF算法的處理結(jié)果和實(shí)驗(yàn)現(xiàn)象,能夠估計(jì)電池故障發(fā)展的深度,推斷電池狀態(tài)。
以動(dòng)力電池系統(tǒng)濫用故障為主要研究對(duì)象,基于LOF算法和單層感知器網(wǎng)絡(luò)等數(shù)據(jù)分析手段,提出了一種電池濫用故障的診斷方法。經(jīng)過實(shí)驗(yàn)數(shù)據(jù)驗(yàn)證,得出以下結(jié)論:
采用 LOF算法和感知器相結(jié)合的數(shù)據(jù)處理方法,可以快速確定數(shù)據(jù)集中的異常數(shù)據(jù)點(diǎn)。能夠有效幫助研究人員快速處理大量數(shù)據(jù),并針對(duì)異常數(shù)據(jù)進(jìn)行研究。
感知器分類根據(jù)相同類型故障引起的異常數(shù)據(jù)間的關(guān)聯(lián)性,能夠有效判斷電池是否發(fā)生故障,故障的類型以及故障發(fā)生的時(shí)間及進(jìn)行深度??梢詾檫M(jìn)一步的故障研究提供參考依據(jù)。
由于單層感知器只有單一的權(quán)值和偏移量,因此對(duì)具有復(fù)雜關(guān)聯(lián)性的數(shù)據(jù)處理能力不足。作者下一步將引入多層感知器和深度學(xué)習(xí),進(jìn)一步提高該方法的數(shù)據(jù)處理能力。