梁 杰 饒天貴
1(中國鐵路武漢局集團有限公司機務部 湖北 武漢 430070)
2(株洲中車時代電氣股份有限公司 湖南 株洲 412001)
故障樹分析法(Fault Tree Analysis,FTA)[1]是目前國際上公認的一種簡單有效的可靠分析和故障診斷的方法,也是指導系統最優化設計、薄弱環節分析和運行維護的有力工具。由于其推理技術邏輯性強、使用簡便、知識結構清晰,在各大型復雜系統的故障診斷領域已得到廣泛應用。
基于故障樹的機車診斷系統是將故障樹分析法在可靠性分析和故障診斷方面優異的性能,引入到機車故障診斷診斷領域中。首先應用大量專業知識和專家經驗知識等構建故障樹系統,利用故障樹的邏輯結構信息以及對故障樹定性、定量分析的結果形成相應的知識庫,同時模擬人類專家的思維方式進行推理和判斷,以解決需要技術專家才能解決的復雜問題,從而實現對機車故障的快速邏輯推理和診斷,為機車的檢修以及故障處理提供可靠的決策依據。
本文給出一種新的基于故障樹的機車診斷系統設計方案,減少了對數據庫的依賴,提高了診斷推理的效率,同時給出了基于模塊化故障樹的診斷推理以及定性分析方法,為診斷復雜的機車系統提供較好的解決方案。
該系統以故障樹的形式組織整個知識庫,然后根據推理機快速準確查找故障原因,系統主要功能框圖如圖1所示。

圖1 機車故障診斷系統框圖
知識管理:主要包括故障樹的管理、故障樹的分析以及故障節點信息維護。
診斷知識庫:主要包括故障樹結構信息庫、故障節點信息庫。
綜合數據庫:主要包括推理的結論以及推理的中間結果等信息。
推理機:故障的推理以及故障的識別。
人機交互界面:主要負責故障征兆和推理結果顯示,以及為知識管理和推理過程控制提供交互界面。
故障樹的管理主要包括故障樹的建立、故障樹的存儲、故障樹的修改維護等功能。
故障樹建立是故障樹分析的前提,可通過可視化的方式,利用演繹法,從頂事件到底事件逐步添加,完成故障樹的建立,最后將故障樹的結構信息與節點信息分別保存在文本文件和數據庫文件中。也可通過直接編制故障樹文本文件,將故障樹結構按公式形式存儲在文本文件中,一個文本文件保存一個故障樹信息,文件名與故障樹信息表中的TreeID一致。一個公式對應于一行文本,公式存儲順序根據故障樹結構層次自頂至底。“+”表示或門,“*”表示與門,各個事件包括頂事件、中間事件、底事件,用相應編碼表示,該編碼規則參見故障字典信息表的FactID字段。故障樹文本文件存儲示例如圖2所示,其對應的故障樹TOP圖如圖3所示,故障樹信息表見表1。

圖2 控制電路電源斷開故障樹文本表示

圖3 控制電路電源斷開故障樹示意圖

表1 故障樹信息表
2.1.1故障樹信息表
故障樹信息表用以存儲故障樹相關的信息,TreeID表示樹的編號。第0位為“T”,表示故障樹;第1-3位為車型編碼,如001表示HXD1C、002為HXD1D等;第4-5位為編碼,系統編碼如表2所示;第6-7位表示該系統樹的索引號。TreeInfo字段主要用于對故障樹信息進行描述。TreeTopEventID字段用以存儲該故障樹的頂事件編號,頂事件編號即為故障事實表中的FactID字段。TreeProb字段為該故障樹頂事件發生的概率。

表2 故障字典信息
2.1.2故障字典信息表
故障信息字典存儲所有故障事實的相關信息。其中FactID為故障編號,共16位。第0位為F表示故障事實;第1-3位為車型編碼;第4-5位為系統編碼,如表2所示;第6-8位為部件編碼參見表3,預留;第9位為故障等級,1表示A類故障,2表示B類故障,3表示C類故障,默認為0;第10-13位為故障編碼;第14-15位預留。FactDescription字段用以對故障情況進行描述。FactDriverInfor字段保存針對該故障司機的處理維護措施。FactMentenInfor字段保存針對該故障檢修人員的維護措施。FactSum字段保存該故障發生的次數,為維護人員提供參考。FactProb字段保存該事件發生的概率,關于故障發生的概率的設定可以由領域專家或工程師根據其經驗來設定,也可以通過對故障歷史進行統計,計算各個事件的發生概率。

表3 交流傳動電力機車系統名稱及代碼
2.1.3電力機車系統部件編碼表
在完成故障樹的創建和維護修改故障樹的信息之后,需同步修改數據庫中的故障樹的節點信息。故障樹節點信息表見表4。

表4 故障節點信息表

續表4
故障樹節點信息主要保存建好的故障樹的每個節點的信息以及故障樹的網絡拓撲信息,為故障診斷推理提供必要的信息,為模塊化故障樹推理、沖突消解提供支持輔助推理。NodePoseID節點在故障樹中的位置編號,第0-2位表示節點在故障樹中的層數,第3-5位表示節點在該層中從左到右的序號。MatchDegree字段用以保存匹配度信息,取值范圍為(0,1),表示該節點事件發生對父節點的貢獻程度,如果該節點與其兄弟節點的關系為與,則它們的匹配度之和為1,如果關系為或,則該值為1。
故障樹節點信息在系統程序中用的數據結構如下:
故障樹節點信息類
public class FactNode
{
intindex;
//故障節點的相對坐標信息,
String description;
//故障節點的描述信息
String factIDstr;
//故障節點ID
String gate;
//導致節點事件發生的所有子節點之間的門類型
FactNode(String factIDstr,String description)
{
this.description=description;
this.factIDstr= factIDstr;
}
FactNode (){}
void setFactNodeIndex(int index)
{
this.index =index;
}
……
}
故障樹分析模塊主要用來對構建的故障樹進行定性和定量分析。定性分析是指尋找出導致頂事件發生的故障源,識別導致頂事件發生的所有故障模式,即尋找故障樹所有最小割集;定量分析是通過底事件發生概率計算出頂事件發生的概率,同時完成事件重要度計算,即事件故障發生對頂事件影響大小尺度的計算。由于故障樹增大,底事件將隨之增加,最小子集的查找的工作量將呈非線性增長,提出了模塊化割集處理的方法。下面從定性分析、模塊化割集處理、定量分析三個方面分析模塊進行闡述。
2.2.1定性分析
對故障樹的定性分析,即通過分析故障樹的最小割集中包含的底事件狀態,或利用對最小路集所包含的通道事件的狀態分析,實現對故障的預測及診斷。采用自上而下的故障樹搜尋算法,計算故障樹的最小割集,即導致故障樹頂層故障事件發生的基本事件的最小集合,確定導致系統故障的各個基本原因,可以為檢修和維護提供支持。
常采用由上而下的故障樹搜尋算法來求解故障樹最小割集,算法實現過程:邏輯“與”增加的是割集容量,邏輯“或”增加的是割集的數量。從故障樹頂事件開始,由上到下,依次把上一級事件置換為下一級事件,遇到與門將輸入事件橫向并列寫出,遇到或門將輸入事件豎向串列寫出,直到把全部邏輯門都置換成底事件為止,此時最后一列代表所有割集,割集采用最小割集素數法,其思想就是給每個底事件賦于素數,割集相除去掉能作為被除數的割集,從而得到最小割集。以圖2所示的MIO控制電路電源斷開故障樹為例,可得到最小割集表示如下:{F001080000103601},{F001080000103603},{F001080000103604},{F001080000103606},{F001080000103607 },{F001080000103608 }。
同時利用對偶樹,確定故障樹的最小路集,及保證系統不發生故障的最小基本事件的集合,從而保證系統的穩定和安全,為控制系統故障或者為已發生故障系統恢復正常提供依據。最小割集以及最小路集的數據信息表如表5-表8所示。

表5 最小隔集表

表6 最小割集底事件表

表7 最小路集表

表8 最小路集底事件表
2.2.2定量分析
故障樹定量分析[2],即對系統的可靠度、不可靠度以及相關事件的重要度等指標進行量化,通過數學手段實現對系統的安全性、穩定性與相關因素之間的影響關系以及各構成元件對安全性的重要度等方面的量化研究。根據故障樹定量分析的結果,指導系統模塊診斷順序,盡早發現故障源。
底事件的概率設定,一般是由工程技術人員或者領域專家通過界面進行設置,同時,也可以通過對故障歷史進行統計,計算各個事件發生概率。最小割集故障概率等于它所包含的各個底事件概率的乘積,故障樹頂事件的概率可以根據其邏輯關系式推算出來。
假如各個底事件是相互獨立,各個割集的概率為割集中各個底事件發生概率的乘積。Fs表示頂事件發生概率,n表示底事件的個數,m表示MCS的個數,FiFj表示MCS的概率積,頂事件發生的概率近似為:
(1)
為了描述故障樹各個最小割集對頂事件所做的貢獻大小,可將最小割集的重要度定義為:
Fc/s=Fc/Fs
(2)
式中:Fc表示最小割集的發生概率;Fs為故障樹頂事件的發生概率;最小割集重要度Fc/s是最小割集概率占故障樹頂事件的概率的比率。
以MIO控制電路電源斷開故障樹為例,如圖2所示,介紹對故障樹的定性分析。MIO控制電路電源斷開故障樹的底事件概率如表9所示。經過計算,最小割集表示如下:{F001080000103601},{F001080000103603},{F001080000103604},{F001080000103606},{F001080000103607 },{F001080000103608 }。

表9 MIO控制電路電源斷開故障樹底事件概率表
根據概率統計知識計算故障樹各中間件與頂事件的概率如下:
PF001080000103605=1-(1-PF001080000103606)(1-PF001080000103607)×
(1-PF001080000103608)=0.519 8
PF001080000103602=1-(1-PF001080000103603)(1-PF001080000103604)×
(1-PF001080000103605)=0.366 5
PF001080000103600=1-(1-PF001080000103601)(1-PF001080000103602)=
0.458 2
PF001080000103600為頂事件MIO控制電路電源斷開故障發生的概率,然后根據式(2)計算出各個最小割集的重要度,如表10所示。

表10 MIO控制電路電源斷開故障樹最小割集重要度
根據表中數據可以得出,最小割集{F001080000103608}重要度最大,規則匹配時,與其對應的規則進行最先匹配,若匹配不成功,則按重要度的大小,依次向后匹配。
診斷推理模塊,根據輸入的故障特征,利用知識庫知識,進行故障樹的查找完成故障推理,是系統的核心模塊。診斷推理首先進行故障字典查找,其流程圖如圖4所示。故障推理的方法主要包括:正向推理,即從事實到目標的推理,通過一定規則來證明故障原因的正確性;反向推理,即自頂而下的推理,找出故障發生的根本原因。推理解釋功能在系統推理時完成對推理過程的解釋,也可實現推理的人機交互,給出故障診斷策略。自動診斷則根據故障樹的最小割集,直接給出故障樹的失效模式。

圖4 故障字典查找邏輯圖
在該系統中進行故障診斷時,根據輸入的故障描述信息在故障信息字典中查找故障的FactID,然后根據FactID在故障節點信息表中獲取相應的故障樹的TreeID,根據當前獲得的TreeID查找并讀取與其名匹配的故障樹文本文件,然后解析存儲的故障樹公式,生成相應的故障樹節點。通過繼承Java應用開發工具包SWING中的DefaultMutableTreeNode類創建相應的樹節點,以樹狀結構保存對應的故障樹的所有信息,后續再診斷推理中則可直接調用該類的parent(),children()函數直接實現對故障的逐級正向或逆向診斷推理。利用DefaultMutableTreeNode結構創建JTree對象,實現按照層次結構可視化展示故障樹的結構信息。系統程序中用到的數據結構信息如下:
故障樹結構信息類
class FaultTreeNode extends DefaultMutableTreeNode
{
FactNode node;
FaultTreeNode (FactNode node )
{
super(node);
this.node =node;
}
public String toString()
{
returnnode.description;
}
……
}
JTree faultTree=new JTree(FaultTreeNode root);
在反向推理時,若當前推理已到達該故障樹的葉子節點,根據該葉子節點在故障節點信息表中的信息,確定是否存在以該節點為頂事件的故障樹,若不存在則推理結束,否則讀取對應的故障樹,繼續推理。同理,在正向推理過程中,若推理已經到達頂事件,則在故障節點信息表中查詢是否存在以該節點為葉子節點的故障樹,若存在則查找并解析該故障樹,繼續進行正向推理,直到推理結束。
自動診斷推理,即直接求出故障樹的最小割集。機車系統由很多系統部件組成,各個系統由若干子系統構成,各系統之間也存在一定的關聯關系,任何一棵故障樹可能只是系統中的一棵子樹,所以給出了模塊化故障樹的割集計算方式。首先完成對各子樹的割集及分析結果的計算,并存儲這些結果,然后對總故障樹進行分析。在輸出總故障樹最小割集時,首先遍歷該最小割集合中的各個元素,若不存在以該元素為頂事件的故障樹,則將該元素的遍歷標志置為1,否則將該子樹的割集與該割集中的其他元素進行與運算,形成新的割集集合,同時將該子樹頂事件的概率作為該底事件發生的概率。將不存在元素為頂事件的割集放入割集輸出隊列中,直到存在割集中的元素未被遍歷,則表示最終割集計算完畢。其計算流程圖如圖5所示。

圖5 模塊化割集處理流程
另外在診斷推理過程中,需要解決沖突消解問題。即在當前的推理過程中,若有幾條規則同時滿足,則進入推理沖突消解程序。該程序首先比較規則的匹配度,匹配度相同時考慮規則的重要度或者頂事件的概率重要度等相關信息。沖突消解原則:(1) 判斷故障事實與規則的匹配度,匹配度高的規則優先選擇。(2) 匹配度相同時,若為不同的故障樹,則根據頂事件發生概率進行選擇,若在同一故障樹內,則根據其父事件概率進行選擇,依次遞歸。
本文給出了該系統的詳細設計方案,故障樹的信息采用文本和數據庫存儲方式相結合,使故障樹的結構信息與節點信息分離,減少了對數據庫的依賴而造成知識爆炸,有效降低了推理診斷過程中的知識搜索空間;同時采用JAVA控件存儲故障樹信息,充分利用JTree控件的優勢,快速實現故障的邏輯推理診斷,從而不完全依賴對知識庫的搜索進行知識的推理,進一步提高了推理效率;給出了模塊化故障樹的推理診斷以及定性定量分析解決方案,對大型復雜系統的故障診斷具有重要意義。