李乾坤,趙現(xiàn)朝,高 鵬,石繼超,霍曉銳
(上海交通大學機械與動力工程學院,上海 200240)
五自由度數(shù)控(CNC)機床通常用于加工具有復雜曲面的工件,如葉輪、渦輪葉片、航天航空零部件等[1]。盡管數(shù)控機床能夠遵循刀具路徑的樣條表示,但由計算機輔助制造(CAM)系統(tǒng)生成的線性刀具路徑(或G01程序段)仍是最廣泛的刀具路徑格式[2]。線性刀具路徑在交界處只滿足G0連續(xù),在高速加工中,這樣的軌跡會導致加速度的不連續(xù)性,從而觸發(fā)刀具振動,降低加工精度和表面質量。為了提高加工效率、保證加工精度,需要對刀具路徑的幾何形狀進行平滑處理[3]。刀具路徑平滑的主要方法有兩種,即局部平滑和全局平滑[4]。全局刀具路徑平滑方法的優(yōu)勢在于可以保證整個刀具路徑的平滑性,局部平滑則能夠更快速地平滑小夾角的線性路徑。
局部平滑方法是將滿足預定義誤差約束的平滑曲線插入兩個相鄰線性段的拐角處,實現(xiàn)線性刀具路徑的平滑性和連續(xù)性[5]。Beudaert X等[6]使用兩條三次B樣條曲線平滑刀尖位置和刀具方向,同時構造了第三條樣條曲線優(yōu)化刀軸上參考點與刀尖位置的定向連接。Jin Y Q等[7]使用G2連續(xù)的三次雙Bezier曲線平滑刀尖的位置和方向。Shi J等[8]提出了將雙PH曲線插入到刀尖位置路徑和刀軸點路徑的兩步局部平滑方法,通過牛頓迭代法優(yōu)化PH曲線的控制點同步參數(shù)。
全局平滑算法將所有所需的刀具位置使用樣條曲線表示。Bi Q Z等[9]提出了一種緊湊的雙NURBS刀具路徑平滑方法,使用等距算法生成雙NURBS曲線,并利用四元數(shù)來描述刀具的空間運動。張立強等[10]提出基于對偶四元數(shù)的刀具路徑規(guī)劃方法,該方法在提高刀具軌跡運動平穩(wěn)性的同時可以獲得滿意的加工精度。張君等[11]采用兩條不同節(jié)點向量的NURBS曲線分別擬合刀軸點和刀具中心點軌跡,在插補階段利用參數(shù)同步模型實現(xiàn)了同步插補。
生成雙NURBS曲線平滑刀具路徑的方法中,若采用不同的節(jié)點向量分別擬合刀尖點位置和刀軸參考點軌跡,可以提高曲線擬合精度,但在后續(xù)插補時每一步都要進行雙 NURBS曲線參數(shù)同步計算,增加了計算量,影響了數(shù)控加工的實時性;若使用相同的參數(shù)擬合兩條NURBS曲線,刀尖點和刀軸矢量能夠很好地對應,可以實現(xiàn)同步插補,但也會使NURBS刀具路徑偏離刀具的真實運動位置,無法準確反映刀具旋轉[12]。
本文提出了一種分段擬合的等距雙NURBS路徑平滑算法。該方法通過線性刀具路徑的夾角將路徑分為局部平滑段和整體平滑段,更加符合原刀尖路徑的特點;刀尖路徑和刀軸路徑使用相同的節(jié)點向量,能夠更好地實現(xiàn)同步插補;模擬退火優(yōu)化刀尖和刀軸路徑控制點的權重,能夠充分利用NURBS曲線的權重特性,解決了使用同步參數(shù)降低NURBS路徑平滑精度的問題。
NURBS曲線是分段有理多項式函數(shù)[13],其形式為:
(1)
式中,p為NURBS曲線的階數(shù),Pi為控制點,Ri,p(u)為有理基函數(shù),由式(2)定義:
(2)
式中,wi為控制點Pi對應的權重,Ni,p(u)是在非均勻節(jié)點序列U上p次基函數(shù):
當p=0時,有:
(3)
由Ni,0(u)遞推得到Ni,p(u):
使用向心參數(shù)法求節(jié)點參數(shù)序列[14]{vi}:
(4)
且有:v0=0,vn=1。其中:
(5)
節(jié)點序列U可按如下方法求得:
(6)
令:u0=u1=…=up=0,un+1=…=un+p+1=1,這樣可以約束NURBS曲線通過首尾的兩個控制點P0和Pn,令m=n+p+1,則節(jié)點序列的長度為m+1。
權因子wi會影響NURBS曲線形狀,圖1展示的是控制點權重對曲線形狀的影響。
圖1 權重值對NURBS曲線的影響
圖1中共5個控制點P0~P4,按照向心參數(shù)法式(4)~式(6)求得節(jié)點參數(shù)序列{vi}和節(jié)點序列{ui},取權重值:wi=1,i=0,1,3,4,改變控制點P2的權重w2,分別取w2=0,w2=0.5,w2=1,w2=2.5,w2=10,得到5條NURBS曲線,由圖可知w2越大,曲線上的點越靠近P2,曲線在此處的曲率也隨之增加。
通過改變控制點的權重可以改變NURBS曲線的形狀,從而改變刀具點與NURBS曲線間的距離。但wi改變,會導致控制點Pi附近的曲線形狀發(fā)生變化,這樣會改變臨近刀具點與NURBS曲線間的距離,因此需要同時優(yōu)化所有控制點的權重。控制點權重需設定一個范圍,使相鄰控制點權重比值在合理的范圍內,避免NURBS曲線在某處曲率過大。
圖2中Pi-1、Pi、Pi+1為刀尖位置點,E1為刀尖點Pi-1指向Pi的單位向量,E2為刀尖點Pi指向Pi+1的單位向量,通過E1與E2的夾角αi判定刀尖位置點平滑處理的方式。設置判定角α0,當αi>α0時,使用局部平滑方式處理刀尖位置點Pi,否則使用整體平滑方式處理該點。局部平滑方式需要重新計算NURBS曲線的控制點,整體平滑方式將刀尖位置點作為控制點,但為了保證不同平滑方式得到的NURBS路徑間的G2連續(xù)性,整體平滑段需要添加輔助控制點。
圖2 刀尖線性路徑夾角示意圖
對刀尖位置點Pi進行局部平滑處理時,在線段Pi-1Pi上選取兩個輔助控制點A0和A1,在線段PiPi+1上選取兩個輔助控制點控制點A3和A4,點Pi作為控制點A2,以序列A=[A0A1A2A3A4]為NURBS曲線的控制點,得到過渡曲線A(u),示意圖如圖3所示。
圖3 局部平滑控制點分布示意圖
(7)
式(7)中Li跟預設的公差值ε有關系,取節(jié)點序列U=[0 0 0 0 0.5 1 1 1 1],為了保證曲線A(u)的對稱性,控制點權重需滿足w0=w4,w1=w3。曲線A(u)上距刀尖點Pi最近的點位于角∠Pi-1PiPi+1的角平分線上[17],最大的距離由式(8)計算:
(8)
為滿足誤差條件,應有ei,max≤ε,由式(8)可得:
(9)
考慮到相鄰兩個刀尖位置點可能均需要進行局部平滑處理,為了防止過渡曲線之間有重疊,相鄰線段的過渡長度之和不得超過其所在的線段的長度,這意味著:
(10)
因此可以得到Li的表達式為:
(11)
假設兩相鄰的曲線為Ci(u)和Ci+1(u),兩曲線G0連續(xù)要求滿足式(12),G1連續(xù)要求滿足式(12)和式(13),G2連續(xù)要求滿足式(12)~ 式(14):
Ci(1)=Ci+1(0)
(12)
(13)
κi(1)=κi+1(0)
(14)
式中,κ為曲線的曲率,曲率在ui處的計算公式為:
(15)
設曲線Ci(u)對應的控制點序列為:Pi=[Pi,0Pi,1…Pi,n-1Pi,n],權重序列為:wi=[wi,0wi,1…wi,n-1wi,n],由式(4)、式(5)計算出節(jié)點序列為:ui=[ui,0ui,1…ui,n+p+1]。曲線Ci+1(u)對應的控制點序列為:Pi+1=[Pi+1,0Pi+1,1…Pi+1,r-1Pi+1,r],權重序列為:wi+1=[wi+1,0wi+1,1…wi+1,r-1wi+1,r],節(jié)點序列為:ui+1=[ui+1,0ui+1,1…ui+1,r+p+1]。對于NURBS曲線有:
Ci(1)=Pi,n
Ci+1(0)=Pi+1,0
當Pi,n=Pi+1,0,式(12)成立,兩曲線G0連續(xù)。
(16)
(17)
因為Pi,n=Pi+1,0,當點Pi,n-1、Pi,n(Pi+1,0)、Pi+1,1共線,且點Pi,n(Pi+1,0)位于三點的中間位置時可以滿足式(13),曲線Ci(u)和Ci+1(u)滿足G1連續(xù)條件。
(18)
(19)
其中,
由以上分析可知整體平滑段需要添加輔助控制點才能滿足與相鄰曲線的G2連續(xù)條件,整體平滑路徑與局部平滑路徑相連時的情況如圖4所示。
圖4 整體平滑路徑與局部拐角平滑路徑相連示意圖
圖中,P0~P5為刀尖位置點,其中點P1適合局部平滑,P2~P5適合整體平滑,A1~A4為按照2.1節(jié)的方法選取的輔助控制點,為了滿足式(12)的條件,選擇A4為兩條NURBS路徑的公共輔助控制點,在線段A4P2上選取一點Q(Q點位置有沒嚴格的要求,一般取線段A4P2的中點,如果有需要可以在平滑過程中調整),則兩條NURBS曲線的控制點P1、A3、A4、Q、P2共線。整體平滑NURBS路徑兩端均需要添加輔助控制點保證與前后兩段局部平滑曲線G2連續(xù)。
按照相同的方法選取刀軸NURBS路徑的控制點。使用模擬退火算法改變NURBS路徑控制點的權重,通過調整NURBS曲線的形狀,改變位置點與NURBS的距離。
與其他方法相比,模擬退火算法的主要優(yōu)勢在于它能夠避免陷入局部最小值。該算法采用隨機搜索,不僅接受會降低目標函數(shù)“內能”的變化,還會接受增加目標函數(shù)“內能”的某些變化。根據(jù)Metroplios準則,狀態(tài)轉移的概率為:
(20)
模擬退火在較高的溫度下開始,緩慢冷卻的同時,反復選擇變量的一個子集,并在當前值的某個鄰域中隨機(Random(e)函數(shù))更改它們。如果目標函數(shù)(Error(w)函數(shù))在新迭代過程中具有較低的函數(shù)值,則將新值選擇為下一次迭代的初始值。如果Error(w)函數(shù)在新的迭代過程中具有較高的函數(shù)值,則按照Metropolis準則選擇下一次迭代的初始值?;谀M退火的NURBS曲線控制點權重優(yōu)化流程如圖5所示。
圖5 模擬退火優(yōu)化NURBS路徑控制點權重流程圖
3.2 等距雙NURBS路徑生成
刀尖路徑控制點用{Pi}表示,刀軸點路徑控制點用{Qi}表示,兩條NURBS路徑使用相同的節(jié)點序列,可以使用式(21)表示兩條NURBS路徑:
(21)
式中,Ri,p是刀尖點Pi依據(jù)式(2)~式(6)計算出來的。設路徑平滑的誤差閾值為ε,路徑點到NURBS曲線的距離e,路徑平滑的誤差要求為:e≤ε。刀尖和刀軸點路徑的平滑同時進行,平滑的步驟如下:
步驟1:按照第2節(jié)的方法分別生成刀尖路徑和刀軸路徑的控制點。
步驟2:根據(jù)分段情況做不同的處理,局部平滑方式轉向步驟3,整體平滑方式轉向步驟4。
步驟3:按第2節(jié)方法選取的控制點可以滿足刀尖的位置誤差要求,通過模擬退火改變刀軸控制點的權重,如果不能滿足位置誤差要求,則可以沿著原線段緩慢變化輔助控制點,模擬退火優(yōu)化控制點權重,當滿足位置誤差要求時轉向步驟2,直至所有路徑段被平滑為止。
步驟4:模擬退火改變刀尖路徑控制點的權重,如果所有控制點滿足位置誤差要求轉向步驟5;不能滿足時,找出誤差最大的點,判斷該點的類型,如果該點是刀尖位置點,轉向步驟6,如果是輔助控制點則在原線段上緩慢改變此點的位置,模擬退火優(yōu)化控制點權重,處理結束后若能滿足位置誤差要求,轉向步驟5,否則找出距此點最近的刀尖位置點,轉向步驟6。
步驟5:模擬退火改變刀軸路徑控制點的權重,如果所有控制點滿足位置誤差要求轉向步驟8;否則找出不滿足誤差的點,判斷該點的類型,如果是刀軸參考點,轉向步驟7,如果是輔助控制點,則在原線段上緩慢改變此點的位置,模擬退火優(yōu)化控制點權重,處理結束后如果滿足誤差要求,轉向步驟8,否則找出距此點最近的刀軸參考點,轉向步驟7。
步驟6:若整體平滑段的控制點為P=[P0P1…Pi…Pn-1Pn],由步驟4得到的控制點為Pi,則點Pi局部平滑處理,P0~Pi-1和Pi+1~Pn分別進行整體平滑,轉向步驟1,對P段重新進行平滑處理。
步驟7:若整體平滑段的控制點為Q=[Q0Q1…Qi…Qn-1Qn],由步驟5得到的點為Qi,則點Qi局部平滑處理,Q0~Qi-1和Qi+1~Qn分別進行整體平滑,轉向步驟1,對Q段重新進行平滑處理。
步驟8:得到滿足位置誤差的雙NURBS曲線后,轉向步驟2,直至所有的路徑段被平滑為止。
針對S型曲線,將原始的線性路徑進行平滑處理,生成滿足位置誤差、等距且G2連續(xù)的雙NURBS路徑,為驗證本文提出方法的有效性,對S型曲線路徑進行仿真分析,并通過五自由度混聯(lián)加工機器人進行了S型曲線工件的加工實驗。
模擬退火的參數(shù)設置如下iter=3,T0=10 000,α=0.999,Tt=0.000 1,刀軸參考點距刀尖點的距離H=50 mm,路徑平滑誤差ε=0.025 mm,在同一參數(shù)下兩路徑對應點的距離誤差率為σ<0.5%時可以視為等距路徑。原始的刀尖位置點共4467個,分為293段進行平滑處理,其中184個局部拐角平滑段,109個整體平滑段。
仿真得到的雙NURBS路徑如圖6所示。下邊的NURBS曲線為平滑后的刀尖路徑,上邊的NURBS曲線是平滑后的刀軸路徑。
圖6 S型等距雙NURBS路徑仿真圖
圖7是局部平滑段的細節(jié)圖,圖中☆表示局部平滑段的輔助控制點,·表示刀尖位置點;圖8是整體平滑細節(jié)圖,圖中◇表示整體平滑段的輔助控制點,·表示刀尖位置點;圖9是整體平滑段和局部平滑段的連接細節(jié)圖。
圖7 刀尖路徑局部平滑細節(jié)圖
圖8 刀尖路徑整體平滑細節(jié)圖
圖9 刀尖路徑整體平滑和局部平滑曲線連接圖
圖10 五自由度混聯(lián) 加工機器人圖11 S型曲線工件
圖12 刀尖路徑平滑誤差
圖13 刀軸路徑平滑誤差
圖14 雙NURBS路徑間的等距誤差
五軸刀具路徑平滑是五軸數(shù)控加工的關鍵,本文提出了一種分段的變權重等距雙NURBS路徑平滑方法,經仿真和實驗驗證了該方法的有效性,本文的主要工作有:
(1)根據(jù)線性路徑的夾角,將路徑分為局部平滑段和整體平滑段,更符合路徑本身的特點。
(2)充分利用NURBS曲線權重對其形狀的影響,使用模擬退火優(yōu)化控制點的權重,改變NURBS的形狀,從而控制NURBS路徑的位置誤差。
(3)使用相同的參數(shù)對刀尖路徑和刀軸方向進行平滑處理,簡化了插補過程中的計算,提高了后續(xù)加工中插補的實時性。