李 智,姜 悅,蔡斐華,褚厚斌,張麗曄
(1.北京東方仿真軟件技術有限公司,北京 100029; 2.中國運載火箭技術研究院,北京 100076)
近年來,數據挖掘技術迅猛發展,能夠借助算法從大量數據中快速獲取隱藏信息,在金融、醫療、零售、制造等行業都得到了廣泛應用。在飛行器地面試驗階段,測控通信速率最大包絡數據可達到100 Mbps,一次總檢查所獲得的原始數據可達數十GB,按照解析后數據量增至50倍的數據容量統計,每次總檢查數據達到上千GB,在綜合試驗、匹配試驗、熱平衡、熱真空、總裝測試過程中累計需要經歷上百次總檢查,產生的總數據量級為上百TB;在飛行器在軌運行階段,測控通信速率最大包絡數據可達到2 Mbps,每天傳輸24 h,每天產生總數據量約為1.15 TB。按照飛行器試驗周期一年(按照365天)計算,產生的總數據為420 TB。可以看出,地面試驗和在軌試驗產生的總數據已經達到PB級。由于測試數據信息量大、參數數量多、種類雜,依靠人工進行數據判讀及復查,不僅工作量大、效率低,而且容易造成人為判讀遺漏和偏差。利用數據挖掘技術能夠從大量無序數據中自動抽取其隱藏特征及關聯關系,及時發現飛行器故障征兆并采取有效措施,從而避免重大故障發生。
目前,國外航空航天領域已經率先開展數據挖掘技術在故障預測與診斷方面的研究,并取得了一定的成果。如美國空軍研究實驗室開發的EHM樣機系統、CFM公司的CASSIOPEE、英國航空公司的ARIADNE等,它們將數據挖掘技術與故障診斷技術相融合,建立發動機維修決策支持專家系統。數據挖掘在我國航天領域的應用研究起步較晚,尚處于理論方法探索階段,成功的應用案例較少。
飛行器在進入靶場發射前需要經過長時間的功能及性能試驗,通過對試驗過程產生的遙測數據進行判讀和診斷,可以評估各系統相關設備的電氣功能和性能指標,驗證飛行器上軟、硬件設備的可靠性。由于飛行器體系龐大、結構復雜、分系統眾多,每次試驗過程都會產生大量數據。這些數據具有以下特點。
1)多源性:飛行器測試或在軌運行中各系統產生的數據相互交叉,多通道、多波段測控數據同時下傳,導致數據具有多源性。
2)多樣性:測控數據包括不同的數據類型,如源碼、解析后物理量等結構化數據,xml等半結構化數據,圖片、圖像、文本等非結構化數據,即使對于結構化數據,也包含整數型、浮點型等多種數據類型,導致飛行器測控數據具有多樣性。
3)復雜性:飛行器測試階段要開展靜力試驗、熱平衡、熱真空、振動、電磁兼容等多項大型地面試驗。 不同試驗狀態下飛行器采用不同的工作模式,導致產生的數據具有較高的復雜性。
當前,我國飛行器發射頻率越來越高、周期越來越短、地面測試發射控制技術向著具備快速響應發射的能力發展,在這樣的新要求下,研究快速、先進的數據處理及故障診斷方法是十分必要的。
傳統的飛行器故障診斷方法包括門限判斷法、專家系統方法等。目前國內應用較為廣泛的自動判讀系統利用現有計算、網絡和人工智能技術,實時分析或事后分析的遙測數據,依據已錄入計算機的知識和規則自動進行數據的判讀分析,在火箭測試中發揮了很大的輔助決策作用。但是,判讀規則以及故障模式仍然需要工程師人工梳理完成,梳理過程工作量大、也很難全部覆蓋火箭所有工作狀態。
目前,試驗數據管理分散,試驗數據異構性強,缺少規范統一的數據存儲格式,數據共享困難。由于缺乏規范的試驗流程與統一的數據存儲格式,使得試驗數據比對分析的過程中人為干涉的步驟和因素較多,不能及時、準確、規范的反應測試環境、各類參數及測試結果,或記錄的數據無法被相關人員正確理解,很大程度上影響了測試結果的置信度與重用性,使得跨平臺數據共享困難。同時目前測試數據的挖掘與利用水平偏低?,F有的試驗數據管理更多地表現為數據堆積、數據倉庫的概念,數據之間未能有效地關聯,數據資源的利用率非常低下,數據的價值,特別是海量數據的整體價值沒有得到體現。試驗完成后,數據經常僅進行基本的分析,通常是“一次測試,再不使用”,未進行數據挖掘和更深層次的數據分析,不能持續提供實時、深入的數據服務,難以通過試驗數據定量化地全面驗證產品各屬性的內在關系。
隨著航天飛行器裝備及試驗技術的發展,面對過去常年累積的、目前不斷產生的、未來持續呈指數形式增長的海量試驗數據,傳統的試驗數據管理與分析手段已經無法滿足裝備研制與優化設計的需求。為充分利用試驗數據價值,迫切需要開展試驗數據管理與挖掘技術研究。
測控試驗數據量大、參數多,人工實時判讀效率低下,開展基于數據挖掘的飛行器故障診斷技術研究對解決構建參數知識庫、實時異常監測、預測問題具有決定性作用。其核心思想是研究利用數據挖掘、人工智能算法,對歷史試驗數據進行深度學習,通過分析參數數據在每次試驗中的數據鏈條特性,以及與其它參數之間的關聯性概率,參數的數據趨勢特征,形成飛行器參數知識模型庫,與人工梳理的故障模型庫結合,采用混合模式對飛行器當前實驗數據進行故障診斷和預測。
基于數據挖掘的飛行器故障診斷技術首先對參數進行預處理分析,然后利用聚類分類算法對參數之間的關聯關系及影響概率進行分類,之后對利用神經網絡、貝葉斯等機器學習算法對參數值及參數間變化關系進行學習,經過對歷史數據的反復學習后,確定參數的閥值及數據鏈特征,再對當前試驗數據進行對比分析,給出參數故障診斷的結果。具體分為離線訓練學習建模階段和在線實時診斷階段。
離線訓練學習建模階段主要采用基于數據挖掘的算法建立飛行器參數知識模型庫,學習過程如圖1所示。

圖1 離線學習階段框架
2.1.1 數據預處理
數據預處理主要完成試驗數據的處理,將參數進行變換,形成可直接用于挖掘和分析的參數,數據轉換主要包括求均值、方差、斜率、頻譜等,實現數據的初步加工。
2.1.2 數據標注
離線訓練數據需要進行標注。需要注意的是,不是所有的歷史數據都需要標注,因為這樣會帶來極大的工作量并且對機器學習模型效果的提升有限,適當選取有代表性的數據標注即可。最新的技術也支持通過少量標注來自動標注歷史數據,甚至無需標注就可以進行機器學習。將標注好的歷史數據分為訓練數據和測試數據,常用的比例是9:1或者4:1,也可以根據項目的實際情況進行調整。
2.1.3 數據挖掘
挑選數據的特征是數據挖掘中的重要步驟,由于特征過多可能會帶來過擬合的問題,所以需要用特征工程技術對特征進行選取,合并、裁剪一些特征。根據不同的需求可以采用不同算法,如圖2所示。

圖2 挖掘算法庫
1)利用基于Kmeans、Clusteam、決策樹等聚類算法,對歷史數據學習,獲取單個參數值的變化范圍,進而獲取參數判據及變化數據鏈特征知識;
2)基于貝葉斯、支持向量機、Apriori等關聯規則模型學習算法獲取參數與參數之間的狀態關聯概率特征,獲取參數狀態強關聯規則知識;
3)基于退化速率的通用預測模型、指數平滑、相關向量回歸算法,對歷史數據進行學習,獲取參數的趨勢特征模型,建立參數的趨勢特征知識庫。
結合Spark、MapReduce等分布式計算的框架,可以有效地處理海量數據,通過訓練和不斷地參數調優得到效果最好的分類模型。
在線實時診斷階段結合故障模型庫進行綜合決策診斷。通過將診斷知識庫中的知識與實時實驗數據進行比對分析,分析當前試驗數據的是否存在異?;蜈厔菪宰兓?,同時運用數據知識與故障模型知識進行決策診斷,從而發現航天飛行器可能存在的潛在故障,提前預測,將風險降低到最小。
飛行器實時故障診斷業務場景如圖3所示,實時接收火箭前端測試設備發送的數據流,對數據流進行預處理,根據聚類關系對數據流進行分類,根據參數數據鏈特征對參數值結果進行分析判定;根據關聯規則模型知識,對比參數的狀態與其它參數狀態關聯規則是否匹配,進行分析判定;根據參數趨勢特征知識,對參數趨勢變化進行判定。在診斷處理異常參數后,與故障模型庫的參數特征進行綜合診斷,實現對故障的定位和預測。

圖3 基于數據挖掘的飛行器故障診斷業務執行圖
飛行器故障診斷問題可以看作一個二分類問題,使用常用的SVM、邏輯回歸等可以達到較好的分類效果,但是由于這些算法不能捕捉到數據中的非線性特征,所以存在一定的瓶頸。樹模型可以較好地捕捉到非線性特征,被廣泛應用到現代的機器學習系統中。常用的樹模型包括隨機森林和梯度提升決策樹(gradient boosting decision tree,簡稱GBDT)。
這里我們借助XGBoost(一個優化的分布式梯度增強庫)作為梯度提升決策樹的實現。我們以5次飛行器總檢查試驗中的配電器數據作為數據源,共計117987幀數據,分別被標注為正常數據和異常數據,每幀數據包括當前指令ID以及30個配電器參數值。隨機將數據集拆分為訓練集(64%)、驗證集(16%)和測試集(20%)。在特征工程階段,我們將當前指令ID做了one-hot編碼(單熱編碼),生成了22個特征,加上原來的30個連續值特征,共52個特征。
在這里,我們對比了邏輯回歸和樹模型兩種算法。我們借助XGBoost(一個優化的分布式梯度增強庫)作為梯度提升決策樹的實現。在樹模型中,我們設置XGBoost中樹的最大深度為6,“objective”參數設置為“binary:logistic”,即作為二分類問題,訓練輪數為50(即生成50棵決策樹)。以AUC(area under ROC curve)作為評估指標,得到結果如表1所示。

表1 算法指標評估結果
在測試集上,我們選用不同的閾值進行故障判別,不同算法在不同閾值情況下的精確率、召回率和F1值如表2所示。

表2 不同閾值下兩種算法對比結果
可以看到,樹模型的AUC指標表現更優,召回率更高,對故障更敏感,模型的整體表現更好。
飛行器故障診斷系統分為數據存儲層、計算層、服務層和應用層,如圖4所示。

圖4 基于大數據的多源異構海量試驗數據融合、存儲與管理圖
數據存儲層:負責存儲系統需要的各類數據,涵蓋結構化數據、半結構化數據及非結構化數據。本系統中,采用關系型數據庫存儲結構化數據,采用文件的形式存放半結構化數據和非結構化數據。
計算層:通過大數據存儲與處理框架滿足大數據的處理能力,并實現與現有數據庫的集成,實現數據抽取再存儲,實現多源異構數據集成?;诖髷祿夹g的數據管理,主要有大數據采集、大數據存儲、大數據處理三大部分內容。所有這些功能都圍繞大數據存儲的分布式文件系統展開。本系統擬采用hadoop 分布式文件系統 (HDFS:hadoop distributed file system)構建HDFS 集群,并在hadoop接口基礎上構建整個文件管理系統。隨著SQL-on-Hadoop數據庫的出現,表明hadoop與關系型數據庫的有機整合已進入技術成熟期,Hadoop+RDBMS的混合通用型數據庫是數據挖掘領域在數據存儲和服務方面的發展趨勢。
服務層:包括基礎服務和分析處理服務兩部分?;A服務包括數據分類標準化、數據資源交換、數據資源共享、元數據管理、數據安全等為數據的處理提供服務;分析處理服務提供數據分析服務,包括特征提取、趨勢分析、故障診斷、機理模型、狀態評估分析等,為裝備的故障診斷與評估提供必要的服務算法。每個核心模塊需提供相應的API接口,包含數據查詢接口、數據上傳、下載接口、集成第三方軟件接口,這些接口主要提供給試驗分析控件、可視化控件等外部系統調用。
應用層:應用層為系統提供與用戶交互的功能,以及基于安全機制的上線運行。應用層主要實現產品數據管理、數據處理、數據挖掘算法配置、離線訓練、在線診斷、結果可視化等功能。
基于數據挖掘的故障診斷主要是調用離線訓練形成的飛行器參數知識模型庫,對實時存入的新試驗數據進行故障診斷與趨勢分析,分析故障原因,記錄故障處理過程。
1)數據加載:將挖掘所要使用到的數據從HDFS文件系統和Hbase中加載至實時緩存區,供上層數據快速調用。
2)數據處理:從HDFS文件中,獲取輸入的數據。并將處理結果也保存在HDFS文件系統中,為數據挖掘發展所經過的程序進行數據加載、提取、清理、轉換,對數據進行融合處理,形成規范化數據格式。
3)數據挖掘算法配置:在線完成對各類常用數據挖掘算法參數配置修改,與數據庫中數據接口關聯匹配,支持算法包括PLS、PCA等多元統計學習方法、KMean、Clusteam、決策樹等聚類算法,樸素貝葉斯、支持向量機、Apriori等關聯規則算法,最大特征相似集和粒計算的診斷決策技術和廣義高斯核函數決策類算法,退化速率的通用預測模、相關向量回歸預測類算法等。
4)離線訓練:根據選擇的數據算法、參數配置值以及關聯的實驗數據集,在線運行算法模型進行學習訓練,利用MapReduce并行計算框架,可以大大縮短訓練時間,在獲得參數故障診斷的知識后,存入數據庫中。
5)基于數據挖掘的在線診斷:在飛行器測試之前,根據訓練結果,選用表現較好的模型知識庫,與訓練所得的知識進行比對決策,對實時存入的實驗數據進行在線故障診斷。
本文提出了利用數據挖掘技術、機器學習算法開展飛行器故障診斷的方法,采用對歷史試驗數據進行機器學習,獲取形成飛行器參數知識模型庫,分析當前試驗數據的異常和趨勢,可以實現對飛行器開展快速、有效的故障診斷,對飛行器健康狀態進行評估具有重大意義。通過探討基于數據挖掘的飛行器故障診斷系統框架構成,可以實現數據驅動的飛行器智能故障診斷技術的系統化、自動化、成熟化,為下一步的工作提供指導。