趙翠榮
(安徽文達信息工程學(xué)院,安徽 合肥 231201)
隨著汽車數(shù)量的不斷攀升,由于汽車發(fā)生故障而造成的交通安全問題日益突出,這對汽車故障預(yù)測技術(shù)提出了更高的挑戰(zhàn)。目前大多數(shù)設(shè)備仍然停留在設(shè)備診斷技術(shù)水平,無法充分管理設(shè)備“健康”,只是在故障發(fā)生后,及時定位和修復(fù)故障。汽車的故障診斷技術(shù)為汽車故障預(yù)測提供了一些借鑒,從最初的人工經(jīng)驗診斷到簡單儀器檢測診斷,再到精密檢測診斷,再到近些年興起的人工智能診斷,汽車故障診斷技術(shù)得到了長足發(fā)展。
智能化應(yīng)用于汽車故障診斷,基本消除了人為的判斷失誤,提高了診斷的準確性及精度,這為汽車故障預(yù)測的發(fā)展提供的充分的技術(shù)支持,使得故障預(yù)測技術(shù)逐漸成熟并趨于實用。
汽車故障是指汽車中的零部件或整個系統(tǒng)失去原有性能甚至是功能的現(xiàn)象。汽車故障按照對汽車性能影響的程度,可以分為功能性故障和參數(shù)性故障。功能性故障主要是針對汽車已經(jīng)不能完成最初設(shè)計所提供的功能,比如行駛跑偏、發(fā)動機不能啟動等;參數(shù)故障是指汽車的相關(guān)性能參數(shù)不符合規(guī)定指標,由于參數(shù)性故障造成的后果的嚴重程度不一,一般又可以分為輕微故障、一般故障、嚴重故障和致命故障[1][2]。
引起汽車故障的因素是錯綜復(fù)雜的,每個故障都可能由多種原因共同作用而引起的,傳統(tǒng)的汽車故障分析是建立在人工現(xiàn)場檢測的基礎(chǔ)上,對人工推理和判斷有極大的依賴,這不僅會引入大量主觀判斷的誤差,還大大加重了相關(guān)人員的工作負擔(dān)。同時,這種方法在面對越來越復(fù)雜的汽車系統(tǒng)時也逐漸顯得力不從心,所以尋求一種智能手段實現(xiàn)對汽車的全面準確的故障分析與預(yù)測已經(jīng)迫在眉睫。
目前業(yè)界對故障診斷技術(shù)的關(guān)注度比故障預(yù)測要高,一方面是故障類型繁多,預(yù)測困難,另一方面是故障預(yù)測是建立在對大量數(shù)據(jù)的分析的基礎(chǔ)上,而故障發(fā)生概率往往較小,數(shù)據(jù)采集不易。但是由于故障診斷的局限性,故障預(yù)測技術(shù)必然成為汽車故障分析的關(guān)鍵技術(shù)。故障診斷是在系統(tǒng)發(fā)生故障后,通過相應(yīng)的方法和手段通知用戶,因此故障診斷主要針對事后維修而開展的。事后維修是以系統(tǒng)已經(jīng)發(fā)生的故障為依據(jù),通過維修以恢復(fù)系統(tǒng)的正常功能或性能。然而,事后維修是最原始的維修方式,有可能會出現(xiàn)一種情況,即當(dāng)一個部件出現(xiàn)故障時,它會損壞其他部件,甚至毀壞整個系統(tǒng)或危及人身安全。這是一個只有通過故障預(yù)測技術(shù)才能解決的難題。汽車故障預(yù)測的研究目前主要集中在回歸分析、時間序列分析、模糊理論以及神經(jīng)網(wǎng)絡(luò),然而這些方法在樣本小、不確定性高的情況下,無法達到實際要求。因此需要一種在基于小樣本的概率推理方法來實現(xiàn)汽車故障預(yù)測。
故障預(yù)測是以當(dāng)前的狀態(tài)為起點,對未來可能會出現(xiàn)的故障進行預(yù)測,向用戶及時提出警告,以便能夠采取相應(yīng)手段避免惡性故障的發(fā)生,從而達到及時的故障預(yù)測和有效的汽車健康管理。然而,由于汽車故障類型繁多,要想在汽車故障暴露之前就及時察覺,需要于眾多不確定性和不完整性中得出較為確定的結(jié)論,這無疑需要進行基于概率的研究。通過支持向量機(Support Vector Machine,SVM)能夠得到當(dāng)前狀態(tài)在不同故障類型上的概率,并實現(xiàn)對單一故障的分類,從而完成故障預(yù)測的第一步:分類和概率提取[3][4][5]。
支持向量機 (Support Vector Machine,SVM)是一種研究有限樣本情況下機器學(xué)習(xí)的統(tǒng)計學(xué)習(xí)方法,它建立在統(tǒng)計學(xué)習(xí)理論和結(jié)構(gòu)風(fēng)險最小化的基礎(chǔ)之上,通過保持經(jīng)驗風(fēng)險值固定并最小化置信范圍來實現(xiàn)結(jié)構(gòu)風(fēng)險最小化,能夠較好地解決小樣本的學(xué)習(xí)問題。從理論上說,支持向量機得到的是全局最優(yōu)點,從而避免了神經(jīng)網(wǎng)絡(luò)方法的局部極值問題。故障發(fā)生本身屬于小概率事件,樣本一般較少,這是支持向量機用于故障預(yù)測領(lǐng)域的突出優(yōu)勢所在[6]。
已知某汽車故障訓(xùn)練樣本
其中,xi∈X=Rn,xi=Y(jié)= {1,-1 },i=1,…,l, l為樣本容量,n為故障預(yù)測特征向量的位數(shù),并設(shè)系統(tǒng)故障種類數(shù)為m。
選取“一對多”的多類故障分類器,建立SVM故障預(yù)測模型的步驟為:
(1)數(shù)據(jù)準備:
①對訓(xùn)練數(shù)據(jù)進行歸一化處理,以消除數(shù)據(jù)由于數(shù)量級及量綱帶來的影響;
②調(diào)整yi:若故障屬于第p類,則對于第p類而言,yi=1,對于不屬于第p類的所有樣本yi=1。每建立一個SVM,p值就發(fā)生一次變化。對于m類的多類分類問題,p值依次取值為1,2,…,m。
(2)建立m類故障的SVM分類器:
把訓(xùn)練樣本通過核函數(shù)映射到高維特征空間,選擇適當(dāng)?shù)暮撕瘮?shù)和懲罰參數(shù)C,對訓(xùn)練樣本求解如下的二次規(guī)劃問題,以獲得(ω*,b*)及其對應(yīng)的支持向量α*:
重復(fù)進行步驟(2)共 m 次,得到 1,2,…,m個故障分類模型SVMm。
(3)故障分類:
利用訓(xùn)練獲得的模型,根據(jù)故障輸入模式,判斷故障類型。第p個模型的輸出等于1,則有第p類故障發(fā)生;若第p個模型的輸出等于-1,則無第p類故障發(fā)生。訓(xùn)練好的故障分類器,對每一個測試樣本,應(yīng)該只有一個SVM分類器的輸出為1。若出現(xiàn)多個SVM分類器的輸出為1,則SVM的分類模型要重新訓(xùn)練。
利用臺灣林智仁教授的liblinear軟件包進行Matlab分析,主要針對五類故障進行分類,即發(fā)動機熄火、軸承老化、漏油、發(fā)動機過熱和離合器打滑。 賦予這五類故障的標簽分別為:0,1,2,3,4。通過對多類傳感器獲得的數(shù)據(jù)的分析,提取出故障分類的特征向量,主要包括汽車行駛速度、發(fā)動機溫度、油箱溫度和壓強,以及指定時間內(nèi)耗油量等物理量。在發(fā)生故障之后,將發(fā)生故障前20分鐘的數(shù)據(jù)作為原始數(shù)據(jù),經(jīng)過濾波去除噪聲,然后提取特征值,再輸入到SVM分類器中。得到的分類結(jié)果如圖1所示:
圖1 不同故障測試樣本點分類結(jié)果
顯然,利用SVM對單獨一種汽車故障進行分類是有效的,五類故障的識別率基本都在90%以上。圖中所示的漏油和離合器打滑出現(xiàn)了誤識別,不過總體識別率依然很高。然而為了避免故障分析的局限性,生成完整的汽車故障預(yù)測報告,必須得到所有故障在未來發(fā)生的趨勢,并確定它們之間的相互影響的程度。通過軟件包中的predict函數(shù)的返回值提取汽車某一時刻的狀態(tài)在不同種類故障上的概率值,作為接下來推理系統(tǒng)的輸入[7]。
貝葉斯網(wǎng)絡(luò)(Bayesian Network,BN)是一種概率網(wǎng)絡(luò),它是基于概率推理的圖形化網(wǎng)絡(luò),而貝葉斯公式為概率網(wǎng)絡(luò)提供堅實的數(shù)學(xué)基礎(chǔ)。貝葉斯網(wǎng)絡(luò)是基于概率推理的數(shù)學(xué)模型,所謂概率推理就是通過一些變量的信息來獲取其他變量的概率信息的過程,基于概率推理的貝葉斯網(wǎng)絡(luò)是為了解決不確定性和不完整性問題而提出的,它對于解決復(fù)雜設(shè)備不確定性和關(guān)聯(lián)性引起的故障有很大的優(yōu)勢。在汽車故障預(yù)測問題中,不同故障的相互影響、不同部件的關(guān)聯(lián)特性以及信息不完整等特性使得貝葉斯網(wǎng)絡(luò)在汽車故障預(yù)測中具有極大的優(yōu)勢[8]。
通過SVM分類器已經(jīng)得到汽車當(dāng)前狀態(tài)在不同故障類型上的概率,首先構(gòu)建好整個推理網(wǎng)絡(luò)結(jié)構(gòu),并將這些概率作為故障預(yù)測推理網(wǎng)絡(luò)父節(jié)點的先驗概率,同時完成條件概率表設(shè)計,即可完成整個汽車故障預(yù)測推理系統(tǒng)的構(gòu)建。如圖2所示:
隨著汽車逐漸接近故障狀態(tài),如發(fā)動機出現(xiàn)異常,溫度逐步走高,那么從數(shù)據(jù)中提取出的特征值中發(fā)動機水溫值必然越來越大,SVM分類器得到相關(guān)概率值也會增大,那么貝葉斯網(wǎng)絡(luò)就會將新的證據(jù)加載到網(wǎng)絡(luò)中。然后,證據(jù)就會在整個網(wǎng)絡(luò)中傳播,進而更新整個網(wǎng)絡(luò)。實測數(shù)據(jù)中,當(dāng)發(fā)動機水溫達到時,可以確定發(fā)動機過熱概率為100%,利用貝葉斯網(wǎng)絡(luò)的消息傳播原理可以更新整個網(wǎng)絡(luò)進而得到汽車發(fā)生故障的概率為87.64%,顯然這是一個比較高的概率值,與閾值75%相比較即可判斷汽車即將發(fā)生故障需要立刻維修,達到故障預(yù)測保證安全駕駛的目的。更新之后的推理網(wǎng)絡(luò)如圖3所示:
圖2 汽車故障預(yù)測貝葉斯推理網(wǎng)絡(luò)
圖3 更新后的汽車故障預(yù)測貝葉斯推理網(wǎng)絡(luò)
通過將不同的綜合故障概率值與從經(jīng)驗中提取的閾值相比較,就可以得出汽車當(dāng)前狀態(tài)在未來發(fā)生故障的可能性和變化過程,進而完成對汽車故障的預(yù)測。
汽車故障預(yù)測系統(tǒng)實現(xiàn)主要包括以下幾部分:實時接收數(shù)據(jù)、數(shù)據(jù)預(yù)處理、特征值提取、計算分類概率值、完成網(wǎng)絡(luò)構(gòu)建,輸出故障預(yù)測報告。 利用 MFC(Microsoft Foundation Class)編寫汽車故障預(yù)測系統(tǒng)軟件,最終從實時性和準確性兩個方面對軟件進行性能測試。
汽車故障預(yù)測系統(tǒng)主要分為三大部分:數(shù)據(jù)接收與結(jié)果顯示、分類器和推理機,其中推理機為整個預(yù)測系統(tǒng)的核心,完成故障預(yù)測的主要工作。功能框架圖如圖4所示:
圖4 汽車故障預(yù)測系統(tǒng)功能框架圖
圖5 汽車故障預(yù)測系統(tǒng)流程圖
汽車故障預(yù)測系統(tǒng)的工作流程即是通過逐步實現(xiàn)功能框圖中各個功能模塊,進而完成故障預(yù)測。通過接口實時接收各個傳感器數(shù)據(jù),通過濾波去除噪聲干擾,進而利用界面顯示當(dāng)前汽車狀態(tài)。從大量數(shù)據(jù)中提取相關(guān)特征值,構(gòu)成特征向量,輸入到分類器中進行訓(xùn)練,得到狀態(tài)在不同故障類型上的概率值,再作為輸入傳入貝葉斯網(wǎng)絡(luò)推理機,從更新后的網(wǎng)絡(luò)中提取感興趣的概率值,再和數(shù)據(jù)庫中相關(guān)閾值進行比較,便能得出當(dāng)前狀態(tài)下的汽車在未來發(fā)生故障的分析報告[9][10]。系統(tǒng)流程圖如圖5所示:
基于Visual C++6.0平臺,利用MFC完成汽車故障預(yù)測系統(tǒng)設(shè)計,主要完成兩部分工作:
①界面設(shè)計:汽車狀態(tài)顯示和故障預(yù)測報告顯示,同時還提供讀取離線數(shù)據(jù)和同步實時數(shù)據(jù)的功能;
②算法實現(xiàn):完成數(shù)據(jù)預(yù)處理、提取特征值、實現(xiàn)分類器以及完成推理。在利用貝葉斯網(wǎng)絡(luò)進行推理時,最重要的即可輸入證據(jù)信息完成推理網(wǎng)絡(luò)更新,核心代碼如下:
界面如圖6所示:
圖6 汽車故障預(yù)測系統(tǒng)顯示界面
隨著汽車產(chǎn)業(yè)的蓬勃發(fā)展,汽車安全越來越成為人們關(guān)注的焦點,這為汽車故障預(yù)測技術(shù)提供了廣闊的舞臺。本文基于對大量汽車故障狀態(tài)前20分鐘的數(shù)據(jù)的分析,通過支持向量機提取在不同故障類型上的概率值,輸入貝葉斯網(wǎng)絡(luò)進行推理,進而實現(xiàn)對汽車綜合故障的預(yù)測,輸出分析報告。這不僅大大提高了汽車的安全性,而且也為汽車的高度智能化提供了新的思路。最后編寫軟件實現(xiàn)汽車故障預(yù)測系統(tǒng),同時對系統(tǒng)的實時性和準確性進行了分析,證明了基于支持向量機的汽車故障預(yù)測貝葉斯網(wǎng)絡(luò)推理系統(tǒng)在實際環(huán)境中實用性和適應(yīng)性[11]。
[1]高小煥.基于神經(jīng)網(wǎng)絡(luò)的汽車故障診斷研究[D].西安:西北大學(xué),2013:36-43.
[2]余梓唐.基于粒子群算法優(yōu)化支持向量機汽車故障診斷研究[J].計算機應(yīng)用研究,2012,(2):572-574.
[3]楊天社,楊開忠,李懷祖.基于粗糙集理論的衛(wèi)星故障診斷方法[J].空間科學(xué)學(xué)報,2003,(4).
[4]周志才,劉東風(fēng),石新發(fā).故障預(yù)測與健康管理在艦用柴油機中的應(yīng)用[J].兵工自動化,2014,(1):29-31.
[5]趙體兵,董賀.采煤機故障診斷與故障預(yù)測研究[J].中國機械,2014,(11).
[6]Christopher M.Bishop.Pattern Recognition and Machine Learning[M].Springer,2006:95-129.
[7]李航.統(tǒng)計學(xué)習(xí)方法[M].北京:清華大學(xué)出版社,2013:37-53.
[8]肖秦琨,高嵩,高曉光.動態(tài)貝葉斯網(wǎng)絡(luò)推理學(xué)習(xí)理論及應(yīng)用[M].北京:國防工業(yè)出版社,2007:78-112.
[9]潘明清.基于支持向量機的機械故障模式分類研究[D].杭州:浙江大學(xué),2005:29-80.
[10]劉琦烽.基于支持向量機的汽車ABS系統(tǒng)故障診斷[D].長春:吉林大學(xué),2011:37-49.
[11]楊婷,楊根科,潘常春.基于 BP 神經(jīng)網(wǎng)絡(luò)的汽車故障率預(yù)測[J].計算機仿真,2009,(1):267-270.