姜春英 康玉祥 葉長龍 于蘇洋
沈陽航空航天大學(xué)機(jī)電工程學(xué)院,沈陽,110136
在線智能監(jiān)測技術(shù)可以對機(jī)械設(shè)備故障進(jìn)行準(zhǔn)確的分類和預(yù)測,對機(jī)械產(chǎn)品質(zhì)量和生產(chǎn)成本的控制,以及安全高效的生產(chǎn)保證都有重要的意義。
國內(nèi)外學(xué)者在智能故障診斷方法上進(jìn)行了大量的研究工作。LEE等[1]研究了連續(xù)HMM(hid?den Markov model)故障診斷方法,并用于機(jī)械設(shè)備故障診斷。WIDODO 等[2]、SAMANTA[3]、YU等[4]對支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)進(jìn)行了深入研究,并用于齒輪、軸承等零件的故障診斷。PAYA等[5]進(jìn)一步運(yùn)用BP網(wǎng)絡(luò),實(shí)現(xiàn)了旋轉(zhuǎn)機(jī)械的故障診斷。零件故障診斷問題可歸為特征分類問題,鮑久圣等[6]構(gòu)建BP網(wǎng)絡(luò)模型用于焊接疵點(diǎn)的分類,得到了很好的效果。BP網(wǎng)絡(luò)具有很好的適應(yīng)能力和訓(xùn)練能力,但很難設(shè)置理想的連接權(quán)值和閾值。粒子群優(yōu)化(particle swarm optimization,PSO)算法提升了BP網(wǎng)絡(luò)的分類、回歸等方面的性能,并在車牌號碼識別[7]、發(fā)動機(jī)參數(shù)優(yōu)化[8]等方面得到了較好的應(yīng)用。
本文針對零件尺寸超差問題,提出了一種改進(jìn)PSO_BP_Adaboost算法來解決分類收斂問題,將所提算法用于尺寸超差故障診斷。
PSO作為一種群體智能搜索算法,具有實(shí)現(xiàn)原理簡單、全局搜索能力強(qiáng)等優(yōu)點(diǎn)[7]。采用PSO算法優(yōu)化網(wǎng)絡(luò)的初始權(quán)值和閾值可以提高BP網(wǎng)絡(luò)的性能[9?10]。傳統(tǒng)的PSO算法通過下式實(shí)現(xiàn)粒子位置和速度的更新[12]:
式中,vid(t)、Xid(t)分別為 t時刻第 i個粒子的速度和位置;Pid、Pgd分別為第i個粒子的個體極值位置和粒子群全體極值;w為慣性權(quán)重因子;c1、c2為學(xué)習(xí)因子;Rnd1、Rnd2是0~1之間的隨機(jī)數(shù)。
PSO算法通過“追蹤”Pid和Pgd兩個參數(shù)實(shí)現(xiàn)進(jìn)化的目的。為了提高算法全局搜索能力,避免粒子陷入局部最優(yōu)解,同時考慮到智能群體在搜索過程中會帶有一定的隨機(jī)性,將式(1)中的慣性權(quán)重w改為高斯隨機(jī)數(shù)Rnd3來表示先前速度對當(dāng)前速度的影響具有隨機(jī)性。另外,為了表達(dá)當(dāng)前位置和速度對下一個位置的隨機(jī)影響程度,在式(2)增加了隨機(jī)搜索因子η:
為了驗(yàn)證改進(jìn)PSO算法的有效性,本文對改進(jìn)PSO算法在研究者普遍使用的幾個測試函數(shù)[11?12]上進(jìn)行了測試,并將其與傳統(tǒng)PSO算法進(jìn)行比較。結(jié)果顯示,改進(jìn)的PSO算法無論是在迭代次數(shù)還是在精度方面都要優(yōu)于傳統(tǒng)的PSO算法,因此,可以用來優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值。測試結(jié)果見表1,部分測試函數(shù)適應(yīng)度與迭代次數(shù)關(guān)系如圖1所示。
表1 PSO算法測試結(jié)果表Tab.1 PSO algorithm test results table
圖1 函數(shù)適應(yīng)度曲線Fig.1 Function fitness curves
Adaboost算法[9?15]首先需要建立多個不同的弱分類器,然后將這些弱分類器組合成強(qiáng)分類器,以達(dá)到提高分類器泛化性能的目的。對于具有k個類別的多分類問題,傳統(tǒng)的Adaboost算法通過提高前一個弱分類器錯分樣本的權(quán)值,同時降低被正確分類樣本的權(quán)值,來找到多個錯誤率小于1/2的弱分類器。但是,隨著弱分類器的增加,很可能導(dǎo)致弱分類器的錯誤率達(dá)不到要求,存在弱分類器數(shù)量不足、不能組合成為足夠好的強(qiáng)分類器的可能。針對此問題,在汲取SAMME[16]算法經(jīng)驗(yàn)的基礎(chǔ)上,對Adaboost算法的權(quán)值分配策略進(jìn)行了改進(jìn):
式中,at為第t個弱分類器的權(quán)值,t=1,2,…,K;K為總的弱分類器個數(shù);εt為第t個弱分類器的錯誤率。
在原算法的基礎(chǔ)上增加ln(K-t+1)。改進(jìn)后,每個弱分類器的分類錯誤率只需滿足εt≤(K-t+1)/(K-t+2)的要求即可。
運(yùn)用改進(jìn)的權(quán)值分配策略,采用經(jīng)典的“一對一”多分類方法設(shè)計(jì)多分類器。具體算法如下。
輸入:訓(xùn)練數(shù)據(jù)樣本T={(xl,yl),…(xm,ym)},其中輸入數(shù)據(jù)xi∈X,標(biāo)簽yi∈{1,2,…,N}。
輸出:強(qiáng)分類器G(x),分類結(jié)果。
(1)for j=1:N-1
for k=j+1:N
將yj=j的數(shù)據(jù)樣本設(shè)置為正類,yk=k的樣本設(shè)置為負(fù)類。
(2)訓(xùn)練數(shù)據(jù)樣本T的權(quán)值分布初始化:
(3)for t=1:
①在訓(xùn)練樣本的權(quán)值分布下,訓(xùn)練PSO優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)作為第t個弱分類器ht(x)。
②計(jì)算ht(x)的誤差率:
③計(jì)算ht(x)的權(quán)值分配系數(shù):
④更新訓(xùn)練數(shù)據(jù)樣本的權(quán)值分布:
式中,Zt為歸一化因子。
end
(4)得到最終的強(qiáng)分類器G(x)輸出分類類別
M為設(shè)置弱分類器的個數(shù)。
end
end
改進(jìn)PSO_BP_Adaboost算法的流程如圖2所示,算法采用MATLAB軟件在UCI數(shù)據(jù)集(選用研究者普遍使用的幾個數(shù)據(jù)集)[17]Pen?Digits、Letter、Wine上進(jìn)行測試。數(shù)據(jù)集的有關(guān)信息如表2所示。
圖2 PSO_BP_Adaboost算法流程圖Fig.2 PSO_BP_Adaboost algorithm flow chart
表2 測試數(shù)據(jù)集信息表Tab.2 Test data set information table
傳統(tǒng)BP_Adaboost算法和PSO_BP_Ada?boost算法在相同迭代次數(shù)時的分類誤差如圖3~圖5所示,可以看出本文所提算法在弱分類器個數(shù)和測試誤差方面都優(yōu)于傳統(tǒng)的BP_Adaboost算法。
圖3 兩種算法在Wine數(shù)據(jù)集上的誤差Fig.3 Error of two kinds of algorithms on Wine data set
圖4 兩種算法在Pen-Digits數(shù)據(jù)集上的誤差Fig.4 Error of two kinds of algorithms on Pen-Digits data set
圖5 兩種算法在Letter數(shù)據(jù)集上的誤差Fig.5 Error of two kinds of algorithms on Letter data set
采用三坐標(biāo)測量儀檢測汽車發(fā)動機(jī)缸蓋上的孔直徑。該型缸蓋上分布6個不同位置的孔,為減小計(jì)算量,任意選取4個孔的測量值作為BP網(wǎng)絡(luò)的輸入。
根據(jù)對加工零件尺寸超差故障的分析,以及對每次故障記錄數(shù)據(jù)的判斷,將該零件尺寸超差故障產(chǎn)生的原因分為刀具的磨損和機(jī)床/操作者/環(huán)境因素。
本文對零件加工尺寸數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)分為3類進(jìn)行分析,表3所示為零件尺寸類別標(biāo)簽及類別名稱。
表3 測試數(shù)據(jù)分類表Tab.3 Test data classification table
選取檢測記錄的150組數(shù)據(jù)模型進(jìn)行訓(xùn)練,隨機(jī)選取其中100組數(shù)據(jù)作為訓(xùn)練樣本數(shù)據(jù),50組數(shù)據(jù)作為測試樣本。
本文中PSO_BP_Adaboost算法有4個輸入、1個輸出,4個輸入分別為直徑1、直徑2、直徑3、直徑4,1個輸出為“一對一”分類方法中設(shè)置的正類或負(fù)類,即輸出為{+1,-1}。
設(shè)置BP網(wǎng)絡(luò)的結(jié)構(gòu)為4?10?1,即輸入層由4個神經(jīng)元、隱含層有10個神經(jīng)元、輸出層有1個神經(jīng)元。整個BP神經(jīng)網(wǎng)絡(luò)共有4×10+10×1=50個權(quán)值和10+1=11個閾值,則PSO算法要優(yōu)化的參數(shù)個數(shù)為50+11=61。BP神經(jīng)網(wǎng)絡(luò)采用MATLAB自帶的函數(shù)newff創(chuàng)建,訓(xùn)練次數(shù)為100,訓(xùn)練目標(biāo)為0.001,學(xué)習(xí)率設(shè)置為0.1。
在PSO算法優(yōu)化BP網(wǎng)絡(luò)的過程中,PSO算法的進(jìn)化次數(shù)為10,種群規(guī)模為10。
優(yōu)化的BP_Adaboost算法中,采用10個BP網(wǎng)絡(luò)作為弱分類器組成一個強(qiáng)分類器,測試樣本數(shù)據(jù)共有3類,根據(jù)“一對一”分類算法,共需要3×(3-1)/2=3個強(qiáng)分類器,總共需要3×10=30個弱分類器。
訓(xùn)練好模型后,本文選取的50組測試數(shù)據(jù)中,只有1組測試結(jié)果與實(shí)際情況不相符,正確率達(dá)到98%。圖6為傳統(tǒng)BP_Adaboost算法和PSO_BP_Adaboost算法的誤差率比較圖,可以看出本文所提方法誤差較小。表4所示為本文所提方法與SVM、Adaboost.M1算法的測試結(jié)果。結(jié)果顯示,針對所選的測試數(shù)據(jù),本文所提方法較SVM和Adaboost.M1算法有更高的分類正確率,說明本文所提方法可以用于零件尺寸超差故障診斷。
圖6 兩種算法誤差率Fig.6 Two algorithm error rates
表4 不同分類算法測試結(jié)果Tab.4 Test results of different classification algorithms %
提出了改進(jìn)的PSO算法及Adaboost算法,應(yīng)用PSO算法快速尋優(yōu)的特點(diǎn),優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值,通過訓(xùn)練多個優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)弱分類器組合成Adaboost強(qiáng)分類器。對所建立的強(qiáng)分類器算法,采用某一零件的測量尺寸數(shù)據(jù)進(jìn)行驗(yàn)證。試驗(yàn)結(jié)果表明,本文所提的算法正確率較高,性能較好,可以用于零件尺寸超差故障的分類檢測。