鄧宏琛,張 勤,,,趙 越,董春玲
(1.清華大學 工程物理系,北京 100084;2.北京航空航天大學 計算機學院,北京 100191;3.清華大學 核能與新能源技術研究院,北京 100084)
當核電站發(fā)生故障時,若操作人員出現判斷失誤,可能會導致不可預估的嚴重后果,如美國的三哩島事故等。由于核電站系統的高度復雜性,在故障情況下,操作人員可能很難快速地從眾多分散的數據信息中準確判斷出故障原因。智能的故障診斷系統能對核電站進行參數檢測、故障預報、診斷及發(fā)展預測,并在核電站出現異常情況時,給出合適的操作建議,可在很大程度上避免操作人員出現失誤,從而更加有效地提高核電站的安全性能及使用效率。因而,核電站故障診斷系統的建立具有重大的意義。
貝葉斯網絡[1]是目前處理不確定因果知識表達和推理領域較流行的理論模型之一。貝葉斯網絡是一種概率網絡,以貝葉斯公式為概率計算基礎,由有向無環(huán)圖和條件概率表構成,包含代表變量節(jié)點和節(jié)點間相互連接的有向邊以及子變量節(jié)點和父變量節(jié)點之間的條件概率,這些概率參數通常通過數據學習而獲得。
文獻[2]指出,大型復雜系統通常無大量可用的故障統計數據,所以很難通過數據學習構造貝葉斯網絡的條件概率表CPT。貝葉斯網絡要求知識表達必須完備,但在實際復雜系統中,數據不完備難以避免。即使所有變量均為二狀態(tài),簡潔表達的貝葉斯網絡中的子變量也有單賦值與多賦值之分,在單賦值情況下適用的知識的簡潔表達和推理方法在多賦值情況下并不適用。
為克服貝葉斯網絡的上述及其他缺陷,文獻[2]提出了DUCG(動態(tài)不確定因果圖)理論模型。DUCG 理論模型是一種使用不確定因果關系的簡潔表達模型,方便領域專家對不確定因果知識進行簡潔表達,推理方式為基于證據來化簡DUCG 并展開事件,最后得到所關注的假設事件及其狀態(tài)的概率表達式,將不確定的因果關系用獨立的隨機事件來表達。
DUCG 是一種不拘泥于明確數學意義的知識狀態(tài)直觀方便的表達方式,但其推理過程同樣滿足概率論計算理論。文獻[2]中給出了DUCG 的化簡及推理計算規(guī)則。一個大型復雜的DUCG 可由一組包含子變量及其父變量組成的模塊組合而成,故不同模塊可由不同領域工程師分別搭建,這極大地方便了大型復雜DUCG 知識庫的構建。
推理機是DUCG 故障診斷系統的核心,程序的主體部分包括程序操作界面、實時UDP數據接收、DUCG 預處理、DUCG 化簡、表達式展開化簡和概率計算。
DUCG 故障診斷系統推理機需要實現的主要目標是基于接收到的信號參數,甄別異常信號數據,生成并記錄下故障狀態(tài),利用DUCG 化簡規(guī)則化簡因果圖,展開并化簡表達式,推理出故障原因并計算概率,在此基礎上還可做更進一步的分析及預報。
在推理過程中,要基于接收到的測點數據,首先通過圖形和邏輯化簡得到定性推理結果,即利用DUCG 的理論規(guī)則,進行事件展開、因果圖化簡,在進行數值計算之前,可得到一定性的、甚至是最終的推理結果,然后才進行概率數值定量計算得到推理結果。
目前實現的DUCG 故障診斷系統推理機主要分為如下6個模塊:通信模塊、界面模塊、化簡規(guī)則模塊、DUCG 操作模塊、表達式運算模塊以及輸入輸出模塊。其中化簡規(guī)則模塊、DUCG 操作模塊和表達式運算模塊是整個推理機最為核心的3個部分。
推理機系統6個模塊之間的主要調用關系及調用流程如圖1所示。
當啟動程序時,首先運行界面模塊,通過界面按鈕操作啟動DUCG 操作模塊,并通過調用輸入輸出模塊讀取原始數據文件初始化原始DUCG,同時啟動通信模塊,基于UDP 通信協議實時接收信號數據;當通信模塊接收并甄別到異常信號出現時,啟動推理流程,將異常信號傳給DUCG 操作模塊,DUCG 操作模塊基于該組信號,調用化簡規(guī)則模塊,對DUCG 進行化簡處理,調用輸入輸出模塊輸出化簡結果,基于得到的化簡后DUCG 數據,調用表達式運算模塊,進行表達式展開、化簡及推理計算,得到最后的推理結果,并調用輸入輸出模塊將推理計算結果輸出到磁盤文件中保存,同時將推理結果顯示在推理機界面上。
對于DUCG 操作模塊、化簡規(guī)則模塊及表達式運算模塊,首先需定義可表示DUCG 和邏輯表達式的數據結構,這些數據結構需包含節(jié)點變量信息、子節(jié)點與父節(jié)點之間的因果關系及關系的概率矩陣、邏輯表達式、表達式運算操作等信息。本系統定義的主要數據類型如圖2所示。
節(jié)點(Node)用于存儲節(jié)點信息,主要包含節(jié)點id、節(jié)點名稱、節(jié)點類型、父節(jié)點(Parent)集合pList〈Parent〉、節(jié)點當前狀態(tài)等。父節(jié)點用于存儲節(jié)點的父節(jié)點信息。線段(Flow)用于存儲DUCG 中的因果關系信息,主要包含起始節(jié)點和目標節(jié)點及相關的概率矩陣等。
DUCG(DucgGraph)信 息 包 含nMap、fMap、mxMap和nameNMap 4個重要的變量。nMap為鍵值對〈Key,Node〉類型變量,用于保存DUCG 的節(jié)點列表,其中Key 表示節(jié)點名稱;fMap為鍵值對〈Key,Flow〉類型變量,其中Key表示線段名稱;mxMap 為鍵值對〈Key,Matrix〉類型變量,用于存儲因果關系對應的概率矩陣的Matrix,其中Key為該矩陣所對應的線的起始節(jié)點id+“,”+目標節(jié)點的id,Matrix為該矩陣的概率值,行號表示父節(jié)點的狀態(tài),列號表示子節(jié)點的狀態(tài);nameNMap 為鍵值對〈Key,Node〉類型變量,用于存儲節(jié)點名稱到節(jié)點的映射關系,其中Key表示節(jié)點名稱(name),Node表示該節(jié)點信息的Node類。
CalculateExpression 用于存儲表達式信息,其基本格式為〈表達式〉=〈項〉{+〈項〉},默認每一項之間為相加關系。CalculateTerm 保存表達式中項信息,項基本結構為〈項〉=〈因子〉{*〈因子〉},默認每一項之間為相乘關系。CalculateFaculty保存項因子信息,包括變量的類型如B、X、G,以及參數para信息,其中B 表示故障原因變量,X 表示測點數據變量,G 表示邏輯門變量。
圖2 系統主要數據結構及關系Fig.2 System main data structure and relationship
在程序及算法中涉及到的所謂的DUCG操作對象即為DucgGraph 類型數據,所有與DUCG 化簡相關的運算,都是對DucgGraph類型變量的運算。
在DUCG 表達式展開和化簡過程中,會涉及表達式展開后相乘運算,假如兩個待展開表達式各有兩項,展開后相乘項數將變?yōu)?項,表達式展開過程存在著項重復及表達式項數規(guī)模爆炸性增長的潛在問題,所以需對展開后的表達式進行化簡操作,化簡操作過程即是遍歷表達式中每一項,找出并刪除其中的重復項,實驗證明化簡后的表達式項數可大幅減少。
目前表達式化簡過程是O(n2)復雜度操作,所以也需控制表達式化簡的頻率,化簡方案可根據表達式的規(guī)模大小來動態(tài)控制。當表達式規(guī)模較小時,可在所有表達式展開結束后再進行化簡;當表達式規(guī)模較大時,可邊展開邊化簡,極端情況就是每新加入一個表達式就對展開后結果化簡一次?;喆螖翟龆嘁矔е抡麄€推理過程時間變長,合理的方式是設置一個閥值,根據展開后表達式的項數目是否達到該閥值來確定是否需要進一步化簡運算。
目前推理診斷過程的計算時間均控制在幾十ms范圍內,工程實用性不存在問題。但對于O(n2)復雜度的化簡操作,若遇到超大規(guī)模的表達式化簡將可能出現性能瓶頸,運算時間過長將導致推理機失去故障實時診斷的實際應用價值,如何減少表達式化簡操作的運算復雜度是將來可繼續(xù)優(yōu)化的方向。
為了界面圖形直觀顯示的方便,軟件知識庫顯示圖中用正方形代表B 變量,正方形中的數字代表變量下標,B 變量是指故障原因變量,圓形代表X 變量,圓中的數字代表變量下標,X 變量是指測點數據變量;箭頭線段代表變量間的因果關系,其中包含有狀態(tài)概率矩陣,例如B12指向了X28的箭頭,表示A 路給水管道泄漏會導致SG1寬量程水位ARE061MN 異常,具體導致偏高還是偏低,在箭頭包含的概率矩陣中定義。
本次試驗用的完整知識庫包含故障模型較多,圖3所示即為完整知識庫的DUCG,包含了20多個故障類型,本文只選取二回路安全殼內給水管道泄漏故障子模型為例介紹,該故障模型知識庫的DUCG如圖4所示。二回路安全殼給水管道泄漏故障知識庫共有12個X 變量,3個B 變量,其中各變量具體含義及狀態(tài)信息列于表1。
圖3 完整知識庫DUCGFig.3 Complete knowledge DUCG
二回路安全殼內給水管道泄漏故障模型包含3個故障原因,需根據測點變量的狀態(tài)數據推理出故障根源。推理機最后輸出的推理結果如圖5所示,其中X28和X11為偏低狀態(tài),其余X 變量為偏高狀態(tài)。為理解方便,圖6示出變量及對應狀態(tài)的演變關系,與圖5中DUCG 是完全一致的。推理機的推理計算過程解釋如下:當所有變量中只有X152和X153處于異常狀態(tài)2時,即安全殼壓力和安全殼溫度偏高,此時故障診斷結果為B12、B20和B21,因為3個故障原因都可能導致X152和X153狀態(tài)偏高。
圖4 給水管道泄漏故障知識庫DUCGFig.4 Water supply pipeline leakage fault knowledge base DUCG
變量編號 變量描述 狀態(tài)信息B12 A 路給水管道 0-正常,1-泄漏B20 B路給水管道 0-正常,1-泄漏B21 C路給水管道 0-正常,1-泄漏X11 反應堆運行狀態(tài) 0-正常,1-跳堆X26 ARE-SG1給水流量ARE043MD 0-正常,1-低,2-高X28 SG1寬量程水位ARE061MN 0-正常,1-低,2-高X33 穩(wěn)壓器壓力RCP005MP 0-正常,1-低,2-高X34 穩(wěn)壓器液位RCP007MN 0-正常,1-低,2-高X53 一回路平均溫度RCP624KM 0-正常,1-低,2-高X144 ARE-SG2給水流量ARE044MD 0-正常,1-低,2-高X145 ARE-SG3給水流量ARE045MD 0-正常,1-低,2-高X148 SG2寬量程水位ARE062MN 0-正常,1-低,2-高X149 SG3寬量程水位ARE063MN 0-正常,1-低,2-高X153 安全殼壓力ETY101MP 0-正常,1-低,2-高X153 安全殼溫度ETY001MT 0-正常,1-低,2-高
圖5 推理機輸出故障診斷結果Fig.5 Fault diagnosis result of reasoning machine
在實際復雜系統中,數據不完備難以避免,當X11也出現異常狀態(tài)1時,即反應堆跳閘,但X28、X148和X149均處于未知狀態(tài),此時依然可診斷出故障結果為B12、B20和B21,因為在復雜網絡環(huán)境下,這3個測點數據可能漏傳數據,DUCG算法可在數據不完備情況下進行推理診斷。
圖6 故障狀態(tài)演變關系Fig.6 Fault state evolution
當X26也變?yōu)闋顟B(tài)2時,即ARE-SG1給水流量ARE043MD 偏高,此時故障診斷結果只有B12,即A 路給水管道泄漏,因為B20和B21已無法解釋X26的異常狀態(tài)。
本文基于DUCG理論模型,搭建了核電站故障診斷系統的推理機軟件,通過軟件實現DUCG推理機故障診斷過程,得到正確的診斷結果,文中同時分析了算法實現過程中的一些性能瓶頸并提出一些解決辦法。本文可得到如下結論:
1)通過軟件實現DUCG 推理機,通過真實故障模型數據進行實驗仿真模擬,證實了DUCG 理論的正確性。
2)通過軟件能實時接收測點數據,在ms級時間內推理診斷出故障原因,并計算出故障原因的概率排序值,證實了DUCG 理論的實際應用價值,可用于真實的故障診斷中。
3)DUCG 故障診斷系統的推理機軟件成功實現,可用于更進一步的軟件研發(fā)和理論研究。
[1] JENSEN F V.An introduction to bayesian networks[M].New York:Springer-Verlag,1996.
[2] ZHANG Qin.Dynamic uncertain causality graph for knowledge representation and reasoning:Discrete DAG cases[J].Journal of Computer Science and Technology,2012,27:1-23.