黨保華,朱德榮,杜志強(qiáng),王淑珍,余炳輝
(洛陽理工學(xué)院 機(jī)電工程系,河南 洛陽 471023)
故障診斷模型以神經(jīng)網(wǎng)絡(luò)模型應(yīng)用最廣,但利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行故障識別需要大量的訓(xùn)練樣本,在訓(xùn)練樣本有限的情況下,泛化能力差,且優(yōu)化過程存在陷入局部極值的可能。采用改進(jìn)的粒子群算法(IPSO)優(yōu)化神經(jīng)網(wǎng)絡(luò)模型對設(shè)備進(jìn)行故障分析已有大量成功的先例,在此將IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于滾動軸承故障診斷數(shù)據(jù)分析中。試驗結(jié)果表明,該算法能夠?qū)S承故障進(jìn)行正確分類。
在標(biāo)準(zhǔn)粒子群算法中[1],每個優(yōu)化問題的解都是搜索空間的1個粒子。所有粒子都有1個由適應(yīng)函數(shù)決定的適應(yīng)度,并用1個速度函數(shù)νi=(νi1,νi2,…,νid)決定其在搜索空間搜索的方向和距離。其中,適應(yīng)度函數(shù)由特定的優(yōu)化問題預(yù)先定義。粒子群算法初始化為1群隨機(jī)粒子(隨機(jī)解),其中第i個粒子在d維解空間的位置表示為xi=(xi1,xi2,…,xid),然后通過迭代找到最優(yōu)解。在每一次迭代中,粒子通過跟蹤2個極值來更新自己的速度和位置。第一個極值就是粒子本身到目前為止所找到的最優(yōu)解,這個極值稱為記憶中的最優(yōu)粒子Pbi=(Pbi1,Pbi2,…,Pbid);另一個極值是整個種群到目前為止找到的最優(yōu)解,這個極值稱為整個種群的最優(yōu)粒子Gbi=(Gbi1,Gbi2,…,Gbid)。粒子根據(jù)以下公式來更新自己的速度和位置
νi+1=w×νi+C1×rand()×(Pbi-xi)+C2×rand()×(Gbi-xi),
(1)
xi+1=xi+νi+1,
(2)
式中:rand()為均勻分布在(0,1)之間的隨機(jī)數(shù);w為慣性因子;C1,C2為學(xué)習(xí)因子,通常C1=C2=2。于是粒子就在解空間內(nèi)不斷跟蹤自己和整個粒子群到目前為止所找到的最優(yōu)解進(jìn)行搜索,直至達(dá)到最大的迭代次數(shù)或滿足最小的錯誤標(biāo)準(zhǔn)為止。
針對粒子群算法在早期容易陷入局部極值,并考慮到滾動軸承故障診斷具有復(fù)雜約束的特點,對標(biāo)準(zhǔn)粒子群算法進(jìn)行改進(jìn)。上述標(biāo)準(zhǔn)粒子群算法的種群可分為3部分:全部粒子群、記憶中的局部最優(yōu)粒子群和全局最優(yōu)粒子群。
為了使算法能搜索到較優(yōu)區(qū)域,加速搜索過程向最優(yōu)區(qū)域持續(xù)推進(jìn),并且避免陷入局部最優(yōu)解,可對每一次進(jìn)化計算后的局部最優(yōu)粒子群中的所有粒子在鄰域內(nèi)實施隨機(jī)攝動操作;同時找出局部最優(yōu)粒子群中適應(yīng)度最小的粒子,該粒子搜索到較優(yōu)解的概率極小,因此為了保持種群的多樣性,可在該算法每隔一定進(jìn)化世代后,隨機(jī)初始化該粒子的位置和速度。由于粒子群優(yōu)化算法種群結(jié)構(gòu)的相對獨立性,可使記憶中的局部最優(yōu)粒子群加速向最優(yōu)區(qū)域搜索和全部粒子群始終保持種群的多樣性2種過程同時進(jìn)行,互不影響。
隨機(jī)攝動粒子群優(yōu)化算法具體流程與基本粒子群優(yōu)化算法的流程基本相同,只是在基本粒子群優(yōu)化算法執(zhí)行過程中加入了1個附加的隨機(jī)攝動操作,隨機(jī)攝動操作是在局部記憶最優(yōu)粒子中按(3)式進(jìn)行更新,當(dāng)達(dá)到一定間隔世代后對最差粒子重新初始化操作。
xnew=xold+step×rand,
(3)
式中:xnew為新產(chǎn)生點的坐標(biāo);xold為記憶中最優(yōu)粒子的坐標(biāo);rand為分布在(0,1)間的隨機(jī)數(shù);step為攝動步長,一般可取1.0,對全部粒子群中的最初始化間隔世代數(shù)一般取5~15。
BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò),是1種按誤差逆向傳播算法訓(xùn)練的多層前饋網(wǎng)絡(luò),具有3層或3層以上的階層神經(jīng)網(wǎng)絡(luò)。典型的BP神經(jīng)網(wǎng)絡(luò)包括輸入層、隱含層和輸出層3層結(jié)構(gòu)(圖1),層與層之間各種神經(jīng)元實行權(quán)連接,各層神經(jīng)元之間無連接。標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)采用梯度下降法對權(quán)值進(jìn)行修改,但這種方法容易陷入局部最小值且收斂速度慢[2]。
圖1 BP神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
采用前文所述IPSO優(yōu)化BP網(wǎng)絡(luò),需要優(yōu)化的對象是BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,因此,定義粒子群的位置xi的元素是BP網(wǎng)絡(luò)的全體連接權(quán)和閾值。該算法采用給定訓(xùn)練樣本集的神經(jīng)網(wǎng)絡(luò)輸出誤差作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練問題的適應(yīng)函數(shù),適應(yīng)度值表示神經(jīng)網(wǎng)絡(luò)的誤差,誤差越小表明粒子在搜索中具有更好的性能。具體方法是先初始化位置xi,然后用IPSO搜索最優(yōu)位置,使適應(yīng)度達(dá)到最小。這樣基于IPSO的BP神經(jīng)網(wǎng)絡(luò)形成,目標(biāo)是獲得最小的權(quán)值和閾值[3]。具體步驟如下:
(1)初始化BP網(wǎng)絡(luò),設(shè)定網(wǎng)絡(luò)的輸入層、隱含層和輸出層的神經(jīng)元個數(shù);
(2)初始化粒子群及每個粒子的速度;
(3)計算每個粒子的適應(yīng)度;
(4)把所有粒子記憶中最優(yōu)粒子的適應(yīng)度與整個種群最優(yōu)粒子的適應(yīng)度進(jìn)行比較,若粒子記憶中最優(yōu)粒子的適應(yīng)度高,則把整個種群的最優(yōu)粒子置換成記憶中的最優(yōu)粒子,適應(yīng)度也進(jìn)行相應(yīng)置換;
(5)根據(jù)上文所述隨機(jī)攝動過程,對達(dá)到一定間隔世代后的最差粒子重新初始化操作;
(6)根據(jù)(1)和(2)式更新粒子的速度νi和位置xi;
(7)若適應(yīng)值誤差達(dá)到設(shè)定的適應(yīng)值誤差限或迭代次數(shù)超過最大允許迭代次數(shù),則訓(xùn)練結(jié)束。輸出全局最優(yōu)位置作為BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值;
(8)利用BP學(xué)習(xí)算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
軸承故障診斷的主要內(nèi)容包括故障信號采集、特征向量提取、狀態(tài)識別、狀態(tài)分析和判斷決策5個方面[4]。軸承的故障信號采集由試驗數(shù)據(jù)采集裝置完成,故障癥狀特征以相應(yīng)的振動信號的頻域特征來描述。對采集后的振動信號數(shù)據(jù)進(jìn)行相應(yīng)變換后提取故障參數(shù)組成特征向量,并對數(shù)據(jù)進(jìn)行歸一化處理[5]。
僅針對軸承常見的外圈故障、內(nèi)圈故障、滾動體故障和保持架故障進(jìn)行診斷和分析[6]。通過實驗室現(xiàn)有的T30-60nF軸承模擬試驗臺,選用角接觸球軸承7306AC,在徑向載荷20 kN、軸向載荷10 kN、電動機(jī)轉(zhuǎn)速頻率11 Hz等條件下進(jìn)行故障診斷試驗分析,并分別在4種故障狀態(tài)下采集故障振動加速度信號數(shù)據(jù)。每種故障連續(xù)測量8次,共得到32組數(shù)據(jù),通過數(shù)據(jù)處理后得到故障加速度信號的特征向量,由此得到神經(jīng)網(wǎng)絡(luò)的輸入樣本(部分?jǐn)?shù)據(jù)見表1)。
表1 故障診斷輸入樣本
神經(jīng)網(wǎng)絡(luò)輸出采用4種故障模式代碼表示:000表示外圈故障;001表示內(nèi)圈故障;010表示球故障;100表示保持架故障。試驗中采用3層神經(jīng)網(wǎng)絡(luò),輸入層為4個神經(jīng)元,輸出層為3個神經(jīng)元。隱含層的神經(jīng)元個數(shù)根據(jù)經(jīng)驗初步確定,經(jīng)過一段時間學(xué)習(xí)之后,若達(dá)不到規(guī)定誤差要求,則在初值基礎(chǔ)上適當(dāng)增減,經(jīng)試驗最終確定隱含層神經(jīng)元個數(shù)為10,即網(wǎng)絡(luò)結(jié)構(gòu)為4-10-3。粒子群初始化種群大小為30個,C1=C2=2,慣性因子w取0.4~0.9,適應(yīng)度閾值為0.000 1,最大迭代次數(shù)為500。
根據(jù)表1神經(jīng)網(wǎng)絡(luò)輸入樣本以及確定的輸入、輸出情況,可對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最終得到神經(jīng)網(wǎng)絡(luò)輸出樣本,見表2。
表2 IPSO-BP故障診斷輸出樣本
從表2數(shù)據(jù)輸出結(jié)果來看,采用上述算法進(jìn)行神經(jīng)網(wǎng)絡(luò)樣本訓(xùn)練時,訓(xùn)練結(jié)果表現(xiàn)良好,得到診斷結(jié)果正確,說明將IPSO-BP網(wǎng)絡(luò)算法應(yīng)用于軸承故障診斷是可行的。
為進(jìn)一步說明算法的有效性,以內(nèi)圈故障001為例,利用表1輸入樣本的2組數(shù)據(jù),分別通過BP神經(jīng)網(wǎng)絡(luò)和IPSO-BP神經(jīng)網(wǎng)絡(luò)2種方法進(jìn)行訓(xùn)練,其結(jié)果見表3,由表3可知,IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法對于軸承故障診斷的分析可以達(dá)到更高的精度。
表3 內(nèi)圈故障時2種不同算法輸出樣本比較
將改進(jìn)粒子群算法與BP神經(jīng)網(wǎng)絡(luò)算法相結(jié)合,提出了適合于滾動軸承故障數(shù)據(jù)分析的新算法,試驗結(jié)果表明,該算法能夠有效地判斷出故障類型,與實際期望結(jié)果相符合。與其他算法相比,其診斷準(zhǔn)確率較高,提高了軸承故障診斷的可靠性。