王俊英,馮華勇
(四川工程職業(yè)技術(shù)學(xué)院,德陽 618000)
脈沖渦流檢測近年獲得較大發(fā)展。與其他檢測技術(shù)相比它具有檢測靈敏度高、設(shè)備簡單、操作方便、容易實現(xiàn)自動化的特點。脈沖渦流檢測中渦流的影響因素有很多如缺陷的性質(zhì)、形狀、深度、被檢測材料含雜質(zhì)情況、被檢測材料的磁導(dǎo)率、電導(dǎo)率等等,其中含有復(fù)雜的非線性變量關(guān)系。近年很多國家將神經(jīng)網(wǎng)絡(luò)技術(shù)用于解決渦流檢測信號特征的識別上,這將使渦流檢測技術(shù)在核工業(yè)、航空航天業(yè)中發(fā)揮重大的作用。
人工神經(jīng)網(wǎng)絡(luò)是指模擬人腦神經(jīng)系統(tǒng)的結(jié)構(gòu)和功能,運用大量的處理部件,由人工方式構(gòu)造的網(wǎng)絡(luò)系統(tǒng)。神經(jīng)網(wǎng)絡(luò)理論是一個非線性動力學(xué)系統(tǒng),并以分布式存儲和并行協(xié)同處理為特色。它能較好的適應(yīng)環(huán)境、總結(jié)規(guī)律和完成某種運算。人工神經(jīng)網(wǎng)絡(luò)是一個具有學(xué)習(xí)能力的系統(tǒng)。通常具有兩種學(xué)習(xí)方式:有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)。前者可利用給定的學(xué)習(xí)樣本學(xué)習(xí)模仿,后者則隨輸入信號的情況可自動發(fā)現(xiàn)輸入信號的特征。
要使神經(jīng)網(wǎng)絡(luò)產(chǎn)生所希望的行為,必須對其進(jìn)行訓(xùn)練,即網(wǎng)絡(luò)學(xué)習(xí)。學(xué)習(xí)時每條連接都在不斷的調(diào)整自己的權(quán)值,以使神經(jīng)網(wǎng)絡(luò)的輸出和期望輸出之間的誤差達(dá)到最小,學(xué)習(xí)的效果直接影響到網(wǎng)絡(luò)的預(yù)測精度。
BP算法的學(xué)習(xí)過程由正向傳播和反向傳播兩部分組成,可分為四個過程:l)輸入模式由輸入層向輸出層的模式順傳播;2)誤差信號由輸出層向輸入層的誤差逆?zhèn)鞑ィ?)正向傳播和逆向傳播反復(fù)交替進(jìn)行的網(wǎng)絡(luò)記憶訓(xùn)練過程; 4)趨向收斂的學(xué)習(xí)過程。BP算法的學(xué)習(xí)流程如圖1所示。
BP算法有三種數(shù)值優(yōu)化方法為最速下降法、共軛梯度法(Conjugate Gradient Bakpropagation,CGBP)和牛頓法。其中,最速下降算法是最簡單的算法,但收斂速度慢。牛頓法最快需要計算赫森矩陣和它的逆,計算量大。共軛梯度法是二者的折中:它不需要計算二次導(dǎo)數(shù),但仍然具有二次收斂的特性(即有限次疊代后能收斂與二次函數(shù)的極小點)。因此采用了CGBP完成網(wǎng)絡(luò)訓(xùn)練。
在設(shè)計網(wǎng)絡(luò)之前,必須整理好訓(xùn)練網(wǎng)絡(luò)的數(shù)據(jù)。本文為實現(xiàn)脈沖渦流表面裂紋深度的自動識別,將采用從原始數(shù)據(jù)中提取的反映表面裂紋深度的特征值作為輸入。
本文實驗分別采用了銅、鋁、鐵、不銹鋼四種金屬試件。如圖2所示的試驗數(shù)據(jù)是經(jīng)過小波除噪處理之后的信號。
從圖2中可以看出渦流峰值隨著裂紋深度的增加而增大,與裂紋深度有著強(qiáng)烈的聯(lián)系,完全可以表征裂紋深度。
因此本文將以脈沖渦流檢測信號的最顯著特征值即渦流峰值作為輸入。本文訓(xùn)練集數(shù)據(jù)如表1所示。
輸出量實際上就是網(wǎng)絡(luò)訓(xùn)練后提供的期望輸出,輸出最能代表系統(tǒng)要實現(xiàn)的功能目標(biāo)。選擇相對容易,多網(wǎng)絡(luò)的精度和訓(xùn)練時間影響不大。因為要對表面裂紋深度進(jìn)行定量的識別,因此文中選擇表面裂紋的實際深度作為輸出。
圖1 BP算法流程圖
圖2 鋁試件試驗結(jié)果
表1 BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本集
由于本網(wǎng)絡(luò)的輸入為渦流峰值,輸出為表面裂紋深度,再根據(jù)傳輸函數(shù)的性質(zhì),本文的隱層傳輸函數(shù)選擇常見logsig函數(shù)即可滿足要求;而因為該神經(jīng)網(wǎng)絡(luò)輸出為非-1和1之間的數(shù)值,故輸出層激勵函數(shù)選擇線性函數(shù),從而可以輸出表面裂紋深度。
目前對隱含層數(shù)和隱含層節(jié)點數(shù)的確定還沒有通用規(guī)則,但經(jīng)過大量的實踐有幾點結(jié)論:對任何實際問題首先只用一個隱含層,使用較少隱含層節(jié)點數(shù),然后不斷增加隱含層節(jié)點數(shù),直到獲得滿意性能為止,否則再使用兩個隱含層。本實驗隱含層的確定:由于當(dāng)各節(jié)點均采用S型函數(shù)時,一個隱含層就足以實現(xiàn)任意判決分類問題。
理論研究已經(jīng)證明,一個輸入層、一個輸出層、一個隱層的3層BP網(wǎng)絡(luò)就可以逼近任何函數(shù)[8]。一般而言,增加隱含層數(shù)會增加網(wǎng)絡(luò)的處理能力,同時也會使訓(xùn)練復(fù)雜化,并使訓(xùn)練樣本數(shù)目和訓(xùn)練時間增加。所以本課題選擇單隱層結(jié)構(gòu)就完全能夠滿足需要。
隱含層節(jié)點數(shù)的確定:建立多層神經(jīng)網(wǎng)絡(luò)模型采用適當(dāng)隱含層節(jié)點數(shù)是很重要的,往往是網(wǎng)絡(luò)成敗的關(guān)鍵。隱含層接點數(shù)太少,網(wǎng)絡(luò)所獲得的解決問題的信息太少,網(wǎng)絡(luò)難以處理復(fù)雜的問題;隱含層接點數(shù)太多,網(wǎng)絡(luò)訓(xùn)練時間急劇增加,且容易是網(wǎng)絡(luò)訓(xùn)練過度,網(wǎng)絡(luò)過于處理復(fù)雜。
而且,一個網(wǎng)絡(luò)要能被推廣,它的可調(diào)參數(shù)應(yīng)當(dāng)與訓(xùn)練集中的數(shù)據(jù)點數(shù)相當(dāng)。在神經(jīng)網(wǎng)絡(luò)中,正如在所有建模問題中,要用足以表示訓(xùn)練集的最簡單網(wǎng)絡(luò)。只要有一個更小的網(wǎng)絡(luò)能夠工作就不要使用更大的網(wǎng)絡(luò),這就是所謂的剃刀原則。根據(jù)本實驗訓(xùn)練集的輸入、輸出數(shù)據(jù)對數(shù),根據(jù)經(jīng)驗,我們將隱含層節(jié)點數(shù)定為3至11個。根據(jù)以上所述采用試湊法對隱含層節(jié)點數(shù)進(jìn)行確定。經(jīng)過適當(dāng)增減隱含層節(jié)點數(shù)反復(fù)試驗比較網(wǎng)絡(luò)的預(yù)測誤差,發(fā)現(xiàn)隱層神經(jīng)元個數(shù)目為6個時,網(wǎng)絡(luò)的預(yù)測誤差最小,故確定的隱層神經(jīng)元個數(shù)目為6個。
CGBP神經(jīng)網(wǎng)絡(luò)的參數(shù)選擇以下:學(xué)習(xí)速度初始值一般選擇0.01到0.07之間,學(xué)習(xí)速度大,收斂速度快,反之則慢:若太大,則有可能修改過頭,導(dǎo)致網(wǎng)絡(luò)振蕩、發(fā)散等。只有合理的學(xué)習(xí)速度才提高計算效率.這里值選為0.01,根據(jù)實際情況,訓(xùn)練精度為0.001。初始的偏置值和權(quán)值由
MATLAB初始化函數(shù)自行得到。然后利用表1所示的激勵樣本做為輸入分別訓(xùn)練鋁、鐵、銅、不銹鋼四種BP神經(jīng)網(wǎng)絡(luò),訓(xùn)練成功后,利用另一組樣本來判別該神經(jīng)網(wǎng)絡(luò)的識別能力,得到裂紋深度的估計值。
圖3 AI訓(xùn)練集收斂圖
使用裂紋深度從0.5mm到9mm等10個鋁試件測量得到的渦流峰值作為訓(xùn)練集,而0.5mm到9mm等10個深度做為神經(jīng)網(wǎng)絡(luò)的目標(biāo)集。經(jīng)過若干次迭代后,該神經(jīng)網(wǎng)絡(luò)系統(tǒng)收斂于設(shè)計誤差值。其收斂曲線如圖3所示。
表2 Al測試集擬合結(jié)果
圖4 AI測試集擬合圖
試驗結(jié)果顯示訓(xùn)練成功后的BP神經(jīng)網(wǎng)絡(luò)有著良好的識別能力,能夠較好地根據(jù)輸入的AI試件的渦流峰值估計出其對應(yīng)的裂紋深度。相對誤差均在5%之內(nèi),而絕對誤差值都在10-2mm數(shù)量級以下,具有較高的識別能力、較好的識別精度。說明應(yīng)用BP神經(jīng)網(wǎng)絡(luò)對AI試件試驗結(jié)果的擬合是成功的。達(dá)到了相應(yīng)的識別精度。估計結(jié)果的擬合圖如圖4所示。
試驗結(jié)果顯示訓(xùn)練成功后的CGBP神經(jīng)網(wǎng)絡(luò)有著良好的識別能力,能夠較好地根據(jù)輸入的不同材質(zhì)試件的渦流峰值估計出其對應(yīng)的裂紋深度。相對誤差均在5%之內(nèi),而絕對誤差值都在10-1mm數(shù)量級以下,具有較高的識別能力、較好的識別精度。說明應(yīng)用BP神經(jīng)網(wǎng)絡(luò)對試驗結(jié)果的擬合是成功的。但是,要想BP神經(jīng)網(wǎng)絡(luò)保持一定精度要求。就必須保持檢測中的數(shù)據(jù)的穩(wěn)定性并取得足夠多的樣本,這樣才能利用神經(jīng)網(wǎng)絡(luò)來定量識別裂紋缺陷的深度值。
但是,由于神經(jīng)網(wǎng)絡(luò)方法是一種隱式的識別方法,其訓(xùn)練學(xué)習(xí)花費的時間比較多,學(xué)習(xí)的收斂速度比較慢,雖然從原理上講,只要隱含層節(jié)點數(shù),傳遞函數(shù)合適,收斂步數(shù)足夠多,采用BP算法訓(xùn)練的神經(jīng)網(wǎng)絡(luò)可以任意精度逼近任意的非線性系統(tǒng)。但是在實際的網(wǎng)絡(luò)訓(xùn)練過程中,由于BP算法中的搜索范圍越大,局部極小點愈多,從而訓(xùn)練愈容易限入局部極小點問題的影響,此外,由于受到訓(xùn)練樣本,計算機(jī)數(shù)值范圍、非線性作用函數(shù)的選取等的影響,BP算法的收斂精度并不令人滿意,有時甚至導(dǎo)致發(fā)散。尤其是渦流檢測信號極易受到外界干擾,測得一個比較穩(wěn)定的值比較困難的情況下,這種情況就更加容易發(fā)生。
[1] 孫曉云.智能型渦流無損檢測系統(tǒng)的開發(fā)與信號處理的研究[D]. 西安: 西安交通大學(xué), 2000: 3-26.
[2] 聞新. MATLAB神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計[M]. 北京: 機(jī)械工業(yè)出版社, 2000: 214-296.
[3] 葉子郁. 脈沖渦流檢測系統(tǒng)研究[D]. 四川: 西南科技大學(xué), 2005: 1-28.
[4] 王素菊. 神經(jīng)網(wǎng)絡(luò)在渦流無損檢測中的應(yīng)用[J]. 南京航空航天大學(xué)學(xué)報, 1995, 27(5): 697-701.
[5] 幸玲玲, 王東進(jìn). 渦流檢測中的組合神經(jīng)網(wǎng)絡(luò)模型[J]. 電子學(xué)報, 2002, 30(5): 734-737.
[6] B.Lebrun, Y.Jayet. Pulsed eddy current applications to the detection of deep cracks[J]. Material Evaluation, 1995, 53:1296-1300.
[7] 孫曉云等. 智能型渦流無損檢測儀的研制[J]. 無損檢測,2003, 25(9): 451-455.
[8] Martin T. Hagan. Neural Network design[M], China Machine Press 2002: 1-257.