• <rp id="0794g"><acronym id="0794g"><u id="0794g"></u></acronym></rp>

    <span id="0794g"></span>
    <em id="0794g"><tr id="0794g"></tr></em>
  • <em id="0794g"><acronym id="0794g"></acronym></em>
  • <tbody id="0794g"></tbody>
    <em id="0794g"><tr id="0794g"><u id="0794g"></u></tr></em>

    <button id="0794g"></button>
    1. <tbody id="0794g"></tbody>
       
      齒輪工業領域服務平臺,行業技術的領航者;
      把齒輪傳動之脈搏,譜信息時代之新篇!
      當前位置: 首頁 » 技術中心 » 最新技術資訊

      基于BP神經網絡的滾刀工藝參數預測

      發布時間:2024-04-23 | 來源:組合機床與自動化加工技術 | 作者:彭康等
         為了保證滾刀加工質量的一致性,縮短滾刀工藝文件的制定周期,在對滾刀的粗加工工藝進行研究后,采用機器學習方法,將滾刀的幾何特征參數作為反向傳播(BP)神經網絡的輸入變量,滾刀粗加工中每個工序的工藝參數作為輸出結果,對滾刀粗加工過程中每個工序的工藝參數進行預測。針對傳統 BP 神經網絡最速下降法收斂速度慢的問題,在研究了“鋸齒現象”產生的原因后,提出了一種“修正下降方向”的反向傳播神經網絡算法。仿真結果說明,與傳統 BP 神經網絡相比,同等條件下,改進的 BP 神經網絡收斂速度加快,預測結果可靠。

        滾刀作為齒輪加工中應用最為廣泛的一種復雜加工刀具,具有較大的市場需求。由于齒輪零件的品種多變,滾刀生產為小批量、多品種、定制化生產。每一批滾刀需要一套對應加工工藝文件,加之滾刀生產周期縮短,導致工藝人員工作量驟增,影響了企業的生產效率和經濟效益。

        零件加工工藝文件制定主要分為工序決策和工藝參數決策,引入人工智能技術實現決策是當前學界的研究主流。付曉東利用專家系統結合 BP 神經網絡對軸類零件加工工序進行決策,徐昌鴻、金俊生等利用遺傳算法、蟻群算法等智能算法對零件加工工序進行決策;針對工藝參數決策,RAJA 等曾基于加工 時長和加工成本對切削用量進行決策,通過加工時長、加工成本兩個目標與切削三要素的函數關系建立多目標優化模型,對切削用量進行決策、優化,LIN 等考慮碳排放的問題,將加工時產生的碳排放量作為目標結合加工時長、加工成本目標對切削用量進行決策,有效地降低了加工時長、加工成本和加工碳排放量。

        本文針對滾刀的粗加工工藝進行決策,其粗加工工序相對固定,只需對各工序的切削用量進行決策。因此,研究一種基于滾刀幾何特征參數,快速準確地預測其加工工藝參數的數學模型顯得非常重要。本文采用人工神經網絡(ANN)對“經驗性”的滾刀加工工藝參數進行學習,然后,用訓練好的模型對新型號滾刀粗加工中各工序下的切削參數進行預測,規范工藝加工參數,減輕工藝制定人員的工作量,提升工藝設計效率,提高加工工件質量的一致性。

        一、數據集與模型構建

        數據集的建立

        本文根據 GB/ T6083?2016 推薦的滾刀尺寸,通過查閱相關文獻,編制對應滾刀的加工工藝參數,經某刀具廠工藝人員審核修改后,供反向傳播人工神經網絡(BP?ANN)訓練測試使用。數據集輸入的幾何特征參數包括關鍵特征參數和輔助決策特征參數共18 個。其中關鍵特征參數6 個,參考 GB/ T6083?2016 給定;輔助決策特征參數12 個,通過關鍵特征參數推理計算得到,如表1 所示。


        本文基于滾刀車銑復合加工機床,滾刀粗加工的加工工序為:車端面、軸臺,鉆孔,鏜空刀槽,鏜孔,車外圓,車螺紋,銑容屑槽。由于滾刀鏟齒形的特殊性,滾刀車銑復合加工機床未包含鏟車工序。數據集的輸出參數為每個工序的切削三要素—切削速度、進給量、背吃刀量。

        為了和生產車間的表達方式一致,車端面、軸臺,車外圓和銑容屑槽工序的切削速度均用主軸轉速表示;鉆孔的切削深度為鉆頭半徑,為已知量,無需決策;鏜削空刀槽由一刀鏜削完成,其鏜削深度為設計值,無需決策;由于毛坯直徑根據滾刀成品外徑通過公式計算得到,在車外圓時一刀車削完成,因此車外圓的切削深度為已知量,無需決策;車螺紋時根據螺紋螺距、頭數參數,給定切削速度可以計算得到進給量,車螺紋進給量不再決策。最終確定數據集輸出需要預測的工藝加工參數共 17 個,如表 2 所示。


        數據集共有 70 條滾刀加工工藝數據,將 70 條數據按照 75% 、25% 的比例圓整后隨機抽取、劃分出樣本集,分別為訓練樣本和測試樣本,即 53 條數據用于試驗開發適于本文的 ANN 模型,17 條數據用于測試已形成 ANN 模型的性能。

        由于模型輸入、輸出的參數屬性不同、大小迥異,為保證網絡在訓練過程中保持在一定范圍內,測試時得到良好的加工工藝參數預測效果,應當對網絡的輸入、輸出做歸一化處理,輸入變量的歸一化值 pk 由式(1)確定:


        式中,p為歸一化的第 k 個輸入值,即工藝數據歸一化后的第 k 個幾何特征參數;xik為未歸一化的第 i 條數據的第 k 個幾何特征參數值; 為未歸一化的第 k 個 幾何特征參數均值;σ(xk)為未歸一化的第 k 個幾何特征參數的標準差值。

        對理想輸出變量 tk 作類似預處理:


        式中,tk 為歸一化的第 k 個理想輸出值,即工藝數據歸一化后的第 k 個工藝參數;tik為未歸一化的第 i 條數據的第 k 個工藝參數值; 為未歸一化的第 k 個工藝參數均值;σ(tk)為未歸一化的第 k 個工藝參數的標準差值。

        BP 神經網絡模型構建

        BP 神經網絡(BP?ANN)在函數逼近、分類等問題中有著廣泛的應用,本文利用 MATLAB 構建上述 BP? ANN 模型。構建的 BP?ANN 結構包括輸入層、隱藏層和輸出層,其中輸入層與輸出層神經元的個數是確定的,即前文所述 18 個輸入值和 17 個輸出值;第一層為輸入層,輸入 18 個幾何特征參數;隱藏層的激活函數采用 logsig 函數作非線性的映射;輸出層的激活函數使用 pureline 函數,輸出 17 個工藝參數;以均方誤差作為性能指標,如式(3)所示;訓練樣本、測試樣本均作并行處理,輸出數據的權值、偏置調整量作累加求和取均值計算,結果作為該樣本該次迭代計算的權值調整量。


        式中,ai 為網絡的第 i 個輸出值,即歸一化的第 i 個工藝參數值;e 為誤差;因為是作并行處理,黑體表示向量(矩陣)。

        對于一般簡單的數據集,單個隱藏層來擬合這些函數來說是最佳的,既保證了擬合效果,且減小了過擬合的風險。在網絡訓練過程中,網絡結構對預測效果有十分重要的影響,試用不同的隱含層,根據平均相對誤差來選擇適合的模型。故本文采用一個隱藏層,而隱藏層神經元的數量通過試用不同的隱藏層神經元個數得到輸出值的均方誤差值大小來確定,BP? ANN 結構如圖 1 所示。


        經過 MATLAB 仿真,不同結構神經網絡的訓練均方誤差如表 3 所示。不同的隱藏層神經元個數在 200 次迭代時,輸出結果的均方誤差值均收斂。取 200 次迭代均方誤差值結果和 400 次迭代均方誤差值作為確定隱藏層神經元個數的參考,可見:隱藏層神經元個數 為 22 個時,均方誤差值明顯優于其它結構,故確定 BP?ANN 結構為 18?22?17。

       

        二、反向傳播神經網絡優化算法

        傳統反向傳播神經網絡的輸入經過權值、偏置、激活函數前向傳播后可以計算得到性能指標,本文即式(3)所示的均方誤差;為了使得性能指標值在下一次前向傳播減小,讓性能指標分別對每個權值、偏置求偏導,得到性能指標關于權值、偏置的梯度,取負梯度方向修改權值、偏置,得到下一次前向傳播的新的權值矩陣和偏置向量,其中取負梯度方向的做法就是最速下降法。

        由于應用領域技術的快速發展,BP 神經網絡算法也出現了一些弊端,其中最為突出的是在學習過程中誤差收斂速度過慢的問題。實踐證明最速下降法會存在“鋸齒現象” ,如圖 2 所示。在性能指標函數構成的 n 維超平面中,已知點的最速下降方向并不一定是直指全局最優點,其僅僅是已知點局部的最速下降方向,所以其搜索路徑呈現鋸齒狀,導致收斂速度變慢。


        共軛梯度法通過已知點處的梯度構造一組共軛方向,并沿這組方向進行搜索,求出目標函數的極小值點,這種方法具有二次終止性,能夠加快目標函數的收斂速度,減小“鋸齒現象”對收斂速度的影響。然而對于一般目標函數,共軛梯度法需要求解目標函數的 Hesse 矩陣,本文 BP?ANN 第二層的激活函數為 pureline 函數,其二階導數為 0,無法進行權值矩陣和偏置向量的更新。

        觀察圖 2,等值線任意一點 x(k)處的梯度為該點的法向量;且點 x(k)在遠離極值點時,該點的鄰域內任一點 xr(k)的梯度與點 x(k)處的梯度方向大致相同,如圖 3 所示,圖中虛線圓為 x(k)的鄰域,此時點 x(k)的鄰域不包含極值點。在迭代點鄰域內取隨機點 xr(k),將兩點處的梯度方向 dk、dkr合成為 dkn ,使新的下降方向梯度增大,能夠增大搜索步長,加快在遠離極值點時的收斂速度。


        在接近極值點時,如圖 4 所示,點 x( k)的鄰域包含極值點。此時,點 x(k)鄰域內任一點 xr( k)的梯度與點 x(k)處的梯度方向的夾角是隨機的。對于夾角大于 90° 的情況即圖 4,新的合成下降方向 dkn梯度的范數會小于 dk,起到縮小搜索步長的作用,避免搜索路徑越過極值點,而在極值點附近振蕩;夾角小于 90°時,新的下降方向還是起到一個加速的作用,但是在搜索后期應當避免。


        通過對搜索路徑的分析,本文 BP?ANN 反向傳播的下降方向基于迭代點的梯度,在迭代點的鄰域中隨機取一點獲得該隨機點的梯度,將兩者合成取反方向,如式(4)所示,使鄰域內隨機點的梯度去“修正”已知點的最速下降方向,以加快收斂速度,避免了計算目標函數的高階導數。


        式中,d(x(k))為第 k 次迭代點處修改后的下降方向;▽F(x(k))為第 k 次迭代點處梯度;▽F(xr( k))為第 k 次迭代點的鄰域隨機點處梯度。

        實驗發現:當到了迭代后期,迭代點靠近極值時,如果依舊使用鄰域隨機點的梯度去合成最速下降方向,可能會使搜索路徑偏離極小點而圍繞極小值點振蕩,使目標函數值一直處于一個范圍值內,無法逼近極小值。如前文分析,在接近極值點時,搜索路徑會出現圍繞極值點振蕩的現象,故本文 BP?ANN 僅在迭代前期使用鄰域隨機點梯度進行下降方向的修正,以加快收斂速度,搜索后期不再“修正”下降方向,直接使用最速下降方向逼近極小值點。表 4 為兩種算法前 9 次迭代計算的均方誤差值。


        傳統 BP?ANN 在 1066 次迭代后均方誤差達到 0. 1,改進的 BP?ANN 在 544 次迭代后均方誤差達到 0. 1。兩種算法的均方誤差值在同時達到 0.1 的條件下,改進后的 BP?ANN 相較傳統 BP?ANN 減小了 522 次迭代計算??梢姼倪M后的 BP?ANN 算法較傳統 BP? ANN 算法,在迭代前期其收斂速度有一定提升。

        三、模型的檢驗與評價

        本文采用 MATLAB 編寫算法,對修改的 BP?ANN 的算法進行驗證,訓練集、測試集分別按照數據集的 75% 和 25% 圓整劃分。本測試對滾刀粗加工過程中的加工參數進行預測,采用誤差極值和均方根誤差(RMSE)評價與檢測模型預測效果,預測結果如表 5 所示,如第一個車端面、軸臺工序中的轉速預測結果,測試集中轉速值范圍在 700 r/ min ~ 900 r/ min。本文模型對其轉速的預測值中,預測值的最大誤差為 - 14.79 r/ min,預測值的均方根誤差為 6.05 r/ min,在允許上下浮動 10 r/ min 的條件下,預測值的命中率為 94.12%,其余 16 個工藝參數的預測結果如表 5 所示。


        四、結論

        為能較準確地預測滾刀粗加工 7 個工序的 17 個切削參數,本文構建了基于 BP 神經網絡的工藝參數預測模型,并在傳統 BP?ANN 的基礎上,建立基于 BP? ANN 的改進預測模型,運用本文提出的改進 BP?ANN 對滾刀粗加工工藝參數建立預測模型,進行參數預測和模型性能檢驗,可得出以下結論:

        (1)在本文的應用背景下,仿真實驗證明采用改進 BP?ANN 算法能加快迭代前期的收斂速度。在性能指標同時到達 0.1 的條件下,改進 BP?ANN 算法收斂速度達到傳統 BP?ANN 的近兩倍,具有收斂速度較快的優勢。

        (2)本文中經訓練集訓練的神經網絡,其預測結果在許可范圍內可較為準確地得到滾刀加工中各工序對應工藝參數的預測值,命中率均在 80% 以上,證明了本文所提方法的可行性。

        參考文獻略.

      [ 技術中心搜索 ]  [ ]  [ 告訴好友 ]  [ 打印本文 ]  [ 關閉窗口 ]  [ 返回頂部 ]
      亚洲一卡2卡3卡4卡5卡精品中文,国产伦精品一区二区三,亚洲不卡,国产精品乱码一区二区三区,亚洲一卡2卡3卡4卡5卡精品中文
    2. <rp id="0794g"><acronym id="0794g"><u id="0794g"></u></acronym></rp>

      <span id="0794g"></span>
      <em id="0794g"><tr id="0794g"></tr></em>
    3. <em id="0794g"><acronym id="0794g"></acronym></em>
    4. <tbody id="0794g"></tbody>
      <em id="0794g"><tr id="0794g"><u id="0794g"></u></tr></em>

      <button id="0794g"></button>
      1. <tbody id="0794g"></tbody>