陳財(cái)森,胡海榮,程志煒,房璐璐
(1.陸軍裝甲兵學(xué)院演訓(xùn)中心,北京 100072; 2.陸軍裝甲兵學(xué)院信息通信系,北京 100072;3.32167部隊(duì),西藏 拉薩 850000)
為了打贏信息化戰(zhàn)爭,裝備保障技術(shù)同樣也需要信息化。發(fā)動機(jī)是裝甲裝備的核心部件,直接關(guān)乎到裝甲裝備的作戰(zhàn)能力。傳統(tǒng)的故障診斷技術(shù)已經(jīng)不適用于大規(guī)模裝甲裝備的故障診斷,在信息化條件下,結(jié)合人工智能技術(shù)對故障進(jìn)行預(yù)測判斷,高效率高準(zhǔn)確率地定位故障可以提高裝備保障的質(zhì)量,才能快速恢復(fù)戰(zhàn)斗力。
1985年,美國的通用汽車公司就已經(jīng)開始對汽車的發(fā)動機(jī)故障診斷進(jìn)行研究[1],此后,一些發(fā)達(dá)國家的汽車發(fā)動機(jī)故障診斷系統(tǒng)也得到迅速發(fā)展。我國的發(fā)動機(jī)故障診斷技術(shù)研究起步較晚,但到目前為止,我國的發(fā)動機(jī)故障診斷技術(shù)也已經(jīng)相對成熟。文獻(xiàn)[2,3]利用神經(jīng)網(wǎng)絡(luò)對發(fā)動機(jī)的故障進(jìn)行預(yù)測,并能確定故障的原因。文獻(xiàn)[4]利用波形和數(shù)據(jù)流診斷汽車發(fā)動機(jī)的電控系統(tǒng)故障。故障診斷技術(shù)發(fā)展到現(xiàn)在,雖然結(jié)合了新的分析方法,如BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)SVM(Support Vector Machine)和貝葉斯分布等算法,但是預(yù)測的準(zhǔn)確率仍然不高,且由于應(yīng)用對象不同,其技術(shù)還無法直接應(yīng)用在裝甲裝備發(fā)動機(jī)的故障診斷上。
發(fā)動機(jī)運(yùn)行時(shí),傳感器會采集發(fā)動機(jī)的各種參數(shù),這些參數(shù)被稱為數(shù)據(jù)流,包括發(fā)動機(jī)的節(jié)氣門開度、轉(zhuǎn)速、氧傳感器等參數(shù)。本文采集如表1所示的9個(gè)典型的發(fā)動機(jī)參數(shù)進(jìn)行分析。
Table 1 Typical engine parameters表1 發(fā)動機(jī)典型參數(shù)
通過分析表1所示的9個(gè)參數(shù),能夠確定6種故障,分別是空氣流量計(jì)故障、氧傳感器故障、水溫傳感器故障、節(jié)氣門故障、噴油器故障和空氣濾清器故障。不同的傳感器采集數(shù)據(jù)的單位不一致,導(dǎo)致這些數(shù)據(jù)無法直接使用。因此,在使用數(shù)據(jù)前,必須對其進(jìn)行預(yù)處理,以免某一個(gè)參數(shù)的巨大變化導(dǎo)致模型預(yù)測失真。通過采集大量的發(fā)動機(jī)參數(shù)信息與故障信息,訓(xùn)練出一個(gè)合理的預(yù)測模型,然后直接輸入傳感器參數(shù)的數(shù)據(jù)快速準(zhǔn)確地得到故障類型。
劍橋大學(xué)Yang教授[5]在2010年提出一種模擬蝙蝠捕獲獵物時(shí)使用超聲波的啟發(fā)式搜索算法,被稱為蝙蝠算法BA(Bat Algorithm)。蝙蝠在利用超聲波判斷獵物的過程中,如果靠近獵物,其發(fā)出的脈沖數(shù)量將會增加,并且響度會減小,直到蝙蝠捕獲獵物。蝙蝠尋找獵物的過程可轉(zhuǎn)換為尋找最優(yōu)解的問題。蝙蝠算法將每一個(gè)蝙蝠作為搜索空間的一個(gè)解,通過蝙蝠隨機(jī)飛行產(chǎn)生的適應(yīng)值來尋找下一次迭代的最優(yōu)值,當(dāng)蝙蝠隨機(jī)飛行產(chǎn)生的適應(yīng)值優(yōu)于飛行之前的適應(yīng)值,則更改蝙蝠的位置,否則保持蝙蝠的位置不變,將在下一次迭代中繼續(xù)隨機(jī)飛行,直到得到比當(dāng)前蝙蝠的適應(yīng)值更優(yōu)的位置。所以,蝙蝠總是朝著最優(yōu)解前進(jìn),最終收斂于問題的最優(yōu)解。與遺傳算法和粒子群優(yōu)化算法相比,蝙蝠算法的效率和準(zhǔn)確率都有明顯的提高[6]。在算法循環(huán)迭代過程中,通過改變蝙蝠的速度、響度和頻率來尋找局部最優(yōu)解,直到局部最優(yōu)解收斂或者完成指定迭代次數(shù)。
算法1蝙蝠算法BA
輸入:所有蝙蝠的位置xi,所有蝙蝠的速度vi。
輸出:最優(yōu)蝙蝠的位置xbest。
步驟1初始化蝙蝠位置xi和蝙蝠的初始速度vi,其中i∈[1,n],n為種群的數(shù)量。
步驟2初始化種群飛行時(shí)脈沖響度Ai、脈沖發(fā)射率ri及脈沖頻率fi,并確定頻率搜索范圍[fmin,fmax],根據(jù)適應(yīng)值函數(shù)計(jì)算初始化蝙蝠種群的適應(yīng)值,并記錄最優(yōu)適應(yīng)值fitnessbest和最優(yōu)位置xbest。
fi=fmin+(fmax-fmin)β
(1)
(2)
(3)
其中,β∈[0,1]是服從均勻分布的隨機(jī)數(shù),xbest為全局最優(yōu)位置。
步驟4生成一個(gè)隨機(jī)數(shù)rand1,如果rand1大于脈沖發(fā)射率ri,對最優(yōu)蝙蝠位置xbest進(jìn)行擾動,產(chǎn)生新值進(jìn)行替換,以降低算法陷入局部最優(yōu)的概率。擾動公式如式(4)所示:
(4)
其中,ε是[0,1]的隨機(jī)數(shù),A(t)是當(dāng)前時(shí)刻t時(shí)所有蝙蝠脈沖響度的平均值。
步驟5再次生成一個(gè)隨機(jī)數(shù)rand2,如果rand2小于脈沖響度Ai且更新后的位置適應(yīng)值fitnessi (5) (6) 其中,α∈(0,1),γ>0。 步驟6重復(fù)執(zhí)行步驟3~步驟5,直至滿足設(shè)定的最優(yōu)解xi的條件或者達(dá)到最大迭代次數(shù)。 步驟7輸出全局最優(yōu)適應(yīng)值和最優(yōu)解。 ti=y(x;ω)= (7) 其中,ωi表示權(quán)重,δ是服從N(0,σ)分布的噪聲,x表示位置矩陣,ω表示權(quán)重向量,K(x,xi)是核函數(shù),Φ(x)由N×(N+1)階的核函數(shù)構(gòu)成,如式(8)所示: (8) 本文假設(shè)ti服從獨(dú)立分布,樣本的概率表達(dá)式如式(9)所示: p(t|ω,σ2)= (9) 其中,t表示ti的矩陣。為防止ω和σ2過渡擬合,一般使用高斯先驗(yàn)概率分布對參數(shù)進(jìn)行約束,如式(10)所示: (10) 其中α為N+1維超參數(shù)向量。 后驗(yàn)分布基于Bayes公式,如式(11)和式(12)所示: p(ω|t,α,σ2)=(2π)-(N+1)/2|Σ|-1/2× (11) μ=σ-2ΣΦ(x)2t Σ=(σ-2Φ(x)TΦ(x)+A)-1 (12) A=diag(α0,α2,…,αN) 這里統(tǒng)一使用超參數(shù)表示,RVM的概率表達(dá)式p(t|α,σ2)的定義如式(13)所示: (2π)-(N+1)/2|σ2Ι+Φ(x)A-1Φ(x)T|-1/2× (13) 最后求解p(t|α,σ2)的最大值,如式(14)所示: p(t|α,σ2)∝p(t|α,σ2)p(α)p(σ2) (14) 從而得到求解最大值的公式,如式(15)所示: (15) 設(shè)新的輸入和輸出為(x*,t*),通過以上分析,輸出t*的均值和方差如式(16)和式(17)所示: y*=μTΦ(x*) (16) (17) 核函數(shù)能夠?qū)?fù)雜難分的數(shù)據(jù)映射到高維空間,使數(shù)據(jù)更容易區(qū)分,RVM常用的核函數(shù)有: (1)高斯核函數(shù):對樣本數(shù)據(jù)的維度和大小沒有限制,局部尋優(yōu)能力較強(qiáng),應(yīng)用較為廣泛,如式(18)所示: (18) 其中,p和q是空間中任意2點(diǎn)的向量表示。 (2)多項(xiàng)式核函數(shù):與高斯核函數(shù)相比,多項(xiàng)式核函數(shù)的全局尋優(yōu)能力更強(qiáng),但是參數(shù)n調(diào)節(jié)過大時(shí),容易產(chǎn)生過擬合現(xiàn)象,且需要消耗大量的計(jì)算資源,如式(19)所示: K(p,q)=(apTq+c)d (19) 其中,a表示調(diào)節(jié)參數(shù),c用來設(shè)置核函數(shù)中的coef,d表示最高次項(xiàng)次數(shù)。 (3)拉普拉斯核函數(shù):是高斯核函數(shù)的一個(gè)變種,具有降低核參數(shù)敏感性的特征,如式(20)所示: (20) 在RVM訓(xùn)練的過程中,通過迭代得到最終的模型權(quán)重值,再根據(jù)式(7)進(jìn)行分類。文獻(xiàn)[7]在求RVM參數(shù)時(shí),通常把核矩陣剪枝閾值設(shè)置為107,終止迭代閾值設(shè)置為10-3,以便在有限迭代中盡早獲取合適的參數(shù)。 RVM算法的核心是獲取一個(gè)合適的參數(shù),因此核函數(shù)的選擇對RVM算法分類結(jié)果的影響特別大,將直接影響RVM的判斷準(zhǔn)確率。本文使用BA作為核函數(shù)來尋找RVM的最優(yōu)參數(shù)。 算法2BA-RVM算法 輸入:BA和RVM算法參數(shù)。 輸出:xbest。 步驟1初始化BA和RVM算法的參數(shù),并按照Tipping[7]的經(jīng)驗(yàn)值設(shè)置核矩陣剪枝閾值。 步驟2確定RVM的目標(biāo)函數(shù),把BA中的蝙蝠作為當(dāng)前RVM核參數(shù)寬度計(jì)算目標(biāo)的值,得到最優(yōu)位置xbest。 步驟3對蝙蝠的速度vi和位置xi進(jìn)行隨機(jī)更新。 步驟4計(jì)算蝙蝠的目標(biāo)函數(shù)值,如果優(yōu)于目標(biāo)函數(shù)值xbest,則更新局部最優(yōu)位置xbest。 步驟5重復(fù)步驟3和步驟4,直到迭代次數(shù)達(dá)到最大或滿足RVM的閾值條件。 基于BA算法自適應(yīng)核參數(shù)RVM的流程如圖1所示。 Figure 1 Flow chart of adaptive kernel parameter RVM based on BA 圖1 基于BA自適應(yīng)核參數(shù)RVM的流程圖 發(fā)動機(jī)傳感器采集的每個(gè)參數(shù)的量綱和單位不一樣,如果不對數(shù)據(jù)進(jìn)行預(yù)處理,將會導(dǎo)致數(shù)值大的參數(shù)對結(jié)果影響過大,所以在數(shù)據(jù)分析前,需要對樣本數(shù)據(jù)進(jìn)行歸一化處理,以保證實(shí)例各參數(shù)值處于同一個(gè)數(shù)量級,消除不同量綱之間的差異。通常歸一化有線性歸一化(Min-Max Scaling)和Z-score標(biāo)準(zhǔn)化(Z-score Standardization)2種方法: (1)線性歸一化,如式(21)所示: (21) 其中,Xi表示樣本實(shí)例數(shù)據(jù),Xmin表示樣本實(shí)例數(shù)據(jù)的最小值,Xmax表示樣本實(shí)例數(shù)據(jù)的最大值,X*表示歸一化處理后的數(shù)據(jù)。這種歸一化也叫做離差標(biāo)準(zhǔn)化,通過對樣本實(shí)例數(shù)據(jù)進(jìn)行線性變化,使處理后的數(shù)據(jù)值在[0,1]。這種方法適合樣本實(shí)例數(shù)據(jù)比較穩(wěn)定,沒有異常極端值的情況。 (2)Z-score標(biāo)準(zhǔn)化,如式(22)所示: (22) 其中,Xi表示樣本實(shí)例數(shù)據(jù),μ表示樣本實(shí)例數(shù)據(jù)的均值,σ表示樣本數(shù)據(jù)的標(biāo)準(zhǔn)差,X*表示歸一化處理后的數(shù)據(jù)。經(jīng)過Z-score標(biāo)準(zhǔn)化后的數(shù)據(jù)符合高斯分布,這種方法適合處理樣本實(shí)例數(shù)據(jù)存在異常值和較多噪聲的情況。通過Z-score標(biāo)準(zhǔn)化,能夠避免異常值和極端值給結(jié)果帶來的影響。 本文實(shí)驗(yàn)的操作系統(tǒng)環(huán)境為Ubuntu 18.04,CPU為Intel Core i5-7500,顯卡為NVIDIA GTX1050i,內(nèi)存為16 GB。在發(fā)動機(jī)故障診斷中,選擇高斯核函數(shù)和線性歸一化函數(shù)的預(yù)測效果最佳[8]。本文的6種故障類型屬于離散數(shù)據(jù),為了讓分類器更好地處理數(shù)據(jù),實(shí)驗(yàn)對故障類型和正常狀態(tài)進(jìn)行one-hot編碼,編碼規(guī)則如表2所示。 Table 2 One-hot coding of fault type 表2 故障類型one-hot編碼 本文采集12/200ZL型水冷廢氣渦輪增壓柴油機(jī)的樣本數(shù)據(jù)500條,其中400條用于訓(xùn)練,100條用于測試(隨機(jī)從總樣本中抽取)。通過使用線性歸一化函數(shù),將數(shù)據(jù)進(jìn)行歸一化處理,部分樣本數(shù)據(jù)如表3所示。 Table 3 Normalized engine data stream表3 歸一化后的發(fā)動機(jī)數(shù)據(jù)流 為了讓實(shí)驗(yàn)結(jié)果更具代表性,本文同時(shí)使用BP神經(jīng)網(wǎng)絡(luò)和SVM算法對同一份數(shù)據(jù)進(jìn)行訓(xùn)練預(yù)測并將測試結(jié)果與BA-RVM的進(jìn)行比較。首先使用BP神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行訓(xùn)練預(yù)測,將BP神經(jīng)網(wǎng)絡(luò)的隱藏節(jié)點(diǎn)設(shè)置為10,測試結(jié)果如圖2所示。圖2中的縱坐標(biāo)表示故障編碼,橫坐標(biāo)表示測試樣本的編號。從圖2可以看出,BP預(yù)測的錯(cuò)誤率為12%,結(jié)果較為理想。 Figure 2 Testing results of BP neural network圖2 BP神經(jīng)網(wǎng)絡(luò)的測試結(jié)果 BA-RVM算法的測試結(jié)果如圖3所示??梢钥吹?,錯(cuò)誤率只有3%,與BP算法相比,錯(cuò)誤率降低了66.67%;與SVM算法相比,錯(cuò)誤率降低了62.5%。由于RVM中有大量的矩陣運(yùn)算,在訓(xùn)練過程中,消耗的時(shí)間較長,約為SVM算法的6倍,但是在預(yù)測判斷時(shí),所消耗的時(shí)間少于SVM的,能夠快速準(zhǔn)確地給出結(jié)果。綜合分析可知,基于BA-RVM算法的發(fā)動機(jī)故障預(yù)測要優(yōu)于基于BP算法和SVM算法的,并能夠快速定位故障類型。 Figure 3 Testing results of BA-RVM algorithm圖3 BA-RVM算法的測試結(jié)果 本文針對傳統(tǒng)檢測技術(shù)在大量故障裝備中難以準(zhǔn)確快速診斷發(fā)動機(jī)故障,且診斷工作量大、效率低等問題,提出一種基于BA-RVM算法的發(fā)動機(jī)故障診斷模型。通過分析蝙蝠算法BA獲得最優(yōu)解的特點(diǎn)和相關(guān)向量機(jī)算法原理,結(jié)合裝甲裝備發(fā)動機(jī)的狀態(tài)參數(shù)特點(diǎn),在故障診斷分析模型訓(xùn)練時(shí),采用蝙蝠算法對相關(guān)向量機(jī)算法RVM的核參數(shù)寬度進(jìn)行調(diào)節(jié)優(yōu)化,使用BA作為核函數(shù)來尋找RVM的最優(yōu)參數(shù),從而得到RVM最優(yōu)參數(shù)的預(yù)測模型。實(shí)驗(yàn)結(jié)果表明,本文所提的基于BA-RVM算法的模型與基于BP算法的模型相比,錯(cuò)誤率降低了66.67%;與基于SVM算法的模型相比,錯(cuò)誤率降低了62.5%?;贐A-RVM算法的發(fā)動機(jī)故障診斷模型不僅能夠快速地給出預(yù)測結(jié)果,而且預(yù)測準(zhǔn)確率還較高。3.2 相關(guān)向量機(jī)算法
3.3 BA-RVM算法
3.4 數(shù)據(jù)特征歸一化方法
4 實(shí)驗(yàn)與結(jié)果分析
5 結(jié)束語