郭錦平,邊若鵬
(海裝北京局駐邯鄲地區(qū)軍事代表室,河北 邯鄲 056002)
現(xiàn)代工業(yè)系統(tǒng)逐漸大型化、復(fù)雜化、綜合化和智能化,故障診斷技術(shù)對監(jiān)測系統(tǒng)正常運(yùn)行、及時發(fā)現(xiàn)系統(tǒng)異常具有極其重要的意義。故障診斷過程主要包括[1-2]:故障檢測、故障隔離和故障辨識。從上世紀(jì)70年代起,涌現(xiàn)出大量故障診斷技術(shù),主要分為[3]:基于模型(Model-based)的故障診斷技術(shù)、基于知識(Knowledge-based)的故障診斷技術(shù)和數(shù)據(jù)驅(qū)動(Data-driven)故障診斷技術(shù)。隨著信息處理和傳感器技術(shù)的發(fā)展,數(shù)據(jù)驅(qū)動故障診斷技術(shù)得到了長足發(fā)展[1,4-8],其直接以監(jiān)控數(shù)據(jù)為基礎(chǔ),利用多元統(tǒng)計和模式識別等方法進(jìn)行數(shù)據(jù)分析,從而實(shí)現(xiàn)故障檢測、隔離和辨識[1,4-7]。
隨著故障診斷技術(shù)研究的不斷深入,針對故障診斷系統(tǒng)的仿真平臺設(shè)計與研究也日益廣泛。然而,當(dāng)前故障診斷仿真平臺研究[9-10]主要是基于模型的故障診斷平臺。本文結(jié)合數(shù)據(jù)驅(qū)動故障診斷技術(shù),在MATLAB GUIDE平臺下,設(shè)計一種基于數(shù)據(jù)驅(qū)動的故障檢測工具箱,給出工具箱的設(shè)計原理和模塊結(jié)構(gòu)。所設(shè)計的工具箱可針對監(jiān)測數(shù)據(jù)特點(diǎn),選擇相應(yīng)的數(shù)據(jù)驅(qū)動故障檢測方法,有效地提高故障檢測率。
對于給定的系統(tǒng),數(shù)據(jù)驅(qū)動故障檢測方法基于每個觀測向量設(shè)定閾值(Threshold)。若系統(tǒng)觀測變量超出閾值,則認(rèn)為發(fā)生了故障。該方法稱為極限值檢測法。定義誤報率和漏檢率如下:
定義1給定統(tǒng)計量J和閾值Jth,f=0代表無故障,稱條件概率:
FAR=P(J>Jth|f=0)
(1)
為誤報率(False Alarms Rate, FAR)。
定義2給定統(tǒng)計量J和閾值Jth,f=0代表無故障,稱條件概率:
MDR=P(J≤Jth|f≠0)
(2)
為漏檢率(Missed Detection Rate, MDR)。
其中誤報率就是統(tǒng)計學(xué)中第一類錯誤的概率,即顯著性水平α。
一些典型正態(tài)標(biāo)準(zhǔn)差值[2]如表1所示。
表1 典型正態(tài)標(biāo)準(zhǔn)差值
對于給定的系統(tǒng),數(shù)據(jù)驅(qū)動故障檢測可以分為單變量檢測和多變量檢測。而極限值檢測法在單變量統(tǒng)計檢測中常用的有休哈特(Shewhart)控制圖法、累積和(CUSUM)控制圖法以及指數(shù)加權(quán)滑動平均(EWMA)控制圖法。
1.2.1 休哈特控制圖
休哈特控制圖法是最典型的極限值檢測法。取一組正態(tài)分布的數(shù)據(jù)如下:
(3)
其中,μ為期望值,σ為方差,那么x屬于特定區(qū)間(即超出閾值的區(qū)間和置信區(qū)間)概率為:
(4)
(5)
1.2.2 累積和控制圖
累積和控制圖的設(shè)計思想是通過累加系統(tǒng)過程的小偏移量,提高檢測過程靈敏度[11]。目前最常用的是V型模板法和列表法[12]。
CUSUM控制圖有判定距H和V型模板的一側(cè)邊界斜率K這2個參數(shù),其中:
(6)
在雙邊控制中,令SH(i)為第i個樣本上單邊累積和,SL(i)為第i個樣本下單邊累積和,則有:
SH(i)=max[0,xi-(μ0+K)+SH(i-1)]
(7)
SL(i)=max[0,(μ0-K)-xi+SL(i-1)]
(8)
其中,SH(0)=SL(0)=0,當(dāng)某一個累積和為負(fù)值時,將其置為0;如果SH(i)≥H或者SL(i)≥H時,則此過程出現(xiàn)故障[13]。
1.2.3 加權(quán)滑動平均控制圖法
加權(quán)滑動平均控制圖法是基于單個觀測值監(jiān)測系統(tǒng)過程的微小漂移,其統(tǒng)計量是當(dāng)前值與歷史數(shù)據(jù)的加權(quán)平均,即:
(9)
E(zt)=μ
(10)
(11)
當(dāng)t→時,有:
(12)
因此,EWMA控制圖的控制限為:
(13)
當(dāng)統(tǒng)計量超出控制限時,則判定發(fā)生故障。
1.2.4 多變量統(tǒng)計檢測法
單變量檢測法能直觀地顯示出故障情況,在一定程度上實(shí)現(xiàn)故障隔離。然而實(shí)際系統(tǒng)往往是多變量系統(tǒng),單變量檢測法會忽略變量之間相關(guān)性,產(chǎn)生的控制圖還會占用大量空間。
為了克服單變量統(tǒng)計檢測法的弊端,1947年霍特林[15](Hotelling)結(jié)合T2統(tǒng)計量使用多變量檢測法實(shí)現(xiàn)故障檢測,大大提高了靈敏度。
假設(shè)系統(tǒng)含m個觀測變量,每個變量有N個觀測值,T2統(tǒng)計量進(jìn)行故障檢測流程如圖1所示。
圖1 T2統(tǒng)計量故障檢測流程圖
1.2.5 主元分析法
主元分析法(Principle Component Analysis, PCA)基本思想如下:設(shè)系統(tǒng)過程可以由幾個變量來表征出所有變量的信息,那么就可以利用這幾個主元代替所有的過程變量[16-18]。對于主元數(shù)量的確定通常有累積貢獻(xiàn)法和交叉檢驗(yàn)法[19]。
主元分析故障檢測法主要是基于Q統(tǒng)計量實(shí)現(xiàn)的,又稱為平方預(yù)測誤差統(tǒng)計量(Squared Prediction Error, SPE),代表某一時刻觀測值對主元模型的偏離程度,故障檢測流程如圖2所示。
圖2 PCA技術(shù)故障檢測流程
MATLAB是面向科學(xué)計算的高級編程語言,可以提供強(qiáng)大的數(shù)據(jù)處理能力和圖像處理能力,能夠滿足許多工程上的測試分析需求。
MATLAB的GUI設(shè)計需要結(jié)合許多控件[20-21]。常用的控件主要包括用戶界面控件、下拉菜單、內(nèi)容菜單,其中用戶界面控件是本文設(shè)計的數(shù)據(jù)驅(qū)動故障檢測工具箱控件的核心,這里主要采用的控件及實(shí)現(xiàn)功能如表2所示。
表2 工具箱控件及功能
結(jié)合工具箱的功能模塊和不同控件實(shí)現(xiàn)的不同功能在可視化界面上通過拖拽完成工具箱的界面設(shè)計,并設(shè)置控件屬性來調(diào)整控件的大小位置。
通過對MATLAB GUI的設(shè)計,構(gòu)建數(shù)據(jù)驅(qū)動故障檢測工具箱。對于使用者而言,只需要導(dǎo)入數(shù)據(jù),根據(jù)數(shù)據(jù)特點(diǎn)選定相應(yīng)的故障檢測方法和顯著性水平即可實(shí)現(xiàn)數(shù)據(jù)驅(qū)動故障檢測。使用MATLAB GUIDE編程性語言對每一個控件的Callback函數(shù)進(jìn)行開發(fā),結(jié)合MATLAB平臺實(shí)現(xiàn)數(shù)據(jù)的圖像可視化、故障檢測以及故障檢測結(jié)果的可視化。
數(shù)據(jù)驅(qū)動故障診斷工具箱的設(shè)計需要利用監(jiān)測數(shù)據(jù)實(shí)現(xiàn)系統(tǒng)的故障檢測[22-23]。工具箱結(jié)構(gòu)如圖3所示,其中數(shù)據(jù)導(dǎo)入、數(shù)據(jù)預(yù)處理模塊主要是對正常數(shù)據(jù)、待監(jiān)測數(shù)據(jù)進(jìn)行導(dǎo)入和預(yù)處理;故障檢測模塊主要是根據(jù)需要選擇顯著性水平并對待檢測系統(tǒng)進(jìn)行故障檢測。這些模塊在功能上相互聯(lián)系,在形式上相互獨(dú)立。數(shù)據(jù)導(dǎo)入和數(shù)據(jù)預(yù)處理是故障檢測模塊的前提,故障檢測模塊是工具箱的核心部分,又可細(xì)分為如下3個模塊:
圖3 工具箱結(jié)構(gòu)設(shè)計
1)顯著性水平(參數(shù))設(shè)置模塊;
2)檢測方法選擇模塊;
3)檢測模塊。
工具箱的可視化圖形界面如圖4所示。
圖4 工具箱可視化圖形界面
2.3.1 數(shù)據(jù)導(dǎo)入模塊
數(shù)據(jù)導(dǎo)入模塊是工具箱的基礎(chǔ)模塊之一。該模塊利用MATLAB平臺的數(shù)據(jù)讀取函數(shù)將正常數(shù)據(jù)與待測數(shù)據(jù)賦予于相應(yīng)的變量,之后顯示到表格和圖像中。通過瀏覽圖像和表格可以對數(shù)據(jù)直觀地了解,初步分析圖像的趨勢,為后續(xù)的數(shù)據(jù)預(yù)處理(趨勢提取)做準(zhǔn)備。
通過GUIDE設(shè)計出數(shù)據(jù)訪問模塊整體布局:2個Pushbutton控件位于模塊上下2部分,分別進(jìn)行離線數(shù)據(jù)導(dǎo)入和在線數(shù)據(jù)導(dǎo)入;2個Table控件分別置于Pushbutton下方,分別實(shí)現(xiàn)離線數(shù)據(jù)和在線數(shù)據(jù)的數(shù)字可視化;2個Axes控件分別置于2個Table右側(cè),分別實(shí)現(xiàn)離線數(shù)據(jù)和在線數(shù)據(jù)的圖形可視化。
數(shù)據(jù)訪問模塊涉及的變量如下:
global normalData:代表離線數(shù)據(jù);
global faultData:代表在線數(shù)據(jù)。
兩者在整個工具箱中作為全局變量,進(jìn)行后續(xù)的數(shù)據(jù)處理和故障診斷。
數(shù)據(jù)訪問模塊設(shè)計的函數(shù)如下:
uigetfile(filename,pathname):一方面,該函數(shù)可以自選路徑導(dǎo)入相應(yīng)的數(shù)據(jù)文件,作為normalData和faultData;另一方面,該函數(shù)可以直接調(diào)用MATLAB工作區(qū)的數(shù)據(jù)文件作為normalData和faultData。
2.3.2 數(shù)據(jù)預(yù)處理模塊
數(shù)據(jù)預(yù)處理模塊是工具箱的基礎(chǔ)模塊之二,通過MATLAB環(huán)境的統(tǒng)計學(xué)工具箱函數(shù)以及相應(yīng)的數(shù)據(jù)處理函數(shù)進(jìn)行數(shù)據(jù)預(yù)處理分析,并結(jié)合趨勢提取函數(shù)將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化和單位化,從而有利于提高故障檢測性能。
本工具箱提供了3種不同的趨勢提取方法,即中值平滑法、滑動平均法和加權(quán)滑動平均法,函數(shù)設(shè)計如下:
medfilt1(data,a):該函數(shù)實(shí)現(xiàn)數(shù)據(jù)的中值平滑,其中data為待處理數(shù)據(jù),a為平滑階數(shù);
wma_data(data):該函數(shù)實(shí)現(xiàn)數(shù)據(jù)的移動加權(quán)平均趨勢提取,其中data為待處理數(shù)據(jù);
meansmooth_data(data):該函數(shù)實(shí)現(xiàn)數(shù)據(jù)的滑動平均趨勢提取,其中data為待處理數(shù)據(jù)。
數(shù)據(jù)中心化是將原始數(shù)據(jù)與均值做差,將變量數(shù)據(jù)尺度統(tǒng)一化;數(shù)據(jù)單位化是將中心化的數(shù)據(jù)除以數(shù)據(jù)的標(biāo)準(zhǔn)差,其目的是消除量綱影響和變量自身變異大小和數(shù)值大小的影響,函數(shù)設(shè)計如下:
Data_mean(data):該函數(shù)實(shí)現(xiàn)數(shù)據(jù)中心化功能,其中data為原始數(shù)據(jù),輸出的結(jié)果為data_mean;
Data_var(data_mean):該函數(shù)實(shí)現(xiàn)數(shù)據(jù)標(biāo)準(zhǔn)化功能,其中data_mean為中心化數(shù)據(jù)結(jié)果,輸出結(jié)果為data_var。
2.3.3 故障檢測模塊
故障檢測模塊是工具箱的核心模塊。根據(jù)不同的監(jiān)測數(shù)據(jù),運(yùn)用數(shù)據(jù)驅(qū)動故障檢測的基本原理和相應(yīng)的檢測方法,結(jié)合正常狀態(tài)下系統(tǒng)數(shù)據(jù)和MATLAB工具箱及函數(shù)對待測數(shù)據(jù)進(jìn)行分析和故障檢測。本模塊又可以分為以下幾個功能模塊:
1)顯著性水平選取模塊。
該模塊是故障檢測的關(guān)鍵模塊,直接關(guān)系到故障檢測結(jié)果。根據(jù)數(shù)據(jù)特點(diǎn),并結(jié)合對系統(tǒng)的要求設(shè)定顯著性水平,使得故障檢測結(jié)果盡可能準(zhǔn)確。
變量定義如下:
global alphar:代表顯著性水平,有0.0027、0.005、0.1、0.02、0.05這5個選項供用戶選擇;
global c_alphar:代表顯著性水平對應(yīng)下的正態(tài)標(biāo)準(zhǔn)差值,在選定alphar的值后會分別直接選定下列值:3.00、2.81、2.58、2.33、1.96。
2)檢測方法選取模塊。
檢測方法選取模塊是故障檢測的核心模塊。結(jié)合待測數(shù)據(jù)的趨勢特征,選取合適的故障檢測方法進(jìn)行故障檢測。函數(shù)設(shè)計如表3所示。
表3 故障檢測函數(shù)表
3)故障檢測顯示模塊。
故障檢測顯示模塊是故障檢測的重要模塊。圖4以可視化二維圖像方式直觀地顯示出故障檢測結(jié)果,其中曲線代表統(tǒng)計量,虛線代表閾值或者控制限。根據(jù)統(tǒng)計量和閾值的關(guān)系判斷故障檢測結(jié)果。
以工業(yè)系統(tǒng)故障檢測為應(yīng)用實(shí)例,其中數(shù)據(jù)來源于田納西-伊斯曼過程(Tennessee-Eastman Process, TEP)仿真系統(tǒng)。TEP系統(tǒng)主要包括41個觀測變量和21種預(yù)設(shè)故障模式,本文將在第1種故障(進(jìn)料比率A/C發(fā)生故障)下選取一個觀測變量(總進(jìn)料量)進(jìn)行仿真驗(yàn)證。訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)仿真時間均為50 h,采樣周期為0.01 h,共有5001列(樣本數(shù))50行(變量數(shù))。
基于本文設(shè)計的故障檢測工具箱,在顯著性水平選取模塊中,設(shè)定顯著水平為α=0.05,分別利用Shewhart控制圖、CUSUM控制圖與EWMA控制圖在故障1情況下進(jìn)行檢測,得到檢測圖如圖5所示。
圖5 單變量統(tǒng)計檢測圖
根據(jù)圖1和圖2檢測流程分別計算T2統(tǒng)計量和Q統(tǒng)計量,并得到2種統(tǒng)計量的閾值:
=57.5169
(14)
(15)
得到多變量統(tǒng)計檢測圖,如圖6所示。
圖6 多變量統(tǒng)計監(jiān)測圖
通過計算得到T2統(tǒng)計量和Q統(tǒng)計量誤報率和漏檢率分別為:
FART2=4.7%, MDRT2=0
FARQ=2.5%, MDRQ=0
從上面的計算結(jié)果可知,該工具箱可以較靈敏地檢測出系統(tǒng)故障。
本文研究并設(shè)計了一種基于數(shù)據(jù)驅(qū)動的故障檢測工具箱,結(jié)合MATLAB GUIDE語言和數(shù)據(jù)驅(qū)動故障檢測技術(shù),進(jìn)行了故障檢測工具箱的可視化界面的設(shè)計,給出了工具箱的設(shè)計思想和實(shí)現(xiàn)方法。利用所設(shè)計的工具箱,對TEP系統(tǒng)數(shù)據(jù)進(jìn)行了故障檢測的仿真驗(yàn)證,可以看出單變量統(tǒng)計檢測法能夠判斷出與故障變量相關(guān)的觀測變量,確定故障所在,一定程度上實(shí)現(xiàn)故障隔離,但會產(chǎn)生大量控制圖占用空間;多變量統(tǒng)計檢測法能夠直接判斷出系統(tǒng)是否存在故障,靈敏度較高。本故障檢測工具箱采用開放性設(shè)計框架,可以不斷實(shí)現(xiàn)更多功能,包括故障隔離、故障辨識等,這也是下一步研究的主要方向。