高丹妮
(中國民航大學(xué) 電子信息與自動(dòng)化學(xué)院,天津 300300)
輔助動(dòng)力裝置(Auxiliary Power Unit,APU)作為飛機(jī)的重要裝置,不僅可以保證飛機(jī)安全啟動(dòng),在飛機(jī)停在地面時(shí),還為飛機(jī)供氣、供電,保證客艙舒適性。因此,對(duì)飛機(jī)APU進(jìn)行故障診斷研究顯得尤為重要。
APU故障發(fā)生時(shí),排故人員會(huì)結(jié)合故障發(fā)生的現(xiàn)場和自身的相關(guān)經(jīng)驗(yàn)、故障手冊(cè)的規(guī)定等對(duì)故障情況進(jìn)行診斷和排查,這需要相關(guān)人員具有大量的相關(guān)知識(shí)、大量的運(yùn)行維護(hù)經(jīng)驗(yàn)和復(fù)雜的推理判斷能力。在大量故障信息同時(shí)出現(xiàn)時(shí),即使經(jīng)驗(yàn)豐富的機(jī)務(wù)人員也不能很好地完成處理。為了及時(shí)、準(zhǔn)確地判斷出真正的故障源,使用科學(xué)算法對(duì)APU進(jìn)行故障診斷成了非常重要的一個(gè)課題。目前對(duì)飛機(jī)APU進(jìn)行的科學(xué)研究有:張彭[1]等人對(duì)APU的發(fā)展和應(yīng)用現(xiàn)狀進(jìn)行了深入分析;邱亞華[2]對(duì)B737-300機(jī)型APU啟動(dòng)時(shí)的常見故障進(jìn)行了分析和排除;施開動(dòng)[3]等人對(duì)A319型飛機(jī)APU的啟動(dòng)故障做了可靠性調(diào)查。這些研究對(duì)搭建飛機(jī)APU故障診斷模型提供了有力的理論支持。GORINEVSKY D[4]使用基于模型的方法對(duì)飛機(jī)APU進(jìn)行了故障診斷;劉鐵庚[5]等利用數(shù)學(xué)建模和仿真對(duì)APU進(jìn)行了故障診斷。基于模型和數(shù)學(xué)建模都需要獲得精確的飛機(jī)APU系統(tǒng)數(shù)學(xué)模型,模型的精確度直接影響最終的結(jié)果,具有一定局限性,并且飛機(jī)APU系統(tǒng)完整且精確的數(shù)學(xué)描述很難獲得。唐啟東[6]等使用深度置信網(wǎng)絡(luò)實(shí)現(xiàn)了對(duì)APU故障的檢測并針對(duì)于此做了應(yīng)對(duì)策略。深度置信網(wǎng)絡(luò)缺少對(duì)歷史信息的處理,與之相比,長短期記憶網(wǎng)絡(luò)(Long Short Term Memory Networks,LSTM)更加適于處理飛機(jī)APU故障信息。
目前,應(yīng)用于飛機(jī)APU故障診斷的人工智能算法較少,常用的支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)和仿生智能等單一算法均各有優(yōu)缺點(diǎn)。支持向量機(jī)思想簡單能有效解決非線性分類問題,但對(duì)核函數(shù)的選擇十分敏感,無法處理大規(guī)模樣本數(shù)據(jù)。人工神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的自學(xué)習(xí)能力,且可以較快地尋優(yōu),但隱含層數(shù)目等參數(shù)難以確定。仿生智能算法有較強(qiáng)的魯棒性,但容易陷入局部最優(yōu)。所以本文使用多個(gè)算法相結(jié)合的方法,利用改進(jìn)的量子粒子群(Quantum Particle Swarm Optimization,QPSO)算法對(duì)LSTM進(jìn)行了參數(shù)優(yōu)化,然后針對(duì)于深層網(wǎng)絡(luò)的梯度問題,利用批規(guī)范化層(Batch Normalization,BN)改進(jìn)了LSTM網(wǎng)絡(luò)模型的結(jié)構(gòu),建立APU故障診斷模型。得到自適應(yīng)量子粒子群優(yōu)化長短期記憶網(wǎng)絡(luò)并結(jié)合批規(guī)范化(AQPSO-LSTM-BN)的故障診斷模型,對(duì)APU進(jìn)行故障診斷。
為了提高傳統(tǒng)粒子群算法的收斂性和搜索能力,量子粒子群(QPSO)算法被提出,以下是QPSO算法的執(zhí)行過程:
(1)設(shè)置t=0,并在M維待解空間中對(duì)量子粒子群各粒子進(jìn)行初始化,隨機(jī)獲得各粒子的空間位置Xi(0),同時(shí)將各粒子的個(gè)體最好位置初始化為Pi(0)=Xi(0)。
(2)按式(1)求量子粒子群粒子平均歷史最優(yōu)值mbest。
(1)
其中,M為種群大小,Pi為粒子的個(gè)體最優(yōu)位置。
(3)為每個(gè)粒子執(zhí)行步驟(4)~(7)。
(4)計(jì)算粒子的適應(yīng)值,對(duì)粒子的個(gè)體最優(yōu)位置pbest進(jìn)行更新。其更新方法為將Xi(t)的適應(yīng)值與Pi(t-1)的適應(yīng)值進(jìn)行比較,如果Xi(t)的適應(yīng)值優(yōu)于Pi(t-1)的適應(yīng)值,即f[Xi(t)] (5)對(duì)于粒子i,比較其Pi(t)與當(dāng)前全局最優(yōu)位置的Pg(t-1)的適應(yīng)值,若Pi(t)的適應(yīng)值優(yōu)于Pg(t-1)的適應(yīng)值,即f[Pi(t)] (6)得到粒子群的各個(gè)粒子的隨機(jī)位置。 (7)按式(2)更新粒子的最新位置。 (2) Qi,j(t)=μ·Pi,j(t)+(1-μ)·Pg,j(t) (3) 其中,Pi,j(t)和Pg,j(t)分別為粒子j的個(gè)體最優(yōu)位置和全局最優(yōu)值,μ為[0,1]之間的隨機(jī)數(shù),α為收縮擴(kuò)張系數(shù),u()是在[0,1]上產(chǎn)生的一個(gè)隨機(jī)數(shù)。 (8)若滿足迭代停止條件,則終止迭代;否則,t=t+1,并返回步驟(2)。 QPSO算法的運(yùn)行中,α為唯一的參數(shù),其選擇至關(guān)重要。常用的參數(shù)α的控制方式是選擇一個(gè)固定值,這樣會(huì)導(dǎo)致魯棒性較差;或者從1.0線性減小至0.5,這種控制方法普遍可得到一個(gè)良好的效果。但自適應(yīng)控制的參數(shù)α效果更好,所以接下來對(duì)參數(shù)α進(jìn)行自適應(yīng)改進(jìn)。 選取誤差函數(shù)為Δ=fi-fg,其中,fi為當(dāng)前粒子適應(yīng)度值,fg為全局最優(yōu)粒子適應(yīng)度值,誤差函數(shù)Δ表示粒子離全局最優(yōu)位置的遠(yuǎn)近程度。由誤差函數(shù)可以看出,誤差函數(shù)越小,當(dāng)前粒子離全局最優(yōu)位置越近,搜索空間越小。為了使QPSO可以避免早熟現(xiàn)象的發(fā)生,需要讓接近全局最優(yōu)值的點(diǎn)和遠(yuǎn)離全局最優(yōu)值的點(diǎn)擁有不同的α值。對(duì)于接近全局最優(yōu)值的點(diǎn),為了使種群收斂,賦予其較小的α值;遠(yuǎn)離全局最優(yōu)值的點(diǎn)很難被搜索到,為了讓進(jìn)化繼續(xù)下去,搜索到更寬的范圍,應(yīng)該賦予較大的α值。根據(jù)以上理論,本文提出一種自適應(yīng)方式來調(diào)節(jié)參數(shù)α的值,如式(4)所示: (4) 其中,fm為粒子平均適應(yīng)度值。此時(shí)在QPSO算法中,參數(shù)α可隨適應(yīng)度值的變化而進(jìn)行調(diào)整,即自適應(yīng)量子粒子群算法(AQPSO)。 選取Schaffer函數(shù)(二維)、Griewank函數(shù)進(jìn)行測試,兩個(gè)函數(shù)全局最優(yōu)值為(0,…,0),全局極值為0。選取平均最優(yōu)和標(biāo)準(zhǔn)偏差值為參考,對(duì)AQPSO算法進(jìn)行性能測試,結(jié)果如表1、表2所示。 表1 Schaffer函數(shù)測試結(jié)果 表2 Griewank函數(shù)測試結(jié)果 仿真測試結(jié)果表明,AQPSO算法與傳統(tǒng)PSO算法相比,能夠顯著地增強(qiáng)搜索能力,在測試函數(shù)上得到了更好的結(jié)果。 LSTM是德國計(jì)算機(jī)科學(xué)家Schmidhuber在1997年提出的一種時(shí)間循環(huán)神經(jīng)網(wǎng)絡(luò),可以改善過多存儲(chǔ)信息導(dǎo)致的梯度消失、梯度爆炸等問題。如圖1所示,每個(gè)LSTM單元在普通輸出ht的基礎(chǔ)上增加了一個(gè)輸出,即一個(gè)記憶單元Ct,并引入了三個(gè)門:輸入門、遺忘門和輸出門,通過這三個(gè)門控制了增加或者減少數(shù)據(jù)的比例。 圖1 LSTM結(jié)構(gòu)圖 LSTM記憶單元與各個(gè)門控制器更新如下: it=σ(Wxixt+Whiht-1+bi) (5) ft=σ(Wxfxt+Whfht-1+bf) (6) (7) (8) ot=σ(Wxoxt+Whoht-1+bo) (9) ht=ot*tanhCt (10) 式(5)、式(6)分別為輸入門it和遺忘門ft的更新公式,其中bi和bf是輸入和遺忘的偏置矩陣,σ為sigmoid函數(shù),W是相對(duì)應(yīng)的權(quán)重矩陣。輸入門表示了對(duì)輸入和上一輸出的接收量。遺忘門過濾了輸入和上一輸出的遺忘量。 式(9)是輸出門更新公式,其中Wxo和Who是對(duì)應(yīng)的權(quán)重矩陣。輸出門的功能是對(duì)繁瑣記憶信息的過濾。LSTM單元最終輸出如式(10)所示。 BN可以加快網(wǎng)絡(luò)收斂速度,提升訓(xùn)練穩(wěn)定性,且基本解決了深度網(wǎng)絡(luò)難以訓(xùn)練的問題。多層神經(jīng)網(wǎng)絡(luò)很容易導(dǎo)致梯度問題,雖然LSTM中復(fù)雜的門結(jié)構(gòu)可以一定程度上減少梯度消失的出現(xiàn),但多層LSTM網(wǎng)絡(luò)仍然會(huì)存在一些梯度問題,這時(shí)可以加入BN層對(duì)信號(hào)進(jìn)行處理。BN層首先對(duì)輸入進(jìn)行白化預(yù)處理: (11) 其中,E(x)指其中一批輸入x的平均值;Var(x)為該批次數(shù)據(jù)的標(biāo)準(zhǔn)差;ε是保證分母不為零的微小正數(shù)。對(duì)于深層神經(jīng)網(wǎng)絡(luò),在隱含層之后添加一層BN,可抑制網(wǎng)絡(luò)的非線性表達(dá),降低網(wǎng)絡(luò)的表達(dá)能力。為了保障網(wǎng)絡(luò)的非線性獲得,加入“比例及平移”操作,即: (12) 基于AQPSO-LSTM-BN的故障診斷模型以LSTM為基本的網(wǎng)絡(luò)單元,使用AQPSO算法對(duì)LSTM隱含層節(jié)點(diǎn)進(jìn)行優(yōu)化,并將BN層應(yīng)用在LSTM隱含層上,BN層對(duì)LSTM輸出信息進(jìn)行歸一化并進(jìn)行變換重構(gòu)等修正處理,改變了訓(xùn)練梯度,使學(xué)習(xí)收斂速度加快,大大加快了模型整體訓(xùn)練速度。頂層加入Softmax層對(duì)故障類別進(jìn)行識(shí)別。AQPSO-LSTM-BN網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,由輸入層、加了BN的LSTM隱含層、一層全連接層和最頂層的Softmax層構(gòu)成。 首先對(duì)從飛機(jī)QAR采集的故障數(shù)據(jù)進(jìn)行歸一化以及時(shí)間序列化預(yù)處理,將預(yù)處理后的數(shù)據(jù)分為訓(xùn)練集和測試集。搭建故障診斷模型步驟如下: (1)按照3.1節(jié)搭建網(wǎng)絡(luò)模型。選擇LSTM隱含層,每層LSTM上加入BN層,將每個(gè)隱層的輸出結(jié)果進(jìn)行歸一化處理再進(jìn)入下一個(gè)隱層,一層全連接層,頂層為Softmax分類層。 (2)數(shù)據(jù)處理。對(duì)收集到的數(shù)據(jù)進(jìn)行特征選擇等預(yù)處理,將處理后的數(shù)據(jù)分為訓(xùn)練集、測試集。 (3)參數(shù)優(yōu)化。選擇AQPSO來對(duì)隱含層節(jié)點(diǎn)數(shù)進(jìn)行尋優(yōu),AQPSO優(yōu)化LSTM過程如下: ①將LSTM中隱含層神經(jīng)元作為優(yōu)化對(duì)象,并初始化粒子位置和速度。 ②將粒子群各粒子改為量子態(tài)下模式。 ③根據(jù)式(1)確定粒子平均最優(yōu)位置,按改進(jìn)參數(shù)α后的式(2)更新粒子位置。通過比較目標(biāo)函數(shù),選取全局最優(yōu)值。重復(fù)此步驟直到滿足終止條件。 ④利用最優(yōu)隱含層節(jié)點(diǎn)數(shù)構(gòu)建LSTM網(wǎng)絡(luò)。 在迭代學(xué)習(xí)中使用Adam算法優(yōu)化網(wǎng)絡(luò)參數(shù),最終使Softmax層的輸出與真實(shí)數(shù)據(jù)標(biāo)簽的交叉熵?fù)p失逐漸減小。 (4)當(dāng)滿足終止條件時(shí)停止訓(xùn)練,否則返回步驟(1)。 通過訓(xùn)練集的數(shù)據(jù)訓(xùn)練得到準(zhǔn)確的AQPSO-LSTM-BN故障診斷模型,然后使用測試集的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),通過故障診斷模型給出分類結(jié)果,并與真實(shí)類別作比較,計(jì)算測試集上的正確率。具體流程如圖3所示。 圖3 AQPSO-LSTM-BN故障檢測流程圖 本文使用波音787飛機(jī)的QAR系統(tǒng)提供的飛機(jī)輔助動(dòng)力裝置(APU)的實(shí)時(shí)數(shù)據(jù)。人工選取適用于本實(shí)驗(yàn)的有效特征數(shù)據(jù):排氣溫度(EGT)、滑油溫度(OilTemp)、滑油量(OilQty)和轉(zhuǎn)速4種故障參數(shù),如表3所示。按照滑油故障、點(diǎn)火系統(tǒng)故障、發(fā)電機(jī)故障三類劃分故障模式,使正常啟動(dòng)時(shí)輸出為0,滑油故障時(shí)輸出為1,點(diǎn)火系統(tǒng)故障時(shí)輸出為2,發(fā)電機(jī)故障時(shí)輸出為3。 表3 故障特征選擇 對(duì)故障參數(shù)求偏差值,將得到的偏差數(shù)據(jù)使用歸一化進(jìn)行預(yù)處理。歸一化將數(shù)據(jù)縮放到[0,1]區(qū)間內(nèi),如式(13)所示: (13) 仿真實(shí)驗(yàn)中,keras LSTM模型對(duì)數(shù)據(jù)形式有一定要求,通常為3D tensor。因此,從CSV文檔讀入一組原始數(shù)據(jù)后,需要用numpy.reshape函數(shù)對(duì)原始數(shù)據(jù)進(jìn)行重塑,以便keras LSTM讀入。 根據(jù)AQPSO-LSTM-BN故障檢測器可知,在訓(xùn)練過程中對(duì)模型性能影響較大的參數(shù)有隱含層層數(shù)、隱含層節(jié)點(diǎn)數(shù)、訓(xùn)練次數(shù)T和學(xué)習(xí)率lr。 為了選擇合適的隱層數(shù)量,分別選取隱層數(shù)為1~5的5種不同網(wǎng)絡(luò)結(jié)構(gòu),并以自適應(yīng)的量子粒子群(AQPSO)算法進(jìn)行隱含層節(jié)點(diǎn)數(shù)選擇,以5種層數(shù)的平均準(zhǔn)確率為評(píng)判標(biāo)準(zhǔn)進(jìn)行實(shí)驗(yàn)。經(jīng)實(shí)驗(yàn)得出,隱層數(shù)為3和4時(shí)整體檢測率相差不多,3層與4層相比結(jié)構(gòu)更簡單,訓(xùn)練速度更快;隱層數(shù)為5時(shí)精度大幅度下降。綜合考量則最合適的隱層數(shù)為3,隱含層節(jié)點(diǎn)數(shù)為50、50、24。 圖4記錄了訓(xùn)練次數(shù)對(duì)實(shí)驗(yàn)準(zhǔn)確率的影響,描述了訓(xùn)練2 000次時(shí),準(zhǔn)確率的變化曲線(假設(shè)lr=0.006)。 圖4 準(zhǔn)確率隨訓(xùn)練次數(shù)變化圖 從圖4可以看出,開始模型逐步收斂但前期不穩(wěn)定產(chǎn)生震蕩,這是由于選擇了較大的學(xué)習(xí)率,導(dǎo)致參數(shù)更新太快。當(dāng)訓(xùn)練次數(shù)T=360左右模型開始穩(wěn)定。在訓(xùn)練次數(shù)選取時(shí),若訓(xùn)練次數(shù)過少,會(huì)造成訓(xùn)練不足;若訓(xùn)練次數(shù)過多,則有可能會(huì)造成過擬合。這里將訓(xùn)練次數(shù)調(diào)整為 600 次。 圖5為選擇迭代次數(shù)為600,學(xué)習(xí)率分別為0.001、 0.003、0.006時(shí)的準(zhǔn)確率變化曲線。 圖5 不同學(xué)習(xí)率準(zhǔn)確率對(duì)比曲線 由圖5可見,選擇T=600,當(dāng)lr=0.001時(shí),準(zhǔn)確率最終穩(wěn)定在99.3%;當(dāng)lr=0.003時(shí),準(zhǔn)確率最終穩(wěn)定在99.1%,模型震蕩最為劇烈且持續(xù)時(shí)間較長;當(dāng)lr=0.006 時(shí),訓(xùn)練到130 次時(shí)準(zhǔn)確率開始收斂,收斂速度最快,且準(zhǔn)確率較為穩(wěn)定,最終收斂于99.6%。由上述內(nèi)容可知,選擇學(xué)習(xí)率lr=0.006最為合適。 設(shè)置隱含層節(jié)點(diǎn)數(shù)為50、50、24,學(xué)習(xí)率lr=0.006,將APU故障含正常狀態(tài)分為0、1、2、3共四類,選取400個(gè)參數(shù)向量作為測試集進(jìn)行診斷,得到的診斷結(jié)果如圖6所示。 圖6 AQPSO-LSTM-BN診斷結(jié)果圖 圖6中,橫坐標(biāo)0~100為正常數(shù)據(jù),測試結(jié)果顯示可以完全識(shí)別;100~200為滑油故障,判錯(cuò)為正常1個(gè);200~300為點(diǎn)火系統(tǒng)故障,判錯(cuò)為滑油故障1個(gè);300~400為發(fā)電機(jī)故障,沒有判錯(cuò)。為驗(yàn)證優(yōu)化算法的合理性,將加了BN層的故障診斷模型與AQPSO-LSTM模型進(jìn)行了對(duì)比,均選取訓(xùn)練次數(shù)T=600次,對(duì)比結(jié)果如圖7所示。 圖7 AQPSO-LSTM與AQPSO-LSTM-BN對(duì)比圖 由圖7可以看出,加BN層后的收斂速度與AQPSO-LSTM故障診斷模型相比有所提高,在訓(xùn)練次數(shù)110左右開始收斂,模型精確度也有所提高。 為驗(yàn)證模型的準(zhǔn)確性,將實(shí)驗(yàn)結(jié)果與傳統(tǒng)的LSTM模型、AQPSO-LSTM模型以及SVM模型、RNN模型和ELM模型的準(zhǔn)確率進(jìn)行對(duì)比,結(jié)果如表4所示。 表4 實(shí)驗(yàn)對(duì)比結(jié)果 由表4可以看出,針對(duì)于飛機(jī)APU故障數(shù)據(jù),AQPSO-LSTM-BN故障診斷模型與單純對(duì)長短期記憶網(wǎng)絡(luò)進(jìn)行參數(shù)優(yōu)化的故障診斷模型相比,準(zhǔn)確率更高,且明顯高于其他單一的故障診斷方法(LSTM,SVM,RNN,ELM)。 常見的單一故障診斷方法各有優(yōu)缺點(diǎn),不能很好地進(jìn)行診斷。本文提出了一種基于優(yōu)化LSTM與BN相結(jié)合的故障診斷模型,首先針對(duì)LSTM參數(shù)難以確定的問題,使用改進(jìn)的QPSO算法對(duì)LSTM隱含層節(jié)點(diǎn)數(shù)進(jìn)行優(yōu)化,然后針對(duì)深層網(wǎng)絡(luò)梯度問題,使用BN對(duì)LSTM網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)。實(shí)驗(yàn)在Python語言開發(fā)環(huán)境中編寫程序并調(diào)用TensorFlow庫函數(shù)完成。實(shí)驗(yàn)結(jié)果表明,AQPSO-LSTM-BN模型可實(shí)現(xiàn)高精度的APU故障診斷,與普通LSTM模型、SVM模型、RNN模型、ELM模型相比,在同等條件下,AQPSO-LSTM-BN故障診斷模型的準(zhǔn)確率更高,速度更快。本文提出的故障診斷模型更適用于處理時(shí)間序列問題,可以對(duì)飛機(jī)發(fā)動(dòng)機(jī)、APU等故障診斷提供一定參考。1.2 性能測試
2 LSTM與批規(guī)范化
2.1 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
2.2 批規(guī)范化
3 搭建AQPSO-LSTM-BN故障診斷模型
3.1 網(wǎng)絡(luò)搭建
3.2 AQPSO-LSTM-BN故障診斷模型的搭建
4 實(shí)驗(yàn)與分析
4.1 實(shí)驗(yàn)數(shù)據(jù)
4.2 模型參數(shù)對(duì)實(shí)驗(yàn)數(shù)據(jù)的影響
4.3 實(shí)驗(yàn)結(jié)果
5 結(jié)束語
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2020年5期