賀 濤,楊煜俊,汪曉松
(廣東工業(yè)大學(xué)機(jī)電工程學(xué)院,廣州 510006)
隨著現(xiàn)代數(shù)控加工技術(shù)對產(chǎn)品質(zhì)量和加工效率的追求,面向高速高精加工的NURBS曲線插補(bǔ)技術(shù)變得越來越重要。在NURBS曲線插補(bǔ)中,進(jìn)給速度的變化是機(jī)床產(chǎn)生振動和影響加工質(zhì)量的重要原因之一。LIN等[1]采用五段式S曲線加減速控制算法進(jìn)行加減速插補(bǔ),雖達(dá)到加減速度控制要求,但僅適用于不需要勻加速段就能達(dá)到最大進(jìn)給速度的情況;潘海鴻等[2]給出七段S型曲線加減速控制中可能出現(xiàn)的17種速度曲線變化類型,研究適用于前瞻控制的七段式S型曲線加減速控制算法;于金剛等[3]提出一種基于加加速度控制的加減速控制方法,采用限制加加速值,并利用濾波器對加速度進(jìn)行光滑處理來減少加工中由于加加速突變而產(chǎn)生的機(jī)床振動;LEE等[4]提出了一種離線進(jìn)給率調(diào)度方法,該方法考慮了弦誤差、加速度和加加速度限制所施加的約束,但是與時間最優(yōu)和S曲線加減速相比,用這種方法獲得的加速度函數(shù)是不連續(xù)的。楊亮亮等[5]將速度和位移方程轉(zhuǎn)換為一元高次方程,其求解復(fù)雜,增加了計算負(fù)擔(dān);WANG等[6]結(jié)合幾何和動態(tài)約束計算曲線進(jìn)給速度,根據(jù)進(jìn)給速度關(guān)鍵區(qū)域?qū)⑶€分段,再由切向加速度和加加速度生成一個自適應(yīng)的平滑S形進(jìn)給速度曲線;李志杰等[7]提出一種加加速度連續(xù)的S型加減速規(guī)劃算法,其加速度曲線由三角函數(shù)與直線連接組成,能得到平滑連續(xù)的加速度與速度曲線,與純?nèi)呛瘮?shù)加減速曲線相比可控性更強(qiáng),但是加減速模式規(guī)劃方法較為復(fù)雜;NGUYEN等[8]提出任意階次多項式加減速控制的算法,并推導(dǎo)出三階、四階和五階S曲線加減速控制的模型;趙翔宇等[9]研究了三次S曲線加減速,對加加速度節(jié)點(diǎn)突變問題有一定程度上的優(yōu)化,但是還可以進(jìn)一步完善。穆海華、朱其新等[10-11]研究了四階S曲線加減速算法,每個時間點(diǎn)的計算都要經(jīng)過多次的比較和修正,算法效率不高,計算量較大;周黎等[12]對四階S曲線加減速算法優(yōu)化改進(jìn),根據(jù)各種極限情況下的位移值對目標(biāo)位移量進(jìn)行分類,可以直接確定對應(yīng)軌跡的相關(guān)時間量,降低了算法的計算量。
上述對四階S曲線加減速算法的研究中,均未考慮非對稱四階S曲線模型,且無法適應(yīng)NURBS曲線插補(bǔ)中可能出現(xiàn)的較短弧長。為此,提出一種基于四階S曲線加減速的NURBS曲線插補(bǔ)算法,考慮四階S曲線所有可能出現(xiàn)的速度模型,對其進(jìn)行判別分類,并采用二分法尋找較短弧長的實(shí)際最大速度,最后通過仿真驗(yàn)證了算法的有效性。
NURBS曲線采用分段有理多項式矢函數(shù)[13]:
(1)
式中:u為NURBS曲線參數(shù),di為控制頂點(diǎn)(i=0,1,…,n),ωi為控制頂點(diǎn)的權(quán)因子Ni,k(u)為第i個k次B樣條基函數(shù)。
NURBS曲線的曲率計算式[14]:
(2)
式中:C′(u)和C′′(u)分別是NURBS曲線的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。
規(guī)劃進(jìn)給速度還需計算NURBS曲線的弧長,在參數(shù)[us,ue]曲線弧長為:
(3)
式(3)無法精確求解,因此可利用數(shù)值積分中的辛普森法則[15]近似求解:
(4)
為了保證計算精度,[us,ue]不能過大,應(yīng)用完全辛普森規(guī)則將[us,ue]劃分為2個相等的區(qū)間,即[us,(us+ue)/2]和[(us+ue)/2,ue],給定精度ε進(jìn)行校驗(yàn):
(5)
通過不斷二分區(qū)間直到滿足上述精度要求,將所有子區(qū)間的弧長累計,即可得到對應(yīng)精度的弧長。
為控制速度平穩(wěn)光滑不超限,并減小插補(bǔ)過程中產(chǎn)生的誤差,選取自適應(yīng)速度作為后續(xù)速度規(guī)劃的最大速度上限。首先選取NURBS曲線上曲率大于曲率閾值的點(diǎn)稱為候選點(diǎn),具有局部最大曲率的候選點(diǎn)作為臨界點(diǎn),臨界點(diǎn)把NURBS曲線分割成若干段;然后根據(jù)弓高誤差差、法向加速度和加加速度確定曲率半徑閾值[4]。
(6)
式中:Ts為插補(bǔ)周期,δ為最大弓高誤差,vmax為最大進(jìn)給速度,An為最大法向加速度,Jn為最大加加速度。
任意點(diǎn)處速度值應(yīng)滿足最大弓高誤差δ、最大進(jìn)給速度vmax、最大法向加速度An以及最大加加速度Jn的約束。
(7)
圖1為標(biāo)準(zhǔn)的對稱四階S曲線加減速的位移、速度、加速度、加加速度和加加速度的斜率的曲線圖。由圖可知,該軌跡規(guī)劃可由4段時間唯一確定。
圖1 標(biāo)準(zhǔn)的對稱四階S曲線加減速過程
(1)最大加加速度的斜率時間段Ts(圖中部分Ⅰ);
(2)最大加加速度jmax時間段Tj(圖中部分Ⅱ);
(3)最大加速度amax時間段Ta(圖中部分Ⅲ);
(4)最大速度vmax時間段Tv(圖中部分Ⅳ):
在確定了以上4個時間段之后,也就可以確定算法實(shí)現(xiàn)過程中所需每一段的時間節(jié)點(diǎn)ti(i=1,2,…,15)。假設(shè)軌跡規(guī)劃數(shù)據(jù)的生成都是通過數(shù)字積分的形式進(jìn)行的,即速度三階導(dǎo)數(shù)的積分為加加速度,加加速度的積分為加速度,加速度的積分為速度,速度的積分為位移[10],可描述為:
(8)
式中:j0、a0、v0和s0分別為加加速度、加速度、速度和位移的初始值,d(t)、j(t)、a(t)、v(t)和s(t)分別為加加速度的斜率、加加速度、加速度、速度和位移在時間t的實(shí)際值。
四階S曲線加減速曲線存在非對稱的情況,即加速階段和減速階段是非對稱的,因此將四階S曲線加減速曲線分加速階段、勻速階段、減速階段3個階段分別進(jìn)行討論。
根據(jù)給定的系統(tǒng)參數(shù)和軌跡參數(shù)求解各段時間。先考慮勻速階段存在,即實(shí)際速度能達(dá)到最大限制進(jìn)給速度,再對加速階段和減速階段判別,根據(jù)各段時間是否不為0進(jìn)行判別,即判斷速度、加速度和加加速度是否達(dá)到最大值,再考慮勻速階段不存在的情況,最后對所有情況進(jìn)行分類。具體實(shí)施步驟為:
步驟1:對加速階段判別。判別條件:最大速度vmax、最大加速度amax、最大加加速jmax、最大加加速度斜率dmax、初速度vs。
(a) 類型1 (b) 類型2 (c) 類型3
(9)
(10)
(11)
步驟2:對減速階段判別。判別條件最大速度vmax、最小加速度amin、最小加加速jmin、最大加加速度斜率dmax、末速度ve。判別方法與加速階段判別相同,其減速階段3種類型如圖3所示。
(a) 類型1 (b) 類型2 (c) 類型3
步驟3:對勻速階段時間進(jìn)行計算。
(12)
式中:sa為加速階段位移長度,sd為加速階段位移長度,sa、sd由式(8)計算,s為總位移長度。
當(dāng)勻速階段時間Tv>0,此時實(shí)際速度可以達(dá)到最大限制進(jìn)給速度,計算結(jié)束;否則不存在勻速階段,Tv=0,步驟1、步驟2的計算結(jié)果不成立,需計算實(shí)際達(dá)到的最大速度,跳轉(zhuǎn)步驟4。
步驟4:判斷最大實(shí)際速度是否是起始速度或末速度。計算只需一個加速階段或減速初速度到末速度的臨界位移sm,即實(shí)際最大加加速度為jmax,Ts=jmax/dmax,且Tj、Ta、Tv都為0。根據(jù)式(8)計算sm,然后與實(shí)際位移s比較。
(1)當(dāng)s≤sm且ve≥vs,則最大速度vmax=ve,跳轉(zhuǎn)步驟1;
(2)當(dāng)s>sm且vs>ve,則最大速度vmax=vs,跳轉(zhuǎn)步驟2;
(3)兩者都不成立則跳轉(zhuǎn)步驟5。
步驟5:采用二分法重新計算在給定條件下所能達(dá)到的實(shí)際最大速度。
(2)根據(jù)步驟1、步驟2的時間和式(8)分別計算加速階段的位移的sa和減速階段的位移sd。
四階S型曲線有加速階段、勻速階段、減速階段,以此將四階S型曲線分成3類:
(1)長塊:包含加速、勻速和減速3個階段。加速階段有3種情況,勻速階段存在,減速階段有3種情況,所有長塊有9種類型。
(2)中塊:包含加速、勻速和減速其中2個階段。加速階段和減速階段各有3種情況,勻速階段有存在或不存在2種情況,所有中塊有15種類型。
(3)短塊:只包含加速、勻速和減速其中1個階段。其為加速階段有3種類型,其為勻速階段有1種類型,其為減速階段有3種類型,所有短塊有7種類型。
綜上所述,四階S型曲線總共有31種速度類型。各NURBS曲線段按照對應(yīng)的四階S曲線速度類型完成曲線插補(bǔ)。
為驗(yàn)證本文所提算法的性能,使用MATLAB軟件編制程序,對曲線速度規(guī)劃進(jìn)行驗(yàn)證。以圖4所示3次NURBS曲線為例,其特征參數(shù)和測試參數(shù)分別如表1和表2所示。
表1 NURBS曲線的特征參數(shù)
表2 NURBS曲線的測試參數(shù)
在相同限制條件下,分別對三階S曲線加減速控制的NURBS曲線插補(bǔ)算法和本文提出的算法進(jìn)行仿真。圖5為四階S曲線加減速規(guī)劃和三階S曲線加減速規(guī)劃生成的進(jìn)給速度曲線對比圖。
圖4 “∞”形軌跡 圖5 進(jìn)給速度曲線
由圖6可知,三階S曲線加減速規(guī)劃生成的加速度曲線連續(xù)但不平滑,而四階S曲線加減速規(guī)劃生成的加速度曲線連續(xù)且平滑。由圖7可知,三階S曲線加減速規(guī)劃生成的加加速度曲線是突變的,而四階S曲線加減速規(guī)劃生成的是加加速度連續(xù)的曲線。
圖6 加速度曲線 圖7 加加速度曲線
蝴蝶形三次NURBS曲線相比于“∞”形三次NURBS曲線,曲率更加復(fù)雜、有較多的大曲率區(qū)域,能有效驗(yàn)證本文所提出算法的有效性。幾何模型和控制點(diǎn)如圖8所示,曲線的特征參數(shù)參考文獻(xiàn)[16],測試參數(shù)見表2。
插補(bǔ)算法加工蝴蝶形曲線得到的進(jìn)給速度曲線和加速度曲線如圖9和圖10所示,在復(fù)雜曲率情況下,該算法依然具有有效性,保證速度、加速度不超過系統(tǒng)限制值。由圖11弓高誤差曲線所示可知,在整個加工過程,弓高誤差不超過CNC系統(tǒng)的限制,最大弓高誤差為1.35×10-4mm,平均弓高誤差5.21×10-5mm。
圖8 蝴蝶形軌跡 圖9 進(jìn)給速度曲線
圖10 加速度曲線 圖11 弓高誤差曲線
為減小NURBS曲線插補(bǔ)在運(yùn)動過程中產(chǎn)生的振動和沖擊,提出基于四階S曲線加減速的NURBS曲線插補(bǔ)算法。針對不同弧長的曲線段,分析速度、加速度、加加速度、加加速度斜率及曲線長度之間的關(guān)系;計算各階段的時間;并采用二分法尋找較短弧長的實(shí)際最大速度。最后規(guī)劃出31種速度曲線類型來自適應(yīng)NURBS曲線插補(bǔ)。
與三階S曲線加減速控制的NURBS曲線插補(bǔ)算法相比,四階S曲線加減速控制的NURBS曲線插補(bǔ)算法能減低各種突變,保證插補(bǔ)全過程中加速度光滑、加加速度連續(xù)無突變,同時能滿足復(fù)雜曲率的NURBS曲線插補(bǔ)。