文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)04-0163-04
0 引言
符號(hào)有向圖(SDG)作為一種定性的故障診斷方法,能反映復(fù)雜系統(tǒng)內(nèi)部變量間的因果關(guān)系,直觀地展示故障的傳播,在故障診斷和安全評(píng)估領(lǐng)域中被廣泛應(yīng)用。在故障診斷方面,TARJAN R[1]、SHIOZAKI J[2]等在前人基礎(chǔ)上對(duì)算法進(jìn)行了許多改進(jìn),提高了推理效率。YU C C等[3]在SDG半定量化方面也做出了突出貢獻(xiàn)。在安全評(píng)估方面,VENKATASUBRAMANIAN V[4]成功地將SDG應(yīng)用于化工領(lǐng)域中。國內(nèi)的吳重光[5,6]、蕭德云[7,8]等在這些領(lǐng)域也做了大量的工作。然而,對(duì)于大規(guī)模復(fù)雜工業(yè)系統(tǒng),將SDG方法用于模型構(gòu)建、系統(tǒng)推理和SDG繪制上仍需要較強(qiáng)的專業(yè)背景和較大的工作量。
本文詳細(xì)描述了基于Django框架[9]的故障診斷和安全評(píng)估平臺(tái)的開發(fā)過程。該平臺(tái)采用了分層SDG模型和一種新的推理方法,繼承了Django易開發(fā)、便于更新維護(hù)、可二次利用的特點(diǎn)。本平臺(tái)支持系統(tǒng)模型的在線存儲(chǔ)和編輯、影響方程組文本文件上傳、自動(dòng)化推理、故障傳播路徑查詢和分層SDG的自動(dòng)繪制。
1 SDG相關(guān)理論
SDG模型由節(jié)點(diǎn)集和節(jié)點(diǎn)間的支路組成,其中每一個(gè)節(jié)點(diǎn)通常表示物理變量或事件。節(jié)點(diǎn)狀態(tài)值有3種:“+1”、“-1”、“0”,分別對(duì)應(yīng)節(jié)點(diǎn)所代表的變量超過了允許的上限、低于允許的下限、處于正常范圍。若某一變量(起始節(jié)點(diǎn))的偏差會(huì)直接影響另一變量(終止節(jié)點(diǎn))的偏差,則通過由起始節(jié)點(diǎn)指向終止節(jié)點(diǎn)的支路相連。用實(shí)線箭頭或“+”號(hào)表示正作用,即起始節(jié)點(diǎn)與終止節(jié)點(diǎn)同時(shí)增大或減??;虛線箭頭或“-”號(hào)表示反作用,即起始節(jié)點(diǎn)增大(減?。r(shí),終止節(jié)點(diǎn)減小(增大)。
某一時(shí)刻,系統(tǒng)所有節(jié)點(diǎn)狀態(tài)的一個(gè)集合稱為該系統(tǒng)的一個(gè)樣本,其中狀態(tài)不為“0”的節(jié)點(diǎn)稱為有效節(jié)點(diǎn)。在某一樣本下,如果直接相連的兩個(gè)節(jié)點(diǎn)的狀態(tài)值乘積和兩者之間的支路作用符號(hào)相同,則稱該支路在此樣本下為相容支路。由相容支路首尾連接組成的連通路徑稱為相容通路。
在SDG模型的推理方法中,反向推理是指利用當(dāng)前的故障節(jié)點(diǎn)狀態(tài),通過反向?qū)ふ蚁嗳萃穪泶_定系統(tǒng)可能的故障源,即所謂的故障診斷;正向推理是指利用SDG模型中已知節(jié)點(diǎn)狀態(tài)和節(jié)點(diǎn)間的相互關(guān)系進(jìn)行正向搜索,推測(cè)下一時(shí)刻節(jié)點(diǎn)可能出現(xiàn)的狀態(tài),尋找故障造成的所有不利后果,即所謂的安全評(píng)估。
2 平臺(tái)設(shè)計(jì)
2.1 平臺(tái)框架的設(shè)計(jì)
平臺(tái)整體框架如圖1所示,分為瀏覽器端和服務(wù)器端兩大部分。
圖1 平臺(tái)框架
瀏覽器端包含兩部分:(1)人機(jī)交互界面用于獲取用戶輸入數(shù)據(jù)和結(jié)果顯示;(2)AJAX引擎可以在不重新加載頁面的情況下,對(duì)安全評(píng)估的結(jié)果進(jìn)行更新顯示,有效減少了安全評(píng)估時(shí)的操作量。
服務(wù)器端基于Django的設(shè)計(jì)模式,由Python編寫而成。主要包含五部分:(1)URL映射器用于建立用戶輸入網(wǎng)址與處理函數(shù)的映射關(guān)系;(2)表現(xiàn)層決定瀏覽器端的顯示內(nèi)容,通過Django的模板實(shí)現(xiàn);(3)業(yè)務(wù)邏輯層是整個(gè)平臺(tái)的核心,包含分層、推理等算法的具體實(shí)現(xiàn);(4)數(shù)據(jù)存取層是表現(xiàn)層與數(shù)據(jù)庫交換數(shù)據(jù)的橋梁,通過使用Django的模型實(shí)現(xiàn);(5)數(shù)據(jù)庫主要存儲(chǔ)系統(tǒng)模型信息和用戶信息。
在業(yè)務(wù)邏輯層,為了提高推理效率,該平臺(tái)采用了將分層SDG模型、故障診斷和安全評(píng)估相結(jié)合的推理方法。首先,對(duì)系統(tǒng)的SDG模型進(jìn)行分層處理,在分層SDG模型中,故障只能影響本層或比之更低的層的節(jié)點(diǎn),從而有效減少故障源搜索空間。其次,利用分層結(jié)果減少故障源搜索空間,進(jìn)行反向推理,實(shí)現(xiàn)對(duì)系統(tǒng)的故障診斷。最后,利用故障診斷結(jié)果,結(jié)合改進(jìn)的正向推理算法,實(shí)現(xiàn)對(duì)系統(tǒng)的安全評(píng)估。
2.2 分層算法
本平臺(tái)采用可達(dá)性的分層方法[10]對(duì)SDG模型進(jìn)行分層??蛇_(dá)矩陣的計(jì)算方法如下:
P=A0+A1+…+An (1)
其中:A為SDG模型的鄰接矩陣,n為A的階數(shù),An表示A的n次方。P為SDG模型的可達(dá)矩陣。
本平臺(tái)中,分層算法如下所示:
輸入:有向圖模型?酌。
輸出:分層節(jié)點(diǎn)結(jié)果集S。
(1)由?酌獲取系統(tǒng)臨界矩陣A,令計(jì)數(shù)變量k=0;
(2)利用式(1)得到可達(dá)矩陣P;
(3)依次選取未被標(biāo)記j(j∈[0,n-1]),若對(duì)于任意i∈[0,n-1],滿足Pij≠0時(shí),Pji≠0,則Sk=Sk∪j,同時(shí)標(biāo)記j;
(4)令矩陣P的第m(m∈Sk)行全清0,令S=S∪{Sk},k=k+1,重復(fù)步驟(3)、(4),直至Sk=θ。
2.3 反向推理
本平臺(tái)利用模型的分層結(jié)果、相容通路原理和深度優(yōu)先算法進(jìn)行反向推理算法的設(shè)計(jì)。反向推理算法的實(shí)現(xiàn)如下:
輸入:有向圖模型?酌,分層結(jié)果S。
輸出:故障源集合F。
(1)獲取系統(tǒng)所有有效節(jié)點(diǎn),得到集合C;
(2)隨機(jī)從C中選取未被標(biāo)記節(jié)點(diǎn)vi,并做訪問標(biāo)記,查詢vi在分層SDG模型中所在的層n;
(3)從Sm(m≤n)中選取以vi為終止節(jié)點(diǎn)的起始節(jié)點(diǎn)vj,若存在vj滿足vi與vj之間路徑ai滿足相容支路,則分以下情況處理:
①若vj未被標(biāo)記,則標(biāo)記vj,同時(shí)以vj為終止節(jié)點(diǎn),令vi=vj,重復(fù)步驟(3);
②若vj已被標(biāo)記,則跳至步驟(2);
③否則,F(xiàn)=F∪{vi};
(4)若C中仍存在未被標(biāo)記節(jié)點(diǎn),測(cè)重復(fù)步驟(2),直到所有節(jié)點(diǎn)被標(biāo)記。
2.4 改進(jìn)的正向推理
對(duì)于SDG的正向推理,通常依據(jù)式(2):
但式(2)成立的前提為故障在各支路的傳播速度相同,這與事實(shí)不符。在某些情況下,該方法會(huì)影響推理結(jié)果的完備性,并且該方法難以獲取故障傳播路徑。
為改進(jìn)上述方法的不足,本平臺(tái)首先利用廣度優(yōu)先算法,得到由故障源節(jié)點(diǎn)為起點(diǎn)的所有傳播路徑集合,路徑中的節(jié)點(diǎn)即為受影響節(jié)點(diǎn)。其次,利用式(3)得到受影響節(jié)點(diǎn)在各個(gè)傳播路徑下的狀態(tài)值,從而得到所有受影響節(jié)點(diǎn)及其狀態(tài)值的集合,實(shí)現(xiàn)對(duì)系統(tǒng)的安全評(píng)估。
定義 “[]”表示有序集合,如[v1,v2,v3,…,vn]表示v1,v2,v3…vn間有序。
正向推理算法的實(shí)現(xiàn)如下:
輸入:有向圖模型?酌,故障源節(jié)點(diǎn)vx∈F。
輸出:受影響節(jié)點(diǎn)集合E、以故障源為起點(diǎn)的路徑集合L、及路徑L上各節(jié)點(diǎn)狀態(tài)值集合T。
(1)依次獲取以vx為起始節(jié)點(diǎn)的所有終止節(jié)點(diǎn),構(gòu)成終止節(jié)點(diǎn)集合Sy。得到以vx為起點(diǎn)的路徑[vx,vy](vy∈Sy),受影響節(jié)點(diǎn)集合E=E∪Sy;
(2)選取以vy∈Sy為起始節(jié)點(diǎn)的所有終止節(jié)點(diǎn),構(gòu)成終止節(jié)點(diǎn)集合Sz,得到以vx為起點(diǎn)經(jīng)過vy的路徑[vx,vy,vz](vy∈Sz),受影響節(jié)點(diǎn)集合E=E∪Sz;
(3)通過步驟(1)、(2)得到以vx(vx∈F)為起始節(jié)點(diǎn)的所有路徑L、最終的受影響節(jié)點(diǎn)集合E;
(4)利用式(3)和路徑集合L,得出路徑上對(duì)應(yīng)節(jié)狀態(tài)值集T。
3 TEP實(shí)例驗(yàn)證
TEP[11]是一個(gè)經(jīng)典的用于故障診斷研究的化工廠仿真平臺(tái)。本平臺(tái)生成的TEP的分層SDG模型如圖 2所示,其符號(hào)說明見表1。節(jié)點(diǎn)由高層至底層顯示:用白色節(jié)點(diǎn)表示正常節(jié)點(diǎn),深灰色節(jié)點(diǎn)表示正向偏差節(jié)點(diǎn),淺灰色節(jié)點(diǎn)表示反向偏差節(jié)點(diǎn);實(shí)線箭頭表示正作用支路;虛線箭頭表示反作用支路;灰色直線和數(shù)字表示節(jié)點(diǎn)所在的層。
為了對(duì)本平臺(tái)的有效性進(jìn)行驗(yàn)證,處理故障模式1(A/C進(jìn)料比發(fā)生階躍變化)的數(shù)據(jù)[12],得到一個(gè)系統(tǒng)故障樣本,如表 2所示。
基于表2列出的故障樣本,系統(tǒng)推理出的故障診斷和安全評(píng)估結(jié)果如圖3所示。
在故障診斷結(jié)果窗口,系統(tǒng)推理出故障源為節(jié)點(diǎn)XC6、節(jié)點(diǎn)P16和節(jié)點(diǎn)T18,進(jìn)一步推測(cè)出這是由于A/C進(jìn)料比發(fā)生變化引起。與文獻(xiàn)[13]比較可知,推理結(jié)果正確。
在安全評(píng)估結(jié)果窗口,平臺(tái)顯示出下一刻所有可能受影響的節(jié)點(diǎn)。以選中故障源節(jié)點(diǎn)XC6和受影響節(jié)點(diǎn)V43為例,傳播路徑窗口自動(dòng)列出故障由節(jié)點(diǎn)XC6傳播到節(jié)點(diǎn)V43的兩條路徑以及路徑中各節(jié)點(diǎn)的狀態(tài)值,得到在節(jié)點(diǎn)XC6發(fā)生故障的影響下,節(jié)點(diǎn)V43可能出現(xiàn)的狀態(tài)值集為{1}。
實(shí)際分析,XC6的升高,使得反應(yīng)器中反應(yīng)物E、A成分減少。其中,(1)節(jié)點(diǎn)XE6的降低,造成節(jié)點(diǎn)V43變大;(2)節(jié)點(diǎn)XA6的降低,造成節(jié)點(diǎn)V44變大,節(jié)點(diǎn)F1增加,使得節(jié)點(diǎn)XA6增加,又進(jìn)一步造成了節(jié)點(diǎn)XE6的降低,節(jié)點(diǎn)V43變大。上述兩種情況與傳播路徑窗口中的兩條路徑一致。
4 結(jié)論
目前,SDG模型已應(yīng)用于復(fù)雜生產(chǎn)系統(tǒng)的故障診斷和安全評(píng)估領(lǐng)域,但是將SDG方法用于系統(tǒng)推理和SDG繪制上仍需要較強(qiáng)的專業(yè)背景和較大的工作量?;谏鲜鲈?,本文詳細(xì)描述了基于SDG方法的故障診斷和安全評(píng)估平臺(tái)的開發(fā)過程,平臺(tái)的開發(fā)基于開源Django框架,具有搭建簡(jiǎn)單、操作方便、易于二次開發(fā)等特點(diǎn)。該平臺(tái)利用分層SDG模型和新的推理算法實(shí)現(xiàn)對(duì)系統(tǒng)的故障診斷和安全評(píng)估,支持故障傳播路徑查詢和分層SDG的自動(dòng)繪制。TEP實(shí)例結(jié)果證明平臺(tái)的推理結(jié)果完備、有效。該平臺(tái)有效降低了SDG方法對(duì)專業(yè)背景的要求,減少了使用SDG方法過程中的工作量,有較好的應(yīng)用前景。
參考文獻(xiàn)
[1] TARJAN R.Depth-first search and linear graph algorithms[J].SIAM Journal on Computing,1972,1(2):146-160.
[2] SHIOZAKI J,MATSUYAMA H,O′SHIMA E,et al.An improved algorithm for diagnosis of system failures in the chemical process[J].Computers & Chemical Engineering,1985,9(3):285-293.
[3] YU C C,LEE C.Fault diagnosis based on qualitative/quan-titative process knowledge[J].AIChE Journal,1991,37(4):617-628.
[4] VENKATASUBRAMANIAN V,ZHAO J,VISWANATHAN S.Intelligent systems for HAZOP analysis of complex process plants[J].Computers & Chemical Engineering,2000,24(9):2291-2302.
[5] 張貝克,許欣,高東,等.基于定性趨勢(shì)與符號(hào)有向圖的模型校核方法[J].化工學(xué)報(bào),2013,64(12):4536-4543.
[6] ZHANG B,XU X,MA X,et al.SDG-based model valida-tion in chemical process simulation[J].Chinese Journal of Chemical Engineering,2013,21(8):876-885.
[7] YANG F,SHAH S,XIAO D.Signed directed graph based modeling and its validation from process knowledge and process data[J].International Journal of Applied Mathematics and Computer Science,2012,22(1):41-53.
[8] YANG F,XIAO D,SHAH S L.Signed directed graph-based hierarchical modelling and fault propagation analysis for large-scale systems[J].IET Control Theory & Applica-tions,2013,7(4):537-550.
[9] Django project[EB/OL].[2014-11-20].https://www.django-project.com/.
[10] SEHGAL R,GANDHI O P,ANGRA S.Fault location of tribo-mechanical systems-a graph theory and matrix approach[J].Reliability Engineering and System Safety,2000,70(1):1-14.
[11] DOWNS J J,VOGEL E F.A plant-wide industrial process control problem[J].Computers & Chemical Engineering,1993,17(3):245-255.
[12] Tennessee eastman challenge archive[DB/OL].[2014-11-20].http://depts.washington.edu/control/LARRY/TE/down-load.html.
[13] 韓曉明.基于符號(hào)有向圖和支持向量機(jī)的故障診斷方法的研究[D].太原:太原理工大學(xué),2011.