晏震乾,曹 磊,陳 金
(1.上海民用飛機(jī)健康監(jiān)控工程技術(shù)研究中心,上海 200241;2.北京航天測控技術(shù)有限公司,北京 100041;3.北京市高速交通工具智能診斷與健康管理重點(diǎn)實(shí)驗(yàn)室,北京 100041;4.軌道交通裝備全壽命周期狀態(tài)監(jiān)測與智能管理技術(shù)與應(yīng)用北京市工程實(shí)驗(yàn)室,北京 100041)
商用飛機(jī)的維修和自動化故障診斷,具有非常的技術(shù)意義和商業(yè)價(jià)值。本文著重研究用于商用飛機(jī)的故障診斷技術(shù),助力中國商用飛機(jī)的維修[1]與自動化故障診斷技術(shù)的積累和維修成本的節(jié)約。本文將采用基于案例推理和粗糙集結(jié)合的方法進(jìn)行商用飛機(jī)故障診斷的全流程一體化解決方案。其中,使用MongoDB存儲故障案例庫,通過構(gòu)建中文航空詞本進(jìn)行同義詞替換減少故障中文描述的差異,粗糙集表示飛機(jī)故障案例且粗糙集動態(tài)決策計(jì)算故障案例的特征屬性權(quán)重并結(jié)合海明距離來度量案例間的相似度實(shí)現(xiàn)案例的檢索,最后是案例庫學(xué)習(xí)實(shí)現(xiàn)案例的擴(kuò)充,提高系統(tǒng)的可靠性以及技術(shù)流程的閉環(huán)。
基于案例推理[2-4](case-based reasoning,CBR)是指在解決新案例時(shí),通過在案例庫中檢索過去已解決的類似案例,并比較新舊案例的異同,推理出新案例的解決方法的一種決策推理方法,常用于決策系統(tǒng)、專家系統(tǒng)中。
推理新案例時(shí),先將新案例通過案例表示輸入基于案例推理系統(tǒng)中,通過相似度計(jì)算檢索出與目標(biāo)故障案例相似的案例集,若有與目標(biāo)故障案例描述完全一致的案例,則將其故障排除方法著重突出提交給用戶;若沒有則把目標(biāo)案例的相似案例按相似程度高低進(jìn)行排序輸出給用戶,若實(shí)踐驗(yàn)證成功則對此次案例診斷進(jìn)行評價(jià)打分并加入案例庫,完成以此次故障診斷?;诎咐评淼墓收显\斷流程如圖1所示。
圖1 基于案例推理的故障診斷過程
基于案例推理的關(guān)鍵在于案例庫的數(shù)量和質(zhì)量。隨著案例庫中案例的增量式學(xué)習(xí),案例庫的覆蓋程度隨著系統(tǒng)的使用會逐漸增大,新案例推理的效果就會越來越好。
粗糙集[5-7]是用來研究不完整數(shù)據(jù),不精確知識的表達(dá)、學(xué)習(xí),歸納等的一套理論方法。它是一種新的處理模糊和不確定性問題的數(shù)學(xué)工具,被廣泛應(yīng)用于知識發(fā)現(xiàn)、機(jī)器學(xué)習(xí)、決策支持、模式識別、專家系統(tǒng)及歸納推理等領(lǐng)域。
基于案例推理進(jìn)行飛機(jī)故障診斷的關(guān)鍵是案例表示和案例檢索即案例間相似度的計(jì)算。之前的基于案例推理故障診斷系統(tǒng)案例間相似度的計(jì)算大多采用專家指定案例的特征屬性權(quán)重去進(jìn)行相似性度量,這具有很大的主觀性。本文采用粗糙集表示案例進(jìn)而粗糙集動態(tài)決策計(jì)算出案例的特征屬性權(quán)重,避免案例間相似度計(jì)算時(shí)特征屬性權(quán)重確定的主觀性。
案例的知識表示是案例推理的基礎(chǔ)。首先,應(yīng)確定案例應(yīng)該描述哪些信息。
從多種多樣的飛機(jī)故障案例報(bào)告中抽取其最重要最有效的共同特征,將案例抽象成這些共同特征來進(jìn)行案例描述。飛機(jī)故障案例1如圖1所示。
圖2 飛機(jī)故障案例1
案例描述內(nèi)容包括:機(jī)型、故障來源、發(fā)生位置、故障現(xiàn)象或代碼、故障排除方法等。
然后,是確定案例的存儲方式,將過去已解決的飛機(jī)故障實(shí)例存儲到數(shù)據(jù)庫即案例庫中。
傳統(tǒng)使用結(jié)構(gòu)化查詢語言SQL把故障案例的各特征編碼成傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)保存在例如MySql或Oracle等關(guān)系型數(shù)據(jù)庫中,其具有牽涉信息的編解碼、增加復(fù)雜度和信息的不直觀等缺點(diǎn)。
由于故障案例來源自航空機(jī)修工程師一手的pdf格式的飛機(jī)故障案例報(bào)告文件,故而本文采用一種最新的NoSql非關(guān)系型數(shù)據(jù)庫MongoDB[8]數(shù)據(jù)庫直接保存文本信息,克服上述缺點(diǎn)。
我們感興趣的關(guān)鍵內(nèi)容通過專門定制的pdf讀取軟件,將pdf剛興趣內(nèi)容讀取后以如下BSON的形式存儲在MongoDB數(shù)據(jù)庫中:
{“案例編號”:”xx”,
“案例名稱”:”xx”,
“發(fā)生時(shí)間”:”xx”,
“機(jī)型”:”xx”,
“故障來源”:”xx”,
“發(fā)生位置”:”xx”,
“故障現(xiàn)象或代碼”:”xx”,
“故障排除方法編號”:”xx”,
“故障排除方法”:”xx”,
“解釋”:”xx”,
“參考資料”:”xx”}注:內(nèi)容略
飛機(jī)故障診斷案例一般主要由故障現(xiàn)象及故障排除方法兩部分組成。對飛機(jī)故障案例進(jìn)行知識表示時(shí),有必要聯(lián)系案例的上下文環(huán)境,即機(jī)型、故障來源和發(fā)生位置。因?yàn)槭峭ㄟ^搜索故障現(xiàn)象得到目標(biāo)故障排除方法實(shí)現(xiàn)故障診斷功能,所以檢索的故障案例描述有(機(jī)型;故障來源;發(fā)生位置;故障現(xiàn)象),其中故障現(xiàn)象中又有不確定數(shù)量的特征描述。
最后,是從案例數(shù)據(jù)庫中讀取的案例,該以什么方式表示,并有利于后續(xù)實(shí)現(xiàn)案例間的檢索。
粗糙集用S=(U,A,V,f)表示,其中U是非空有限對象集,稱為論域,A是非空有限屬性集,V=Ua∈AVa,Va是屬性a的值域,f:U×A→V是一個(gè)信息函數(shù)。對于任意a屬于A,并且x屬于U,f(x,a)∈Va。如果A=C∪D,則C是條件屬性集,D是決策屬性集,S=(U,A,V,f)也被稱為決策表。
以上述飛機(jī)故障案例1為例,此案例為U(只有一個(gè)案例的案例集),機(jī)型、位置、故障現(xiàn)象等故障描述為條件屬性集C,故障排除方法為決策屬性集D,V為屬性的具體取值,f為粗糙集系統(tǒng)歸納總結(jié)的決策規(guī)則。
基于案例推理關(guān)鍵環(huán)節(jié)在于相似案例的檢索,案例的檢索是一個(gè)查找與匹配的過程,即從案例庫中搜索出與搜索案例相似的有幫助的案例集供用戶查閱。
同義詞替換作為自然語言處理數(shù)據(jù)預(yù)處理的一種手段,在比較兩個(gè)中文句子的相似性時(shí),利用同義詞替換技術(shù)把幾個(gè)同義詞轉(zhuǎn)換為同一個(gè)詞,可以提高中文相似度計(jì)算的可靠性,也就提高了故障描述相似度計(jì)算的可靠性。
由于中文語言的博大精深與表述多元化,同一事物的描述詞匯較之英文更多種多樣,不同航空工程師對故障現(xiàn)象的描述也會使用不同的近義詞。比如:供氣與通風(fēng)、排氣與抽風(fēng)、二號發(fā)動機(jī)與右發(fā)。
所以,首先需要對故障案例的中文描述語言進(jìn)行分詞,然后再利用同義詞詞本進(jìn)行同義詞替換[9]。
同義詞詞本一方面可以來自通用中文同義詞詞林,比如哈爾濱工業(yè)大學(xué)的大詞林[10],并一方面,航空領(lǐng)域的專業(yè)詞匯通常高頻出現(xiàn)在故障案例描述中,其呈現(xiàn)高頻和有限的特點(diǎn),應(yīng)該由航空領(lǐng)域?qū)I(yè)人士構(gòu)建并維護(hù)一個(gè)航空領(lǐng)域?qū)S猛x詞詞本“同義詞航空領(lǐng)域?qū)S迷~本.txt”并隨時(shí)收集與增改。
其詞本內(nèi)容格式及示例如下:
右發(fā)|二號發(fā)動機(jī)|右發(fā)動機(jī)
故障|正常位OFF燈亮
鋼纜|鋼索
通風(fēng)|供氣
抽風(fēng)|排氣
地面|外站短停
每行為一個(gè)同義詞序列,同義詞之間用指定分隔符“|”隔開,每行后面的同義詞都會替換為該行第一個(gè)指定的最優(yōu)表述詞。
由于飛機(jī)故障大多是由指示燈指示的,而指示燈出于慣性大多是英文,而英語的分詞很簡單,就是空格和標(biāo)點(diǎn),但需要中英描述之間的匹配,此時(shí)案例檢索時(shí)遇到英文要翻譯成中文再進(jìn)行中文故障描述的匹配。例如:VENT AVNCS SYS FAULT(電子艙航電系統(tǒng)故障)、VENT BLOWER FAN FAULT(電子艙通風(fēng)扇故障)、VENT EXTRACT FAULT(電子艙抽風(fēng)扇故障)。
向量或樣本之間的相似性度量,一般通過計(jì)算兩個(gè)向量之間的距離,即轉(zhuǎn)化為數(shù)學(xué)上的向量之間距離的計(jì)算,它可以反映出事物間在距離上接近或遠(yuǎn)離的程度。案例的故障描述視為一個(gè)粗糙集,粗糙集間的相似度可以用案例描述屬性間的海明距離來測量。
信息編碼學(xué)中,海明距離是兩個(gè)碼流對應(yīng)位上編碼不同的位數(shù),比如比特流1011與1110,第二位與第四位不同,其海明距離為2。本文中將海明距離取反作為相似度衡量標(biāo)準(zhǔn),記為海明相似數(shù),比如特征描述1{特征A、特征B、特征C}和特征描述2{特征A、特征D、特征E},特征描述1與特征描述2中,有一個(gè)相同的特征A,其海明相似數(shù)為1。海明相似數(shù)越大,案例特征描述越匹配,案例間越相似。
例如上述飛機(jī)故障案例2(見圖3)的故障現(xiàn)象為“供氣正常位OFF燈亮,排氣正常位OFF燈亮”。標(biāo)點(diǎn)分隔每一句話為一個(gè)特征描述(特征集),中文分詞為一個(gè)特征。
圖3 飛機(jī)故障案例2
如圖4所示,結(jié)合航空詞本同義詞替換,兩個(gè)案例的故障現(xiàn)象描述語句相似數(shù)為4。因?yàn)橹形谋磉_(dá)的開放又統(tǒng)一,可以認(rèn)為兩個(gè)故障現(xiàn)象描述語句中有一個(gè)同義詞以上(相似數(shù)大于1),兩個(gè)故障現(xiàn)象描述語句的相關(guān)性就強(qiáng),需要被檢索出來,從而把故障現(xiàn)象的值設(shè)為“存在”或“不存在”兩種取值更有意義,分別以1或0表示。
在案例的檢索中,案例的特征屬性對搜索案例與其他案例區(qū)分時(shí)所起到的作用是不同的,即特征權(quán)值反映了特征的不同重要程度,因此賦予特征合適的權(quán)值對案例間相似度的計(jì)算是非常有意義的。
現(xiàn)有基于案例推理系統(tǒng)中,屬性的權(quán)重是由專家指定的,比如故障現(xiàn)象、發(fā)生時(shí)間、發(fā)生位置權(quán)重分別設(shè)為0.75、0.05、0.2,存在非常大的主觀性。事實(shí)上,發(fā)生時(shí)間、發(fā)生位置、故障現(xiàn)象,同為故障描述的三者,本質(zhì)上并沒有高低輕重之分。所以,采用自動地屬性權(quán)重計(jì)算方法,通過粗糙集的決策規(guī)則自動提取功能,動態(tài)決策計(jì)算出屬性的權(quán)重。
粗糙集理論中,屬性重要度反映去掉某個(gè)屬性后決策的變化程度。設(shè)屬性{a}為條件屬性集C的一個(gè)屬性,屬性{a}關(guān)于條件屬性集C相對于決策屬性集D的屬性重要度為:
Sig(a,C,D)=γC(D)-γC-{a}(D)
其中:γC(D)表示決策屬性D對條件屬性集C的依賴程度。
其中:POSC(D)表示D關(guān)于C的正域,|U|表示U的數(shù)量。
而γC-{a}(D)表示決策屬性D對去掉屬性{a}的剩余條件屬性集的依賴程度,兩者相減即為決策D對屬性{a}的依賴程度,即屬性{a}對決策的權(quán)重。
下面先用有6個(gè)案例的案例庫實(shí)驗(yàn)論證粗糙集動態(tài)決策計(jì)算出案例的特征屬性權(quán)重的可行性和有效性;然后利用計(jì)算出的屬性權(quán)重,結(jié)合海明距離相似數(shù),對文中列出的兩個(gè)示例案例間的相似性進(jìn)行度量,表明基于案例推理飛機(jī)故障診斷系統(tǒng)案例檢索的有效性;最后對基于案例推理和粗糙集結(jié)合的飛機(jī)故障診斷系統(tǒng)存在的問題和需要改進(jìn)的地方進(jìn)行論述。
表1中,設(shè)某機(jī)型1=1,某機(jī)型2=2,故障來源1=飛行中,故障來源2=地面,故障現(xiàn)象1=電子艙航電系統(tǒng)故障,發(fā)生位置1=電子艙航電系統(tǒng),發(fā)生位置2=電子艙風(fēng)扇,故障現(xiàn)象1=電子艙航電系統(tǒng)故障,故障現(xiàn)象2=電子艙通風(fēng)扇故障,故障現(xiàn)象3=電子艙抽風(fēng)扇故障,故障現(xiàn)象是否存在用1或0表示,排故方案以編號表示。
表1 飛機(jī)故障診斷決策表
按照上述粗糙集屬性重要性計(jì)算公式,得出屬性{機(jī)型a1,故障來源a2,發(fā)生位置a3,故障現(xiàn)象1a4,故障現(xiàn)象2a5,故障現(xiàn)象3a6}的權(quán)重分別為:
即屬性{機(jī)型a1,故障來源a2,發(fā)生位置a3,故障現(xiàn)象1a4,故障現(xiàn)象2a5,故障現(xiàn)象3a6}的權(quán)重分別為{0.2,0,0.2,0.2,0.2,0.2}。
結(jié)合上節(jié)海明距離相似數(shù)乘以屬性權(quán)重,上述兩個(gè)飛機(jī)故障示例案例1和2案例描述之間的相似性度量為:
1×0.2+1×0+1×0.2+1×0.2+1×0.2+1×0.2=1
則故障案例2可以采用故障案例1的排故方案,從而實(shí)現(xiàn)飛機(jī)故障診斷功能。從故障案例1、2的故障排除方法也可以看出,故障案例1、2的排故方案也確實(shí)是大體相同的。
實(shí)驗(yàn)結(jié)果證實(shí)了結(jié)合海明距離和粗糙集動態(tài)計(jì)算屬性權(quán)重實(shí)現(xiàn)案例間相似性度量(即案例檢索)的可行性和有效性,但由于案例庫中的案例來自飛機(jī)在役飛行航空維修工程師的一手?jǐn)?shù)據(jù),獲取困難。目前實(shí)驗(yàn)的案例庫中的案例數(shù)量還不夠,不僅影響粗糙集對案例的特征屬性權(quán)重的動態(tài)決策的準(zhǔn)確性,而且眾所周知檢索的關(guān)鍵、效果好壞在于內(nèi)容的多寡,基于案例推理系統(tǒng)必須足夠數(shù)量案例的案例庫才能發(fā)揮其基于案例推理專家系統(tǒng)的效果,下一步項(xiàng)目實(shí)施的重點(diǎn)在于案例庫的擴(kuò)充與學(xué)習(xí)。
隨著本系統(tǒng)的使用和故障案例的發(fā)現(xiàn),故障案例庫會記錄越來越多的故障案例,這樣可以積累國產(chǎn)商用飛機(jī)自己的寶貴維修故障數(shù)據(jù),并且對商用飛機(jī)自己的故障更有針對性,基于案例推理和粗糙集的國產(chǎn)商用飛機(jī)故障診斷系統(tǒng)故障診斷的效果也會越來越好。
本文基于案例推理和粗糙集算法對中國商用飛機(jī)故障診斷提供了全鏈路的技術(shù)解決方案和實(shí)驗(yàn)可行性驗(yàn)證。一是用MongoDB存儲商用飛機(jī)故障案例庫;二是構(gòu)建航空同義詞詞本替換案例描述中的中文同義詞;三是用粗糙集表示故障案例,并用粗糙集動態(tài)決策計(jì)算故障案例描述屬性的權(quán)重,并結(jié)合海明距離計(jì)算故障案例間的相似度,來實(shí)現(xiàn)案例檢索;四是案例庫擴(kuò)充學(xué)習(xí)以完成解決方案的閉環(huán)和提高基于案例推理和粗糙集的故障診斷系統(tǒng)的可靠性與準(zhǔn)確性。
值得指出的是,只有在實(shí)際應(yīng)用中不斷擴(kuò)展案例庫中案例的數(shù)量和質(zhì)量,基于案例推理和粗糙集的商用飛機(jī)故障診斷系統(tǒng)才能越來越可靠和有效。