嚴啟華, 羅亮, 陳振宇, 張敏, 李書龍
(1.西南科技大學信息工程學院, 綿陽 621010; 2.清華四川互聯網能源研究院能源大數據研究所, 成都 610200; 3.西南科技大學計算機科學與技術學院, 綿陽 621010)
科學預測飛機故障率可以對航空維修進行科學決策[1-2],是提高維修保障能力不可缺少的重要條件,對于提高航空維修保障工作的預見性、對策性和科學性,提高航空裝備的完善和利用水平,具有十分重要的作用[3]。無人機故障包含“軟故障”和“硬故障”[4],軟故障指系統發生的緩慢變化,如控制系統參數變化或電路偏置漂移等[5-6]。硬故障指飛機突然發生某部分損壞或完全停止工作,這種故障容易識別[7]。
通過對無人機數據的分析,可以及早發現無人機可能出現的故障,如電池電量不足、電機異常、傳感器故障等。這有助于在故障加重之前采取預防措施,避免無人機在飛行中出現事故或損壞。無人機在飛行過程中還可能面臨各種風險,如碰撞、失控、墜毀等。通過分析無人機故障數據并做出預測,可以及早采取措施,避免潛在的安全事故發生,保護人員和財產的安全。
Yang等[8]利用真實的無人機飛行數據,提出了一種完整的基于信息的主成分分析(complete-information-based principal component analysis,CIPCA)-反向傳播神經網絡(back-propagation neural network,BPNN)故障預測方法,可以在無人機故障發生前9 s左右準確預測故障。杜金等[9]開發了一個基于YOLOv5s算法的模型,旨在實現對風機葉片故障的快速檢測和識別,同時兼顧了較高的準確率。Wang等[10]提出了一種半監督聚類技術來對采樣點進行自動模式識別,大大提高了在歷史飛行數據中添加精確標簽的效率和準確性。Yang等[11]提出了一種基于時間戳片和多可分卷積神經網絡(time step-multi scale convolutional neural network,TS-MSCNN)的無人機異常狀態檢測方法,準確率高達97.99%。他們還提出了一種基于無人機環內軟件仿真環境的時間線建模(time line modeling,TLM)方法來獲取和處理無人機的機載故障日志,GPS分類準確率最高達到85.63%。Masalimov等[12]提出了一種新穎的神經網絡結構CompactNeuroUAV模型,實現了常見故障或故障前狀態檢測,準確率為93.36%。Cabahug等[13]將振動數據與K-means聚類算法結合,無人機飛行中故障檢測準確度在89%~95%。Park等[14]提出了一種基于無監督學習的堆疊自編碼器的故障檢測模型。利用無人機安全狀態數據對自編碼器進行訓練,并對其重構損失進行檢測,以區分安全狀態和故障狀態,其準確率最高達到93.21%。Azarakhsh[15]提出了一種使用遞歸最小二乘法來檢測飛機行為異常的實時方法,準確率為86.36%。
黃莉莉等[16]提出基于T-S(Takagi-Sugeno)模糊故障樹的故障診斷方法,解決了實際儀表著陸系統下滑信標(glidepath beacon, GP)故障時無法快速定位故障點的難題。王康等[17]提出了基于貝葉斯網絡的故障診斷方法,解決了飛機駕駛艙手輪故障診斷的不確定性和復雜性,為機務人員迅速做出判斷和高效維修提供有力支持。何永春等[18]提出一種基于注意力機制的多尺度儀表檢測方法,增強了特征的表達能力。王欣等[19]在LSTM中引入了注意力機制,提升了發動機壽命預測模型的精度。吳昉等[20]針對多類型、多特征的缺陷檢測問題,提出一種新穎的并行殘差注意力模塊,可以自適應地選擇缺陷特征。武東輝等[21]將注意力機制添加在時空網絡模型中,解決了單一神經網絡時序信息利用匱乏、局部信息把握不全等問題。
對無人機故障俯仰角數據集進行預測分析,可以及早檢測出無人機可能出現的故障情況。如果預測模型能夠準確地識別無人機俯仰角異常的模式或趨勢,就可以在故障發生之前采取相應的措施,避免飛行事故的發生。通常,對無人機試飛故障的研究大多集中在事故分析和預警管理分析方面[22-23],且研究對象較為模糊。首先是數據獲取難度較大,預測無人機故障需要大量的數據支持,包括無人機的傳感器數據、飛行數據等。但是,獲取這些數據需要安裝相應的傳感器和設備,這可能會增加無人機的重量和復雜度,影響無人機的飛行性能和安全性。其次,無人機試飛具有較高的復雜性和不確定性,無人機試飛時可能會受到環境、風力、天氣等多種因素的影響,這些因素可能會使得無人機的飛行數據和傳感器數據變得復雜和不確定,從而增加預測故障的難度。
預測俯仰角故障數據,一種情況是可以驗證和確認已知故障類型的存在。將預測故障數據并與實際觀測數據進行比對,可以驗證和確認故障類型的準確性;另一種情況是通過預測俯仰角故障數據,可以提供關于故障程度和嚴重性的信息。此外,預測俯仰角故障數據可為故障校正和應對提供指導。預測故障數據可幫助判斷是否需要進行實時調整或干預控制系統以糾正俯仰角異常,這對于保持飛行穩定性和避免潛在風險至關重要。
現以確定故障類型為出發點,添加并調整注意力機制的層級結構,在數據量有限的情況下搭建長短期記憶網絡(long short term memory,LSTM)、差分自回歸移動平均(autoregressive integrated moving average,ARIMA)、注意力機制+LSTM 3個故障數據預測模型,利用該類數據于模型方面進行創新融合,針對模型預測過程中梯度爆炸和梯度消失導致預測準確率下降的問題,在LSTM模型中加入了注意力機制,以實現預測數據盡量貼合真實數據的目的。將ARIMA和LSTM作為對比模型,以驗證模型的優越性。以期對后續的無人機故障類型驗證、實時調整或干預控制等方面提供可靠結果。
所使用的實驗數據源自卡內基梅隆大學ALFA公開數據集[24-25]。目前,該數據集包括47次自主飛行的處理數據,其中包括23次突然的全發動機故障場景及其另外7個不同種類的執行器故障場景共計24次。在正常情況下,總共飛行了66 min,而在故障發生后的飛行時間為13 min。此外,還有數十個故障場景下的全自動、自動駕駛輔助和手動飛行的數小時原始數據[25]。如表1所示。

表1 飛行實驗數據
選取發動機全功率損失故障類型,在此狀態下預測無人機的實際俯仰角狀態。首先將時間序列的時間戳變換成常用的時刻,然后選取表中80%數據作為訓練集(前2 000條),20%數據作為測試集(后520條)。部分數據如表2所示。

表2 無人機試飛部分俯仰角數據
俯仰角表征如圖1所示,plt.c為命令輸入值,plt.m為實際測量值。

圖1 在引擎異常情況下無人機俯仰角表征
ARIMA模型又稱整合移動平均自回歸模型,是時間序列預測辦法之一[26-27]。此模型可以應對非平穩時間序列的建模問題,且當前時刻的值可以由過去若干時刻的值、誤差來預測,所以搭建ARIMA模型對試飛俯仰角數據進行分析。
ARIMA的搭建基本分為3個部分:序列平穩化、模型識別、模型檢驗。試飛數據俯仰角ARIMA模型詳細流程圖搭建如圖2所示。

圖2 ARIMA模型流程圖
ARIMA(p,d,q)模型中,AR表示自回歸(autoregressive),其中p表示自回歸項的數量;MA表示滑動平均(moving average),其中q表示滑動平均項的數量;d表示使時間序列成為平穩序列而進行的差分操作的次數(階數)。可表示為

(1)
式(1)中:L為滯后算子(lag operator);Li為滯后操作符;Xt為時間序列的觀測值;Φi為自回歸系數;θi為移動平均系數;εt為白噪聲誤差;d∈Z,d>0。
當時間序列消除了非平穩時間序列的局部水平和趨勢,某些部分與其他部分相似,時間序列出現一定的同質性。之后進行差分處理,將其轉化為平穩時間序列。轉化后的序列稱為齊次非平穩時間序列,差分次數即為齊次階數[28]。
對于差分算子?,有
?2yt=?(yt-yt-1)=yt-2yt-1+yt-2
(2)
式(2)中:yt為差分的時間序列。對延遲算子B,有
yt-p=Bpyt,?p≥1
(3)
得
?k=(1-B)k
(4)
設有d階其次非平穩時間序列,那么?dyt是平穩時間序列,將其設為ARMA(p,q)模型,即
λ(B)(?dyt)=θ(B)εt
(5)
式(5)中:λ(B)=1-λ1B-λ2B2-…-λpBp;θ(B)=1-θ1B-θ2B2-…-θpBp。
2.2.1 注意力機制
注意力機制(attention mechanism)是一種在人工神經網絡中常用的技術,用于處理序列數據。將輸入序列中相關信息選擇性地聚焦,以便網絡能夠在處理過程中更加關注重要的部分,從而提高模型的性能[29]。其基本思想是模擬人類在處理信息時的注意力分配過程[30],允許模型根據輸入序列中不同位置的重要性來動態地調整注意力權重[31],從而使模型能夠在處理過程中更加關注一些重要的位置或詞匯。對無人機俯仰角故障數據的處理正是運用了這一特點和思想。
在注意力機制中,有如下3個關鍵的要素。
查詢(Query):用于表示當前需要關注的位置或詞匯,通常由網絡的中間層輸出作為查詢輸入。
鍵(Key):用于表示輸入序列中的位置或詞匯,通常由網絡的輸入層輸出作為鍵輸入。
值(Value):用于表示輸入序列中的位置或詞匯的特征,通常由網絡的輸入層輸出作為值輸入。
通過計算查詢與鍵之間的相似度,并將其用作權重,從而在值上計算加權和[32]。這樣,模型可以根據查詢的重要性來聚焦于鍵和值的不同部分,從而在不同位置上分配不同的注意力權重。這使得模型可以根據任務的需要動態地調整對輸入序列的關注度,從而更好地處理序列數據。在attention計算過程如圖3所示。

圖3 Attention計算過程
具體過程如下。
步驟1輸入序列編碼。輸入序列(如文本、圖像等)經過編碼器(Encoder)處理,生成一組特征向量(Key)。這些特征向量可以通過不同的方式生成,如循環神經網絡(RNN)、卷積神經網絡(CNN)等。
步驟2生成查詢(Query)、鍵(F)和值(Value)。從編碼后的特征向量中生成查詢、鍵和值向量。通常可以通過對特征向量進行線性映射得到查詢、鍵和值向量,鍵F(Q,K)中Q為query,K為key。
步驟3計算注意力權重(s)[33]。以計算的方式,查詢向量和鍵向量之間的相似度,得到一組注意力權重。常用的計算相似度的方法有點積(dot product)、縮放點積(scaled dot product)、加性注意力(additive attention)等。
步驟4權重歸一化。對注意力權重進行歸一化,使得權重之和等于1,以確保注意力的有效性。
步驟5加權(a)求和。將歸一化后的注意力權重與對應位置的值向量相乘并求和,得到最終的上下文向量。
步驟6輸出處理。將上下文向量用于后續的任務,如生成文本、分類、回歸等。
充分利用純注意力機制的優勢,即可以進一步優化純注意力機制,顯著提高預測性能[34]。
2.2.2 LSTM模型
長短時記憶網絡(LSTM)模型,其本質是一種循環神經網絡(recurrent neural network,RNN)。LSTM模型在RNN模型的基礎上通過增加門限(gates)來解決RNN短期記憶的問題,使得循環神經網絡能夠真正有效地利用長距離的時序信息。
在傳統的RNN中,訓練算法使用的是BPTT,當時間跨度較大,需要回傳的殘差會指數下降,導致神經網絡權重更新速度變慢,無法展現循環神經網絡(RNN)具備的長期記憶效果。所以引入一個存儲單元,用于存儲網絡中的記憶信息。并幫助網絡捕捉長期依賴關系,確保網絡在處理長時間序列時能夠有效地保留和使用過去的信息[35],因此LSTM模型被提出,利用其優勢搭建LSTM模型,LSTM細節圖如圖4所示。

圖4 LSTM細節圖
(1)輸入門(input gate):通過一個Sigmoid激活函數來控制是否更新細胞狀態(cell state)。Sigmoid函數的輸出范圍在0~1,表示更新的權重。輸入門根據當前輸入和上一個時刻的隱藏狀態來決定是否更新細胞狀態。
(2)遺忘門(forget gate):通過一個Sigmoid激活函數來控制是否遺忘之前的細胞狀態。遺忘門根據當前輸入和上一個時刻的隱藏狀態來決定哪些信息應該被遺忘,哪些應該被保留。
(3)輸出門(output gate):通過一個Sigmoid激活函數來控制是否輸出細胞狀態。輸出門根據當前輸入和上一個時刻的隱藏狀態來決定輸出的細胞狀態。
(4)細胞狀態(cell state):用來存儲網絡中的記憶信息,可以在不同時間步之間傳遞。細胞狀態的更新由輸入門、遺忘門和輸出門共同控制。
(5)隱藏狀態(hidden state):作為LSTM的輸出,也可以作為下一個時間步的輸入。隱藏狀態通過輸出門和細胞狀態進行更新。
2.2.3 模型融合
在搭建LSTM神經網絡模型的基礎上,通過添加注意力層,計算注意力權重來調整LSTM模型的輸出,從而提升模型預測的精度。注意力層即是在每個時間步驟上,根據當前輸入和前一個隱藏狀態計算出一個向量表示,并利用該向量與所有歷史隱藏狀態進行相似性比較。然后,將相似性得分轉換成概率分布,并使用該分布加權平均所有歷史隱藏狀態得到最終的上下文向量,如2.2.1節所介紹。Attention-LSTM框架如圖5所示,注意力層的計算和搭建過程如下。

圖5 Attension-LSTM模型結構
首先輸入數據并區分數據對,便于模型訓練。將數據拼接升為三維數據輸入LSTM模型中,其形狀為N×1×1。
通過一個Dense層將LSTM模型的輸出降維,使用LeakyReLU激活函數,限制輸出范圍。
通過Lambda層將輸出轉換為注意力權重,使用relu函數,轉換輸出數據。
通過Multiply層將LSTM模型的輸出和注意力權重相乘,得到加權后的輸出。
最后通過Lambda層對加權后的輸出求和,得到一個新的特征向量,作為最終的輸出。
選取3種主要的回歸算法評價指標對模型效果進行評價[36],分別為平均絕對誤差(mean absolute error,MAE)、均方根誤差(root mean square error,RMSE)、平均絕對百分比誤差(mean absolute percentage error,MAPE),其計算公式如下。

(6)
平均絕對誤差(MAE):預測值與真實值之間絕對誤差的平均值,用于衡量預測值與真實值之間的平均偏差。MAE 的解釋性很直觀,它表示模型的平均預測誤差,值越小越好。

(7)
均方根誤差(RMSE):均方誤差的平方根,用于衡量預測值與真實值之間的平均偏差,且具有與原始單位相同的量綱。因為RMSE對預測誤差的較大值更加敏感,誤差平方后會放大,從而能夠更好地評估模型的預測準確性。

(8)
平均絕對百分比誤差(MAPE):其值越小,表示模型的預測性能越好,越接近0表示模型的預測非常準確。MAPE具有百分比的形式,可以直觀地了解模型在相對誤差方面的表現。
根據俯仰角數據的數據特征,搭建與其相適應的ARIMA模型:p=2,d=1,q=2。預測效果圖如圖6所示。

圖6 ARIMA預測效果圖
預測結果:MAE=0.35,RMSE=0.73,MAPE=23.80%。
可以看出,由于無人機試飛數據的小樣本性,預測結果中存在梯度爆炸[37]問題,ARIMA模型預測該種類型數據效果不是很理想。
搭建LSTM模型進行預測,預測效果如圖7所示。

圖7 LSTM預測效果圖
預測結果:MAE=0.49,RMSE=0.74,MAPE=45.20%。
可以看出,LSTM模型對無人機俯仰角試飛數據梯度預測比較準確,但是精確度相比于ARIMA模型MAE下降了0.14,RMSE下降了0.01,MAPE下降了21.4%。
在LSTM模型中添加注意力機制以改善模型數據輸入的權重,預測效果如圖8所示。

圖8 注意力機制LSTM預測效果圖
在LSTM模型中添加注意力機制后,預測結果與原數據基本吻合。
預測結果:MAE=0.17,RMSE=0.53,MAPE=18.93%。
針對無人機俯仰角試飛數據,相比于傳統的ARIMA、LSTM模型,在LSTM中添加注意力機制有一個更加優異的表現,如表3所示。

表3 無人機試飛數據俯仰角預測結果
傳統的LSTM模型在處理時間序列數據時可能會面臨梯度消失或梯度爆炸等問題,導致難以捕捉依賴關系。而引入注意力機制后,通過對序列中不同位置的注意力權重進行建模,使模型能夠更加靈活地關注到不同位置的信息,從而更好地處理時間序列數據;當模型輸入數據的權重得到不同分配、在不同的時間步或位置上集中注意力時,就會提高模型的建模能力和預測準確性;同時生成的對不同位置的注意力權重,使模型的預測結果更具解釋性和可解釋性,在實際應用中更容易解釋和理解模型的預測結果。
搭建ARIMA模型和LSTM模型用于無人機俯仰角試飛數據的預測,并在LSTM模型中添加了注意力機制以提升其預測準確性。利用預測結果來判斷是否需要實時調整或干預控制系統,以便糾正俯仰角異常,或者將預測結果應用于故障驗證等方面。實驗結果表明添加了注意力機制的LSTM模型預測效果要優于ARIMA模型和一般的LSTM模型。對于ARIMA模型,還可以通過引入一些創新性元素,如非線性趨勢、異方差性等,來改進模型的預測能力;同時還可以將多個ARIMA模型進行集成,例如通過模型平均、模型堆疊等方式,利用各個模型的優點,降低模型的偏差和方差,從而提高預測分析的準確性。