滕榮華,謝曉燕
隨著工業化進程的進一步加快,基于BP網絡模型下優化機械加工參數的網絡模型研究熱潮又一次興起,這不僅是基于BP網絡模型的改進,更主要的是基于智能優化機械加工參數的迫切需求。這是因為在進行機械加工時,不同毛坯的形位、尺寸以及裝卡偏心都不盡相同,存在一定的誤差,這些都可引起加工誤差的產生(也就是我們常說的誤差復映)。在實際的機械加工過程中,為減小誤差復映所產生的誤差,通常采用多次加工的方式,這是因為在每次的加工過程中我們都可以選取適當的加工余量進行加工。
目前,隨著BP網絡模型的進一步成熟和完善,完全可以利用BP網絡的非線性全局映射能力、泛化能力以及強大的自學能力,通過學習人的優化經驗,只要把加工的條件以及完成目標輸入BP網絡,就可以得到加工工件的加工次數、切削力以及加工余量等加工參數,實現基于BP網絡模型的機械加工參數的優化。
標準的BP算法主要存在的兩個方面的缺陷,分別為訓練時間過長和易陷入局部極小值。
遇到一些比較復雜的問題,用標準的BP算法來處理的話,由于其訓練的速率小,因此需要比較長的訓練時間,對于以上情況我們可以通過結合自適應學習率解決上述問題。可通過附加動量修正法幫助BP算法滑過誤差的極小值,避免BP網絡模型陷入局部極小值,其實現的主要途徑是修正BP網絡的權值。把結合自適應學習率與動量法的BP算法稱為改進的BP算法。下面利用一個具體的例子來直觀展現改進算法的優點。
實例1:有目標矢量1組和但輸入矢量24組為:
目標矢量: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算法、結合動量法以及改進的BP算法對實例1進行訓練,在訓練的過程中統一參數及網絡結構。其中要求訓練次數最多為8000次,目標輸出與實際輸出的誤差平方和令其等于0.8。
BP算法訓練的誤差曲線如圖1所示,其中,模型的學習速率設置為0.01。
結合動量法訓練的誤差曲線如圖2所示,其中動量常數使用原始值。
使用改進的BP算法訓練的誤差曲線如圖3所示,其中,動量常數以及學習速率都使用初始值。
從三幅誤差曲線圖能夠看出,使用標準算法訓練的次數多,效果最差;訓練5600次后結合動量法完成目標要求;只訓練了1600次,改進的算法訓練便達到了要求。因此,使用改進算法具有最佳的效果。

圖1 標準BP算法訓練的誤差曲線

圖2 結合動量法訓練的誤差曲線

圖3 改進的BP算法訓練的誤差曲線
未加工的毛坯工件A如圖4所示,其外圍近似橢圓形狀,但存在一定的形狀誤差,我們令ap1和ap2分別表示刀具在橢圓長軸和短軸上的背吃刀量,分別用y1和y2表示讓刀量,若加經過第一次加工后的機械工件仍有形狀誤差,則需繼續加工。

圖4 毛坯工件A的誤差復映問題示意圖
誤差復映系數ε表示為:

其中,Fy1表示橢圓長軸處的徑向切削分力,Fy2表示橢圓短軸處的徑向切削分力,而k系表示工藝系統的剛度。而刀削力Fy可表示為:

其中,與刀具前角等切削因素相關的系數用Cy表示,進給量用f表示,ap代表背吃刀量,加工的工件材料的硬度用HBS表示,y、x、n分別代表它們的指數,那么誤差復映系數可表示為:

對車削進行近似,并令x≈1,則式(3)可表示為:

我們用QQ表示加工前工件的毛坯誤差,用QH來表示加工完成后工件的誤差,用ε1、ε2、ε3表示第1、2、3次工件加工的復映系數,那么我們可得出:

在上面的式(4)中,Cy由刀具的前角決定,在對同種類型的工件進行加工時,所使用的刀具相同,因此Cy不變。綜合式(4)和式(5),我們可以得到:

通過式(6)能夠得出加工完成后的工件誤差與工件的硬度、進給量、加工次數、工藝系統的剛度以及毛坯自身的差異等存在復雜的非線性關系。從實際上來講,如果采用的切深不同,加工完成后的誤差就會不同。因此我們用P1、P2表示每次切深與總切深的比值,用Z表示加工次數。得出相關參數,其中,輸入參數為k系、HBS、f、QQ以及QH,輸出參數為P1、P2,然后對BP網絡模型進行學習、訓練,得出上述變量的非線性函數的逼近。
實驗中選取φ45 的鑄鐵、30的鋼、40的鋼以及鑄鋁等不同型號的棒料進行加工。在實際的加工過程中,會出現數值大小相差較大的變量,因此,在實驗初期需要對所有的變量進行標準化,目的就是使每個變量處于同等重要的位置。可通
3.2.1 隱層數的確定
隱層數的增多會降低誤差曲面梯度的穩定性,因此在解決實際問題時通常采用較少的隱層;但在解決存在不連續映射關系的問題時,如果使用一個隱層,無論增加多少個神經元,進行多少次訓練,都到達不了目標誤差,因此需要再增加一個隱層。經過大量的實驗發現,一般采用兩個隱層就能很好的解決問題,因此,通常情況下采用兩個隱層。
3.2.2 隱層神經元數的選擇
隱層神經元數的選擇對整個網絡來說顯得極為重要,這是因為如果隱層神經元的數量太少,會導致不足匹配;而如果選擇的神經元的數量太多,又會增加訓練時間以及局部極小值的點數。通過大量的實驗發現,隱層神經元數的選擇應服從從輸入層到輸出層等比遞減的金字塔規則,因此,多數的神經元應在第一層被選擇。
在測試過程中,先對Z值反變換然后再進行網絡輸出,初始權值在(-1,1)之間選,并用S1表示第一層神經元的個數,這樣做的目的是在保證得到較好的訓練結果的前提下盡量減少訓練次數。其訓練和測試流程如圖5所示。
3.4.1 測試
用訓練集對改進的BP網絡的測試結果如表1所示。其中EB表示加工前的誤差,EE表示加工后誤差的輸入量。

圖5 訓練及測試流程圖

表2 測試集對網絡測試結果
用測試集對BP改進的網絡的測試結果如表2所示。
3.4.2 測試結果
通過表1、2可看出,無論是使用訓練集還是測試集對改進的BP網絡進行測試,改進的BP網絡都能實現較好的收斂性,達到目標誤差的要求,可以很好地對機械加工中的參數進行優化。
用改進的BP網絡模型對機械加工參數進行優化,能避免過去純粹依靠工人經驗的盲目性,并通過自身的訓練和學習能力,適應不同類型的機械工件的加工條件和要求,極大地提高了優化機械參數的質量和效率。
[1] ABDENNOUR A. Shortterm MPEG-4 video traffic predictionusing ANFIS[J].International Journal of NetworkManagement, 2010,15(6): 377-392.
[2] 吳曉莉, 林哲輝. MATLAB輔助模糊系統設計[M]. 西安: 西安電子科技大學出版社, 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]. 北京: 清華大學出版社, 2009.
[6] 盧秉恒, 于駿一, 張福潤, 等. 機械制造技術基礎[M]. 北京: 機械工業出版社, 2008.
[7] LOTFI A Z, BERKELEY C. Fuzzy logic toolbox for usewith MATLAB user’s guide[M]. USA, MA: TheMathWorks Inc,2010.