王偉麗 楊瑞峰 郭晨霞 秦 浩
1.中北大學(xué)儀器與電子學(xué)院,太原 030051 2.山西省自動化檢測裝備與系統(tǒng)工程技術(shù)研究中心,太原 030051
舵系統(tǒng)是導(dǎo)彈控制系統(tǒng)的重要執(zhí)行機(jī)構(gòu),它接收來自飛行控制系統(tǒng)的控制信號,驅(qū)動舵面偏轉(zhuǎn),從而控制飛行姿態(tài)和軌跡。舵機(jī)的精確輸出和可靠操縱對于飛行器安全穩(wěn)定飛行至關(guān)重要[1]。舵機(jī)性能和質(zhì)量的好壞直接決定著導(dǎo)彈飛行過程中的動態(tài)品質(zhì)[2],舵機(jī)發(fā)生故障可能會導(dǎo)致災(zāi)難性事故。因此,對舵機(jī)進(jìn)行精準(zhǔn)異常定位具有重要的現(xiàn)實意義。
目前,針對導(dǎo)彈舵機(jī)測試數(shù)據(jù)進(jìn)行分析的研究較少。文獻(xiàn)[3]對舵機(jī)測試數(shù)據(jù)進(jìn)行了特征分析和多故障分類,但未考慮數(shù)據(jù)分布特征。文獻(xiàn)[4-5]使用自適應(yīng)采樣方法和支持向量機(jī)分類器(Support Vector Machine, SVM)對舵機(jī)數(shù)據(jù)的不均衡進(jìn)行了研究。該方法雖然使得不均衡數(shù)據(jù)分類準(zhǔn)確度有所提高,但效果不顯著。近年來,深度學(xué)習(xí)(Deep Learning,DL)技術(shù)廣泛應(yīng)用于各個領(lǐng)域,其中卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)已經(jīng)成為熱門的機(jī)器學(xué)習(xí)算法之一[6]。文獻(xiàn)[7]中提到使用CNN對皮膚癌進(jìn)行分類和診斷,文獻(xiàn)[8]中使用CNN對高光譜圖像進(jìn)行分類。由此可以看出,CNN以其出色的分類性能,為舵機(jī)異常檢測提供了新思路。
針對舵機(jī)參數(shù)的測試數(shù)據(jù)量大且樣本不均衡的特點,考慮到CNN優(yōu)越的特征提取和分類的性能,本文提出使用CNN對舵機(jī)測試數(shù)據(jù)進(jìn)行異常檢測。我們通過不同網(wǎng)絡(luò)層次的對比實驗,得到最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),完成適用于舵機(jī)異常檢測的CNN模型設(shè)計。本文所提出的CNN模型包含3個卷積層、2個池化層、1個展平層、2個失活層和2個全連接層。
本研究使用的舵機(jī)自動化測試平臺能夠自動完成舵機(jī)參數(shù)的采集。測試設(shè)備主要由工控機(jī)、電源、采集卡、信號調(diào)理電路、驅(qū)動器和多功能數(shù)據(jù)采集卡組成。該平臺最多可同時測試4套舵機(jī),大大提高了測試效率。圖1為舵機(jī)測試的簡要流程圖。
圖1 舵機(jī)測試過程概述
舵機(jī)在使用前必須進(jìn)行性能評估,以確保所有參數(shù)處于正常狀態(tài)。若舵機(jī)參數(shù)測試結(jié)果出現(xiàn)異常,則需要立即對舵機(jī)進(jìn)行檢修。通過人工分析數(shù)據(jù)需要耗費大量的時間和精力,且準(zhǔn)確度難以保證。所以,利用機(jī)器學(xué)習(xí)技術(shù)自動且高效地完成舵機(jī)異常檢測是十分必要的。
實驗中使用到了19490個歷史測試數(shù)據(jù)。實驗數(shù)據(jù)集中包含氣動舵機(jī)測試項目如下:過渡過程時間、超調(diào)量、穩(wěn)態(tài)誤差、空載帶寬、負(fù)載帶寬、遲滯特性、零位精度和舵機(jī)行程。這些參數(shù)反映了氣動舵機(jī)的動靜態(tài)特性,是評價舵機(jī)性能的綜合指標(biāo)。每條舵機(jī)測試數(shù)據(jù)包含10個“特征”,對應(yīng)10種不同的測試參數(shù);一個“標(biāo)簽”,對應(yīng)11種測試狀態(tài):合格狀態(tài)(Q)和異常狀態(tài)(FA-FJ)。
提出了一種適用于舵機(jī)異常檢測的CNN模型。CNN是受到人類視覺神經(jīng)系統(tǒng)的啟發(fā),使用卷積核來代替人類的視野,達(dá)到降低計算量,高度保留特征的目的。
輸入層:用于接收預(yù)處理后的舵機(jī)測試數(shù)據(jù)。
卷積層:該層由多個卷積核組成,執(zhí)行大量卷積計算。卷積核(W=[w1,w2,w3,…,wN]T)通過在整個數(shù)據(jù)上滑動一定的步長,以生成新的數(shù)據(jù)表示,也稱為輸出特征[9]。輸出特征被映射到激活函數(shù),實現(xiàn)網(wǎng)絡(luò)層的非線性變換。本實驗所使用的Rectified Linear Unit(ReLU)是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中最常用的激活函數(shù),它的定義如下:
R=max(0,WTx+b)
(1)
式中:R表ReLU函數(shù);W卷積核的權(quán)重;x為輸入的舵機(jī)測試數(shù)據(jù);b表偏差。
池化層:該層用于特征降維,減少訓(xùn)練過程中的計算負(fù)擔(dān),從而減少過擬合,提高模型的容錯率。本實驗選取的池化形式為最大池化。
展平層:將上一層的輸出轉(zhuǎn)換為矢量。該層通常用于卷積層或池化層到全連接層的過渡。
失活層:使用隱含單元的隨機(jī)失活來防止過擬合。這種隨機(jī)性的引入迫使網(wǎng)絡(luò)變得冗余,也就是使得網(wǎng)絡(luò)與訓(xùn)練樣本不完全匹配,從而增加網(wǎng)絡(luò)的泛化能力。
全連接層:它旨在將該層的神經(jīng)元與其它層的神經(jīng)元連接。輸出類型決定了使用哪種激活函數(shù)。本文設(shè)計的模型中存在兩個全連接層。其中,第二個全連接層為輸出層,用于分類,該實驗需要把舵機(jī)測試結(jié)果分為11類,則該層神經(jīng)元個數(shù)為11個。分類選用Softmax激活函數(shù)。該函數(shù)對預(yù)測輸出進(jìn)行歸一化,以獲得相應(yīng)類別的概率分布:
(2)
實驗以8 ∶2的比例劃分?jǐn)?shù)據(jù)集,即舵機(jī)測試數(shù)據(jù)15592個被劃分到訓(xùn)練集,3898個被劃分到測試集。具體設(shè)置如下:首先,神經(jīng)網(wǎng)絡(luò)的一次訓(xùn)練選擇的樣本數(shù)量太小,損失函數(shù)會振動,導(dǎo)致結(jié)果不收斂;在一定范圍內(nèi)增加一次訓(xùn)練選擇的樣本數(shù)量,不僅可以縮短神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時間,還可以提高訓(xùn)練精度。因此,我們將其取值為512。其次,CNN的訓(xùn)練使用Adam算法進(jìn)行,訓(xùn)練的迭代次數(shù)為200。
為了搭建適合舵機(jī)測試參數(shù)的CNN模型,我們進(jìn)行了不同網(wǎng)絡(luò)層次的性能對比實驗。架構(gòu)示例如圖2所示,每個模塊由一個卷積層和一個池化層組成。圖2(a)命名為SimpleNet-2,圖2(b)命名為SimpleNet-22。
圖2 架構(gòu)示例圖
對比結(jié)果如表1所示。SimpleNet-22結(jié)構(gòu)所得到的測試集準(zhǔn)確度最高,相比于SimpleNet-1,SimpleNet-12,SimpleNet-2和SimpleNet-3,測試集準(zhǔn)確度分別高出0.421%、0.056%、0.077%和0.143%。由此可以看出,在一定程度上加深網(wǎng)絡(luò)層次可以提高模型性能。通過SimpleNet-1和SimpleNet-12對比,以及SimpleNet-2和SimpleNet-22的對比,在第一次池化層前加入兩個卷積層可以允許模型學(xué)習(xí)到更復(fù)雜的特征,完成更優(yōu)的特征提取。但通過SimpleNet-3的實驗分析可知,過渡加深網(wǎng)絡(luò)層次不一定能提高模型的分類性能。
表1 測試集準(zhǔn)確度
通過上述實驗,最終選取SimpleNet-22的架構(gòu)來搭建CNN模型。如圖3所示,本實驗設(shè)計的CNN模型的第1層、第2層和第4層為卷積層,分別包含32個、64個和128個卷積核,卷積核尺寸均為2,步長設(shè)計為1,選取ReLU為激活函數(shù)。第3層和第5層為最大池化層,池化窗大小為2。第6層為展平層。數(shù)據(jù)以10×1的形式輸入,通過上述六層計算后,數(shù)據(jù)以384×1的形式輸出。接下來,展平層輸出的數(shù)據(jù)被輸入到含有256個神經(jīng)元的全連接層,并以0.25的概率隨機(jī)失活。最后的全連接層為輸出層,以0.5的概率隨機(jī)失活,使用Softmax作為激活函數(shù),得到11類分類結(jié)果。這11類分類結(jié)果將數(shù)據(jù)分為合格和10類故障,實現(xiàn)舵機(jī)測試數(shù)據(jù)的異常檢測。
圖3 CNN模型
舵機(jī)異常檢測的本質(zhì)是多分類問題,為了評估所提出的模型的性能,使用了以下參數(shù):準(zhǔn)確度(accuracy)、精確度(precision)、召回率(recall)、F-score和kappa系數(shù)[3,10]。
(3)
(4)
(5)
(6)
(7)
式中:Acc代表準(zhǔn)確度;Pre代表精確度;Rec代表召回率;F代表F-score;K代表Kappa系數(shù);TP,TN,F(xiàn)P和FN分別代表真陽性、真陰性、假陽性和假陰性;N代表樣本總數(shù)。
在神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練時,將損失函數(shù)進(jìn)行了可視化處理,結(jié)果如圖4所示。訓(xùn)練集交叉熵?fù)p失值在迭代200次后趨于平穩(wěn),說明BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)和CNN網(wǎng)絡(luò)訓(xùn)練在不引起過度擬合的情況下收斂。也就是說我們的網(wǎng)絡(luò)訓(xùn)練結(jié)果是有效的[11]。
圖4 損失函數(shù)值曲線
為了對所提出的模型進(jìn)行廣泛的性能評估,我們將其與KNN、SVM和BP模型相對比。其中,BP模型為去除CNN模型卷積部分的結(jié)構(gòu),如圖3所示。表2所示的KNN、SVM、BP和CNN模型的分類性能指標(biāo)是通過5次重復(fù)實驗得到的平均值。與KNN和SVM模型相比,實驗設(shè)計的CNN模型在準(zhǔn)確度上提高了3.494%和1.826%。與BP模型相比,CNN模型的準(zhǔn)確度提高了0.42%,這表明,通過卷積層提取數(shù)據(jù)特征可以有效的提高分類性能。在精確度、召回率和F-score分析中,CNN模型的分類效果均最優(yōu)。CNN模型的Kappa系數(shù)結(jié)果為0.99362,與其他三種模型相比最接近1,也就是說明CNN分類結(jié)果與真實結(jié)果相比幾乎完全一致。綜上所述,我們所設(shè)計的CNN模型相比于其他3種模型在舵機(jī)測試數(shù)據(jù)分類中表現(xiàn)最佳。
表2 不同模型分類性能比較
由于舵機(jī)測試數(shù)據(jù)不均衡,為了分析小樣本的分類情況,實驗繪制了如表3所示的CNN模型的混淆矩陣,以及表4所示的不同模型中不同類別的分類性能表。值得注意的是,KNN和SVM模型雖然在整體性能比較中與神經(jīng)網(wǎng)絡(luò)的差距不大,但它們受數(shù)據(jù)不均衡影響較大。在FE,F(xiàn)F,F(xiàn)G和FJ中分類效果不佳。尤其是KNN模型,在FF類中,準(zhǔn)確度只有42.25%,無法達(dá)到分類效果。使用CNN模型分類時,F(xiàn)A,F(xiàn)B,F(xiàn)E,F(xiàn)H,F(xiàn)I和FJ的分類準(zhǔn)確度和精確度均能達(dá)到100%。由此可見,CNN模型幾乎不受訓(xùn)練樣本量的影響,在小樣本中仍能達(dá)到良好的分類效果。
表3 CNN模型的混淆矩陣
表4 不同模型中不同類別的分類性能比較
針對舵機(jī)的自動化異常檢測,本文提出了一種適用于舵機(jī)參數(shù)測試的CNN模型。實驗結(jié)果表明,該模型能夠良好改善舵機(jī)數(shù)據(jù)樣本不均衡而導(dǎo)致的小樣本難以準(zhǔn)確分類的問題。在4種模型對比實驗中,CNN模型的準(zhǔn)確度、精確度、召回率、F-score和kappa系數(shù)均最優(yōu)。由此可以看出,這是深度學(xué)習(xí)技術(shù)在舵機(jī)領(lǐng)域的一種新的有效應(yīng)用。