本發(fā)明涉及一種工業(yè)故障診斷方法,尤其涉及一種基于兩分類fisher判別分析的故障診斷方法。
背景技術(shù):
日趨復雜而大規(guī)?;墓I(yè)過程對象對故障檢測與診斷系統(tǒng)的性能提出了越來越高的要求,不僅需要及時地觸發(fā)故障警報,而且還要求準確地識別出當前故障類型??紤]到過程對象的復雜特性,建立相應(yīng)的機理模型幾乎不可能。對此,理論研究者與實踐者們建議利用生產(chǎn)過程采集的數(shù)據(jù)實施故障檢測與診斷。在工業(yè)“大數(shù)據(jù)”背景下,數(shù)據(jù)驅(qū)動的過程監(jiān)測方法技術(shù)得到了空前的發(fā)展與應(yīng)用,各種方法層出不窮。在已有的科研文獻與專利中,數(shù)據(jù)驅(qū)動的過程監(jiān)測方法取得的矚目成就主要集中于對故障進行監(jiān)測,也就是當故障發(fā)生時,能觸發(fā)故障警報。然而,當故障被檢測出來后,如何診斷所發(fā)生的故障類型卻成了數(shù)據(jù)驅(qū)動方法技術(shù)的軟肋。已有的數(shù)據(jù)驅(qū)動的故障診斷方法主要依賴于貢獻圖法與模式分類法,前者通過找出“可疑”變量以指導操作人員定位故障原因,后者通過比較當前故障數(shù)據(jù)與歷史數(shù)據(jù)庫中各種故障數(shù)據(jù)的相似性匹配當前故障類型。雖然利用貢獻圖法能夠定位出“可疑”變量,但是由于測量變量間的耦合性,無法保證“可疑”變量的正確性。利用模式分類法直接匹配故障類型相對來講更加可靠,但是由于故障開始階段所采集的數(shù)據(jù)是非穩(wěn)態(tài)數(shù)據(jù),非線性與動態(tài)性問題都是非常棘手的。若處理不當,所建立的分類模型誤報率會非常高。另一方面,建立分類模型通常需要比測量變量更多的樣本數(shù),以避免小樣本問題的出現(xiàn)。這在實際應(yīng)用中有時無法滿足,因為操作人員通常會及時采取措施消除故障,這樣一來采集到的歷史數(shù)據(jù)量非常有限。因此,基于模式分類方法的故障診斷技術(shù)同樣面臨著諸多挑戰(zhàn)。
建立分類模型最經(jīng)典的算法莫過于fisher判別分析,它通過最大化類別間方差與最小化同類數(shù)據(jù)方差實現(xiàn)了對多類數(shù)據(jù)的分類目的。fisher判別分析方法發(fā)展至今,各種拓展與改進形式層出不窮,衍生出了各式各樣的算法,但其算法的基本宗旨卻未發(fā)生任何改變。在故障診斷領(lǐng)域,fisher判別分析已經(jīng)被用來建立故障的多分類模型。值得一提的是,有學者曾研究證明若在建立fisher判別模型之前,對變量實施選擇可有效地提升模型的分類正確率。因為變量選擇除了降低“干擾變量”的負面影響外,還起到了一定的降維作用,這對提高模型可靠性是有很大助益的。可是,當故障類型較多時,基于變量選擇的fisher判別模型精度依舊無法達到要求。然而,變量選擇仍舊不失為一種能有效提高模型分類能力的途徑。作為一種最簡單的分類建模算法,多分類的fisher判別分析用于故障分類診斷似乎遇到了發(fā)展的瓶頸,研究者們開始更多地關(guān)注于其他更高效的分類方法。因此,如何提升fisher判別模型用于故障分類診斷的識別精度是一個丞待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的主要技術(shù)問題是:如何通過變量選擇提高fisher判別分析模型用于故障診斷的可適用性與分類正確率。為此,本發(fā)明提供一種基于兩分類fisher判別分析的故障診斷方法。該發(fā)明方法首先利用遺傳算法選擇出每種故障類型最能區(qū)別于正常數(shù)據(jù)的特征變量集,然后利用特征變量建立正常數(shù)據(jù)與每類故障數(shù)據(jù)之間的兩分類的fisher判別分析模型。最后,利用多個兩分類的fisher判別模型實施故障分類診斷。
本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種基于兩分類fisher判別分析的故障診斷方法,包括以下步驟:
(1)收集生產(chǎn)過程正常運行狀態(tài)下的采樣數(shù)據(jù),組成數(shù)據(jù)矩陣x0∈rn×m,收集生產(chǎn)過程在不同故障操作狀態(tài)下的采樣數(shù)據(jù),組成不同的參考故障數(shù)據(jù)集
(2)對矩陣x0進行標準化處理,得到均值為0,標準差為1的新數(shù)據(jù)矩陣
(3)利用遺傳算法找出第c種故障類型數(shù)據(jù)
(4)利用特征變量集θc從矩陣
(5)利用fisher判別分析算法建立
(6)重復步驟(3)~(5)直至得到所有故障類型的特征變量集θ1,θ2,…,θc,和兩分類fisher判別模型參數(shù)集θ1,θ2,…,θc。
(7)當系統(tǒng)已有的故障檢測系統(tǒng)觸發(fā)故障警報后,對新采集到的故障樣本z∈r1×m實施故障分類診斷。
與傳統(tǒng)方法相比,本發(fā)明方法的優(yōu)勢在于:
首先,本發(fā)明方法采用遺傳算法為每種故障類型選出其能最大化區(qū)別正常數(shù)據(jù)的特征變量集,不僅可以消去非特征變量的干擾影響,而且還能降低變量維數(shù),這在一定程度上降低了參考故障樣本數(shù)量有限對建模的限制性。其次,本發(fā)明方法識別故障類型利用了多個兩分類fisher判別模型,而每個判別模型都只針對某一特定故障類型,實施故障診斷時就具備了較強的針對性。相比于傳統(tǒng)的基于多分類模型的故障診斷方法,本發(fā)明方法可以降低新故障數(shù)據(jù)的錯分類率。因此,本發(fā)明發(fā)是一種更為優(yōu)選的故障分類診斷方法。
附圖說明
圖1為本發(fā)明方法的實施流程圖。
圖2為利用遺傳算法實施變量選擇的流程圖。
圖3為利用fisher判別分析建立兩分類fisher判別模型的實施流程圖。
圖4為對新故障樣本進行故障分類診斷的實施流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明方法進行詳細的說明。
如圖1所示,本發(fā)明公開一種基于兩分類fisher判別分析的故障診斷方法,該方法的具體實施步驟如下所示:
步驟1:收集生產(chǎn)過程正常運行狀態(tài)下的采樣數(shù)據(jù),組成數(shù)據(jù)矩陣x0∈rn×m,收集生產(chǎn)過程在不同故障操作狀態(tài)下的采樣數(shù)據(jù),組成不同的參考故障數(shù)據(jù)集
步驟2:對矩陣x0進行標準化處理,得到均值為0,標準差為1的新數(shù)據(jù)矩陣
步驟3:利用遺傳算法找出第c種故障類型數(shù)據(jù)
①初始化遺傳算法的各個參數(shù):主要包括初始化i=1,設(shè)置最大迭代次數(shù)imax=1000、種群個數(shù)p=40、交叉概率
②計算每個種群(即二進制代碼)所對應(yīng)的適應(yīng)度函數(shù)值f1,f2,…,fp,并記錄最大適應(yīng)度值fbest及其對應(yīng)的種群b,計算適應(yīng)度函數(shù)值的詳細實施過程如下所示:
(a)初始化a=1;
(b)根據(jù)第a個種群二進制代碼中的非零元素所在位置,對應(yīng)選取矩陣
(c)分別計算矩陣
(d)按照如下所示公式計算矩陣s1與s2:
上兩式中,
(e)求解如下所示廣義特征值問題:
s1β=λs2β(3)
得出最大特征值λ,該特征值即為第a個種群的適應(yīng)度函數(shù)值fa。
(f)置a=a+1,判斷a≤p?若是,返回②(b)計算下一個種群的適應(yīng)度函數(shù)值;若否,則執(zhí)行③
③對p個種群進行選擇遺傳操作得到p個新種群,具體操作過程如下所示:
(a)按照公式rp=(f1+f2+…+fp)/f計算每個種群的概率,并初始化q=1,這些概率值顯然滿足條件:r1<r2<…<rp,其中f=f1+f2+…+fp,p=1,2,…,p表示第p個種群標號;
(b)隨機產(chǎn)生一個位于區(qū)間(0,1]中的隨機數(shù)γi,并從概率值r1,r2,…,rp中找出滿足條件rp>γi的最小概率值所對應(yīng)的種群,將該種群保留并記為第i個新種群;
(c)置i=i+1后,判斷i<p?若是,則返回③(b);若否,則將種群b保留并記錄為第p個新種群,初始化j=1并執(zhí)行④;
④對p個新種群進行交叉遺傳操作更新這p個新種群,具體的操作過程如下所示:
(a)置交叉位置φ為小于m/2的最大整數(shù),隨機產(chǎn)生一個位于區(qū)間(0,1]中的隨機數(shù)εj;
(b)判斷
(c)置j=j(luò)+2后,判斷j<p?若是,則返回④(a);若否,則將種群b保留并記錄為第p個新種群,初始化k=1并執(zhí)行⑤;
⑤對p個新種群進行變異操作更新這p個新種群,具體的操作過程如下所示:
(a)置變異位置ω為1至m之間任一隨機整數(shù),隨機產(chǎn)生一個位于區(qū)間(0,1]中的隨機數(shù)ξk;
(b)并判斷ξk<τ?若是,則對j個新種群中的第ω個二進制數(shù)實施變異遺傳操作(即將0變?yōu)?或?qū)?變?yōu)?);若否,則不對j個新種群采取任何措施;
(c)置k=k+1后,判斷k<p?若是,則返回⑤(a);若否,則置i=i+1并執(zhí)行⑥;
⑥判斷i≤imax?若是,則將經(jīng)過選擇、交叉、變異操作的新種群取代原種群,并返回②;若否,則根據(jù)最大適應(yīng)度值所對應(yīng)的種群b中的非零元素位置,選取相應(yīng)的變量記錄為特征變量集θc。
步驟4:利用特征變量集θc從矩陣
步驟5:利用fisher判別分析算法建立
①分別計算矩陣
②按照如下所示公式計算矩陣
上兩式中,
③求解如下所示廣義特征值問題:
得出最大特征值η所對應(yīng)的特征向量ac;
④根據(jù)公式
步驟6:重復步驟3~5直至得到所有故障類型的特征變量集θ1,θ2,…,θc,和兩分類fisher判別模型參數(shù)集θ1,θ2,…,θc。
步驟7:當系統(tǒng)已有的故障檢測系統(tǒng)觸發(fā)故障警報后,對新采集到的故障樣本z∈r1×m實施故障分類診斷。圖4展示了對新故障樣本進行故障分類診斷的實施流程,具體的實施步驟如下所示:
①利用矩陣x0的均值向量與標準差向量對z進行標準化處理,得到新樣本向量
②利用特征變量集θ1,θ2,…,θc中記錄的特征變量,分別從向量
③利用兩分類fisher判別模型參數(shù)集θ1,θ2,…,θc中的特征向量a1,a2,…,ac,根據(jù)公式
④根據(jù)如下所示公式計算新故障樣本z屬于各類參考故障類型的隸屬度gc(z):
⑤找出g1(z),g2(z),…,gc(z)中最大的隸屬度值,它所對應(yīng)的參考故障類型即為當前新故障樣本z的故障類型。