滕榮華,謝曉燕
隨著工業(yè)化進程的進一步加快,基于BP網(wǎng)絡(luò)模型下優(yōu)化機械加工參數(shù)的網(wǎng)絡(luò)模型研究熱潮又一次興起,這不僅是基于BP網(wǎng)絡(luò)模型的改進,更主要的是基于智能優(yōu)化機械加工參數(shù)的迫切需求。這是因為在進行機械加工時,不同毛坯的形位、尺寸以及裝卡偏心都不盡相同,存在一定的誤差,這些都可引起加工誤差的產(chǎn)生(也就是我們常說的誤差復(fù)映)。在實際的機械加工過程中,為減小誤差復(fù)映所產(chǎn)生的誤差,通常采用多次加工的方式,這是因為在每次的加工過程中我們都可以選取適當(dāng)?shù)募庸び嗔窟M行加工。
目前,隨著BP網(wǎng)絡(luò)模型的進一步成熟和完善,完全可以利用BP網(wǎng)絡(luò)的非線性全局映射能力、泛化能力以及強大的自學(xué)能力,通過學(xué)習(xí)人的優(yōu)化經(jīng)驗,只要把加工的條件以及完成目標(biāo)輸入BP網(wǎng)絡(luò),就可以得到加工工件的加工次數(shù)、切削力以及加工余量等加工參數(shù),實現(xiàn)基于BP網(wǎng)絡(luò)模型的機械加工參數(shù)的優(yōu)化。
標(biāo)準的BP算法主要存在的兩個方面的缺陷,分別為訓(xùn)練時間過長和易陷入局部極小值。
遇到一些比較復(fù)雜的問題,用標(biāo)準的BP算法來處理的話,由于其訓(xùn)練的速率小,因此需要比較長的訓(xùn)練時間,對于以上情況我們可以通過結(jié)合自適應(yīng)學(xué)習(xí)率解決上述問題??赏ㄟ^附加動量修正法幫助BP算法滑過誤差的極小值,避免BP網(wǎng)絡(luò)模型陷入局部極小值,其實現(xiàn)的主要途徑是修正BP網(wǎng)絡(luò)的權(quán)值。把結(jié)合自適應(yīng)學(xué)習(xí)率與動量法的BP算法稱為改進的BP算法。下面利用一個具體的例子來直觀展現(xiàn)改進算法的優(yōu)點。
實例1:有目標(biāo)矢量1組和但輸入矢量24組為:
目標(biāo)矢量:P=-1:0.1:1;
但輸入矢量:T=[-0.860 -0.025 0.345 0.456 0.660 0.580 0.465 0.376 0.242…-0.190 -0.453 -0.550 -0.420-0.168 0.056 0.045 0.356…0.410 0.366 0.105 -0.042-0.258 -0.345 -0.420]
分別使用BP算法、結(jié)合動量法以及改進的BP算法對實例1進行訓(xùn)練,在訓(xùn)練的過程中統(tǒng)一參數(shù)及網(wǎng)絡(luò)結(jié)構(gòu)。其中要求訓(xùn)練次數(shù)最多為8000次,目標(biāo)輸出與實際輸出的誤差平方和令其等于0.8。
BP算法訓(xùn)練的誤差曲線如圖1所示,其中,模型的學(xué)習(xí)速率設(shè)置為0.01。
結(jié)合動量法訓(xùn)練的誤差曲線如圖2所示,其中動量常數(shù)使用原始值。
使用改進的BP算法訓(xùn)練的誤差曲線如圖3所示,其中,動量常數(shù)以及學(xué)習(xí)速率都使用初始值。
從三幅誤差曲線圖能夠看出,使用標(biāo)準算法訓(xùn)練的次數(shù)多,效果最差;訓(xùn)練5600次后結(jié)合動量法完成目標(biāo)要求;只訓(xùn)練了1600次,改進的算法訓(xùn)練便達到了要求。因此,使用改進算法具有最佳的效果。
圖1 標(biāo)準BP算法訓(xùn)練的誤差曲線
圖2 結(jié)合動量法訓(xùn)練的誤差曲線
圖3 改進的BP算法訓(xùn)練的誤差曲線
未加工的毛坯工件A如圖4所示,其外圍近似橢圓形狀,但存在一定的形狀誤差,我們令ap1和ap2分別表示刀具在橢圓長軸和短軸上的背吃刀量,分別用y1和y2表示讓刀量,若加經(jīng)過第一次加工后的機械工件仍有形狀誤差,則需繼續(xù)加工。
圖4 毛坯工件A的誤差復(fù)映問題示意圖
誤差復(fù)映系數(shù)ε表示為:
其中,F(xiàn)y1表示橢圓長軸處的徑向切削分力,F(xiàn)y2表示橢圓短軸處的徑向切削分力,而k系表示工藝系統(tǒng)的剛度。而刀削力Fy可表示為:
其中,與刀具前角等切削因素相關(guān)的系數(shù)用Cy表示,進給量用f表示,ap代表背吃刀量,加工的工件材料的硬度用HBS表示,y、x、n分別代表它們的指數(shù),那么誤差復(fù)映系數(shù)可表示為:
對車削進行近似,并令x≈1,則式(3)可表示為:
我們用QQ表示加工前工件的毛坯誤差,用QH來表示加工完成后工件的誤差,用ε1、ε2、ε3表示第1、2、3次工件加工的復(fù)映系數(shù),那么我們可得出:
在上面的式(4)中,Cy由刀具的前角決定,在對同種類型的工件進行加工時,所使用的刀具相同,因此Cy不變。綜合式(4)和式(5),我們可以得到:
通過式(6)能夠得出加工完成后的工件誤差與工件的硬度、進給量、加工次數(shù)、工藝系統(tǒng)的剛度以及毛坯自身的差異等存在復(fù)雜的非線性關(guān)系。從實際上來講,如果采用的切深不同,加工完成后的誤差就會不同。因此我們用P1、P2表示每次切深與總切深的比值,用Z表示加工次數(shù)。得出相關(guān)參數(shù),其中,輸入?yún)?shù)為k系、HBS、f、QQ以及QH,輸出參數(shù)為P1、P2,然后對BP網(wǎng)絡(luò)模型進行學(xué)習(xí)、訓(xùn)練,得出上述變量的非線性函數(shù)的逼近。
實驗中選取φ45 的鑄鐵、30的鋼、40的鋼以及鑄鋁等不同型號的棒料進行加工。在實際的加工過程中,會出現(xiàn)數(shù)值大小相差較大的變量,因此,在實驗初期需要對所有的變量進行標(biāo)準化,目的就是使每個變量處于同等重要的位置。可通
3.2.1 隱層數(shù)的確定
隱層數(shù)的增多會降低誤差曲面梯度的穩(wěn)定性,因此在解決實際問題時通常采用較少的隱層;但在解決存在不連續(xù)映射關(guān)系的問題時,如果使用一個隱層,無論增加多少個神經(jīng)元,進行多少次訓(xùn)練,都到達不了目標(biāo)誤差,因此需要再增加一個隱層。經(jīng)過大量的實驗發(fā)現(xiàn),一般采用兩個隱層就能很好的解決問題,因此,通常情況下采用兩個隱層。
3.2.2 隱層神經(jīng)元數(shù)的選擇
隱層神經(jīng)元數(shù)的選擇對整個網(wǎng)絡(luò)來說顯得極為重要,這是因為如果隱層神經(jīng)元的數(shù)量太少,會導(dǎo)致不足匹配;而如果選擇的神經(jīng)元的數(shù)量太多,又會增加訓(xùn)練時間以及局部極小值的點數(shù)。通過大量的實驗發(fā)現(xiàn),隱層神經(jīng)元數(shù)的選擇應(yīng)服從從輸入層到輸出層等比遞減的金字塔規(guī)則,因此,多數(shù)的神經(jīng)元應(yīng)在第一層被選擇。
在測試過程中,先對Z值反變換然后再進行網(wǎng)絡(luò)輸出,初始權(quán)值在(-1,1)之間選,并用S1表示第一層神經(jīng)元的個數(shù),這樣做的目的是在保證得到較好的訓(xùn)練結(jié)果的前提下盡量減少訓(xùn)練次數(shù)。其訓(xùn)練和測試流程如圖5所示。
3.4.1 測試
用訓(xùn)練集對改進的BP網(wǎng)絡(luò)的測試結(jié)果如表1所示。其中EB表示加工前的誤差,EE表示加工后誤差的輸入量。
圖5 訓(xùn)練及測試流程圖
表2 測試集對網(wǎng)絡(luò)測試結(jié)果
用測試集對BP改進的網(wǎng)絡(luò)的測試結(jié)果如表2所示。
3.4.2 測試結(jié)果
通過表1、2可看出,無論是使用訓(xùn)練集還是測試集對改進的BP網(wǎng)絡(luò)進行測試,改進的BP網(wǎng)絡(luò)都能實現(xiàn)較好的收斂性,達到目標(biāo)誤差的要求,可以很好地對機械加工中的參數(shù)進行優(yōu)化。
用改進的BP網(wǎng)絡(luò)模型對機械加工參數(shù)進行優(yōu)化,能避免過去純粹依靠工人經(jīng)驗的盲目性,并通過自身的訓(xùn)練和學(xué)習(xí)能力,適應(yīng)不同類型的機械工件的加工條件和要求,極大地提高了優(yōu)化機械參數(shù)的質(zhì)量和效率。
[1] ABDENNOUR A. Shortterm MPEG-4 video traffic predictionusing ANFIS[J].International Journal of NetworkManagement, 2010,15(6): 377-392.
[2] 吳曉莉, 林哲輝. MATLAB輔助模糊系統(tǒng)設(shè)計[M]. 西安: 西安電子科技大學(xué)出版社, 2008.
[3] DEMUTH H, BEALE M, HAGAN M. Neural networktoolbox for use with MATLAB user’s guide[M]. USA, MA: The MathWorks Inc, 2009.
[4] JIANG M, GIELEN G, ZHANG B, et al. Fast learningalgorithms for feedforward neural networks[J].AppliedIntelligence, 2008, 18(1): 37-54.
[5] 何強, 何英. MATLAB 擴展編程[M]. 北京: 清華大學(xué)出版社, 2009.
[6] 盧秉恒, 于駿一, 張福潤, 等. 機械制造技術(shù)基礎(chǔ)[M]. 北京: 機械工業(yè)出版社, 2008.
[7] LOTFI A Z, BERKELEY C. Fuzzy logic toolbox for usewith MATLAB user’s guide[M]. USA, MA: TheMathWorks Inc,2010.