李鵬飛,劉 威,2,張子煜,王天力,范呂陽
(1.蘇州科技大學(xué) 機械工程學(xué)院,江蘇 蘇州 215011;2.蘇州科技大學(xué) 天平學(xué)院,江蘇 蘇州 215011)
在數(shù)控加工刀軌生成中,逼近誤差是指在進給方向上刀具從一個刀位點運動到下一個刀位點形成的包絡(luò)面與刀觸點軌跡線之間的最大誤差,逼近誤差與相鄰刀觸點、刀位點的距離(即步長)正相關(guān)。步長規(guī)劃方法主要有等參數(shù)法、等距法、步長篩選法和等誤差步長法[1-3]。
在三軸球頭刀精加工中,逼近誤差計算的實質(zhì)是在刀觸點軌跡線上搜索一刀觸點,此刀觸點到刀位點連線的距離為最值,是典型的多目標(biāo)優(yōu)化問題。目前計算逼近誤差一般采用幾何迭代法[4-6],其原理在提高計算效率方面的瓶頸,導(dǎo)致需要大量逼近誤差計算的高精度刀軌和等誤差刀軌的生成時間難以減少。
智能算法是對生物群體協(xié)同搜索機制和物理原理驅(qū)動下的變化現(xiàn)象抽象、提煉出的優(yōu)化算法,在全局尋優(yōu)的精度和效率上比傳統(tǒng)的迭代法優(yōu)勢明顯[7-9],理論上能夠用于在刀觸點軌跡線上搜索與刀位點連線的距離為最值的點。
作為應(yīng)用最廣泛的智能算法之一,粒子群算法[10]模擬鳥群或蜂群的覓食行為進行最優(yōu)解搜索,算法思路清晰、計算高效,被廣泛應(yīng)用于多個領(lǐng)域[11-13]。但粒子群算法易過早收斂、陷入局部最優(yōu)[14],為此,文獻(xiàn)[15]提出了帶約束因子的粒子群優(yōu)化算法,以提高算法靈活性和收斂速度。文獻(xiàn)[16-19]則對慣性權(quán)重的變化分別提出了模糊系統(tǒng)動態(tài)調(diào)整、線性遞減、隨機慣性、非線性遞減的優(yōu)化策略,以保持局部最優(yōu)和全局最優(yōu)之間的平衡。文獻(xiàn)[20]提出一種跟隨非線性慣性權(quán)重系數(shù)變化的動態(tài)學(xué)習(xí)因子,以提高算法的全局搜索能力和局部搜索精度。
受粒子群算法、逼近誤差計算過程原理相似和上述研究成果啟發(fā),本文建立逼近誤差計算的刀觸點區(qū)間與粒子搜索區(qū)間之間的映射關(guān)系,提出逼近誤差適應(yīng)度函數(shù)、慣性權(quán)重因子和學(xué)習(xí)因子的創(chuàng)建和優(yōu)化方法,最終完成整個粒子群算法的構(gòu)造,實現(xiàn)逼近誤差的高效計算。
現(xiàn)有方法常以刀觸點軌跡線上的弦弧之間的弓高誤差近似作為逼近誤差[21],如圖1 所示,一般將相鄰兩刀觸點PiCC、Pi+1CC間的刀觸點軌跡線視為等半徑圓弧,即Ri=Ri+1。已知弓高誤差最大允許值eG、刀觸點PiCC及其曲率半徑Ri,由勾股定理可得式(1),變換可得式(2)并求出步長Di。然而真實的逼近誤差是刀具包絡(luò)面與刀觸點軌跡線之間的誤差,刀觸點軌跡線曲率越大,與弓高誤差之間的差值越大。且在凸區(qū)域時,真實逼近誤差大于弓高誤差,凹區(qū)域時小于弓高誤差。
圖1 弓高誤差示意圖
在三軸精加工中,球頭刀包絡(luò)面為以相鄰刀位點連線為軸線,半徑為R 的圓柱體,相鄰刀位點PiCL和Pi+1CL之間的真實逼近誤差ei如圖2 所示,其中PiCC、Pi+1CC為刀觸點,點pj為刀觸點軌跡線上與PiCL、Pi+1CL距離最小的點,逼近誤差ei可由式(3)表示。
圖2 逼近誤差示意圖
其中,R 為球頭刀半徑,Li為刀觸點線上的點pj到線段PiCLPi+1CL的距離。
真實誤差計算過程可視為在刀觸點軌跡線上搜索到刀位點連線距離為最值的特定數(shù)據(jù)點的過程,現(xiàn)有常用方法離散法是在刀觸點軌跡線上獲取離散數(shù)據(jù)點并進行計算,但需生成大量離散數(shù)據(jù)點才能滿足高精度要求,計算效率難以提高已成為真實誤差廣泛應(yīng)用的最大瓶頸。
粒子群算法的每個粒子都具有由適應(yīng)度函數(shù)決定的適應(yīng)值,粒子在每次迭代中不斷更新,并逐漸接近理論最優(yōu)粒子及其最優(yōu)解。
設(shè)在一個D 維搜索空間中有N 個粒子,第i 個粒子的位置和“飛行”速度如式(4)和(5)所示,歷次迭代搜索到的個體最優(yōu)值位置參數(shù)pbest可由式(6)表示,歷次迭代搜索到的種群最優(yōu)值位置參數(shù)可由式(7)表示。
第k 代的第i 個粒子的第d 維向第k+1 代進化時速度和位置的更新如式(8)所示,其中d=1,2,3,…,D,w 為慣性權(quán)重因子,c1、c2分別為個體、群體學(xué)習(xí)因子,、r1、r2(0,1)之間相互獨立的隨機數(shù),f 為適應(yīng)度函數(shù),粒子群中兩個極值pbest和gbest由式(9)和(10)求出。隨著迭代次數(shù)的增加,所獲得的極值逐漸逼近理論解,一般以迭代次數(shù)上限或極值變化量(即計算精度)為終止條件結(jié)束算法。
逼近誤差的計算過程是在相鄰刀觸點之間搜索距離最值的過程,與粒子群算法相同,也是一種全局尋優(yōu)過程。為了實現(xiàn)運用粒子群算法計算逼近誤差,提出適應(yīng)度函數(shù)、粒子搜索區(qū)間、慣性權(quán)重和學(xué)習(xí)因子的建立和優(yōu)化方法。本節(jié)以任意一行刀觸點軌跡CC 中第i 個和i+1 個刀觸點PiCC、Pi+1CC及其刀位點PiCL、Pi+1CC為例闡述算法。
令刀觸點PiCC、Pi+1CC在刀觸點軌跡線上的參數(shù)分別為ui、ui+1,則逼近誤差所對應(yīng)的點位于區(qū)間[ui、ui+1]的局部刀觸點軌跡線上。與點坐標(biāo)相比,參數(shù)u 僅一維,且直接決定點的相對位置和坐標(biāo),更適合作為粒子。為了提高算法的規(guī)范性和普適性,提出將局部刀觸點軌跡線映射到標(biāo)準(zhǔn)區(qū)間[0,1],以[0,1]內(nèi)的離散數(shù)值作為實際計算的粒子。任意刀觸點軌跡線上的點pj的粒子mj可由式(11)求出,映射過程如圖3 所示。
圖3 刀觸點映射到標(biāo)準(zhǔn)區(qū)間示意圖
由式(3)可知,刀位點PiCL、Pi+1CL之間的逼近誤差是刀觸點PiCC、Pi+1CC之間的刀觸點軌跡到線段PiCLPi+1CL的距離與刀具半徑R 差值的最值,因此兩者之間的差值是理想的適應(yīng)度函數(shù)。對于區(qū)間[0,1]內(nèi)的任意第j 個粒子mj,其適應(yīng)度的計算流程如下:
步驟1:運用式(12)計算出粒子mj所對應(yīng)的刀觸點的參數(shù)值uj,代入式(13)計算出參數(shù)值uj在刀觸點軌跡線CC 上對應(yīng)的點pj。
步驟2:運用式(3)計算出刀觸點到刀位點連線之間的距離Lj。
步驟3:運用式(14)計算出粒子mj的適應(yīng)度值。
粒子群算法的初期一般需要較大的慣性權(quán)重因子以獲得較強的全局搜索能力,并隨著迭代次數(shù)增加遞減,從而加快粒子收斂到全局最優(yōu)[22]。
為了解決常用的慣性權(quán)重線性遞減方法在前期全局搜索能力弱的不足,本文利用余弦曲線在區(qū)間[0,π/2]內(nèi)的前、中、后段下降速度由慢到快的非線性特點,提出將粒子群優(yōu)化算法的迭代次數(shù)映射到此區(qū)間,獲得的慣性權(quán)重函數(shù)如式(15)所示,其中k 為迭代次數(shù),wmax、wmin為慣性權(quán)重系數(shù)最大、最小值。此函數(shù)能夠在搜索初期、中期、后期分別獲得較慢、較快、快速的慣性權(quán)重下降速度,從而使粒子的全局搜索能力在初期時較強,隨后逐漸減弱,而局部搜索能力逐漸增強。
個體、群體學(xué)習(xí)因子,分別決定了自身、群體最優(yōu)位置在粒子飛行速度計算中的權(quán)重,當(dāng)時,粒子的運動更偏向個體最優(yōu)方向,反之則更偏向群體最優(yōu)方向。
在迭代初期,由于距離最優(yōu)解較遠(yuǎn),粒子應(yīng)注重自我認(rèn)知,根據(jù)個體最優(yōu)解進行搜索;在迭代中后期,粒子較為接近最優(yōu)解,應(yīng)注重群體認(rèn)識,側(cè)重群體最優(yōu)解鄰域的局部搜索。為此,本文對學(xué)習(xí)因子采用線性變化的策略,計算式(16)所示,其中c1max、c1min、c2max和c2min分別為個體、群體學(xué)習(xí)因子的最大、最小值,隨著迭代次數(shù)k 的增加,c1、c2分別減小、增大。
本節(jié)基于上述逼近誤差和粒子群算法的原理和優(yōu)化方法,設(shè)計基于粒子群優(yōu)化算法的逼近誤差計算流程。通過計算粒子適應(yīng)度值,迭代求出最優(yōu)粒子及其最優(yōu)適應(yīng)度值,以設(shè)置的計算精度作為計算終止條件,最后輸出最優(yōu)解作為逼近誤差。整個計算流程示意圖如圖4 所示,詳細(xì)過程如下:
圖4 逼近誤差計算流程圖
步驟1:將搜索區(qū)間[ui,ui+1]映射到[0,1],設(shè)置種群規(guī)模N、速度閾值vmax、vmin和計算精度。
步驟2:隨機所有粒子的初始位置和初始速度。
步驟3:根據(jù)2.2 節(jié)計算出粒子的適應(yīng)度值獲得群體最優(yōu)粒子gbest。
步驟4:以式(15)自適應(yīng)改變慣性權(quán)重w,根據(jù)式(16)自適應(yīng)改變學(xué)習(xí)因子c1、c2。
步驟5:以式(8)更新粒子速度和位置。
步驟6:根據(jù)2.2 節(jié)計算出粒子的適應(yīng)度值。
步驟7:以式(9)和(10)更新個體最優(yōu)pbest和全局最優(yōu)gbest。
步驟8:如果滿足計算精度,轉(zhuǎn)到步驟9,否則轉(zhuǎn)到步驟3 繼續(xù)迭代。
步驟9:輸出當(dāng)前最優(yōu)粒子位置和適應(yīng)度值,即最大逼近誤差位置和逼近誤差值,算法終止。
算法運算過程中,慣性權(quán)重最大最小值wmax和wmin的取值對算法性能影響很大,然而取值并無明確的理論依據(jù),多采用實驗法選值,常將其設(shè)置在0.4 到0.9 之間[23]。算法選用了多組數(shù)值進行測試,當(dāng)wmax=0.9、wmin=0.4 時,性能提高明顯,代入式(15)獲得慣性權(quán)重w 計算式,隨迭代次數(shù)k 的變化如圖5 所示。
圖5 慣性權(quán)重變化圖
與慣性權(quán)重類似,常將個體、群體學(xué)習(xí)因子的最大、最小值c1max、c1min、c2max和c2min設(shè)置為2[23]。本文結(jié)合優(yōu)化后慣性權(quán)重的變化趨勢,選用了多組數(shù)值組合進行了測試,當(dāng)c1max=2.5、c1min=1.6、c2max=2.2、c2min=1.3 時,學(xué)習(xí)因子變化如圖6 所示,滿足了前中期加強粒子運動遍歷性、全局搜索能力和后期加強局部搜索能力的要求。
圖6 學(xué)習(xí)因子變化圖
完成上述數(shù)值選取后,在課題組自主開發(fā)的CAM 軟件上完成了所有算法的程序開發(fā),實現(xiàn)了逼近誤差計算功能。
以圖7(a)中的曲面為例生成刀軌,曲面尺寸為120 mm×120 mm×45 mm,刀具為直徑10 mm 的球頭刀,刀軌行數(shù)為80,按照等誤差步長法生成刀軌,計算精度為0.1。分別采用幾何迭代算法[6]和本文算法進行等誤差刀軌計算,生成的逼近誤差范圍為9~10 的等誤差刀軌如圖7(b)所示,再取4 種不同范圍逼近誤差進行計算,運行環(huán)境為Intel i7-10700、16G RAM 的計算機,所消耗的時間見表1,本文算法比幾何迭代算法的計算時間減少了16%以上,對比標(biāo)準(zhǔn)粒子群優(yōu)化算法的計算時間減少了7%以上,驗證了在計算效率上的優(yōu)勢。
圖7 自由曲面與生成的等誤差刀軌
為了提高數(shù)控加工中逼近誤差的計算效率,本文對粒子群優(yōu)化算法計算逼近誤差進行了研究。為了提高算法普適性,將刀觸點軌跡線上搜索范圍映射到標(biāo)準(zhǔn)區(qū)間,提出了適應(yīng)度函數(shù),優(yōu)化了慣性權(quán)重因子和學(xué)習(xí)因子的變化策略。實驗結(jié)果表明,所提出的算法耗時更短。在未來的研究中,可進一步在結(jié)構(gòu)、參數(shù)優(yōu)化等方面改進算法,或探索其它類型的智能算法,以提高逼近誤差的計算效率。