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