李 煒 崔佳佳
(1.蘭州理工大學(xué)電氣工程與信息工程學(xué)院 蘭州 730050)
(2.甘肅省工業(yè)過(guò)程先進(jìn)控制重點(diǎn)實(shí)驗(yàn)室 蘭州 730050)
(3.蘭州理工大學(xué)電氣與控制工程國(guó)家級(jí)實(shí)驗(yàn)教學(xué)示范中心 蘭州 730050)
Quadrotor UAV是基于自身傳感器或通過(guò)遠(yuǎn)程遙控實(shí)現(xiàn)自主飛行的智能裝備,在實(shí)際飛行中因受多種因素影響極易發(fā)生故障[1]。為確保無(wú)人機(jī)的安全飛行,可靠的故障機(jī)制顯得尤為重要,同時(shí),無(wú)人機(jī)安全運(yùn)行必須依靠及時(shí)且準(zhǔn)確的故障診斷。
近年來(lái),在無(wú)人機(jī)的故障診斷領(lǐng)域,有不少的研究成果[2~5],但主要以基于模型的方法為主,此類方法一方面對(duì)模型依賴過(guò)強(qiáng),建模誤差與內(nèi)外不確定性都會(huì)影響故障診斷的精度,同時(shí),無(wú)人機(jī)的系統(tǒng)耦合性較高,以至于系統(tǒng)模型不易建立;另一方面對(duì)數(shù)據(jù)的利用不足也增加了故障診斷的難度。這些因素導(dǎo)致故障診斷難以達(dá)到理想的效果。
2006年,Hinton教授提出了深度學(xué)習(xí)(Deep Learning)的思想,開辟了深度學(xué)習(xí)在學(xué)術(shù)界和工業(yè)界應(yīng)用的浪潮[6]。深度學(xué)習(xí)模擬大腦的學(xué)習(xí)過(guò)程,構(gòu)建深層次的網(wǎng)絡(luò)模型,結(jié)合大量數(shù)據(jù),自發(fā)學(xué)習(xí)數(shù)據(jù)中隱含的特征關(guān)系,不需人為提取特征,最終提升故障分類或預(yù)測(cè)精度[7]。
堆棧自編碼器 SAE[8~9](Stacked Auto-Encoder,SAE)是深度學(xué)習(xí)方法中的一種,通過(guò)構(gòu)建具有多隱含層的機(jī)器學(xué)習(xí)模型對(duì)訓(xùn)練樣本進(jìn)行逐層特征變換,將訓(xùn)練樣本在原空間的特征表示轉(zhuǎn)換到一個(gè)新的特征空間,致使分類更加容易,最終提升分類的準(zhǔn)確性[8]。該方法能夠自主深入地刻畫數(shù)據(jù)的內(nèi)在聯(lián)系信息,減少人為提取特征造成的主觀性影響,并降低因人為主觀特征提取而造成故障診斷錯(cuò)誤率等問題。
但由于無(wú)人機(jī)不可能在完全理想的狀態(tài)下運(yùn)行,勢(shì)必有噪音和元器件的相互影響,使得SAE的實(shí)際故障診斷中魯棒性不足,因此,診斷效果不理想,針對(duì)這個(gè)問題,本文采用SDA的故障診斷方法。將帶有噪聲的數(shù)據(jù)訓(xùn)練深度網(wǎng)絡(luò),使其具有較優(yōu)的泛化性,并有較好的魯棒性,最終提升無(wú)人機(jī)執(zhí)行器故障診斷的準(zhǔn)確率。
鑒于quadrotor UAV由四個(gè)旋翼作為執(zhí)行器,并發(fā)故障的可能性較小,因此本文僅考慮單旋翼故障問題,將SDA與系統(tǒng)性能容忍度結(jié)合,提出一種基于SDA的無(wú)人機(jī)故障診斷方法。以提升無(wú)人機(jī)故障診斷的準(zhǔn)確性,致使系統(tǒng)安全可靠的工作。
棧式降噪自編碼SDA是以自編碼器AE堆疊而成的網(wǎng)絡(luò)。結(jié)構(gòu)上與傳統(tǒng)多層神經(jīng)網(wǎng)絡(luò)沒有區(qū)別,訓(xùn)練時(shí)采用逐層訓(xùn)練的方法,將前一層的輸出作為下一層的輸入依次訓(xùn)練。
AE有別于其他深度學(xué)習(xí)方法在于AE的輸入數(shù)據(jù)和輸出目標(biāo)一致,通過(guò)編碼網(wǎng)絡(luò)將輸入數(shù)據(jù)x轉(zhuǎn)換為編碼矢量h,通過(guò)解碼網(wǎng)絡(luò)將編碼矢量h重構(gòu)回原來(lái)的輸入數(shù)據(jù)[10~12]。因此,編碼矢量成為輸入數(shù)據(jù)的一種特征表示。如果編碼矢量h可以很好的重構(gòu)輸入數(shù)據(jù)x,那么認(rèn)為它保留了訓(xùn)練樣本中的重要信息。SDA的訓(xùn)練分為預(yù)訓(xùn)練和微調(diào)2個(gè)階段。
1)預(yù)訓(xùn)練
預(yù)訓(xùn)練的過(guò)程實(shí)質(zhì)就是網(wǎng)絡(luò)參數(shù)初始化的過(guò)程,采用逐層無(wú)監(jiān)督特征優(yōu)化算法,訓(xùn)練層與層之間的連接權(quán)值及各層神經(jīng)元的偏置值得到相應(yīng)的初始值。以1層AE為例,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。1個(gè)基本的AE可視為由輸入層、隱含層和輸出層構(gòu)成的神經(jīng)網(wǎng)絡(luò)。從輸入層到隱含層是編碼過(guò)程,如式(1)所示;從隱含層到輸出層是解碼過(guò)程,如式(2)所示。
圖1 AE結(jié)構(gòu)
式中,f和g分別表示編碼和解碼函數(shù);sf和sg為激活函數(shù);W和WT分別為輸入層與隱含層、隱含層與輸出層之間的權(quán)值矩陣;p和q分別為隱含層、輸出層上的偏置向量。本文中將AE的參數(shù)記
然后利用梯度下降法對(duì)損失函數(shù)極小化處理,得到該層的參數(shù)θ,損失函數(shù)如式(4)所示:
上層AE訓(xùn)練完成之后,將其隱含層的輸出向量作為下一層的輸入,采用相同的進(jìn)行訓(xùn)練下一層AE,依次迭代,直至最終完成整個(gè)棧式降噪自編碼器SDA的訓(xùn)練。
但由于樣本數(shù)據(jù)不可能在理想狀態(tài)下得到,且系統(tǒng)運(yùn)行也處于復(fù)雜的環(huán)境,因此用干凈理想狀態(tài)的樣本數(shù)據(jù)S進(jìn)行網(wǎng)絡(luò)訓(xùn)練,得到的深度網(wǎng)絡(luò)的泛化性能不足以在實(shí)時(shí)系統(tǒng)運(yùn)行中,得到很好的診斷結(jié)果,因此將含有高斯白噪聲的數(shù)據(jù)S′作為樣本數(shù)據(jù)進(jìn)行訓(xùn)練,使得SDA從含有噪聲的樣本中學(xué)到具有良好魯棒性的特征,降低對(duì)微小擾動(dòng)的敏感性。
2)微調(diào)
完成預(yù)訓(xùn)練后,再以監(jiān)督學(xué)習(xí)方法利用有標(biāo)簽的無(wú)人機(jī)數(shù)據(jù)集S2反向微調(diào)SDA參數(shù),使得整個(gè)網(wǎng)絡(luò)的參數(shù)以達(dá)到全局最優(yōu)。為了判斷無(wú)人機(jī)執(zhí)行器的故障類型,在SDA網(wǎng)絡(luò)頂層需添加具有分類作用的輸出層,結(jié)構(gòu)如圖2。
圖2 SDA模型
由于quadrotor UAV飛控系統(tǒng)執(zhí)行器常發(fā)生的故障類型有恒偏差、恒增益、卡死故障,建立如下統(tǒng)一的故障模型[13]:
當(dāng)α=0,Δ=0且β=1時(shí),執(zhí)行器正常運(yùn)行;當(dāng)Δ=0,β=1且α≠0時(shí),執(zhí)行器發(fā)生恒偏差故障;當(dāng)α=0,Δ=0且β≠1時(shí),執(zhí)行器發(fā)生恒增益故障;當(dāng)α=0,β=0且Δ≠0時(shí),執(zhí)行器發(fā)生卡死故障。
針對(duì)上述三類執(zhí)行器故障問題,考慮到SDA對(duì)故障有效分類的優(yōu)勢(shì),于是本文將SDA引入系統(tǒng)監(jiān)控機(jī)制,其基本思路是:首先利用UAV執(zhí)行器三類故障數(shù)據(jù)(含高斯白噪聲)離線訓(xùn)練SDA網(wǎng)絡(luò)(如圖3所示),將訓(xùn)練好的網(wǎng)絡(luò)放到系統(tǒng)監(jiān)控決策模塊中;無(wú)人機(jī)飛行時(shí),實(shí)時(shí)依據(jù)系統(tǒng)性能容忍度指標(biāo)檢測(cè)執(zhí)行器是否發(fā)生故障,若發(fā)生故障,利用SDA在線識(shí)別執(zhí)行器故障類型,輸出故障診斷結(jié)果;否則系統(tǒng)正常運(yùn)行(如圖4所示)。
圖3 離線訓(xùn)練SDA網(wǎng)絡(luò)
圖4 系統(tǒng)監(jiān)控決策流程圖
圖中系統(tǒng)性能容忍度指標(biāo)Qc依據(jù)文獻(xiàn)[14~15]方法計(jì)算,且需提前設(shè)置系統(tǒng)性能容忍度指標(biāo)閾值QcT。
本實(shí)驗(yàn)中,UAV的三個(gè)地坐標(biāo)系下的坐標(biāo)值和無(wú)人機(jī)的橫滾角θ,俯仰角?,偏航角φ為數(shù)據(jù)樣本,在Simulink無(wú)人機(jī)實(shí)驗(yàn)平臺(tái)獲得三類執(zhí)行器故障數(shù)據(jù)樣本,具體參數(shù)見表1[13]。
針對(duì)UAV三類執(zhí)行器故障問題,每種執(zhí)行器故障均取2000個(gè)故障數(shù)據(jù),同時(shí)還需取2000個(gè)正常情況下的數(shù)據(jù),則共取8000個(gè)數(shù)據(jù)作為樣本,故障類型對(duì)應(yīng)的標(biāo)簽見表2。實(shí)驗(yàn)中,隨機(jī)選擇30%作為測(cè)試樣本集,剩下的樣本作為訓(xùn)練樣本。
設(shè)SDA參數(shù)θ初始化服從高斯分布隨機(jī)值,其他參數(shù)見表3。為了得到合適的的SDA網(wǎng)絡(luò),進(jìn)行以下測(cè)試。
表1 四旋翼無(wú)人機(jī)相關(guān)參數(shù)表
表2 無(wú)人機(jī)執(zhí)行器3種故障類型狀態(tài)
1)SDA層數(shù)的確定
設(shè)定迭代次數(shù)均為25,分別測(cè)試網(wǎng)絡(luò)層數(shù)為0~6時(shí)的故障診斷的準(zhǔn)確率,結(jié)果如圖5。可看出層數(shù)為4時(shí),故障分類準(zhǔn)確率達(dá)到96%,此后隨層數(shù)的增長(zhǎng),正確率增長(zhǎng)緩慢,但網(wǎng)絡(luò)訓(xùn)練的時(shí)間增長(zhǎng)的更快,因此選取4層SDA網(wǎng)絡(luò)。
2)SAE迭代次數(shù)的確定
設(shè)定SDA的網(wǎng)絡(luò)層數(shù)為4,同時(shí)分別測(cè)試迭代次數(shù)為5、10、…、30時(shí),SDA網(wǎng)絡(luò)故障診斷準(zhǔn)確率如圖6??梢钥闯觯S著迭代次數(shù)的增加其準(zhǔn)確率逐漸增長(zhǎng),當(dāng)?shù)螖?shù)為20時(shí),其準(zhǔn)確率已達(dá)到97%,之后隨迭代次數(shù)的增加,故障診斷的準(zhǔn)確率已無(wú)明顯改善,但訓(xùn)練時(shí)間會(huì)增長(zhǎng),因此確定SAE迭代次數(shù)為20。
由此可初步確定用于無(wú)人機(jī)執(zhí)行器故障診斷的SDA為迭代20次的4層網(wǎng)絡(luò)。
圖6 4層網(wǎng)絡(luò)在不同迭代次數(shù)下的故障準(zhǔn)確率
為了減少隨機(jī)因素的影響,反復(fù)訓(xùn)練網(wǎng)絡(luò)20次,其準(zhǔn)確率如圖7,20次實(shí)驗(yàn)的平均準(zhǔn)確率為97%,充分表明迭代20次的4層SDA網(wǎng)絡(luò),可準(zhǔn)確診斷無(wú)人機(jī)執(zhí)行器故障。
圖7 20次試驗(yàn)中執(zhí)行器故障類型識(shí)別準(zhǔn)確率
為驗(yàn)證基于SDA無(wú)人機(jī)執(zhí)行器故障診斷方法的有效性,在Simulink仿真平臺(tái)上進(jìn)行實(shí)驗(yàn),對(duì)無(wú)人機(jī)執(zhí)行器人為施加故障,進(jìn)行仿真實(shí)驗(yàn)。
4.2.1 仿真實(shí)驗(yàn)
系統(tǒng)性能容忍度指標(biāo)QcT取0.2,故障類型所對(duì)應(yīng)的標(biāo)簽依然和表2保持一致,每秒采樣50次。
假設(shè)t=1.2s時(shí)發(fā)生β=0.3的恒增益故障(標(biāo)簽1),t=2s系統(tǒng)恢復(fù);t=2.5s時(shí)發(fā)生α=0.2的恒偏差故障(標(biāo)簽2),t=3s系統(tǒng)恢復(fù);t=3.5s時(shí)發(fā)生Δ=0.4的卡死故障(標(biāo)簽3),t=4s系統(tǒng)恢復(fù)。同時(shí)為了驗(yàn)證本文方法的優(yōu)勢(shì),與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)和堆棧自編碼器SAE進(jìn)行對(duì)比實(shí)驗(yàn)(數(shù)據(jù)樣本保持一致)。仿真實(shí)驗(yàn)結(jié)果如圖8。
4.2.2 仿真結(jié)果分析
當(dāng)執(zhí)行器依次發(fā)生3類故障時(shí),如圖8所示,本文的方法故障判斷結(jié)果與實(shí)際故障類型一致,準(zhǔn)確率為100%,說(shuō)明本文的方法可以排除外界和系統(tǒng)內(nèi)部的影響,準(zhǔn)確地識(shí)別無(wú)人機(jī)執(zhí)行器的故障類型。
同時(shí),也可從圖中看出,基于SAE的方法在識(shí)別故障時(shí)均出現(xiàn)誤判,將故障1判斷為故障2,將故障2誤判為故障1,其故障識(shí)別率為96%,低于本文的方法;基于BP神經(jīng)網(wǎng)絡(luò)的方法出現(xiàn)的誤判次數(shù)更多,出現(xiàn)將正常狀態(tài)誤判為故障1等較為嚴(yán)重的現(xiàn)象,其準(zhǔn)確率僅為85%,均低于前兩者。
綜上可得:當(dāng)無(wú)人機(jī)執(zhí)行器發(fā)生故障時(shí),基于SDA的無(wú)人機(jī)執(zhí)行器故障診斷的方法泛化性較強(qiáng),針對(duì)無(wú)人機(jī)執(zhí)行器的故障判斷有明顯的優(yōu)勢(shì),可準(zhǔn)確地識(shí)別執(zhí)行器故障類型,更有利于系統(tǒng)安全可靠的運(yùn)行。
圖8 故障分類結(jié)果
本文針對(duì)無(wú)人機(jī)執(zhí)行器的故障診斷的快速可靠性需求,考慮深度SDA網(wǎng)絡(luò)的優(yōu)點(diǎn),提出了一種基于深度學(xué)習(xí)的無(wú)人機(jī)故障診斷方法。其巧妙之處在于將噪聲數(shù)據(jù)作為樣本進(jìn)行訓(xùn)練,有效地解決了網(wǎng)絡(luò)泛化性能不足問題。仿真表明基于SDA故障診斷方法其準(zhǔn)確性更優(yōu),泛化性能更好,為系統(tǒng)安全可靠的運(yùn)行提供了保障。同時(shí)無(wú)人機(jī)執(zhí)行器并發(fā)故障的診斷將是下一步值得研究的工作。