晏震乾,曹 磊,陳 金
(1.上海民用飛機健康監控工程技術研究中心,上海 200241;2.北京航天測控技術有限公司,北京 100041;3.北京市高速交通工具智能診斷與健康管理重點實驗室,北京 100041;4.軌道交通裝備全壽命周期狀態監測與智能管理技術與應用北京市工程實驗室,北京 100041)
商用飛機的維修和自動化故障診斷,具有非常的技術意義和商業價值。本文著重研究用于商用飛機的故障診斷技術,助力中國商用飛機的維修[1]與自動化故障診斷技術的積累和維修成本的節約。本文將采用基于案例推理和粗糙集結合的方法進行商用飛機故障診斷的全流程一體化解決方案。其中,使用MongoDB存儲故障案例庫,通過構建中文航空詞本進行同義詞替換減少故障中文描述的差異,粗糙集表示飛機故障案例且粗糙集動態決策計算故障案例的特征屬性權重并結合海明距離來度量案例間的相似度實現案例的檢索,最后是案例庫學習實現案例的擴充,提高系統的可靠性以及技術流程的閉環。
基于案例推理[2-4](case-based reasoning,CBR)是指在解決新案例時,通過在案例庫中檢索過去已解決的類似案例,并比較新舊案例的異同,推理出新案例的解決方法的一種決策推理方法,常用于決策系統、專家系統中。
推理新案例時,先將新案例通過案例表示輸入基于案例推理系統中,通過相似度計算檢索出與目標故障案例相似的案例集,若有與目標故障案例描述完全一致的案例,則將其故障排除方法著重突出提交給用戶;若沒有則把目標案例的相似案例按相似程度高低進行排序輸出給用戶,若實踐驗證成功則對此次案例診斷進行評價打分并加入案例庫,完成以此次故障診斷。基于案例推理的故障診斷流程如圖1所示。

圖1 基于案例推理的故障診斷過程
基于案例推理的關鍵在于案例庫的數量和質量。隨著案例庫中案例的增量式學習,案例庫的覆蓋程度隨著系統的使用會逐漸增大,新案例推理的效果就會越來越好。
粗糙集[5-7]是用來研究不完整數據,不精確知識的表達、學習,歸納等的一套理論方法。它是一種新的處理模糊和不確定性問題的數學工具,被廣泛應用于知識發現、機器學習、決策支持、模式識別、專家系統及歸納推理等領域。
基于案例推理進行飛機故障診斷的關鍵是案例表示和案例檢索即案例間相似度的計算。之前的基于案例推理故障診斷系統案例間相似度的計算大多采用專家指定案例的特征屬性權重去進行相似性度量,這具有很大的主觀性。本文采用粗糙集表示案例進而粗糙集動態決策計算出案例的特征屬性權重,避免案例間相似度計算時特征屬性權重確定的主觀性。
案例的知識表示是案例推理的基礎。首先,應確定案例應該描述哪些信息。
從多種多樣的飛機故障案例報告中抽取其最重要最有效的共同特征,將案例抽象成這些共同特征來進行案例描述。飛機故障案例1如圖1所示。

圖2 飛機故障案例1
案例描述內容包括:機型、故障來源、發生位置、故障現象或代碼、故障排除方法等。
然后,是確定案例的存儲方式,將過去已解決的飛機故障實例存儲到數據庫即案例庫中。
傳統使用結構化查詢語言SQL把故障案例的各特征編碼成傳統的數據結構保存在例如MySql或Oracle等關系型數據庫中,其具有牽涉信息的編解碼、增加復雜度和信息的不直觀等缺點。
由于故障案例來源自航空機修工程師一手的pdf格式的飛機故障案例報告文件,故而本文采用一種最新的NoSql非關系型數據庫MongoDB[8]數據庫直接保存文本信息,克服上述缺點。
我們感興趣的關鍵內容通過專門定制的pdf讀取軟件,將pdf剛興趣內容讀取后以如下BSON的形式存儲在MongoDB數據庫中:
{“案例編號”:”xx”,
“案例名稱”:”xx”,
“發生時間”:”xx”,
“機型”:”xx”,
“故障來源”:”xx”,
“發生位置”:”xx”,
“故障現象或代碼”:”xx”,
“故障排除方法編號”:”xx”,
“故障排除方法”:”xx”,
“解釋”:”xx”,
“參考資料”:”xx”}注:內容略
飛機故障診斷案例一般主要由故障現象及故障排除方法兩部分組成。對飛機故障案例進行知識表示時,有必要聯系案例的上下文環境,即機型、故障來源和發生位置。因為是通過搜索故障現象得到目標故障排除方法實現故障診斷功能,所以檢索的故障案例描述有(機型;故障來源;發生位置;故障現象),其中故障現象中又有不確定數量的特征描述。
最后,是從案例數據庫中讀取的案例,該以什么方式表示,并有利于后續實現案例間的檢索。
粗糙集用S=(U,A,V,f)表示,其中U是非空有限對象集,稱為論域,A是非空有限屬性集,V=Ua∈AVa,Va是屬性a的值域,f:U×A→V是一個信息函數。對于任意a屬于A,并且x屬于U,f(x,a)∈Va。如果A=C∪D,則C是條件屬性集,D是決策屬性集,S=(U,A,V,f)也被稱為決策表。
以上述飛機故障案例1為例,此案例為U(只有一個案例的案例集),機型、位置、故障現象等故障描述為條件屬性集C,故障排除方法為決策屬性集D,V為屬性的具體取值,f為粗糙集系統歸納總結的決策規則。
基于案例推理關鍵環節在于相似案例的檢索,案例的檢索是一個查找與匹配的過程,即從案例庫中搜索出與搜索案例相似的有幫助的案例集供用戶查閱。
同義詞替換作為自然語言處理數據預處理的一種手段,在比較兩個中文句子的相似性時,利用同義詞替換技術把幾個同義詞轉換為同一個詞,可以提高中文相似度計算的可靠性,也就提高了故障描述相似度計算的可靠性。
由于中文語言的博大精深與表述多元化,同一事物的描述詞匯較之英文更多種多樣,不同航空工程師對故障現象的描述也會使用不同的近義詞。比如:供氣與通風、排氣與抽風、二號發動機與右發。
所以,首先需要對故障案例的中文描述語言進行分詞,然后再利用同義詞詞本進行同義詞替換[9]。
同義詞詞本一方面可以來自通用中文同義詞詞林,比如哈爾濱工業大學的大詞林[10],并一方面,航空領域的專業詞匯通常高頻出現在故障案例描述中,其呈現高頻和有限的特點,應該由航空領域專業人士構建并維護一個航空領域專用同義詞詞本“同義詞航空領域專用詞本.txt”并隨時收集與增改。
其詞本內容格式及示例如下:
右發|二號發動機|右發動機
故障|正常位OFF燈亮
鋼纜|鋼索
通風|供氣
抽風|排氣
地面|外站短停
每行為一個同義詞序列,同義詞之間用指定分隔符“|”隔開,每行后面的同義詞都會替換為該行第一個指定的最優表述詞。
由于飛機故障大多是由指示燈指示的,而指示燈出于慣性大多是英文,而英語的分詞很簡單,就是空格和標點,但需要中英描述之間的匹配,此時案例檢索時遇到英文要翻譯成中文再進行中文故障描述的匹配。例如:VENT AVNCS SYS FAULT(電子艙航電系統故障)、VENT BLOWER FAN FAULT(電子艙通風扇故障)、VENT EXTRACT FAULT(電子艙抽風扇故障)。
向量或樣本之間的相似性度量,一般通過計算兩個向量之間的距離,即轉化為數學上的向量之間距離的計算,它可以反映出事物間在距離上接近或遠離的程度。案例的故障描述視為一個粗糙集,粗糙集間的相似度可以用案例描述屬性間的海明距離來測量。
信息編碼學中,海明距離是兩個碼流對應位上編碼不同的位數,比如比特流1011與1110,第二位與第四位不同,其海明距離為2。本文中將海明距離取反作為相似度衡量標準,記為海明相似數,比如特征描述1{特征A、特征B、特征C}和特征描述2{特征A、特征D、特征E},特征描述1與特征描述2中,有一個相同的特征A,其海明相似數為1。海明相似數越大,案例特征描述越匹配,案例間越相似。
例如上述飛機故障案例2(見圖3)的故障現象為“供氣正常位OFF燈亮,排氣正常位OFF燈亮”。標點分隔每一句話為一個特征描述(特征集),中文分詞為一個特征。

圖3 飛機故障案例2
如圖4所示,結合航空詞本同義詞替換,兩個案例的故障現象描述語句相似數為4。因為中文表達的開放又統一,可以認為兩個故障現象描述語句中有一個同義詞以上(相似數大于1),兩個故障現象描述語句的相關性就強,需要被檢索出來,從而把故障現象的值設為“存在”或“不存在”兩種取值更有意義,分別以1或0表示。
在案例的檢索中,案例的特征屬性對搜索案例與其他案例區分時所起到的作用是不同的,即特征權值反映了特征的不同重要程度,因此賦予特征合適的權值對案例間相似度的計算是非常有意義的。
現有基于案例推理系統中,屬性的權重是由專家指定的,比如故障現象、發生時間、發生位置權重分別設為0.75、0.05、0.2,存在非常大的主觀性。事實上,發生時間、發生位置、故障現象,同為故障描述的三者,本質上并沒有高低輕重之分。所以,采用自動地屬性權重計算方法,通過粗糙集的決策規則自動提取功能,動態決策計算出屬性的權重。
粗糙集理論中,屬性重要度反映去掉某個屬性后決策的變化程度。設屬性{a}為條件屬性集C的一個屬性,屬性{a}關于條件屬性集C相對于決策屬性集D的屬性重要度為:
Sig(a,C,D)=γC(D)-γC-{a}(D)
其中:γC(D)表示決策屬性D對條件屬性集C的依賴程度。
其中:POSC(D)表示D關于C的正域,|U|表示U的數量。
而γC-{a}(D)表示決策屬性D對去掉屬性{a}的剩余條件屬性集的依賴程度,兩者相減即為決策D對屬性{a}的依賴程度,即屬性{a}對決策的權重。
下面先用有6個案例的案例庫實驗論證粗糙集動態決策計算出案例的特征屬性權重的可行性和有效性;然后利用計算出的屬性權重,結合海明距離相似數,對文中列出的兩個示例案例間的相似性進行度量,表明基于案例推理飛機故障診斷系統案例檢索的有效性;最后對基于案例推理和粗糙集結合的飛機故障診斷系統存在的問題和需要改進的地方進行論述。
表1中,設某機型1=1,某機型2=2,故障來源1=飛行中,故障來源2=地面,故障現象1=電子艙航電系統故障,發生位置1=電子艙航電系統,發生位置2=電子艙風扇,故障現象1=電子艙航電系統故障,故障現象2=電子艙通風扇故障,故障現象3=電子艙抽風扇故障,故障現象是否存在用1或0表示,排故方案以編號表示。

表1 飛機故障診斷決策表
按照上述粗糙集屬性重要性計算公式,得出屬性{機型a1,故障來源a2,發生位置a3,故障現象1a4,故障現象2a5,故障現象3a6}的權重分別為:
即屬性{機型a1,故障來源a2,發生位置a3,故障現象1a4,故障現象2a5,故障現象3a6}的權重分別為{0.2,0,0.2,0.2,0.2,0.2}。
結合上節海明距離相似數乘以屬性權重,上述兩個飛機故障示例案例1和2案例描述之間的相似性度量為:
1×0.2+1×0+1×0.2+1×0.2+1×0.2+1×0.2=1
則故障案例2可以采用故障案例1的排故方案,從而實現飛機故障診斷功能。從故障案例1、2的故障排除方法也可以看出,故障案例1、2的排故方案也確實是大體相同的。
實驗結果證實了結合海明距離和粗糙集動態計算屬性權重實現案例間相似性度量(即案例檢索)的可行性和有效性,但由于案例庫中的案例來自飛機在役飛行航空維修工程師的一手數據,獲取困難。目前實驗的案例庫中的案例數量還不夠,不僅影響粗糙集對案例的特征屬性權重的動態決策的準確性,而且眾所周知檢索的關鍵、效果好壞在于內容的多寡,基于案例推理系統必須足夠數量案例的案例庫才能發揮其基于案例推理專家系統的效果,下一步項目實施的重點在于案例庫的擴充與學習。
隨著本系統的使用和故障案例的發現,故障案例庫會記錄越來越多的故障案例,這樣可以積累國產商用飛機自己的寶貴維修故障數據,并且對商用飛機自己的故障更有針對性,基于案例推理和粗糙集的國產商用飛機故障診斷系統故障診斷的效果也會越來越好。
本文基于案例推理和粗糙集算法對中國商用飛機故障診斷提供了全鏈路的技術解決方案和實驗可行性驗證。一是用MongoDB存儲商用飛機故障案例庫;二是構建航空同義詞詞本替換案例描述中的中文同義詞;三是用粗糙集表示故障案例,并用粗糙集動態決策計算故障案例描述屬性的權重,并結合海明距離計算故障案例間的相似度,來實現案例檢索;四是案例庫擴充學習以完成解決方案的閉環和提高基于案例推理和粗糙集的故障診斷系統的可靠性與準確性。
值得指出的是,只有在實際應用中不斷擴展案例庫中案例的數量和質量,基于案例推理和粗糙集的商用飛機故障診斷系統才能越來越可靠和有效。