徐麗雯 曹 翔 孫奧林
(淮陰師范學(xué)院物理與電子電氣工程學(xué)院 淮安 223300)
機(jī)械臂成為了水下機(jī)器人完成水下作業(yè)必不可少的工具,然而由于水下環(huán)境的復(fù)雜性和不可預(yù)測(cè)性,機(jī)械臂一旦出現(xiàn)故障,不僅無法完成水下作業(yè),而且對(duì)水下機(jī)器人本身也有影響。因此,實(shí)現(xiàn)對(duì)水下機(jī)械臂故障診斷研究有著重要的理論和應(yīng)用價(jià)值[1~3]。
故障診斷技術(shù)實(shí)質(zhì)上就是一個(gè)模式識(shí)別與分類的問題,即把系統(tǒng)的運(yùn)行狀態(tài)分為正常和異常兩種狀態(tài),對(duì)發(fā)生異常狀態(tài)的信號(hào)樣本進(jìn)行模式識(shí)別,判斷其屬于何種故障類別。根據(jù)國(guó)際故障診斷權(quán)威專家Frank的觀點(diǎn),故障診斷技術(shù)可概括分為三類:基于信號(hào)處理的故障診斷方法,基于解析模型的故障診斷方法和基于知識(shí)的故障診斷方法。
1)基于信號(hào)處理的故障診斷方法
基于信號(hào)處理的故障診斷方法[4~5]是利用信號(hào)模型,如小波變換、主元分析、相關(guān)函數(shù)、頻譜等,對(duì)可測(cè)信號(hào)直接進(jìn)行測(cè)量,提取特征值如方差、幅值、頻率等,根據(jù)特征值的變化檢測(cè)出故障信號(hào),判斷系統(tǒng)是否發(fā)生故障。如軸承故障診斷的雙樹復(fù)小波變換解調(diào)技術(shù)[6],對(duì)軸承振動(dòng)信號(hào)進(jìn)行雙樹復(fù)小波分解和重構(gòu),計(jì)算信號(hào)的雙樹復(fù)小波幅值包絡(luò)和包絡(luò)譜,診斷系統(tǒng)故障。
常用的基于信號(hào)處理的故障診斷方法不需要明確對(duì)象模型,避開了系統(tǒng)建模的難點(diǎn),實(shí)現(xiàn)簡(jiǎn)單,實(shí)用性強(qiáng),但是對(duì)于潛在的早期故障的診斷效率不高,多適用于故障檢測(cè),一般與其他故障診斷方法相結(jié)合以提高故障診斷的準(zhǔn)確性。
2)基于解析模型的故障診斷方法
基于解析模型的故障診斷方法[7~8]是在明確診斷對(duì)象準(zhǔn)確的數(shù)學(xué)模型的基礎(chǔ)上,按照數(shù)學(xué)的方法處理被測(cè)信號(hào)進(jìn)行故障診斷。一般利用數(shù)學(xué)模型預(yù)測(cè)被測(cè)信號(hào)系統(tǒng)的輸出值或者估計(jì)值,再將估計(jì)值與實(shí)際值比較,根據(jù)產(chǎn)生的殘差大小判定故障是否發(fā)生。當(dāng)殘差為零或者近似為零時(shí),系統(tǒng)處于正常狀態(tài);當(dāng)系統(tǒng)有故障發(fā)生時(shí),殘差會(huì)明顯偏離零值,超出正常范圍。雖然基于解析模型的故障診斷方法是最早提出的,也有了較為深入的研究,但是由于在實(shí)際應(yīng)用中很難獲得被測(cè)對(duì)象較為準(zhǔn)確的數(shù)學(xué)模型,使得該方法的使用范圍和效果受到了很大的限制。
3)基于知識(shí)的故障診斷方法
基于知識(shí)的故障診斷方法[9~10]是一種“智能”的方法,不需要被測(cè)對(duì)象準(zhǔn)確的數(shù)學(xué)模型,而是根據(jù)專家有關(guān)故障診斷的知識(shí)和實(shí)際經(jīng)驗(yàn)設(shè)計(jì)出的一套智能計(jì)算機(jī)程序,解決復(fù)雜的故障問題,是一種很有生命力的方法,也是目前故障診斷研究的主要方法。基于知識(shí)的故障診斷方法又可以分為模糊故障診斷方法、神經(jīng)網(wǎng)絡(luò)故障診斷方法、信息融合故障診斷方法等。
本文針對(duì)水下機(jī)械臂傳感器故障診斷問題,將SOFCMAC(Self-Organizing Fuzzy Cerebella Model Articulation Controller)神經(jīng)網(wǎng)絡(luò)引入主元分析模型中,提出基于SOFCMAC的PCA(Principal Compo?nent Analysis)信號(hào)預(yù)測(cè)模型。該模型利用機(jī)械臂輸出的歷史數(shù)據(jù)的時(shí)間序列關(guān)系,利用SOFCMAC神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)下一時(shí)刻機(jī)械臂的輸出值,與實(shí)際輸出值比較,計(jì)算系統(tǒng)的SPE(又稱Q統(tǒng)計(jì)量,平方預(yù)期誤差)值是否超過控制上限進(jìn)行故障檢測(cè)與隔離。然后分析不同神經(jīng)網(wǎng)絡(luò)與主元分析法結(jié)合的診斷效率和結(jié)果。通過仿真證明本文提及算法的有效性。與BP(Back Propagation)、CMAC(Cerebel?la Model Articulation Controller)兩種神經(jīng)網(wǎng)絡(luò)相比較,本文提及算法具有更好的性能。
SOFCMAC 最早是由 Nie[11]和 Geng[12]等提出,將模糊自組織競(jìng)爭(zhēng)算法引入到CMAC中,繼承兩者的優(yōu)點(diǎn),克服了CMAC學(xué)習(xí)算法粗糙等缺點(diǎn),使SOFCMAC更適合非線性系統(tǒng),提高訓(xùn)練速度和精度。
SOFCMAC網(wǎng)絡(luò)結(jié)構(gòu)[13]如圖1所示,一般分為輸入層X、模糊化層R、模糊控制規(guī)則層、聯(lián)想強(qiáng)度層以及輸出層Y五層。
圖1 SOFCMAC網(wǎng)絡(luò)結(jié)構(gòu)
輸入層是將輸入矢量模糊化處理,假設(shè)輸入矢量為X=(X1,X2),則輸入層有兩個(gè)神經(jīng)元,將輸入值都換算到模糊域[-1,1]內(nèi)。模糊化層是利用隸屬函數(shù)將輸入矢量模糊化,在每個(gè)輸入Xi的討論域定義ni個(gè)“塊”,類似CMAC中的“級(jí)”,用隸屬函數(shù)描述輸入Xi與“塊”之間的隸屬關(guān)系,使得兩者關(guān)系模糊化,不再是CMAC中單純的“屬于”與“不屬于”的關(guān)系,而是連續(xù)的。
模糊控制規(guī)則層與聯(lián)想強(qiáng)度層主要是完成模糊邏輯規(guī)則前件的匹配,模糊控制規(guī)則層通過“AND”運(yùn)算得到各單元節(jié)點(diǎn)的激活強(qiáng)度,聯(lián)想強(qiáng)度層根據(jù)之前的激活強(qiáng)度激活聯(lián)想單元。輸出層是對(duì)聯(lián)想單元的輸出進(jìn)行累積求和得到系統(tǒng)的輸出,恢復(fù)系統(tǒng)信息。
SOFCMAC算法是將CMAC算法與自組織競(jìng)爭(zhēng)算法優(yōu)點(diǎn)相結(jié)合,加快了學(xué)習(xí)或訓(xùn)練的速度及精度[14]。將CMAC中被輸入x激活的NL個(gè)存儲(chǔ)單元定義為聯(lián)想域ψj,它是一個(gè)以zj,j=1,2,…,NL為中心,寬度為2δ的領(lǐng)域。聯(lián)想域ψj相互重疊,使得SOFCMAC也具有局部泛化的特性。聯(lián)想域ψj的中心zj和半徑δ可以采用自組織競(jìng)爭(zhēng)算法得出,由此得聯(lián)想度afi的定義:
基于聯(lián)想度的概念得出輸入x的聯(lián)想向量afi(x)=(af1,...afNL)T,進(jìn)而得到SOFCMAC輸出:
SOFCMAC的輸出也與被激活的聯(lián)想單元有直接關(guān)系,因此同CMAC一樣也具有局部泛化特性。顯然,SOFCMAC的afi不是二進(jìn)制向量,但當(dāng)令SOFCMACafi≥0時(shí)的afi=1,其他情況afi=0時(shí),CMAC就變成SOFCMAC的特殊情況。
對(duì)SOFCMAC權(quán)值wi的學(xué)習(xí)調(diào)整采用最速下降法學(xué)習(xí),算法如下[15]:
聯(lián)想度的引入,省去了CMAC離散、量化、編碼等復(fù)雜運(yùn)算,采用的自組織競(jìng)爭(zhēng)算法可以快速完成輸入空間的自組織分割,加快了學(xué)習(xí)速度,提高了學(xué)習(xí)精度。
基于PCA信號(hào)預(yù)測(cè)模型解決故障診斷問題的基本原理是對(duì)前k時(shí)刻原始數(shù)據(jù)X=[X1,X2,...,Xm]進(jìn)行主元分析,利用正交變換提取主元成分?jǐn)?shù)據(jù)T1,T2,...,Tk,然后利用歷史數(shù)據(jù)的時(shí)間序列關(guān)系,通過PCA信號(hào)預(yù)測(cè)模型預(yù)測(cè)下一時(shí)刻的估計(jì)值(預(yù)測(cè)值),再將該值與實(shí)際測(cè)量值比較,通過計(jì)算系統(tǒng)殘差子空間的SPE值的變化是否超出控制上限判斷系統(tǒng)是否發(fā)生故障[16]。
首先定義系統(tǒng)的估計(jì)誤差向量:
其中e(k)代表第k時(shí)刻時(shí)各傳感器的誤差向量,X(k)=[X1(k),X2(k),...,Xm(k)]表示各傳感器在前k時(shí)刻的測(cè)量值,是這些測(cè)量值經(jīng)過PCA預(yù)測(cè)模型后預(yù)測(cè)到的k時(shí)刻后的預(yù)測(cè)值(重構(gòu)值)。則k時(shí)刻的SPE統(tǒng)計(jì)量定義如下[17]:
當(dāng)水下機(jī)械臂正常工作時(shí),測(cè)量值與預(yù)測(cè)值相近,誤差較小,則SPE值也會(huì)很?。划?dāng)系統(tǒng)某個(gè)傳感器發(fā)生故障后,其實(shí)際測(cè)量值會(huì)與預(yù)測(cè)估計(jì)值發(fā)生較大偏差,誤差變大,則系統(tǒng)的SPE值就會(huì)明顯增大。一般根據(jù)式(5)可描繪出各個(gè)時(shí)刻SPE值的變化曲線,正常情況下,SPE值曲線是比較平穩(wěn)的,并低于故障閾值δα(即統(tǒng)計(jì)量SPE的控制上限),δα可由式(6)確定。
因此當(dāng)水下機(jī)械臂發(fā)生故障時(shí),根據(jù)某時(shí)刻實(shí)際測(cè)量值與PCA信號(hào)預(yù)測(cè)模型的預(yù)測(cè)估計(jì)值的背離程度來檢測(cè)故障,即利用平方預(yù)期誤差SPE是否超出故障閾值δα來判斷系統(tǒng)是否出現(xiàn)異常。機(jī)械臂故障檢測(cè)規(guī)則可總結(jié)為
為了驗(yàn)證本文提及的故障診斷模型的有效性,將基于SOFCMAC的主元故障診斷算法應(yīng)用到水下機(jī)械臂中。本文分別測(cè)得旋轉(zhuǎn)角、移動(dòng)速度、回路電流和電壓四個(gè)變量,分別用θ,h,i,u表示。
在基于PCA信號(hào)預(yù)測(cè)模型中,采用SOFCMAC進(jìn)行信號(hào)預(yù)測(cè),具體模型如圖2所示。k時(shí)刻前的歷史數(shù)據(jù)X=(θ,h,i,u)經(jīng)過PCA正交變換后得到主成分矩陣T,同時(shí)得到了顯著性水平α=0.9896的前兩個(gè)可以代表輸入X各個(gè)分量共同特征的主元數(shù)據(jù)分量T1,T2,再利用SOFCMAC神經(jīng)網(wǎng)絡(luò)對(duì)T1,T2進(jìn)行預(yù)測(cè),在此采用(t-4,t-3,t-2,t-1)時(shí)刻的數(shù)據(jù),預(yù)測(cè)t時(shí)刻的數(shù)據(jù),即下一時(shí)刻的主元數(shù)據(jù)預(yù)測(cè)值T1',T2',最后經(jīng)過逆正交變換獲取輸入旋轉(zhuǎn)角、移動(dòng)速度、回路電流和電壓下一時(shí)刻的估計(jì)值,即預(yù)測(cè)數(shù)據(jù)。
圖2 基于SOFCMAC的PCA信號(hào)預(yù)測(cè)模型
首先驗(yàn)證基于SOFCMAC的PCA信號(hào)預(yù)測(cè)模型,采用400個(gè)采樣點(diǎn),利用前200個(gè)時(shí)間序列數(shù)據(jù)對(duì)SOFCMAC神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,達(dá)到正確預(yù)測(cè)的目的。再對(duì)旋轉(zhuǎn)角變量θ從201到400個(gè)采樣點(diǎn)進(jìn)行故障模擬,故障幅度達(dá)到其變差范圍的14%,得到如圖3所示的旋轉(zhuǎn)角變量θ正常值、預(yù)測(cè)值與故障值三者之間的關(guān)系圖。
圖3 旋轉(zhuǎn)角變量θ正常值、預(yù)測(cè)值與故障值三者關(guān)系圖
從圖3可以清晰地發(fā)現(xiàn),正常測(cè)得值與基于SOFCMAC的PCA模型得到的預(yù)測(cè)值非常接近,當(dāng)旋轉(zhuǎn)角變量θ在201點(diǎn)發(fā)生故障時(shí),其故障信號(hào)明顯偏離了正常值和預(yù)測(cè)值,說明了基于SOFCMAC的PCA信號(hào)預(yù)測(cè)模型已經(jīng)成功建立。
為了簡(jiǎn)單說明水下機(jī)械臂故障檢測(cè)過程,本小節(jié)采用400個(gè)采樣點(diǎn),對(duì)旋轉(zhuǎn)角變量θ從201到400個(gè)采樣點(diǎn)進(jìn)行故障模擬,故障幅度達(dá)到變量θ變差范圍的14%。由式(5)計(jì)算出水下機(jī)械臂正常情況下的SPE值,并繪制曲線如圖4所示。由圖可明顯看出,SPE在正常情況下是一種比較平穩(wěn)的狀態(tài),且處于故障閾值δα以下,δα即控制上限經(jīng)由式(7)得出δα=0.08。
圖4 正常情況下機(jī)械臂的SPE值
對(duì)旋轉(zhuǎn)角變量θ在200個(gè)~400個(gè)采樣點(diǎn)設(shè)置故障,計(jì)算此時(shí)水下機(jī)械臂的SPE值,如圖5所示,SPE值在201個(gè)采樣點(diǎn)開始發(fā)生跳變,明顯高于閾值δα,根據(jù)故障檢測(cè)規(guī)則式(7)可判定水下機(jī)械臂發(fā)生了故障。
圖5 故障情況下機(jī)械臂的SPE值
為了進(jìn)一步驗(yàn)證本模型采用的SOFCMAC神經(jīng)網(wǎng)絡(luò)的性能。在PCA信號(hào)預(yù)測(cè)模型中的信號(hào)預(yù)測(cè)部分依次采用BP、CMAC和SOFCMAC神經(jīng)網(wǎng)絡(luò),比較各網(wǎng)絡(luò)模型的預(yù)測(cè)性能。其中BP網(wǎng)絡(luò)采用三層結(jié)構(gòu):輸入層、隱形層和輸出層,各層節(jié)點(diǎn)分別為4,6,1,隱形層結(jié)點(diǎn)采用sigmoid函數(shù),輸出層結(jié)點(diǎn)采用線性函數(shù);CMAC和SOFCMAC網(wǎng)絡(luò)均采用4:1的網(wǎng)絡(luò)結(jié)構(gòu),即輸入狀態(tài)為4,輸出為1。三種神經(jīng)網(wǎng)絡(luò)均用 (t-4,t-3,t-2,t-1)時(shí)刻的數(shù)據(jù),預(yù)測(cè)t時(shí)刻的數(shù)據(jù),得到系統(tǒng)預(yù)計(jì)的期望值。
本文用均方誤差MSE作為比較三種結(jié)構(gòu)PCA收斂速度的性能指標(biāo),定義如下:
其中,Ys表示網(wǎng)絡(luò)的實(shí)際輸出值,Yt表示期望值,m代表總樣本數(shù)。
圖6給出預(yù)測(cè)主元數(shù)據(jù)分量T1在訓(xùn)練過程中,均方誤差值隨學(xué)習(xí)周期的變化曲線。同樣的主元數(shù)據(jù)分量T2均方誤差值變化曲線如圖7所示。
圖6 T1在訓(xùn)練過程中MSE隨學(xué)習(xí)周期的變化曲線
圖7 T2在訓(xùn)練過程中MSE隨學(xué)習(xí)周期的變化曲線
從圖6、7中T1、T2的均方誤差下降曲線可以看出,雖然基于三種神經(jīng)網(wǎng)絡(luò)的PCA模型都可以準(zhǔn)確預(yù)測(cè)下一時(shí)刻的信號(hào)值,但是CMAC的PCA收斂速度明顯高于BP,而SOFCMAC的收斂速度更高于CMAC,并且在精度上與CMAC相比更勝一籌。分析其原因,BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的確定,及各隱層節(jié)點(diǎn)個(gè)數(shù)的選取都是靠經(jīng)驗(yàn)獲得,缺乏可靠性。另一方面,BP神經(jīng)網(wǎng)絡(luò)是一種全局逼近網(wǎng)絡(luò),對(duì)每一對(duì)輸入及誤差的反向傳輸,網(wǎng)絡(luò)中每個(gè)連接權(quán)值都需要進(jìn)行調(diào)整,并且采用的是梯度下降法,導(dǎo)致了其學(xué)習(xí)收斂速度慢,存在局部極小的問題,訓(xùn)練結(jié)果不準(zhǔn)確。CMAC是一種局部逼近網(wǎng)絡(luò),連接權(quán)值只需要部分調(diào)整,收斂速度比BP快的多,并且沒有局部極小問題,訓(xùn)練精度與收斂時(shí)間相比BP網(wǎng)絡(luò)有很大的提高。但是CMAC神經(jīng)網(wǎng)絡(luò)對(duì)輸入采取數(shù)字量化,而實(shí)際輸入大多都是模擬量,加大了誤差,而且學(xué)習(xí)算法比較粗糙,網(wǎng)絡(luò)存儲(chǔ)容量隨著輸入維數(shù)的增加呈幾何級(jí)數(shù)增長(zhǎng)。SOFCMAC引入模糊自組織競(jìng)爭(zhēng)算法,省去CMAC離散、量化、編碼等復(fù)雜運(yùn)算,化除傳統(tǒng)CMAC泛化能力與存儲(chǔ)容量之間的矛盾,改善了其學(xué)習(xí)性能,加快了學(xué)習(xí)速度。
本文將SOFCMAC神經(jīng)網(wǎng)絡(luò)與PCA方法相結(jié)合,構(gòu)建了基于SOFCMAC神經(jīng)網(wǎng)絡(luò)的PCA故障診斷模型,并對(duì)其工作原理和算法進(jìn)行了研究。通過故障模擬驗(yàn)證了該模型的可行性,并有效實(shí)現(xiàn)了水下機(jī)械臂的故障檢測(cè)。同時(shí)在同一組實(shí)驗(yàn)數(shù)據(jù)中,建立了基于BP、CMAC和SOFCMAC的三種神經(jīng)網(wǎng)絡(luò)的PCA信號(hào)預(yù)測(cè)模型,比較三者故障診斷的精度,并簡(jiǎn)單闡述原因,體現(xiàn)出SOFCMAC神經(jīng)網(wǎng)絡(luò)在故障診斷中的先進(jìn)性。但是本文提及的模型存在一些不足,如故障診斷的精度和速度還有待提高。與其他故障診斷方法相結(jié)合,進(jìn)一步提高故障診斷性能是下一步的研究方向。