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