范會來 閆英敏 楊鳳彪
(軍械工程學院電氣工程系,河北 石家莊 050003)
故障樹是一種特殊的邏輯圖。基于故障樹的診斷方法是一種由果到因的分析過程,它從系統的故障狀態出發,逐級進行推理分析,最終確定故障發生的基本原因、影響程度和發生概率[1]。近年來,有關這方面的研究主要是將故障樹方法和其他方法相結合,其中故障樹與專家系統相結合的方法占絕大多數。
故障樹在故障診斷中的應用比較局限于其“淺知識”應用[2],如基于故障樹分析(fault tree analysis,FTA)的故障診斷專家系統就是應用最小分割集作為聯系故障樹與專家系統知識庫的紐帶[3]。而對故障樹“深知識”的挖掘利用較少,不能充分發揮故障樹模型的作用。“智能指引完備過程規則樹”(intelligent guide completeness process rule tree,IGCPRT)模型[4]和擴展故障樹節點模型[5]的提出為完整描述故障樹模型提供了一種較好的方法。該方法通過增加節點信息、豐富節點知識,使模型成為具備深層知識的故障樹或者規則樹。但是這兩種方法仍局限于對最小割集方法的擴展,缺乏對故障樹層次邏輯關系的應用[6-7]。
本文首先對故障樹過程性診斷進行數學分析,然后提出了一種使用非線性鏈表組織各個擴展故障樹節點的方法,很好地解決了故障診斷專家系統的知識獲取和快速推理問題,達到了快速準確故障診斷和故障定位的要求。
故障樹模型采用最小割集進行故障診斷,而故障樹的過程性故障診斷主要是按照系統工作原理,應用故障樹層次的邏輯推理關系,將系統故障逐層分解細化,最后定位到底事件故障狀態。
在復雜系統中,應用故障樹的過程性故障診斷可以挖掘故障樹模型中包含的深層知識,反映診斷對象內在層次關聯。診斷過程符合人類邏輯思考的推理過程。故障樹模型的頂事件對應于診斷系統要分析解決的任務,其底事件對應診斷系統的推理結果,而故障樹由頂到底的層次和邏輯關系對應診斷系統的推理過程。
假設所研究的設備及其組成的部件、元件等的工作狀態只取正常與故障兩種,且部件、元件的狀態是相互獨立的,進而研究一個由n個獨立的底事件構成的故障樹。
設xi為底事件i的狀態變量,xi僅取0或1兩種狀態;Φ表示頂事件的狀態變量,Φ也僅取0或1兩種狀態,則有如下定義:

頂事件狀態Φ完全由故障樹底事件狀態xi所決定,即 Φ = Φ(X),其中 X=(x1,x2,…,xn),稱 Φ(X)為故障樹的結構函數。結構函數是表示設備狀態的一種布爾函數,其自變量為該設備組成單元的狀態。不同的故障樹有不同的邏輯結構,從而對應不同的結構函數。
下面對兩種常用的故障樹邏輯結構進行分析。
①故障樹或門結構如圖1所示。這是一種布爾并集運算,當xi只取0或1時,可直接轉化為數學乘積運算。

圖1 故障樹或門結構圖Fig.1 Structure of the OR gate of fault tree

當xi僅取0或1時,式(3)可以改寫為:

式(4)表明,當故障樹的某一個部件、元件出現故障時,設備就會發生故障;當或門邏輯下的部件、元件全部正常工作時,設備才會正常工作。
②故障樹與門結構如圖2所示。

圖2 故障樹與門結構圖Fig.2 Structure of the AND gate of fault tree

當xi僅取0或1時,式(5)可以改寫為:

式(6)表明,當故障樹的全部部件、元件出現故障時,設備才會發生故障。對此可以這樣理解與門結構,即在構成與門結構的子事件中存在著為增加系統可靠性的備用設備,或者系統設計時存在功能重復的冗余設備,所以只有當這幾個重復的功能設備同時出現故障時,系統才會表現出故障狀態。
對任意一棵靜態故障樹,都可以簡化為由邏輯與門和或門以及各個事件組成的規范故障樹形式[8],或者通過故障樹化簡的上行法和下行法[9]化簡為狀態可測量的節點的中間事件和底事件的邏輯關系。對于絕大多數有限個數檢測點的設備都可以使用這種方法化簡。
由式(4)和式(6)的逆否命題可知,在“自上而下”的故障搜尋中,若頂事件故障由與門邏輯引起,則其子事件必然全部處于故障狀態;若頂事件的故障由或邏輯引起,則其子事件至少有一個處于故障狀態,需要對其子事件逐一進行判斷。
按照上述規則,對一個由與門邏輯和或門邏輯構成的復雜多層故障樹模型進行故障診斷分析,其模型如圖3所示。

圖3 多層故障樹模型Fig.3 Multi-layer fault tree model
頂事件 A 的最小割集為{E,F}、{G}、{C}、{H}、{K},其布爾形式表達為:

當頂事件A發生故障即A=1時,首先對M2層的B、C、D做出判斷。由于C為底事件,較容易判斷,因此,只考察B和D的狀態。
若B=0、D=0,則系統沒有出現故障,不需要對任何節點進行測試;若 B=1、D=0,則 E=1、F=1、G=0、H=0、K=0,需對B的所有下一層子事件進行測試;若B=0、D=1,則 E、F 至少有一個為“0”,對系統故障無影響,可以不用測試,而G、H、K中至少有一個為“1”,因此需對D的所有下一層子事件進行測試;若B=1、D=1,則需要對B和D的所有下一層子節點進行測試。
由上述四種情況可以得出:在“自上而下”的故障搜尋中,對凡是狀態為“1”的節點的下一層子節點都要進行測試,直到最底層底事件為止,從而可以搜尋出導致系統故障的故障源。這種故障樹的故障搜尋方法可以稱為尋1法。尋1法的故障診斷原理依據是在確定狀態的非冗余系統中故障傳播的不丟失性。
尋1法不需要預先規定故障源個數,可以一次性搜尋出所有故障源,且在深度較淺、節點分支較多的故障樹中,尋1法較最小割集法可明顯提高故障診斷的速度和效率。但是在存在冗余部件的設備中,因為與門的存在,尋1法不能發現潛在的故障源,但是其可以查找到導致系統故障的顯著故障源,使系統恢復工作。對尋1法的改進措施是:在搜尋到與門時,不論與門節點是否為“1”,都對其下一層子節點進行測試,這樣就可以找出潛在的故障源(僅限單層與門,對于多層與門、或門嵌套的故障樹,此方法仍不能搜尋到全部的潛在故障源)。
對大型復雜系統進行故障診斷時,簡單孤立的故障節點描述是不夠的。為了滿足過程性故障診斷的需求,在建立故障樹時,需要在傳統故障樹的各個事件的基礎上附加一些其他信息,如故障現象的描述、故障的檢測方式或方法、診斷建議和維修策略、父節點或子節點的信息等。包含了這些特殊信息的故障樹可以稱為擴展故障樹,構成擴展故障樹的事件稱為擴展故障樹節點。
為實現在組織和存儲擴展故障樹節點的非線性鏈表化,在將故障樹各個事件轉化為擴展故障樹節點時,故障樹節點必須能夠給出以下基本信息:父節點、子節點、子節點的繼承頻率、故障現象描述、故障測試方法。除基本信息外也可添加其他一些信息,便于故障推理和人機交互,如節點深度、診斷建議、維修策略等。基于MS Access數據庫的擴展故障樹節點屬性表結構如表1所示。

表1 擴展故障樹節點表結構Tab.1 Structure of extended fault tree node
由于系統結構的復雜性,故障樹某一節點的子節點往往包含多個節點,且一個節點同時為父節點和子節點,因此在父節點庫擴展故障樹節點結構中,只給出了子節點表編號和子節點的個數。而在子節點庫中,對應子節點編號給出了某一節點所包含的子節點的節點編號和繼承概率,其結構如表2所示。

表2 子節點表結構Tab.2 Structure of the child nodes
繼承頻率為子節點在其父節點之下發生的次數,用于故障搜尋時的優先級排序。按照概率統計原理,在多次重復的故障診斷之后,故障頻率與其父節點發生總次數之比逐漸逼近故障發生的概率。
在維護擴展故障樹節點數據庫時,如需添加葉節點,只需要在擴展故障樹節點表中增加節點編號并補充相應的信息,然后在其父節點的子節點表中增加其節點編號,并給定一個繼承概率即可。
通過數據庫技術,將擴展故障樹的內部各個節點的屬性以及節點之間的關系轉化為在計算機上存儲的非線性鏈表化的數據結構。由于節點屬性中包含了可執行的測試方法與用于比較故障現象的描述,所以當對某一節點進行審查時,就可以對該節點的故障狀態做出詳細的判斷。
在尋1法的搜索過程當中,只對故障狀態為“1”的節點的子節點進行搜索,就可以查找到故障源,不需要區分與門和或門的結構差別。因此,圖3中所表示的故障樹模型可以簡化為簡易故障樹模型。故障搜尋可以轉化為對鏈表特殊節點的遍歷,簡化了搜索的復雜程度。簡易故障樹模型如圖4所示。

圖4 簡易故障樹模型Fig.4 Simple fault tree model
為避免搜尋過程中的盲目性,引入優先搜尋機制。這里采用的是對節點自動進行故障次數統計的方法,即每次節點狀態被測試為“1”時,就將其節點屬性中的故障頻率加1。在對同一系統進行多次故障診斷和測試之后,節點都會有屬于自己的故障繼承頻率,故障繼承頻率與其父節點的故障繼承頻率的比值就為節點繼承其父節點故障的繼承概率,即B的繼承概率可表示為:

式中:B的繼承概率為單一故障發生時的概率。為了方便系統操作,只記錄繼承頻率。在同一層的節點中按照故障繼承頻率的高低依次進行故障診斷,采用深度優先、自動回溯的控制策略。深度優先是基于故障同時發生的最少化期望原理,存在一定的實際應用價值,即系統故障往往是由一處故障源引起,多處故障同時發生的概率較小。因此,當鎖定某處節點故障時,深度優先可以迅速追尋故障的根源,提高診斷的效率。
由于故障樹本身已經具備了較為全面的診斷知識,因此在診斷系統工作前不需要預先對其進行“訓練”就能對系統做出較為全面的診斷。個體系統之間的差異性以及使用環境的差別,使得故障分布可能會不一致。通過在診斷過程中不斷統計學習故障分布,使得這種診斷方法在不同設備、不同環境下都具有自適應和學習的能力,從而使得系統診斷更具有針對性和效率性[10-11]。
在一個可測試節點有限的診斷系統應用中,運用過程性故障診斷的故障診斷系統能有效地找出故障原因,并給出相應的維護策略。對于多次重復發生的故障,由于其故障頻率的優先性,會有較快的故障診斷速率;對于偶發性的故障事件,系統仍能順利進行故障定位。故障定位的精度取決于在設計系統時底事件的詳細程度,底事件劃分越詳細,定位精度越高,但是故障搜尋所耗費的時間會相應變長,且在完成故障定位后,系統會產生一條明確的故障搜尋路徑及其每個節點相匹配的規則,維護人員可以對整個過程進行監視。
通過對故障樹過程性故障診斷的非線性鏈表化,不但能夠完整地表述故障樹模型中所包含的故障信息和故障層次機理,而且很好地解決了存儲模式問題;按照統一化的擴展故障樹節點進行數據組織,也為數據庫維護提供了簡便的方法。同時擴展故障樹節點可作為專家系統知識庫中的知識元,可以較為方便地與專家系統相結合,形成一個較完備的診斷系統,為專家系統知識獲取提供了一個新途徑。
[1]周東華,胡艷艷.動態系統的故障診斷技術[J].自動化學報,2009,35(6):748-758.
[2]蔡猛,張大發,張宇生,等.基于故障樹分析的核動力裝置實時智能故障診斷專家系統設計[J].原子能科學技術,2010,44(S1):374-379.
[3]張琦,廖捷,吳建軍,等.基于FTA的通用裝備電子系統故障診斷專家系統設計[J].兵工學報,2008,29(2):174-178.
[4]李潔,沈士團,陳星.航電設備故障診斷專家系統研究與實現[J].計算機工程,2007,33(14):163-167.
[5]劉成瑞,張慶振,任章.基于擴展故障樹的運載火箭故障診斷專家系統[J].宇航學報,2008,29(6):1936-1942.
[6]竇東陽,趙英凱.基于優先級診斷樹的旋轉機械故障診斷專家系統[J].中國電機工程學報,2008,28(32):82-89.
[7]朱大奇.航空電子設備故障診斷技術研究[D].南京:南京航空航天大學,2002.
[8]黎清海,朱新華.基于層次分析的火控系統故障診斷專家系統[J].電光與控制,2006,13(4):64-68.
[9]黃文虎,夏松波,劉瑞巖,等.設備故障診斷原理、技術及應用[M].北京:科學出版社,1997:194-195.
[10]汪子皓,莫易敏.基于故障診斷二叉樹的內燃機車故障診斷專家系統[J].中國鐵道科學,2008,29(5):99-102.
[11]陳亞兵,孫濟慶.基于知識庫的專家咨詢系統設計與實現[J].計算機工程,2007,33(16):196-199.