張 鵬 劉穎欣 段照斌 王 力
1(中國民航大學適航學院 天津 300300)2(中國民航大學電子信息與自動化學院 天津 300300)3(中國民航大學工程技術(shù)訓練中心 天津 300300)4(中國民航大學職業(yè)技術(shù)學院 天津 300300)
FCS是現(xiàn)代飛機中最重要的安全關(guān)鍵系統(tǒng)之一,由于其系統(tǒng)的高度集成性和復雜性[1],因此在飛機飛行過程中對FCS的狀態(tài)進行監(jiān)測并保障其飛行安全具有重要意義和挑戰(zhàn)性。
FCS中的舵面作動筒、舵面位置傳感器、駕駛員控制器、作動筒控制電子設(shè)備(Actuator Control Electro-nics,ACE)、主飛行計算機(Primary Flight Computer,PFC)、電源系統(tǒng)、PFC接口、地面維護接口等都有可能在飛行過程中發(fā)生故障,如姿態(tài)控制系統(tǒng)中的俯仰控制過程是敏感和脆弱的,它的失敗可能導致飛機墜毀等災(zāi)難性的事故[1];執(zhí)行器故障會對飛行控制系統(tǒng)的穩(wěn)定性和性能產(chǎn)生不利影響[2];操縱面偏轉(zhuǎn)失控可能會導致不希望的俯仰機動,也可能會要求飛機增加局部結(jié)構(gòu)載荷[3];飛機電傳操縱系統(tǒng)出現(xiàn)自檢故障影響及時的飛行[4]等。在實際排故中,維修人員很大一部分根據(jù)經(jīng)驗和手冊上對應(yīng)的故障隔離程序進行故障排除,這種排除方法不僅需要維修人員對各個系統(tǒng)及其之間的交聯(lián)關(guān)系原理非常了解,還需要花費大量的時間。
近年來,在學術(shù)界和工業(yè)界上深度學習顯示了其高超的識別復雜任務(wù)的能力,大批專家學者對其理論及其應(yīng)用表現(xiàn)出極大的興趣,并且許多領(lǐng)域的專家開始嘗試利用深度學習理論知識來解決本領(lǐng)域的一些復雜問題[5]。
Hinton等[6]提出的深度學習理論起源于對人工神經(jīng)網(wǎng)絡(luò)的研究,它是一種更深層次的神經(jīng)網(wǎng)絡(luò),可以通過它免除繁復冗雜的人工選取特征的過程和高維數(shù)據(jù)的維度災(zāi)難問題,從而得到數(shù)據(jù)更深層次的特征表示[7],并且將其應(yīng)用在工業(yè)領(lǐng)域中取得了不小的進步[8-10]。文獻[8]提出了一種深度量子啟發(fā)神經(jīng)網(wǎng)絡(luò)(Deep Quantum Inspired Neural Network,DQINN)方法,它是經(jīng)典深度信任網(wǎng)絡(luò)(Deep Belief Nets,DBN)和量子啟發(fā)神經(jīng)網(wǎng)絡(luò)(Quantum Inspired Neural Network,QINN)的結(jié)合,將其應(yīng)用于飛機燃油系統(tǒng)的故障診斷,結(jié)果表明DQINN對復雜系統(tǒng)進行故障診斷有很好的效果;文獻[9]提出了一種基于CNN的旋轉(zhuǎn)機械狀態(tài)監(jiān)測模型,在幾種類型的軸承故障上做了實驗,診斷精度可達93.61%;文獻[10]提出了基于時空LSTM的軌跡預(yù)測模型(ST-LSTM)用于預(yù)測密集交通中的車輛軌跡,并在NGSIM I-80 and US-101數(shù)據(jù)集上驗證了其比現(xiàn)有的最新模型M-LSTM具有更高的軌跡預(yù)測精度。這些傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)都保持著卷積層、池化層和全連接層的基本結(jié)構(gòu),而其中的最大池化層只處理了平移變化,如果一個特征稍微移動一下,只要它仍然在池化窗口中,就可以被檢測到,并且這種方法只保留最大的特征(最主要的)而丟棄其他的特征,會給結(jié)果帶來一定的偏差。
Sabour等[11]提出的膠囊神經(jīng)網(wǎng)絡(luò)輸入輸出均為向量,向量不僅能夠表達信息的有無,還能表示信息的精確位置,并且使用動態(tài)路由協(xié)議動態(tài)地決定耦合系數(shù)體現(xiàn)父節(jié)點與子膠囊節(jié)點之間的耦合關(guān)系,不同于以往的全連接層,膠囊網(wǎng)絡(luò)已經(jīng)在一些領(lǐng)域展現(xiàn)出其獨特的優(yōu)勢[12-14]。文獻[12]提出了另一種矩陣膠囊網(wǎng)絡(luò),該矩陣膠囊網(wǎng)絡(luò)可以用變換矩陣對實體和觀察者之間的關(guān)系進行編碼,從而使模型具有視點等方差的特性;文獻[13]使用模糊聚類的膠囊網(wǎng)絡(luò)在MNIST和CIFAR-10上測試得出具有比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)更高的識別率,并且在隨機拼接的兩幅MNIST測試集的圖片上也進行了驗證,結(jié)果表明其具有更高的泛化能力;文獻[14]提出了復值密集頂點網(wǎng)(cv-頂點網(wǎng))和復值多樣頂點網(wǎng)(cv-頂點網(wǎng)++),將膠囊網(wǎng)絡(luò)推廣到復數(shù)域,使其可以在復雜數(shù)據(jù)集上具有更好的泛化能力,實驗證明這兩種結(jié)構(gòu)在MNIST和CIFAR10數(shù)據(jù)集上與原始CapsNet相比,可訓練的參數(shù)更少,性能更好且迭代次數(shù)更少。
上述研究表明,雖然目前膠囊網(wǎng)絡(luò)提出不久,但是基于膠囊網(wǎng)絡(luò)的方法要比傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)在圖像識別上具有更高的識別準確率,這表明膠囊網(wǎng)絡(luò)有廣闊的應(yīng)用前景。本文將膠囊網(wǎng)絡(luò)應(yīng)用在飛控系統(tǒng)參數(shù)預(yù)測上,免除了繁復冗雜的人工選取特征的過程,在未使用預(yù)測參數(shù)(飛行航跡角)歷史值的情況下,預(yù)測飛行航跡角在未來500 s內(nèi)的變化,實驗結(jié)果表明,膠囊網(wǎng)絡(luò)在長時間的預(yù)測當中要比CNN、LSTM的準確率都要高。
膠囊網(wǎng)絡(luò)由Sabour等[11]在2017年首次提出,膠囊網(wǎng)絡(luò)在飛控參數(shù)預(yù)測上的具體架構(gòu)如圖1所示。
圖1 膠囊網(wǎng)絡(luò)架構(gòu)
可以看到,輸入的是與飛行航跡角相關(guān)的21個參數(shù)在連續(xù)的21個時間點的數(shù)據(jù)。首先對其做與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)一樣的卷積操作,得到ReLU Conv1;然后再對ReLU Conv1做一次卷積操作,并將其輸出調(diào)整成適用于CapsNet的向量神經(jīng)元層PrimaryCaps的輸入,而不是以往的標量神經(jīng)元;最后,使用動態(tài)路由算法進行從PrimaryCaps到DigitCaps層的傳播,這也是CapsNet相比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)最明顯的特征。DigitCaps層中輸出21個向量,最后再經(jīng)過一層Dense層輸出預(yù)測參數(shù)飛行航跡角的值。
CapsNet最大的特征就在于使用動態(tài)路由算法完成從PrimaryCap到DigitCaps的轉(zhuǎn)變。以圖2(假設(shè)PrimaryCaps層有4個膠囊要傳遞到DigitCaps層的2個膠囊中)來詳細解釋一下動態(tài)路由算法。
(1)
(2)
(3)
(4)
耦合系數(shù)cij由bij的Softmax計算得到:
(5)
bij初始值為0,故在前向傳播求sj的過程中,把Wij設(shè)計成隨機值,bij初始化為0可以得到cij,ui是上一層膠囊網(wǎng)絡(luò)的輸出,有了這三個值,就可以得到下一層的sj。
動態(tài)路由并不能完全替代反向傳播。權(quán)重矩陣Wij仍然使用成本函數(shù)通過反向傳播訓練,我們只是使用動態(tài)路由來計算膠囊的輸出。通過計算cij來量化子膠囊與其父膠囊之間的連接,這個值很重要,但生命周期很短暫。對于每一個數(shù)據(jù)點,在進行動態(tài)路由計算之前,都將它重新初始化為0。在計算膠囊輸出時,無論是訓練或測試,都需要重新做動態(tài)路由計算。
高品質(zhì)的FCS可以穩(wěn)定操縱飛機,改善飛行性能,增加飛行安全性,同時也可以減輕駕駛員飛行負擔,是民機安全飛行必不可少的重要系統(tǒng)。而為了實現(xiàn)以上功能,F(xiàn)CS通常采用容錯冗余控制系統(tǒng),這就使得FCS交聯(lián)設(shè)備眾多,結(jié)構(gòu)復雜,很難實時定位故障,導致排故時間長、延誤率高。本文將融合與預(yù)測參數(shù)(飛行航跡角)相關(guān)的21個參數(shù)數(shù)據(jù)作為CapsNet的輸入來實時預(yù)測飛行航跡角的變化,為的是可以在其航跡發(fā)生偏移時提前進行干預(yù),從而保證飛機的正常飛行。
基于CapsNet的思想,建立的多參數(shù)融合的模型結(jié)構(gòu)如圖3所示。將融合的與航跡角變化相關(guān)的21個參數(shù)輸入后經(jīng)過卷積層提取出最初的特征,然后將其輸入到初級膠囊層進行再一次的卷積操作,將卷積之后的結(jié)果調(diào)整成適合高級膠囊層輸入的向量形式,在初級膠囊向高級膠囊的過渡過程中采用動態(tài)路由對特征進行整合,整合的過程中修正下層膠囊與上層膠囊之間的權(quán)重矩陣和耦合系數(shù)等參數(shù),以形成最優(yōu)整合結(jié)果。最后,在高級膠囊層后連一個全連接層,預(yù)測出航跡角在t+d時刻之后的值。
圖3 多參數(shù)融合的膠囊網(wǎng)絡(luò)模型結(jié)構(gòu)
為了證明CapsNet在預(yù)測飛控參數(shù)變化上的有效性,本文使用Windows 10的軟件環(huán)境系統(tǒng),TensorFlow 1.13.1深度學習框架下的keras 2.2.4,開發(fā)語言為Python 3.7,來驗證該模型的有效性。
本文以B777客機FCS中的姿態(tài)控制系統(tǒng)為例,選取與飛行航跡角相關(guān)的一些參數(shù)來進行對其在飛行過程中變化的預(yù)測。根據(jù)姿態(tài)控制系統(tǒng)的工作原理[15],從飛行數(shù)據(jù)記錄設(shè)備快速存取記錄器(Quick Access Recorder,QAR)中選取了22個參數(shù),采樣間隔為1 s,各參數(shù)含義如表1所示。
表1 相關(guān)參數(shù)表
其中,飛行航跡角(FLIGHT PATH ANGLE)是需要模型預(yù)測出的參數(shù),其余數(shù)據(jù)為模型輸入的訓練參數(shù)。
圖4為樣本構(gòu)造方式。給定與飛行航跡角相關(guān)的n-1個飛控參數(shù)在一個時間段內(nèi)的運行數(shù)據(jù),預(yù)測飛行航跡角在一定時間間隔d之后的參數(shù)值。具體構(gòu)造方法如下:(1) 首先將數(shù)據(jù)進行歸一化處理并將其按照時間序列展開。(2) 以大小為w的窗口向下以一個固定步長s滑動截取數(shù)據(jù),構(gòu)造訓練集。(3) 截取數(shù)據(jù)時,把窗口最后一個時刻t在時間間隔d之后的值作為預(yù)測參數(shù)在間隔d之后的標簽。本文構(gòu)造的模型中選取w的大小為訓練參數(shù)的個數(shù),即w=21,考慮到是一個時間序列的預(yù)測任務(wù),故選取s=1。即構(gòu)造的樣本輸入為相關(guān)的21個飛行參數(shù)在連續(xù)21個時間點內(nèi)的飛行數(shù)據(jù)。同時,為了驗證本文模型在單步以及多步預(yù)測上都具有良好的效果,分別選取d=1、5、10、15并將樣本按照上述方式構(gòu)造獲得相應(yīng)的數(shù)據(jù)集S1、S2、S3、S4。
圖4 樣本構(gòu)造方式
在各個數(shù)據(jù)集中,訓練集與驗證集按4∶1的比例劃分,最后500個數(shù)據(jù)作為測試集,最終各個數(shù)據(jù)集劃分好的樣本情況如表2所示。
表2 數(shù)據(jù)集劃分
為驗證所提CapsNet在預(yù)測飛行航跡角的效果,實驗在基于TensorFlow的Keras深度學習平臺上實現(xiàn),首先對CapsNet中的迭代次數(shù)進行了探索,以數(shù)據(jù)集S1為例,分別比較了迭代次數(shù)為1、3、5的模型誤差,然后用誤差最小的模型分別與CNN、LSTM在數(shù)據(jù)集S1、S2、S3、S4上進行對比實驗。各模型結(jié)構(gòu)參數(shù)如圖5所示。
以其中的單步預(yù)測數(shù)據(jù)集S1為例,詳細說明模型結(jié)構(gòu)。首先數(shù)據(jù)輸入形式是(?,21,21,1),其中?表示batch_size,取batch_size為50,epochs為100,在CapsNet模型中,數(shù)據(jù)矩陣首先通過Sklearn的MinMaxScaler簡單歸一化到[0,1]范圍之后經(jīng)過一層卷積層(Conv2),含有32個3×3的卷積核,激活函數(shù)為ReLU,張量形狀變?yōu)??,19,19,32);再經(jīng)過一個2×2的卷積層(PrimaryCaps),步長為2,張量形狀變?yōu)??,9,9,32),把其中的4個輸出神經(jīng)元組合在一起構(gòu)成一個膠囊,激活函數(shù)為Squash,此時張量形狀變?yōu)??,324,8);經(jīng)過路由算法傳到DigitCaps,激活函數(shù)為Squash,此時輸出的張量為(?,21,1),經(jīng)過Flatten層之后將張量“壓平”,由全連接層輸出維度為1的張量,此時維度為(?,1)。在模型訓練的過程中,優(yōu)化器選用Adam,在整個訓練過程中使用動態(tài)變化的學習率,每次以0.9的速率衰減,并且使用keras.callbacks.EarlyStopping(patience=4)提前停止訓練,防止產(chǎn)生過擬合現(xiàn)象。
為衡量模型性能,采用回歸模型常用的評價指標[16](平均絕對誤差(MAE)、平均絕對百分比誤差(MAPE)、均方根誤差(RMSE)、均方根對數(shù)誤差(RMSLE))對模型性能進行評估,計算公式如式(6)-式(9)所示。
(6)
(7)
(8)
(9)
式中:yi為預(yù)測值;xi為真實值。式(6)-式(9)計算出來的值越小說明預(yù)測值與真實值相差越小,也可以表明模型搭建得很好,預(yù)測準確度高。
表3為數(shù)據(jù)集S1上不同迭代次數(shù)的誤差比較。
表3 不同迭代次數(shù)實驗結(jié)果
可以看出,當?shù)螖?shù)為3時,誤差最小,即預(yù)測越準確。然后用迭代次數(shù)為3的CapsNet模型分別與CNN、LSTM在數(shù)據(jù)集S1、S2、S3、S4上做了對比實驗,其測試結(jié)果如圖6所示,評價指標計算如表4所示。
(a) S1單步預(yù)測結(jié)果
(b) S2預(yù)測結(jié)果
(c) S3預(yù)測結(jié)果
(d) S4預(yù)測結(jié)果圖6 各個模型預(yù)測結(jié)果對比
表4 誤差對比結(jié)果
比較圖6的結(jié)果可知:在單步預(yù)測中LSTM誤差最小,在更長時間間隔的預(yù)測中,CapsNet的誤差最小。在單步預(yù)測數(shù)據(jù)集S1上,CapsNet模型稍遜于LSTM,誤差平均比LSTM高29.1%,比CNN低42.2%;在五步預(yù)測集S2上,CapsNet比LSTM誤差降低16.0%,比CNN誤差降低51.2%;在十步預(yù)測集S3上,CapsNet比LSTM誤差降低23.9%,比CNN誤差降低30.4%;在十五步預(yù)測集S4上,CapsNet比LSTM誤差降低21.6%,比CNN誤差降低24.5%。綜合而言,CapsNet在單步及多步預(yù)測上誤差比LSTM平均降低8.1%,相比CNN平均降低37.1%。
根據(jù)上述結(jié)果可知,LSTM在短時間內(nèi)預(yù)測效果很好,而CapsNet在長時間間隔的預(yù)測效果更佳。
FCS的實時性故障診斷及其故障預(yù)測對飛機航班運行效率有重要作用。由于FCS是一個高動態(tài)的、子系統(tǒng)強耦合的復雜系統(tǒng),傳統(tǒng)的基于模型的方法難以適用。膠囊網(wǎng)絡(luò)是一種新型網(wǎng)絡(luò)結(jié)構(gòu),它將特征的表示由標量提升為向量,這種表示方式極大地提升了特征的表達能力,使得膠囊網(wǎng)絡(luò)具有很好的泛化能力。本文將膠囊網(wǎng)絡(luò)用于飛控參數(shù)預(yù)測上,在故障發(fā)生之前可以提前預(yù)知,為故障排除提供良好的預(yù)見性。實驗結(jié)果表明,CapsNet模型比傳統(tǒng)的CNN和LSTM模型誤差都要低,具有很高的應(yīng)用價值。