李俊武,李國寧
(蘭州交通大學自動化與電氣工程學院,蘭州 730070)
列控車載設備的功能是速度防護控制,是列車運行操縱和控制的主體,是保證列車平穩安全運行的關鍵,故車載設備的正常運轉對列車行車安全至關重要。車載設備發生故障,輕則影響行車效率,重則導致安全事故。因此,快速、準確地發現并排除故障,對保證列車行車安全有重要的意義。
車載設備結構復雜,故障種類繁多,導致了車載設備故障診斷難度加大。近年來,神經網絡、故障樹、專家系統等智能故障診斷技術不斷發展[1-3],很多學者將這些方法應用到車載設備的故障診斷中。文獻[4]根據在故障診斷過程中積累的經驗,形成專家知識數據庫和故障推理機對故障進行診斷,提出了基于專家經驗的車載設備故障診斷方法,但是這種專家經驗主觀偏見性較強,易出現錯誤診斷。文獻[5]提出一種建立系統失效故障樹模型的故障診斷方法,但是車載設備結構復雜,失效故障樹模型規模龐大且不易實現。文獻[6]通過檢索案例庫中的案例進行故障診斷,并設計了基于案例學習的車載設備故障診斷系統。上述的診斷方法都存在一定的不足和局限性,因此,本文提出了一種新的故障診斷方法。
貝葉斯網絡(Bayesian Network,BN)作為表達不確定性知識的一種重要方法,己經成為人工智能研究的熱點,并被應用于諸多故障診斷領域[7-9]。粗糙集理論(Rough Sets,RS)作為處理不確定性問題重要的數學理論,能對不完整數據分析和處理。RS理論在過程控制、醫療診斷、決策支持、模式識別等多個領域應用廣泛[10-13]。本文將BN作為核心算法結合RS理論,提出了一種RS-BN列控車載設備故障診斷方法。充分利用BN和RS的優點,通過實際故障數據,結合專家經驗進行BN的數據學習和參數學習,實現建模和診斷推理,RS理論進行屬性約簡、消除冗余信息獲得最小診斷規則,簡化模型并建立最優的網絡結構,提高了診斷效率。最后通過某高鐵線的現場實際故障數據進行BN模型的驗證分析。
目前,我國高鐵主要采用CTCS-2(C2)和CTCS-3(C3)級列控系統,而C3包含C2。CTCS3-300T型是C3系統應用最廣、最為典型的車載設備,因此將其作為研究對象。CTCS3-300T車載設備采用分布式結構,采用高可靠性的Profibus總線、信號MVB總線、車輛MVB總線實現各模塊間的信息傳輸。車載設備的硬件結構主要由車載安全計算機模塊(VCU)、軌道電路信息傳輸模塊(TCR)、應答器信息傳輸模塊(BTM)、測速測距模塊(SDU)、動車組接口模塊(DI/DX)、司法記錄儀(JRU)、無線電臺傳輸(GSM-R)以及人機管理界面(DMI)等模塊組成[14-15],其組成結構如圖1所示。

圖1 CTCS3-300T車載設備硬件結構組成
貝葉斯網絡(BN)是一種基于概率推理的有向無環圖[16],反映了隨機變量間的相互關系。它結合圖論和概率論[17],在人工智能領域,通常被用來處理具有不完整、不確定性信息的問題。BN=(G,P)主要由兩部分組成: (1)有向無環圖(DAG),用G=(I,E)表示,其中I={A1,A2,A3,…,An}為節點集合,E={E1,E2,E3,…,En}為邊集合,每條有向邊表示了節點間的依賴關系。(2)條件概率表CPT,表示節點在其父節點某一狀態下的條件概率分布,描述了BN的概率參數。假設貝葉斯網絡變量為A1,A2,…,An,則聯合分布概率
(1)
貝葉斯網絡常用的結構學習算法為:基于約束的方法和基于搜索評分的方法。當樣本數量眾多時,基于約束算法的復雜度將是指數級的。因此,本論文采用基于搜索評分的方法。假設有n個樣本節點,貝葉斯網絡存在的網絡數量
(2)
BN的復雜度會隨節點數n的增加呈指數級變化,當節點數目較大時,BN結構會非常復雜,本文采用一種局部搜索算法(K2)。K2算法用到公式如下
(3)

(4)
式中,Bs表示網絡結構;D表示一組變量。
BN網絡的參數學習相對簡單,包括完整數據條件下的貝葉斯估計算法、最大似然參數估計算法(MLE)和數據缺失條件下的期望最大化算法(EM)。
粗糙集理論(RS)是一種處理模糊、不確定性問題的重要數學理論[18]。其屬性約簡[19]的主要作用是通過知識約簡,簡化屬性、得到最簡的決策規則而不改變決策能力。理論主要包括以下三部分:(1)知識表達系統,S={U,R,V,f}為一有序四元組,其中論域U={X1,X2,…,Xn}是全體樣本集合;R=C∪D為屬性集合。(2)不可分辨關系,體現了論域U中對象的類型劃分規則。對于任一屬性子集B?R,如果對象Xi,Xj∈U,?r∈B,當且僅當f(Xi,r)=f(Xj,r)時,Xi和Xj是不可分辨的,記為Ind(B)。(3)決策表化簡,決策表體現了對象的決策診斷規則,是從條件屬性到決策屬性進行表達的系統。設S={U,R,V,f},a∈R,如果Ind(R-{a})=Ind(R),則a在R中是非必要的,否則稱是必要的。對決策表的化簡實質刪除決策表中重復的行和條件屬性冗余的列,保留核屬性。
列控車載設備的故障追蹤表,數據來源主要是下載的車載日志、JRU數據、故障處理后維修人員填寫的維修信息,其包含了列車在運行期間發生的所有故障描述、分析及維修措施。故障追蹤表的數據信息是以自然語言記錄的,沒有統一規則,計算機無法直接對故障數據進行分析,故需對故障追蹤表進行數據挖掘處理。
診斷知識數據庫建立的好壞,直接影響著故障診斷模型建立的準確性。傳統的故障診斷知識數據庫主要由專家經驗獲得。專家經驗通常以口頭或文字形式表達,往往帶有主觀偏見性且知識不完備。當遇到某類特殊故障時,這種方法就無法再適用了。本文對故障追蹤表進行分析提取、數據挖掘,結合專家經驗建立診斷知識數據庫,通過對故障記錄數據的挖掘,減少了對專家經驗的依賴。其建立流程如圖2所示。

圖2 診斷知識數據庫建立流程
根據電務維修人員現場的故障診斷維修流程,建立診斷模型。將故障信息劃分為3個層次研究:故障原因層、故障模塊層、故障征兆層,分別代表了故障發生的具體原因、模塊單元、特征表現。層次間直接因果關系如圖3所示。

圖3 故障節點層次因果關系
列控車載設備結構復雜,故障種類繁多,存在不確定因素和信息。將全部故障特征作為貝葉斯網絡的節點,建立的BN網絡結構將非常龐大,會増加故障診斷的復雜度。以某高鐵線2016年2月至2017年8月間的故障追蹤表作為樣本數據,針對其故障模塊的發生次數進行統計,結果如圖4所示。

圖4 故障模塊發生次數統計
由圖4可知,在此時間段內所有的故障模塊中,GSM-R、VCU、DMI、BTM、SDU、DI/DX 6個模塊發生故障次數最多,故將此6類故障作為研究對象。根據診斷知識數據庫和節點層次劃分關系建立CTCS3-300T車載設備故障信息節點層次表,如表1~表3所示。

表1 故障模塊節點

表2 故障原因節點

表3 故障征兆節點
根據表1~表3和圖3節點間的模型層次關系,建立基于診斷知識數據庫先驗知識的車載設備BN診斷模型。其中節點信息均為離散變量,有兩個狀態:發生和未發生,取值1表示發生,取值0表示未發生。利用Matlab貝葉斯網絡的BNT工具箱構建模型,如圖5所示。
K2算法用貪婪搜索處理模型的選擇,搜索效率高,主要解決了在數據完備情況下的結構學習問題。由于獲得的故障記錄數據是相對完備的,故利用K2算法,進一步挖掘節點之間存在的潛在因果關系。以SDU故障模塊為例,對故障信息進行數據挖掘,利用Lean_Struct_K2函數構建模型,如圖6所示。

圖5 基于診斷知識數據庫先驗知識的BN模型

圖7 基于診斷知識數據庫和結構學習相融合的BN模型

圖6 基于K2算法結構學習的SDU故障模塊BN模型
基于診斷知識數據庫先驗知識和K2算法結構學習建立的BN結構模型并不十分準確。由診斷知識數據庫建立的模型結構會忽略節點間某些潛在的因果關系,存在‘欠擬合’的問題;故障記錄數據通過K2算法結構學習可以挖掘出專家知識未能考慮到的節點間存在的潛在因果關系。當樣本數據量豐富,通過訓練建立的BN模型結構可以達到非常高的精度,但建立的結構存在‘過擬合’問題。因此充分結合兩者的優點,將兩種方法相融合,建立基于診斷知識數據庫和結構學習相融合的BN結構模型,如圖7所示。
車載設備故障診斷過程中獲得了大量故障數據信息。由于車載設備結構的復雜性,提取的故障節點信息存在冗余和不一致,在建模過程中產生節點數過多,模型過于繁雜,影響了診斷的效率和準確性。RS算法屬性約簡在維持信息系統分類能力不變情況下,約簡核屬性,生成精簡的分類規則,降低診斷模型的規模和復雜性,提高了診斷的效率。RS算法屬性約簡的流程如圖8所示。
(1)診斷決策表的建立
以診斷知識數據庫和車載設備的現場實際故障記錄數據為基本數據,進行特征屬性值的提取,建立故障診斷決策表,如表4所示。

圖8 RS算法屬性約簡流程

表4 故障診斷決策
(2)建立可辨識矩陣
定義可辨識矩陣M(S)=[Mij]n×n,mij元素值為
(i,j=1,2,…,n)
(5)
令實際故障記錄數據表示信息系統U,條件屬性集C={S1,S2,…,S26}表示26種故障征兆,決策屬性D={M1,M2,…,M6}表示6種故障模塊。可辨識矩陣是以主對角線對稱的n階對稱方陣,分辨矩陣進行運算時,只需考慮其下三角部分,根據公式(5)和表4建立可辨識矩陣如下。

(3)找出核屬性并進行屬性的約簡
找出可辨識矩陣中單屬性集合元素,然后刪除矩陣中所有包含單屬性的元素并保留剩余元素組合。將這些元素與單屬性組合得到約簡屬性組合。利用互信息公式計算組合屬性的依賴度,如計算屬性P和Q間的依賴度,公式如下所示
I(Q,P)=H(Q)-H(Q/P)=

(6)
計算出組合屬性的依賴度并取平均依賴度值最小的組合作為最簡屬性組合。根據最簡屬性約簡組合,保留原始診斷決策表中和約簡組合相對應的元素,生成新的決策屬性完成RS屬性的約簡。表4的條件屬性約簡結果為:{S1,S3,S4,S5,S6,S8,S10,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S23,S24,S25,S26},將26個故障征兆節點約簡為21個,簡化了模型結構并降低了診斷模型復雜度。
(4)建立基于RS-BN算法的BN結構模型
根據上述約簡結果,結合診斷知識數據庫和K2算法進行結構學習,建立基于RS-BN算法的BN結構模型,如圖9所示。
診斷模型建立后,還需要確定各節點的先驗概率參數,建立列控車載設備診斷模型的條件概率表(CPT)。在樣本數據和先驗知識均相同的情況下,參數學習的正確性關系模型建立的準確度。

圖9 基于RS-BN算法的BN模型結構
本文采用MLE算法[20]進行BN的參數學習。將圖7的基于K2算法結構學習和診斷知識數據庫建立的BN模型結構定義為BN1,將圖9的基于RS-BN算法的BN模型結構定義為BN2,本文利用GenIe2.0[21]軟件采用MLE算法進行數據的先驗概率參數學習,學習結果如圖10所示。

圖10 參數學習結果對比
圖10是利用MLE算法對BN1和BN2模型進行參數學習,得到的故障發生原因節點的先驗概率,通過比較可以看出,經過約簡后的BN2模型和未約簡的BN1模型通過MLE參數學習,節點的先驗概率參數相同,表明模型約簡不會改變節點的先驗概率參數。
本文選取了某髙鐵線2016年2月至2017年8月間車載設備6個主要模塊的1 116條故障記錄數據作為樣本數據,其中816條數據用于建模,其余300條數據用于模型的驗證分析。
從模型驗證數據中選取一條作為貝葉斯網絡模型診斷的實例,如表5所示。

表5 故障信息表實例
在表5的故障記錄中,挖掘提取故障征兆集{‘無線連接超時’,‘列車常用制動’,‘C3轉C2’},以1表示故障發生,0表示故障未發生,分別對BN1、BN2模型建立故障征兆集合:T1={1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},T2={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}設置T1、T2作為證據參數并令p(S1=1)=1、p(S2=1)、p(S7=1),利用GenIe2.0軟件采用聯結樹算法(JT)對診斷模型BN1、BN2分別進行診斷推理,診斷結果如圖11所示。
通過圖11模型診斷結果可以看出,在已知S1、S2、S7故障征兆的情況下,對模型BN1、BN2進行診斷推理,推理出故障發生最可能的原因,故障發生的最大概率為R2(單電臺故障),與故障實際發生原因相比較診斷結果一致,驗證了此模型的正確性。通過屬性的約簡,概率值大、排名靠前的節點后驗概率變大,說明BN2經過屬性約簡,較BN1提高了診斷知識清晰度和模型的故障診斷能力。
對300條驗證數據進行故障模塊的歸類,如表6所示。

圖11 模型診斷推理結果對比

表6 驗證數據故障模塊劃分
利用BNT工具箱的聯合樹推理函數(Jtree_inf_engine)對BN1、BN2診斷模型進行故障診斷,仿真推理結果對比如圖12所示。

圖12 推理診斷對比
獲得的故障模塊診斷正確率對比如表7(加粗數字代表故障診斷正確次數/診斷正確率)所示。
根據圖12和表7的診斷結果,可以看出BN1和BN2對于不同的故障模塊診斷正確率相同,說明RS屬性約簡去除了冗余和不必要的知識屬性,并不會改變知識的診斷決策能力,通過屬性的約簡可以簡化診斷模型,降低診斷模型復雜度,提高診斷效率。BN1和BN2模型的GSM-R模塊故障診斷正確率為92.6%,SDU模塊故障診斷正確率為73.3%,這是因為GSM-R模塊較SDU模塊建模故障樣本數多所致,可以看出隨著樣本數量的增加,診斷精確率會提高。模型的綜合故障診斷正確率均為88%,說明兩種模型的故障診斷正確率都較高且有準確的診斷結果,但經過RS屬性約簡的BN2診斷模型較BN1診斷模型,診斷效率高和實際診斷模型有更高的似然度。

表7 故障模塊診斷
本文提出了一種基于RS-BN算法的高鐵車載設備故障診斷方法。在貝葉斯網絡的建模過程中,充分結合現場實際數據與先驗診斷知識數據庫,利用K2算法建立BN模型,然后利用粗糙集理論對故障征兆條件屬性集進行屬性約簡,簡化模型,得到最優的BN結構,通過經典MLE算法進行BN的參數學習,得到完整的BN結構模型。最后,以某髙鐵線實際故障數據為例進行推理驗證。結果表明,本文提出的RS-BN診斷模型精簡、診斷效率高,具有較高的可靠度和準確性,為維修人員故障維修提供了診斷決策支持,對列控車載設備故障診斷技術的進一步發展具有重要意義。