張志軍,詹 峰,趙靜閣,謝克明
(1.太原理工大學(xué)信息工程學(xué)院,太原 030024;2.山西財經(jīng)大學(xué)信息管理學(xué)院,太原 030006)
實際工業(yè)系統(tǒng)中,輕微故障若未能及時檢測并處理,就可能發(fā)生連鎖反應(yīng),導(dǎo)致整個系統(tǒng)崩潰,進(jìn)而引發(fā)巨大的災(zāi)難性后果[1]。如中石油吉化公司2005年雙苯塔爆炸,造成的嚴(yán)重環(huán)境污染幾乎波及東三省。為改進(jìn)系統(tǒng)運行的可靠性和安全性而提出的故障診斷方法,可以及時發(fā)現(xiàn)系統(tǒng)運行中的故障,并能準(zhǔn)確定位該故障源,從而及時采取相應(yīng)處理措施,避免故障的擴大和重大事故的發(fā)生,這有極重大的意義。
高溫硝酸冷卻流程系統(tǒng)是化工領(lǐng)域的重要系統(tǒng)之一,超高溫硝酸輸入到下一流程的反應(yīng)器中,就有可能導(dǎo)致故障。故障容錯技術(shù)研究的是系統(tǒng)在異常工況下,甚至是故障情況下運行的狀態(tài),實際工業(yè)系統(tǒng)本身不允許在實際運行中進(jìn)行故障診斷的研究和試驗,因此構(gòu)建一個用于故障仿真診斷的試驗平臺很有必要。
本文根據(jù)課題前期的研究積累,引入Matlab程序圖形化界面——用戶圖形界面(GUI),最終實現(xiàn)SDG模型導(dǎo)入、故障導(dǎo)入、故障顯示、診斷顯示等功能,實現(xiàn)Matlab環(huán)境下,基于粒計算-SDG的高溫硝酸冷卻故障診斷仿真試驗平臺。
仿真試驗平臺設(shè)計目標(biāo)是模塊化,提高可移植性和擴展性,能夠?qū)I(yè)流程進(jìn)行仿真、調(diào)試,判定故障狀態(tài)和故障源[2]。仿真試驗平臺能夠模擬如低量運行、超限運行等實際工業(yè)系統(tǒng)中的大部分異常情況,從而進(jìn)行故障診斷的實驗研究。
隨著科學(xué)技術(shù)的發(fā)展,以計算機為上位機的控制系統(tǒng)已逐漸成為工業(yè)領(lǐng)域的主導(dǎo),Matlab具有強大的工程試驗、矩陣運算、圖形繪制能力,并提供與組態(tài)王、VB和C語言等的無縫接口和混合編程環(huán)境。因此,本文選擇Matlab編寫實驗程序,并構(gòu)建了基于Matlab中GUI的故障診斷仿真試驗平臺。
仿真試驗平臺由知識獲取層、知識處理層和用戶層構(gòu)成,其系統(tǒng)結(jié)構(gòu)如圖1所示。在設(shè)計時把用戶界面與知識獲取分開,知識獲取與知識處理分開,從而使表現(xiàn)層、邏輯層和數(shù)據(jù)處理層互相獨立。其中知識處理層包括知識處理與規(guī)則提取,故障的顯示與分析等功能。
1)用戶層是用戶與系統(tǒng)相交互的界面,在該界面上,用戶可提出對系統(tǒng)知識處理的請求,并顯示分析診斷所得故障的結(jié)果。
2)知識處理層由知識處理任務(wù)、知識處理接口、故障分析及顯示模塊四個功能模塊組成。
知識處理層通過調(diào)用知識獲取層中的知識信息,采用粒計算中的知識約簡算法[4,5],通過進(jìn)行節(jié)點的屬性重要度評價任務(wù),約簡系統(tǒng)的冗余屬性知識,從而獲取最簡決策規(guī)則。通過讀取故障節(jié)點信息,經(jīng)故障診斷模塊判別是哪個案例故障狀態(tài),并將診斷結(jié)果在GUI相應(yīng)的控件對象上顯示。
3)知識獲取層包括數(shù)據(jù)預(yù)處理、知識庫和數(shù)據(jù)源。
本仿真平臺將數(shù)據(jù)源和知識庫轉(zhuǎn)化為矩陣形式,并保存為文本文件,通過故障診斷系統(tǒng)的函數(shù)可調(diào)用該文件。
圖1 仿真試驗平臺系統(tǒng)結(jié)構(gòu)
Matlab的圖形用戶界面,由窗體、文本框、按鈕等控件構(gòu)成。運行時,通過調(diào)用相應(yīng)的圖形控件函數(shù)來實現(xiàn)相應(yīng)功能。
故障診斷過程能看成模式分類的過程,系統(tǒng)中每個故障節(jié)點能對應(yīng)一組相應(yīng)的節(jié)點狀態(tài)特征值。因而,在軟件的設(shè)計過程中,要實現(xiàn)包括代碼的結(jié)構(gòu)化、文件的結(jié)構(gòu)化、全局和局部變量的布置和使用,還要充分考慮數(shù)據(jù)接口、變量空間、變量生命期等問題。Matlab GUI設(shè)計具體步驟為:
1)打開Matlab工作平臺;
2)創(chuàng)建GUI平臺;
3)設(shè)置用戶界面中的對象;
4)編寫GUI中相應(yīng)的函數(shù)。
在高溫硝酸冷卻故障診斷系統(tǒng)的GUI中,運行時可顯示系統(tǒng)的SDG模型、系統(tǒng)的節(jié)點狀態(tài)、系統(tǒng)的診斷結(jié)果、故障診斷比較等。其具體設(shè)計步驟為:
1)在Matlab環(huán)境中,點擊GUI Quick Start,啟動Matlab GUI,運行相關(guān)的初始化程序,可得如圖2所示的高溫硝酸冷卻故障診斷系統(tǒng)界面。
2)設(shè)置“Import SDG”按鈕。要求單擊該按鈕時運行系統(tǒng)彈出SDG圖選擇窗體,在該窗體可打開系統(tǒng)目錄下的SDG圖文件。包括高溫硝酸冷卻系統(tǒng)SDG模型圖和改進(jìn)的高溫硝酸冷卻系統(tǒng)SDG模型圖。
圖2 高溫硝酸冷卻故障診斷系統(tǒng)界面
3)設(shè)置“Import Node State”按鈕,通過編寫Callback函數(shù),實現(xiàn)當(dāng)點擊該按鈕時,打開故障數(shù)據(jù)Fa(i).txt存儲文件夾的選擇窗口。其中,每個txt文件中存儲兩行故障診斷決策表中的數(shù)據(jù)[5]。通過選擇按鈕“Basic Node”或“Node Expasion”,可以將相對應(yīng)的變量數(shù)據(jù),讀入計算機內(nèi)存。
4)分析節(jié)點數(shù)據(jù),得出診斷結(jié)果。本故障診斷仿真試驗系統(tǒng)根據(jù)文獻(xiàn)[5]得出的故障診斷決策規(guī)則,采用產(chǎn)生式規(guī)則(Production Rule),即形如“IF condition THEN conclusion”來表達(dá)推理規(guī)則知識。例:IF T3=1 AND T4=1 AND P6=-1 AND F2=-1 AND F7=-1 THEN PCV failure AND Pump shutdown。
在運行系統(tǒng)中,只需單擊 “SDG-Based Fault Diagnosis” 或 “GrC and SDG-Based Fault Diagnosis”按鈕,就可在SDG圖下的文本框中顯示所獲診斷結(jié)果,如圖3所示。
圖3 高溫硝酸冷卻故障診斷結(jié)果
在筆者電腦(CPU:Intel 1.70 GHz,RAM:512MB,OS:Windows2000 Professional)上所裝Matlab7.0中進(jìn)行仿真實驗相關(guān)測試。
本仿真試驗平臺運行流程為:
1)啟動仿真平臺,導(dǎo)入系統(tǒng)的仿真模型,進(jìn)行仿真系統(tǒng)的初始化。
2)自動判斷系統(tǒng)是否已與現(xiàn)場實體相連。若有則打開通訊模塊,進(jìn)行數(shù)據(jù)采集等相關(guān)操作;若無則運行仿真模型,調(diào)用計算機中存儲的一組歷史數(shù)據(jù)或故障數(shù)據(jù)。
3)用戶通過GUI界面中的讀取節(jié)點狀態(tài)按鈕和選擇按鈕,把實時采集數(shù)據(jù)或計算機中所存數(shù)據(jù)調(diào)入系統(tǒng)變量賦值模塊中。
4)用戶單擊故障判別按鈕,系統(tǒng)根據(jù)已輸入的數(shù)據(jù),來分析和診斷,并把所獲結(jié)果輸出到系統(tǒng)故障顯示模塊。然后,用戶通過對預(yù)期結(jié)果和輸出結(jié)果進(jìn)行比較,判斷系統(tǒng)故障診斷的結(jié)果是否正確。
假設(shè)實際系統(tǒng)出現(xiàn)如下故障劇情,通過以下步驟來驗證系統(tǒng)診斷結(jié)果是否正確。
1)當(dāng)故障Fa1發(fā)生,即輸入實際系統(tǒng)的高溫硝酸的壓力過高。
此時檢測出實際系統(tǒng)中的節(jié)點的異常征兆為T3較高、F1過高、T4較高、F2過高。根據(jù) 4.1的測試步驟,讀入相應(yīng)的數(shù)據(jù),試驗“基本SDG故障診斷”,“基于節(jié)點擴展的基本SDG故障診斷”,“基于知識約簡的基本SDG故障診斷”和“基于知識約簡的節(jié)點擴展故障診斷”,都得出故障為Fa1。
2)當(dāng)故障Fa5發(fā)生,即實際系統(tǒng)中流量測試單元Fc出錯和輸入的冷卻水管漏水。
此時檢測出實際系統(tǒng)中的節(jié)點的異常征兆為P6過低、F2 關(guān)斷 、F7 過低 、T3 較高、O10 關(guān)斷 、T4較高。根據(jù)4.1的測試步驟,讀入相應(yīng)的數(shù)據(jù),試驗“基本SDG故障診斷”,“基于節(jié)點擴展的基本SDG故障診斷”,“基于知識約簡的基本SDG故障診斷”和“基于知識約簡的節(jié)點擴展故障診斷”,都得出故障為Fa5。
3)對于其他的故障狀態(tài),可以進(jìn)行類似的診斷。經(jīng)由對象系統(tǒng)各種故障數(shù)據(jù)的診斷測試,表明本文所建立的故障診斷仿真試驗平臺能準(zhǔn)確地將故障診斷出來,也驗證了本仿真試驗平臺所采用的診斷算法的正確性和有效性。
Matlab具有界面友好的可視化編程環(huán)境和強大的數(shù)據(jù)處理能力,本文采用Matlab7.0,設(shè)計了界面友好的高溫硝酸冷卻故障仿真診斷系統(tǒng)。所設(shè)計的故障仿真診斷系統(tǒng)操作簡單,使用戶能很方便地獲得故障征兆特征和直觀的故障診斷結(jié)果。最后經(jīng)實例驗證表明該系統(tǒng)的有效性。
[1] 胡壽松,徐德友,劉亞.動態(tài)系統(tǒng)故障診斷方法的評估[J].華北電力大學(xué)學(xué)報,2003,30(6):20-24.
[2] 王春利,張衛(wèi)華,吳重光.故障診斷技術(shù)理論與發(fā)展趨勢及其在石化領(lǐng)域的應(yīng)用[J].石油化工自動化,2008(6):7-13.
[3] Samantaray A K,M edjaher B,Ould Bouamama B,et al.Diagnostic bond graphs for online fault detection and isolation[J].Simulation Modelling Practice and Theory,2006,14:237-262.
[4] Xie Keming,Chen Zehua,Xie Gang,et al.BGr Cfor Superheated Steam Temperature System Modeling in Power Plant[C].The 2006 IEEE International Conference on Granular Computing,Atlanta,GA,United States,2006(10-12):708-711.
[5] Zhan Feng,Xie Keming,Zhao Jingge,et al.Fault Diagnosis Based on Granular Matrix-SDG and its Application[C].The 2009 IEEE International Conference on Granular Computing,Nanchang,China,2009(17-19):752-756.
[6] 陳皓,吳重光.用于故障診斷試驗的仿DCS操作站軟件研究[J].計算機仿真,2004,21(11):223-227.
[7] 劉強,劉忠義,張寧,等.基于符號有向圖的故障診斷系統(tǒng)及其軟件平臺[J].軟件導(dǎo)刊,2009,8(11):11-14.
[8] Xie Keming,Zhan Feng,Zhao Jingge,et al.Gr C and SDG-Based Fault Diagnosis Sy stem and its Simulation Platform[C].The 2010 IEEE International Conference on Granular Computing,Silicon Valley,USA,2010(14-16):550-555.