徐麗雯 曹 翔 孫奧林
(淮陰師范學院物理與電子電氣工程學院 淮安 223300)
機械臂成為了水下機器人完成水下作業必不可少的工具,然而由于水下環境的復雜性和不可預測性,機械臂一旦出現故障,不僅無法完成水下作業,而且對水下機器人本身也有影響。因此,實現對水下機械臂故障診斷研究有著重要的理論和應用價值[1~3]。
故障診斷技術實質上就是一個模式識別與分類的問題,即把系統的運行狀態分為正常和異常兩種狀態,對發生異常狀態的信號樣本進行模式識別,判斷其屬于何種故障類別。根據國際故障診斷權威專家Frank的觀點,故障診斷技術可概括分為三類:基于信號處理的故障診斷方法,基于解析模型的故障診斷方法和基于知識的故障診斷方法。
1)基于信號處理的故障診斷方法
基于信號處理的故障診斷方法[4~5]是利用信號模型,如小波變換、主元分析、相關函數、頻譜等,對可測信號直接進行測量,提取特征值如方差、幅值、頻率等,根據特征值的變化檢測出故障信號,判斷系統是否發生故障。如軸承故障診斷的雙樹復小波變換解調技術[6],對軸承振動信號進行雙樹復小波分解和重構,計算信號的雙樹復小波幅值包絡和包絡譜,診斷系統故障。
常用的基于信號處理的故障診斷方法不需要明確對象模型,避開了系統建模的難點,實現簡單,實用性強,但是對于潛在的早期故障的診斷效率不高,多適用于故障檢測,一般與其他故障診斷方法相結合以提高故障診斷的準確性。
2)基于解析模型的故障診斷方法
基于解析模型的故障診斷方法[7~8]是在明確診斷對象準確的數學模型的基礎上,按照數學的方法處理被測信號進行故障診斷。一般利用數學模型預測被測信號系統的輸出值或者估計值,再將估計值與實際值比較,根據產生的殘差大小判定故障是否發生。當殘差為零或者近似為零時,系統處于正常狀態;當系統有故障發生時,殘差會明顯偏離零值,超出正常范圍。雖然基于解析模型的故障診斷方法是最早提出的,也有了較為深入的研究,但是由于在實際應用中很難獲得被測對象較為準確的數學模型,使得該方法的使用范圍和效果受到了很大的限制。
3)基于知識的故障診斷方法
基于知識的故障診斷方法[9~10]是一種“智能”的方法,不需要被測對象準確的數學模型,而是根據專家有關故障診斷的知識和實際經驗設計出的一套智能計算機程序,解決復雜的故障問題,是一種很有生命力的方法,也是目前故障診斷研究的主要方法?;谥R的故障診斷方法又可以分為模糊故障診斷方法、神經網絡故障診斷方法、信息融合故障診斷方法等。
本文針對水下機械臂傳感器故障診斷問題,將SOFCMAC(Self-Organizing Fuzzy Cerebella Model Articulation Controller)神經網絡引入主元分析模型中,提出基于SOFCMAC的PCA(Principal Compo?nent Analysis)信號預測模型。該模型利用機械臂輸出的歷史數據的時間序列關系,利用SOFCMAC神經網絡預測下一時刻機械臂的輸出值,與實際輸出值比較,計算系統的SPE(又稱Q統計量,平方預期誤差)值是否超過控制上限進行故障檢測與隔離。然后分析不同神經網絡與主元分析法結合的診斷效率和結果。通過仿真證明本文提及算法的有效性。與BP(Back Propagation)、CMAC(Cerebel?la Model Articulation Controller)兩種神經網絡相比較,本文提及算法具有更好的性能。
SOFCMAC 最早是由 Nie[11]和 Geng[12]等提出,將模糊自組織競爭算法引入到CMAC中,繼承兩者的優點,克服了CMAC學習算法粗糙等缺點,使SOFCMAC更適合非線性系統,提高訓練速度和精度。
SOFCMAC網絡結構[13]如圖1所示,一般分為輸入層X、模糊化層R、模糊控制規則層、聯想強度層以及輸出層Y五層。

圖1 SOFCMAC網絡結構
輸入層是將輸入矢量模糊化處理,假設輸入矢量為X=(X1,X2),則輸入層有兩個神經元,將輸入值都換算到模糊域[-1,1]內。模糊化層是利用隸屬函數將輸入矢量模糊化,在每個輸入Xi的討論域定義ni個“塊”,類似CMAC中的“級”,用隸屬函數描述輸入Xi與“塊”之間的隸屬關系,使得兩者關系模糊化,不再是CMAC中單純的“屬于”與“不屬于”的關系,而是連續的。
模糊控制規則層與聯想強度層主要是完成模糊邏輯規則前件的匹配,模糊控制規則層通過“AND”運算得到各單元節點的激活強度,聯想強度層根據之前的激活強度激活聯想單元。輸出層是對聯想單元的輸出進行累積求和得到系統的輸出,恢復系統信息。
SOFCMAC算法是將CMAC算法與自組織競爭算法優點相結合,加快了學習或訓練的速度及精度[14]。將CMAC中被輸入x激活的NL個存儲單元定義為聯想域ψj,它是一個以zj,j=1,2,…,NL為中心,寬度為2δ的領域。聯想域ψj相互重疊,使得SOFCMAC也具有局部泛化的特性。聯想域ψj的中心zj和半徑δ可以采用自組織競爭算法得出,由此得聯想度afi的定義:

基于聯想度的概念得出輸入x的聯想向量afi(x)=(af1,...afNL)T,進而得到SOFCMAC輸出:

SOFCMAC的輸出也與被激活的聯想單元有直接關系,因此同CMAC一樣也具有局部泛化特性。顯然,SOFCMAC的afi不是二進制向量,但當令SOFCMACafi≥0時的afi=1,其他情況afi=0時,CMAC就變成SOFCMAC的特殊情況。
對SOFCMAC權值wi的學習調整采用最速下降法學習,算法如下[15]:

聯想度的引入,省去了CMAC離散、量化、編碼等復雜運算,采用的自組織競爭算法可以快速完成輸入空間的自組織分割,加快了學習速度,提高了學習精度。
基于PCA信號預測模型解決故障診斷問題的基本原理是對前k時刻原始數據X=[X1,X2,...,Xm]進行主元分析,利用正交變換提取主元成分數據T1,T2,...,Tk,然后利用歷史數據的時間序列關系,通過PCA信號預測模型預測下一時刻的估計值(預測值),再將該值與實際測量值比較,通過計算系統殘差子空間的SPE值的變化是否超出控制上限判斷系統是否發生故障[16]。
首先定義系統的估計誤差向量:

其中e(k)代表第k時刻時各傳感器的誤差向量,X(k)=[X1(k),X2(k),...,Xm(k)]表示各傳感器在前k時刻的測量值,是這些測量值經過PCA預測模型后預測到的k時刻后的預測值(重構值)。則k時刻的SPE統計量定義如下[17]:

當水下機械臂正常工作時,測量值與預測值相近,誤差較小,則SPE值也會很??;當系統某個傳感器發生故障后,其實際測量值會與預測估計值發生較大偏差,誤差變大,則系統的SPE值就會明顯增大。一般根據式(5)可描繪出各個時刻SPE值的變化曲線,正常情況下,SPE值曲線是比較平穩的,并低于故障閾值δα(即統計量SPE的控制上限),δα可由式(6)確定。

因此當水下機械臂發生故障時,根據某時刻實際測量值與PCA信號預測模型的預測估計值的背離程度來檢測故障,即利用平方預期誤差SPE是否超出故障閾值δα來判斷系統是否出現異常。機械臂故障檢測規則可總結為

為了驗證本文提及的故障診斷模型的有效性,將基于SOFCMAC的主元故障診斷算法應用到水下機械臂中。本文分別測得旋轉角、移動速度、回路電流和電壓四個變量,分別用θ,h,i,u表示。
在基于PCA信號預測模型中,采用SOFCMAC進行信號預測,具體模型如圖2所示。k時刻前的歷史數據X=(θ,h,i,u)經過PCA正交變換后得到主成分矩陣T,同時得到了顯著性水平α=0.9896的前兩個可以代表輸入X各個分量共同特征的主元數據分量T1,T2,再利用SOFCMAC神經網絡對T1,T2進行預測,在此采用(t-4,t-3,t-2,t-1)時刻的數據,預測t時刻的數據,即下一時刻的主元數據預測值T1',T2',最后經過逆正交變換獲取輸入旋轉角、移動速度、回路電流和電壓下一時刻的估計值,即預測數據。

圖2 基于SOFCMAC的PCA信號預測模型
首先驗證基于SOFCMAC的PCA信號預測模型,采用400個采樣點,利用前200個時間序列數據對SOFCMAC神經網絡進行訓練,達到正確預測的目的。再對旋轉角變量θ從201到400個采樣點進行故障模擬,故障幅度達到其變差范圍的14%,得到如圖3所示的旋轉角變量θ正常值、預測值與故障值三者之間的關系圖。

圖3 旋轉角變量θ正常值、預測值與故障值三者關系圖
從圖3可以清晰地發現,正常測得值與基于SOFCMAC的PCA模型得到的預測值非常接近,當旋轉角變量θ在201點發生故障時,其故障信號明顯偏離了正常值和預測值,說明了基于SOFCMAC的PCA信號預測模型已經成功建立。
為了簡單說明水下機械臂故障檢測過程,本小節采用400個采樣點,對旋轉角變量θ從201到400個采樣點進行故障模擬,故障幅度達到變量θ變差范圍的14%。由式(5)計算出水下機械臂正常情況下的SPE值,并繪制曲線如圖4所示。由圖可明顯看出,SPE在正常情況下是一種比較平穩的狀態,且處于故障閾值δα以下,δα即控制上限經由式(7)得出δα=0.08。

圖4 正常情況下機械臂的SPE值
對旋轉角變量θ在200個~400個采樣點設置故障,計算此時水下機械臂的SPE值,如圖5所示,SPE值在201個采樣點開始發生跳變,明顯高于閾值δα,根據故障檢測規則式(7)可判定水下機械臂發生了故障。

圖5 故障情況下機械臂的SPE值
為了進一步驗證本模型采用的SOFCMAC神經網絡的性能。在PCA信號預測模型中的信號預測部分依次采用BP、CMAC和SOFCMAC神經網絡,比較各網絡模型的預測性能。其中BP網絡采用三層結構:輸入層、隱形層和輸出層,各層節點分別為4,6,1,隱形層結點采用sigmoid函數,輸出層結點采用線性函數;CMAC和SOFCMAC網絡均采用4:1的網絡結構,即輸入狀態為4,輸出為1。三種神經網絡均用 (t-4,t-3,t-2,t-1)時刻的數據,預測t時刻的數據,得到系統預計的期望值。
本文用均方誤差MSE作為比較三種結構PCA收斂速度的性能指標,定義如下:

其中,Ys表示網絡的實際輸出值,Yt表示期望值,m代表總樣本數。
圖6給出預測主元數據分量T1在訓練過程中,均方誤差值隨學習周期的變化曲線。同樣的主元數據分量T2均方誤差值變化曲線如圖7所示。

圖6 T1在訓練過程中MSE隨學習周期的變化曲線

圖7 T2在訓練過程中MSE隨學習周期的變化曲線
從圖6、7中T1、T2的均方誤差下降曲線可以看出,雖然基于三種神經網絡的PCA模型都可以準確預測下一時刻的信號值,但是CMAC的PCA收斂速度明顯高于BP,而SOFCMAC的收斂速度更高于CMAC,并且在精度上與CMAC相比更勝一籌。分析其原因,BP神經網絡結構的確定,及各隱層節點個數的選取都是靠經驗獲得,缺乏可靠性。另一方面,BP神經網絡是一種全局逼近網絡,對每一對輸入及誤差的反向傳輸,網絡中每個連接權值都需要進行調整,并且采用的是梯度下降法,導致了其學習收斂速度慢,存在局部極小的問題,訓練結果不準確。CMAC是一種局部逼近網絡,連接權值只需要部分調整,收斂速度比BP快的多,并且沒有局部極小問題,訓練精度與收斂時間相比BP網絡有很大的提高。但是CMAC神經網絡對輸入采取數字量化,而實際輸入大多都是模擬量,加大了誤差,而且學習算法比較粗糙,網絡存儲容量隨著輸入維數的增加呈幾何級數增長。SOFCMAC引入模糊自組織競爭算法,省去CMAC離散、量化、編碼等復雜運算,化除傳統CMAC泛化能力與存儲容量之間的矛盾,改善了其學習性能,加快了學習速度。
本文將SOFCMAC神經網絡與PCA方法相結合,構建了基于SOFCMAC神經網絡的PCA故障診斷模型,并對其工作原理和算法進行了研究。通過故障模擬驗證了該模型的可行性,并有效實現了水下機械臂的故障檢測。同時在同一組實驗數據中,建立了基于BP、CMAC和SOFCMAC的三種神經網絡的PCA信號預測模型,比較三者故障診斷的精度,并簡單闡述原因,體現出SOFCMAC神經網絡在故障診斷中的先進性。但是本文提及的模型存在一些不足,如故障診斷的精度和速度還有待提高。與其他故障診斷方法相結合,進一步提高故障診斷性能是下一步的研究方向。