陳如清, 楊 妍
(1.嘉興學(xué)院機(jī)電工程學(xué)院 嘉興,314001) (2.華東理工大學(xué)自動化研究所 上海,200237)
旋轉(zhuǎn)機(jī)械的故障診斷對減少故障危害及增加設(shè)備安全性具有重要意義[1-2]。人工神經(jīng)網(wǎng)絡(luò)用于故障診斷,解決了多維空間模式或非線性模式的識別問題,適合于對多故障、多征兆等復(fù)雜對象進(jìn)行故障診斷[3-4]。學(xué)習(xí)算法是神經(jīng)網(wǎng)絡(luò)研究的一項(xiàng)重要內(nèi)容,其性能好壞直接影響到網(wǎng)絡(luò)模型的性能,BP算法是前向神經(jīng)網(wǎng)絡(luò)廣泛采用的學(xué)習(xí)方法。用于實(shí)際復(fù)雜故障建模時,BP神經(jīng)網(wǎng)絡(luò)存在結(jié)構(gòu)復(fù)雜、收斂速度慢等不足,不利于完成實(shí)時性強(qiáng)的機(jī)械設(shè)備故障診斷。粒子群優(yōu)化算法(particle swarm optimization,簡稱PSO)是基于群體的演化算法,其基本思想源于對鳥群捕食行為的研究。由于PSO算法原理簡單易于實(shí)現(xiàn),沒有太多參數(shù)需要調(diào)整,且不需要梯度信息,目前已廣泛用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練、函數(shù)優(yōu)化、模糊系統(tǒng)控制及其他遺傳算法的應(yīng)用領(lǐng)域。但PSO用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練時也存在易陷入局部最優(yōu)、進(jìn)化后期收斂速度較慢、魯棒性較差等不足。
筆者針對 BP和基本 PSO算法用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練時存在的不足,基于現(xiàn)有算法提出了一種改進(jìn)的協(xié)同粒子群優(yōu)化算法(improved cooperative PSO,簡稱 ICPSO)。
協(xié)同進(jìn)化算法是對進(jìn)化算法的一大改進(jìn)[5]。為了克服 PSO算法的缺陷,提出了協(xié)同粒子群優(yōu)化算法(cooperative PSO,簡稱 CPSO)[6]。 CPSO算法采用兩層結(jié)構(gòu):底層用多個粒子群相互獨(dú)立地搜索解空間以擴(kuò)大搜索范圍;上層用 1個粒子群追逐當(dāng)前全局最優(yōu)解以加快算法收斂。通過底層多個粒子群的獨(dú)立搜索來保證尋優(yōu)過程可以在較大范圍內(nèi)進(jìn)行,同時利用上層粒子群追逐當(dāng)前全局最優(yōu)點(diǎn)保證算法收斂,兼顧了優(yōu)化過程的精度和效率。CPSO是一個很有潛力的研究方向[7]。
CPSO使用方便,收斂速度較快,但操作要比PSO復(fù)雜。多粒子群協(xié)同優(yōu)化是通過多個子粒子群對主粒子群的協(xié)同指導(dǎo)實(shí)現(xiàn)優(yōu)化,主群與子群間采取何種協(xié)同策略是算法成功與否的關(guān)鍵。為進(jìn)一步改善現(xiàn)有 PSO和 CPSO算法的優(yōu)化性能,在原有方法基礎(chǔ)上[8]提出了一種改進(jìn)的 ICPSO方法。
如圖 1所示,其基本原理為:整個粒子群體由m個子種群組成,各子種群均用標(biāo)準(zhǔn) PSO算法搜索機(jī)制進(jìn)化,更新群內(nèi)粒子的速度和位置,相鄰兩個子種群周期性地進(jìn)行信息交流。每當(dāng)進(jìn)化到第t=nT代時(T為更新周期,n為自然數(shù)),第i個子種群將其當(dāng)前的群體最好解yi(t)傳給第i+1個子種群(i=1,2,… ,m)。第i+ 1個子種群依據(jù)yi(t)和yi+1(t)的權(quán)平均值(即前一個子種群的群體最好解和本子種群的群體最好解的權(quán)平均值)進(jìn)化,依次類推。最后一個子種群將其群體最好解ym(t)傳回給第1個子種群。在每個nT更新周期,各子種群都將本分群的群體最好解傳遞給下一個相鄰的子種群,同時判斷yi(t)(i=1,2,… ,m)是否滿足精度,若滿足則停止,否則繼續(xù)進(jìn)化。
圖1 ICPSO協(xié)同策略
迭代過程中,粒子(第i+ 1個子種群)根據(jù)如下公式來更新自己的速度和位置
其中:O1(t)=c1r1(t);O2(t)=c2r2(t);c1和c2為加速因子;r1和r2為兩個在[0,1]范圍內(nèi)變化的隨機(jī)數(shù);x(t),v(t)分別為t時刻粒子的位置和空間速度;y(t)為粒子歷史最好解(個體極值點(diǎn));w為慣性權(quán)值;fi為解yi對應(yīng)的適應(yīng)度值;fi+1為解yi+1對應(yīng)的適應(yīng)度值。
ICPSO算法在進(jìn)化過程中,各子分群粒子能充分利用本分群搜索經(jīng)驗(yàn)和整個種群搜索經(jīng)驗(yàn),既能確保在本子種群內(nèi)部不斷地搜索,不會迷失自己的尋優(yōu)方向,又能周期性地共享整個種群最優(yōu)值指導(dǎo)粒子找到最好解。此外,分解為多個子種群有利于維持種群的多樣性,能有效抑制局部最優(yōu)現(xiàn)象發(fā)生。
PSO算法產(chǎn)生的初期并沒有對算法的收斂性進(jìn)行詳細(xì)分析,參數(shù)的選取主要依賴經(jīng)驗(yàn)。一些學(xué)者[9]從數(shù)學(xué)的角度對算法的收斂性進(jìn)行了分析。采用類似方法分析表明,筆者提出的 ICPSO算法的每個粒子最終收斂于一平衡點(diǎn),即群體中粒子最終收斂于個體最優(yōu)解和群體最優(yōu)解的權(quán)平衡點(diǎn)。
算法流程為:
1)設(shè)定整群粒子規(guī)模N,子種群數(shù)量m,則子種群包含粒子數(shù)目為N/m,設(shè)置更新周期T。初始化各分群粒子的位置、最大迭代次數(shù)、優(yōu)化精度及 PSO算法的相關(guān)初始參數(shù),計算所有粒子的初始適應(yīng)值并保存各分群最好適應(yīng)值及相應(yīng)位置。
2)迭代開始,在第1個迭代周期內(nèi) (第1~T次迭代過程),各分群粒子按基本 PSO搜索機(jī)制產(chǎn)生粒子新位置并計算新適應(yīng)值,更新個體歷史最好適應(yīng)值及分群歷史最好適應(yīng)值。第j個迭代周期(其中j=2~n,n=最大迭代次數(shù) /更新周期T)內(nèi),所有粒子完成前j-1個迭代周期的搜索。
3)各子種群接收與之相鄰的上一個子種群的當(dāng)前最好解,并將其傳遞給下一個子種群(如圖1所示),各分群粒子根據(jù)式(1)和式(2)來更新自己的速度和新的位置。
4)同步驟2,各分群粒子按基本 PSO機(jī)制進(jìn)行搜索,直至本周期結(jié)束。
5)記錄各分群的歷史最好適應(yīng)值及對應(yīng)粒子的空間位置。
6)令j=j+1,若滿足停止條件(適應(yīng)值誤差達(dá)到設(shè)定的適應(yīng)值誤差限或迭代次數(shù)超過最大允許迭代次數(shù)),搜索停止,輸出全群歷史最優(yōu)位置和最優(yōu)適應(yīng)值;否則,返回步驟3繼續(xù)搜索。
為驗(yàn)證 ICPSO算法的有效性,模擬試驗(yàn)選取多峰值、存在許多局部最小點(diǎn)且自變量之間相互獨(dú)立或互相影響的 4個經(jīng)典函數(shù)(Rastrigrin,Griewank,Ackley和Rosenbrock函數(shù))作為尋優(yōu)測試對象。采用ICPSO算法和基本 PSO算法對其進(jìn)行尋優(yōu)測試。
用Matlab軟件編寫相關(guān)程序,兩種算法在仿真過程中,函數(shù)維數(shù)、粒子規(guī)模、最大迭代次數(shù)和最大最小慣性權(quán)值等基本參數(shù)均設(shè)置相同。優(yōu)化時用兩算法對每一測試函數(shù)都進(jìn)行 200次獨(dú)立測試,ICPSO算法參數(shù)設(shè)計見表 1。
仿真結(jié)束后對測試結(jié)果進(jìn)行統(tǒng)計分析。為全面比較算法性能,采用相對通用的指標(biāo)評價來優(yōu)化算法性能。筆者采用的評價指標(biāo)包括:尋優(yōu)率、平均精度、最大迭代次數(shù)和平均迭代次數(shù)[10]。統(tǒng)計結(jié)果見表2。
由表 2可知,在算法基本參數(shù)設(shè)置相同的情況下,ICPSO算法整體尋優(yōu)性能明顯優(yōu)于基本 PSO算法。其中,Griewank,Rastrigrin和 Ackley函數(shù)在低維數(shù)情況下局部最優(yōu)點(diǎn)就很多。隨著維數(shù)的增高局部最優(yōu)點(diǎn)的數(shù)量也迅速增加,增加了最優(yōu)解的尋找難度。對這3個高維函數(shù),基本PSO算法較易陷入局部最優(yōu),而改進(jìn)算法能準(zhǔn)確快速地找到全局最優(yōu)解,算法的穩(wěn)定性也較好。此外,多維Rosenbrock函數(shù)的最優(yōu)解分布非常復(fù)雜,ICPSO算法表現(xiàn)也強(qiáng)于基本PSO算法。
綜上所述,對幾個復(fù)雜函數(shù)的尋優(yōu)測試表明,改進(jìn)的 ICPSO算法的收斂速度、收斂精度和全局搜索性能顯著高于基本 PSO算法,與理論分析相符合。
表1 ICPSO算法參數(shù)設(shè)計
表2 兩種尋優(yōu)算法尋優(yōu)性能對比(200次試驗(yàn))
某旋轉(zhuǎn)機(jī)械構(gòu)成部件主要有轉(zhuǎn)子軸、定子、軸承座及葉輪等。常見的故障主要有轉(zhuǎn)子不平衡、轉(zhuǎn)子不對中、軸承座松動、摩擦故障等 10類故障。研究表明,旋轉(zhuǎn)機(jī)械振動信號的頻譜能較敏感地反映各種故障狀態(tài)[1-4]?;谏窠?jīng)網(wǎng)絡(luò)的故障診斷系統(tǒng)是用神經(jīng)網(wǎng)絡(luò)構(gòu)建故障特征與故障狀態(tài)之間的映射關(guān)系。
振動信號中含有豐富的故障信息,通過對其進(jìn)行頻譜分析可分離出振動信號的主要頻率部分,得出各種振動頻率的幅值。不同故障情況其頻率分布及幅值大小各有不同,據(jù)此可推斷故障原因。如轉(zhuǎn)子不平衡故障其譜峰能量主要集中在f頻段上(f為基頻,A為振幅);轉(zhuǎn)子不對中故障下譜峰能量主要集中在f,2f,3f頻段上;其他故障也有類似征兆。故障分析時分別以頻譜中 9個頻段(0.01f~ 0.39f,0.40f~ 0.49f,0.50f,0.51f~ 0.99f,1f,2f,3f~ 5f,奇數(shù)次f,高頻段)上的不同頻率的譜峰能量值作為特征向量。這樣以9維故障特征量作為神經(jīng)網(wǎng)絡(luò)的輸入,輸出為 10維故障編碼,共有 10類故障樣本。目標(biāo)輸出為“1”表示相應(yīng)故障發(fā)生,為“0”則不發(fā)生。 10類典型故障樣本如表 3所示。
表3 典型故障征兆表
設(shè)Xi為加入噪聲前的典型故障樣本,X′i為加入噪聲后的仿真故障樣本,仿真樣本數(shù)據(jù)為
其中:X為人為加入的均值為0、方差為1的隨機(jī)噪聲;a為噪聲控制系數(shù),可取a=0.05,0.08,0.12,0.15。
利用式(3)分別對每種典型故障情況產(chǎn)生 60組帶噪聲的樣本,歸一化處理后共600組樣本。
基于以上故障樣本分析,構(gòu)建 3層神經(jīng)網(wǎng)絡(luò)故障診斷模型,以 ICPSO作為學(xué)習(xí)算法,稱該神經(jīng)網(wǎng)絡(luò)為 ICPSO NN。輸入層和輸出層神經(jīng)元的個數(shù)分別為 9和 10,對應(yīng) 9維故障模式向量及10位輸出故障編碼。隱含層的選取根據(jù)樣本的復(fù)雜性及所需達(dá)到的泛化能力通過仿真調(diào)整,最終節(jié)點(diǎn)數(shù)定為 12。
從600組樣本集中,隨機(jī)選擇180組作為網(wǎng)絡(luò)訓(xùn)練集(包含 10種故障樣本),另選 60組作為測試集。ICPSO的主要參數(shù)為:c1=c2=2.0,kmax=0.80,kmin=0.02,最大迭代次數(shù)為 3 000,粒子規(guī)模為 40,子種群數(shù)量為 5,更新周期T=50。訓(xùn)練結(jié)束后故障向量及故障編碼的映射關(guān)系保存在神經(jīng)網(wǎng)絡(luò)中。
圖2 ICPSO NN訓(xùn)練誤差曲線
仿真過程引入標(biāo)準(zhǔn) BP算法和 PSO算法訓(xùn)練相同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)(稱之為BP NN和PSO NN,其中PSO基本參數(shù)與 ICPSO相同),構(gòu)建同樣故障映射,與之形成對比。最大迭代次數(shù)都設(shè)為3 000,BP網(wǎng)絡(luò)采用 Matlab6.5中的 TRAINBP函數(shù)訓(xùn)練網(wǎng)絡(luò)。
ICPSO網(wǎng)絡(luò)的訓(xùn)練誤差曲線如圖 2所示,BP NN和PSO NN的訓(xùn)練誤差曲線如圖3所示。ICPSO NN,BP NN和PSO NN的訓(xùn)練誤差在3 000次迭代后分別為 0.125,0.421和 0.357。對比結(jié)果表明,ICPSO NN表現(xiàn)優(yōu)于另外兩種網(wǎng)絡(luò)。
圖3 BP NN和 PSO NN訓(xùn)練誤差曲線
保存訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)、權(quán)閾值等數(shù)據(jù),人工模擬上述幾種故障情況,進(jìn)行旋轉(zhuǎn)機(jī)械在線故障診斷。對故障情況下振動信號進(jìn)行頻譜分析,分離出振動信號的主要頻率部分,得出各種振動頻率的幅值。預(yù)處理后得出相應(yīng)的故障特征值。將其輸入ICPSO神經(jīng)網(wǎng)絡(luò)故障診斷系統(tǒng),網(wǎng)絡(luò)完成在線計算后得到故障編碼(即相應(yīng)位的值大于 0.5視為“1”,否則為“0”),指示具體故障狀態(tài)。
表4為部分待診斷數(shù)據(jù)及診斷輸出,結(jié)果分別指示為第10,4和6類故障,即不等軸承剛度故障、油膜渦動和亞諧共振故障,與實(shí)際相符。采用 ICPSO神經(jīng)網(wǎng)絡(luò)可以實(shí)現(xiàn)旋轉(zhuǎn)機(jī)械的在線故障診斷。
表4 部分試驗(yàn)數(shù)據(jù)
筆者對 ICPSO方法進(jìn)行了收斂性分析,以幾個經(jīng)典復(fù)雜函數(shù)為對象進(jìn)行了尋優(yōu)測試并與基本PSO算法進(jìn)行了比較,分析表明改進(jìn)算法整體優(yōu)化性能有顯著提高,有效克服了基本 PSO算法在多峰函數(shù)尋優(yōu)時出現(xiàn)的微?!霸缡臁爆F(xiàn)象,為大量非線性、不可微和多峰值復(fù)雜優(yōu)化問題的求解提供了一種新的思路和解決方法。將本方法用于旋轉(zhuǎn)機(jī)械神經(jīng)網(wǎng)絡(luò)故障診斷建模,設(shè)計了相應(yīng)的在線故障診斷系統(tǒng)。結(jié)果表明,該系統(tǒng)具有診斷速度較快、精度較高等特點(diǎn),適合于旋轉(zhuǎn)機(jī)械的在線故障診斷。
[1] 虞和濟(jì),陳長征,張省,等.基于神經(jīng)網(wǎng)絡(luò)的智能診斷[M].北京:冶金工業(yè)出版社,2000:131-136.
[2] 趙沖沖,廖明夫,于瀟.基于支持向量機(jī)的旋轉(zhuǎn)機(jī)械故障診斷 [J].振動、測試與診斷,2006,26(1):53-57.
Zhao Chongchong,Liao Mingfu,Yu Xiao.Application of support vector machine to fault diagnosis of rotation machinery[J].Journal of Vibration,M easurement&Diagnosis,2006,26(1):53-57.(in Chinese)
[3] 唐貴基,向玲,朱永利.基于 HHT的旋轉(zhuǎn)機(jī)械油膜渦動和油膜振蕩故障特征分析 [J].中國電機(jī)工程學(xué)報,2008,28(2):77-81.
Tang Guiji,Xiang Ling,Zhu Yongli.Fault analysis of oil whirl and oil whip based on Hilbert-Huang transform for rotor system[J].Proceedings of the CSEE,2008,28(2):77-81.(in Chinese)
[4] 陳如清,沈士根.基于遞歸神經(jīng)網(wǎng)絡(luò)的旋轉(zhuǎn)機(jī)械故障診斷方法 [J].振動、測試與診斷,2005,25(3):233-235.
Chen Ruqing,Shen Shigen.Fault diagnosis for rotating machinery based on RNN[J].Journal of Vibration,Measurement& Diagnosis,2005,25(3):233-235.(in Chinese)
[5] 劉靜,鐘偉才,劉芳,等.組織協(xié)同進(jìn)化分類算法 [J].計算機(jī)學(xué)報,2003,26(4):446-453.
Liu Jing,Zhong Weicai,Liu Fang,et al.Classification based on organizational coevolutionary algorithm[J].Chinese Journal of Computers,2003,26(4):446-453.(in Chinese)
[6] Frans V D B,Andries P E.A cooperative approach to particle swarm optimization[J].IEEE Transaction on Evolutionary Computation,2004,8(3):225-239.
[7] 王俊年,申群太,沈洪遠(yuǎn),等.基于多種群協(xié)同進(jìn)化微粒群算法的徑向基神經(jīng)網(wǎng)絡(luò)設(shè)計 [J].控制理論與應(yīng)用,2006,23(2):251-255.
Wang Junnian,Shen Quntai,Shen Hongyuan,et al.Evolutionary design of RBF neural network based on multi-species cooperative particleswarm optimizer[J].Control Theory& Applications,2006,23(2):251-255.(in Chinese)
[8] 王元元,曾建潮,譚瑛.多種群協(xié)同進(jìn)化的微粒群算法[J].計算機(jī)工程與設(shè)計,2007,28(15):3661-3664.
Wang Yuanyuan,Zeng Jianchao,Tan Ying.Cooperative evolutionary particle swarm optimization algorithm with multi-populations[J].Computer Engineering and Design, 2007,28(15):3661-3664. (in Chinese)
[9] Bergh F V D,Engelbrecht A P.A study of particle swarms optimization particle trajectories[J].Information Sciences,2006,176:937-971.
[10]楊妍.智能計算算法的若干研究與應(yīng)用 [D].上海:華東理工大學(xué),2009.