韓軍 姚晟
(內蒙古科技大學機械工程學院,內蒙古 包頭 014010)
非可展直紋面由于其原理性誤差的存在,數控加工難度大,所以不斷減少加工誤差成為學者們的研究焦點。Liu X W[1]等提出柱刀的單點偏置法,但會造成單一的欠切或者過切誤差;嚴濤[2]等利用四點偏置法確定初始刀軸的位置,通過刀具包絡面逼近非可展直紋面為優化目標,利用最小二乘法進行優化,一定程度上減小了過切誤差;宮虎[3]等提等距面的概念,使得計算過程更加簡便;閻長罡[4]等對圓錐刀側銑加工非可展直紋面,提出一種基于粒子群優化算法的解決方案,該算法屬于智能算法,對比于之前學者研究,該方法顯著降低了包絡面與設計曲面的誤差;孔森[5]等提出基于MWOA 算法,利用鯨魚算法通過引入擾動因子來不斷更新適應度值較差的因子,取得較為理想的仿真效果。
模擬退火算法是一種隨機尋優算法,源于固體退火過程[6]。固體退火是先將固體加熱到一定溫度,再使固體溫度慢慢下降,使固體內部粒子排布更均勻,從而改變固體性質的過程。模擬退火算法首先規定一個初始溫度,隨著溫度不斷下降,在每一個溫度停留并接受新值,結合概率突跳性不斷尋優。模擬退火算法能越過當前最優值從而找到全局最優解,需要的解空間較多,局部搜索能力弱,迭代次數多。
粒子群算法源于鳥類覓食行為[7]。根據鳥類具體位置分布,在尋找食物時分享自身找到的食物信息,通過自身的信息共享使得整個鳥群找到食物最多的地方即最優解。粒子群算法簡單、參數少以及收斂速度快,但容易陷入局部極值。
結合兩種算法的優點,對圓柱刀刀具包絡面逼近設計曲面求解最優刀軸位置。首先利用三點偏置法確定初始刀軸位置姿態,其次建立一個初始刀位下的誤差判定函數,然后對初始刀軸位置進行初始種群的生成,最后利用模擬退火算法和粒子群混合算法進行刀軸位置尋優,尋找出單刀位下的最優位置。利用優化后的刀軸位置獲得刀軸軌跡面[8],進而計算得出包絡誤差。通過實際加工比較PSO 與SA-PSO 的效果。
直紋面包括2 種參數線 (u,v),其中u線為導線,v線為直母線,直紋面為一條直線u,沿著任意軌跡曲線v生成的曲面。其方程可表述為

將2條導線r0(u)和r1(u)統稱為r(u),設 τ(u) 為ρ(u)點處的單位方向矢量,則直紋面r(u,v)還可表示為

根據式(2)可得直紋面r(u,v)上任意一點的法矢為nr(u,v),方向與如下矢量平行。

采用三點偏置法建立初始刀具位置姿態,圖1為初始刀軸位置。

圖1 初始刀軸位置

非可展直紋面同一母線上的法向矢量方向不同,當刀具直徑大于0 時,無法使刀具滾動形成的包絡面完全貼合設計曲面,這就導致在刀具加工時,會沒有接觸到設計曲面或者嵌入到設計曲面里面,稱為非可展直紋面的原理性誤差。將刀軸離散化,設Q為刀軸上一點,記在刀軸上所有的離散點的集合為Q1,Q2,Q3,···,Qn,n∈[1,+∞)為離散點采樣點數。過Q1,Q2,Q3,···,Qn向設計曲面做垂線,垂足記為P1,P2,P3,···,Pn,垂足點記為 (ui,vi)。
假設所有刀軸位姿都處于最優位置,即設計曲面與包絡面完全貼合,那么在每一刀軸位姿下必有

式中:|QiPi|表示刀軸不同位置點到設計曲面的距離;rc(Qi)為刀軸上不同位置點的刀具半徑。
但實際情況是,由于原理性誤差的存在,刀具切向設計曲面時,會有不同程度的欠切或者過切誤差,這就導致理想最優位置無法實現,即||QiPi|-rc(Qi)|總大于零。所以在這種情況下,只能將問題轉化為求||QiPi|-rc(Qi)|的極小值問題。若在每一單刀位情況下,||QiPi|-rc(Qi)|都為最小值,那么刀具切削時產生的包絡面會無限逼近設計曲面,則原理性誤差會降到最小。
根據上述分析,得出誤差度量函數為

最優刀具位置姿態應是刀軸任意一點到設計曲面的距離與到刀具表面的距離平方和最小。刀具半徑rc(Qi)確 定,因此問題就轉化為求解 |QiPi|(刀軸一點到設計曲面的距離)。刀軸上任意一點作垂線到設計曲面上的垂足點 (ui,vi)滿足以下方程

式中:ru(ui,vi)為 刀軸一點Qi在u方向的切向矢量;rv(ui,vi)為 刀軸一點在v方向的切向矢量。
式(6)實際上就是求解一個函數極小值問題,誤差度量函數在現有條件下無法確定顯性的函數表達式,傳統方法難以進行求解,而智能算法在這方面具有顯著優勢。
傳統方法的缺點在于只能計算單個刀具位姿在某一位置與設計曲面的位置關系,判斷在這一位置是處于欠切或過切;只能使包絡面精度更好地逼近設計曲面,卻無法尋找到最優位置,并且計算過程復雜耗時。智能算法只需在MATLAB 中搭建曲面和刀具的數學模型,利用SA-PSO 算法對圖2 中所生成的球型區域范圍進行粒子尋優,隨機兩個粒子進行刀軸的生成,利用刀軸上給定的離散點多次調用誤差度量函數進行誤差判別,無需進行復雜的計算,耗時短,搜索范圍大,精確度高。

圖2 初始種群生成圖
如圖2 所示為最初樣本種群生成圖。圖中兩圓球是以刀具軸線兩端點A0′和A1′為球心,R為半徑生成。隨機連接兩個球體的各個位置,得到隨機線段作為初始刀軸位置,重復上述步驟,可在Matlab 中生成一個群體總的數量為G的刀軸矢量數組,記為K[0],K[1],K[2],···,K[G-1]。設刀軸矢量的兩端點A0′和A1′坐標分別為 (X0,Y0,Z0)和 (Xn,Yn,Zn),對于每一矢量數組K,一對粒子的共有6 個矢量坐標,共計G個6 維矢量作為混合算法的初始種群。
模擬退火算法的核心是蒙特卡洛判斷準則,判斷接受當前最小值公式為

式中:M為接受新解的概率。根據式(8)可得,當新值小于當前值時,必定接受新值;當新值大于當前值時,有一定概率被接受;當降溫系數h和初始溫度T不變時,新值超過當前值越多,那么新解被接受的概率越小。SA 的核心在于:不強制要求最新產生的解優于當前解。由于這種概念的引入,使得其避免產生群體粒子收斂速度過快而導致的無法獲得全局最優解的問題,顯示了其容易跳出局部極值的優越性。粒子群算法基于社會信息共享,通過比較當前自身適應度值與歷史最好適應度值;比較當前適應度值與全局最佳適應度值,達到快速收斂的目的,但容易出現后期收斂速度過快導致迭代停滯的情況。本文通過SA-PSO 混合算法,先利用SA 算法的全局收斂性,再利用粒子群算法局部收斂速度快的特性找到最優刀軸位置。SA-PSO 算法的流程圖如圖3 所示。

圖3 SA-PSO 算法流程圖
設計步驟如下:
(1)生成初始解。賦予種群粒子初始溫度為T、馬爾科夫鏈的長度,即等溫過程的迭代次數L、溫度下降速率h、算法終止溫度TN和初始解x0。
(2)產生新解與當前解的差值。根據當前解xi進行擾動,產生一個新解xj,計算出相應的函數值E(xj),得到 ΔE=E(xj)-E(xi)。
(3)判斷新解是否被接受。若 ΔE<0,則新解被接受;若 ΔE>0,則新解按概率進行判斷,Ti為當前溫度。
(4)算法終止條件。當模擬退火算法達到給定精度時停止迭代,終止條件為

式中:ε為一個足夠小的正數。
(5)賦值粒子群。將模擬退火算法算出的最優值賦值給粒子群。
(6)計算每個粒子的適應度值。將當前適應度值與歷史最佳值比較,并跟新pbest。
(7)粒子位置狀態更新。粒子在d維空間的速度和位置分別如下所示。

(8)重復步驟(6),再將pbest與群體最優位置離子gbest進行比較,若pbest的位置更優,則更新gbest。
(9)重復上述(7)和(8),達到迭代次數時停止計算并輸出gbest。
如圖4 所示S為加工所形成的刀具包絡面,S(u,v)為設計曲面,S1和S2為設計曲面S(u,v)的內外等距面,S1S2構成的包容域范圍包括S1S(u,v)和S2S(u,v)兩 部分。S1S(u,v)表示過切誤差,即刀具加工過切部分;S2S(u,v)為欠切誤差,即刀具沒有加工到的部分。包絡面誤差即刀具包絡面S無限逼近設計曲面S(u,v)時的誤差。整體優化的目標就是保證包容域范圍S1S2即ε極差最小。

圖4 圓柱刀側銑包絡誤差圖
如圖5 所示,過刀軸A'點向刀具側壁和設計曲面S(u,v)做垂線,分別得到A點和B點,并延長A'B與刀具側壁交于C點,B點為刀軸上A'點在設計曲面的映射點。線段BC為加工誤差,當A'C>A'B時,刀具與設計曲面過切;當A'C<A'B時,刀具與設計曲面欠切。由上述可得刀位上某點處的誤差方程為


圖5 側銑加工誤差計算
設計曲面為非可展直紋面,在加工階段,刀軸上不同位置點在設計曲面的垂直點不斷變化,其對應點的法向量也在做出相應變化,因此這里采用數值法進行求解[9],具體方法是:在MATLAB 搭建的設計曲面和刀具數學模型中根據第三節內容:刀軸上的給定離散點Qn向設計曲面S(u,v)作 垂足點Pn。具體操作對應圖5從A'點向設計曲面S(u,v)作的點B。利用MATLAB 進行數值計算,先確定從A'點向設計曲面作的垂足點B的具體坐標,并延長與刀具表面交于點C,這樣點C的坐標也得以確定。點B和點C的坐標已知,包絡誤差就為BC之間的距離,可計算出包絡誤差的具體大小。通過判斷點C在設計曲面的上方還是下方確定包絡誤差的正負值,正值為欠切,負值為過切。
本文葉片原始數據來源于某企業整體式葉輪,將單個葉片劃分為10 個葉面片體,選取第2 個區面片體為例。參數u和v分別為曲面片體的導線和母線。在第2 個曲面片體u方向上均勻選8 個刀位,在v方向的8 個刀位上,每個刀位均勻選取8 個點位作為誤差度量的判斷點。采用直徑為6 mm 的柱刀進行仿真。葉片曲面如圖2 所示。頂部導線和底部導線控制點如表1 所示。

表1 b 樣條曲線控制點
在u=0處進行誤差函數迭代的計算,計算結果如表2 所示。其中第3 次迭代優化結果最優。當在u其他位置時結果與其相似。

表2 單刀位誤差函數優化
圖6 為SA-PSO 的迭代圖,SA-PSO 算法的種群數目為50,規定最大迭代次數為100 次。如圖所示在第34 次迭代時,曲線趨于平緩。

圖6 單刀位優化迭代圖
圖7 為刀具初始位置的包絡誤差圖,在初始位置時,包絡誤差范圍在-0.5~0 mm,刀具與設計曲面呈過切狀態。

圖7 初始包絡誤差圖
圖8 為經PSO 算法優化后的包絡誤差圖和經SA-PSO 算法優化后的包絡誤差圖。圖8a 包絡誤差范圍在-0.015~0.015 mm,圖8b 包絡誤差范圍在-0.01~0.01 mm。兩種算法優化后的刀具和設計曲面之間的關系都呈欠切和過切相間分布,且SA-PSO算法誤差值明顯較單一的PSO 算法有所減小。

圖8 包絡誤差圖
圖9 為包絡誤差對比示意圖。圖9a 為初始刀軸包絡誤差,呈過切分布;圖9b 為算法優化后的包絡誤差圖,呈過切和欠切相間分布,對比于初始誤差減小很多。

圖9 包絡誤差對比示意圖
表3 為在PSO 和SA-PSO 算法的包絡誤差值。從表中可以看出,當計算到第七次時,兩種算法的都達到最優解,即極差值最小,分別為0.021 3 mm和0.016 9 mm。對比于單一的粒子群算法,混合算法的極差均值減小了14.7%。

表3 包絡誤差值 mm
表4 和表5 分別為初始刀軸軌跡面和經SA-PSO優化后的刀軸軌跡面。

表4 初始刀軸軌跡坐標

表5 優化后的刀軸軌跡坐標
仿真結果表明,SA-PSO 算法較于PSO 算法在包絡誤差方面有較大的精度提升。
在型號為HS5AXIS 350 的五軸機床上進行整體式葉輪加工。機床和加工過程分別如圖10 和11 所示。

圖10 實驗加工機床圖

圖11 加工過程圖
刀具的選擇極為重要,表6 為刀具參數表,其中T3 刀具的選擇與仿真加工的刀具一致。

表6 刀具參數
整體式葉輪加工工序分為粗加工、半精加工和精加工,需更換4 把刀具。表7 為數控加工工序表。

表7 數控加工工序表
圖12 為葉片側面加工比較圖,圖12a 為PSO算法加工,圖12b 為SA-PSO 算法加工。對表7 中步驟6 即精加工后的葉片,利用圖13 中的三坐標測量儀進行檢測,分別選取兩種算法精加工完成的葉片(表7 中步驟6)表面上與仿真位置相同的8×8 個點進行實際坐標測量,并與仿真結果所呈現坐標進行對比計算。

圖12 葉片側面加工比較圖

圖13 坐標測量圖
將兩種算法的實際加工誤差進行坐標誤差計算,得到如圖14 所示的實際加工誤差比較圖。橫坐標表示8 個刀位,縱坐標表示每個刀位上8 個點的誤差極差值,共計8×8 個點。從圖中可以看出在實際加工中,PSO 算法和SA-PSO 算法的極差值普遍大于表3 中仿真的極差值,表明實際加工與理想加工有一定的誤差。但SA-PSO 算法實物加工誤差比PSO 算法加工誤差的絕對值更接近于0,表明SAPSO 算法的加工誤差更小。

圖14 實際加工誤差比較圖
通過計算SA 算法和SA-PSO 混合算法的包絡誤差,得出在仿真加工同一非可展直紋面時SA-PSO算法比PSO 算法的包絡誤差的極差均值減小了14.7%;實驗加工和理論值存在一定誤差,但仍能為五軸側銑加工非可展直紋面提供一定的參考價值。未來研究將考慮一定的物理因素,如銑削力、刀具剛度等。同時混合算法的提出為解決非可展直紋面加工的問題提供了新的思路。