董伯麟,何文杰
(合肥工業(yè)大學(xué)機(jī)械工程學(xué)院,安徽 合肥 230009)
NURBS曲線作為一種參數(shù)曲線,可以表示大部分自由曲線,同時(shí)對(duì)該曲線也能實(shí)現(xiàn)高速高精度插補(bǔ)。目前為得到插補(bǔ)點(diǎn)的曲線參量,一般使用泰勒展開近似方法[1-2]。然而,這種方法簡(jiǎn)化時(shí)省略了高階項(xiàng),會(huì)產(chǎn)生截?cái)嗾`差,加劇插補(bǔ)速度的波動(dòng)。文獻(xiàn)[3]采用對(duì)分法計(jì)算插補(bǔ)點(diǎn)曲線參量。
文獻(xiàn)[4]基于泰勒展開方法,提出了一種自適應(yīng)速度插補(bǔ)方法,使插補(bǔ)速度根據(jù)弦誤差和插補(bǔ)點(diǎn)曲率自適應(yīng)地變化。文獻(xiàn)[5]在自適應(yīng)速度插補(bǔ)方法基礎(chǔ)上,利用S型速度軌跡來(lái)限制加速度和加加速度,同時(shí)滿足機(jī)床最大速度要求。文獻(xiàn)[6]提出了一種具有相對(duì)完整的速度軌跡規(guī)劃的NURBS插補(bǔ)算法,采用S形加速度軌跡曲線來(lái)實(shí)現(xiàn)加速度和加加速度的限定要求。文獻(xiàn)[7]提出了采用S型加減速雙向同步進(jìn)行的插補(bǔ)算法,該算法簡(jiǎn)單高效。
另一方面,一些文獻(xiàn)考慮相鄰敏感點(diǎn)之間速度軌跡規(guī)劃的交叉情況。文獻(xiàn)[8]早期考慮了進(jìn)給速度的波紋效應(yīng),然后提出了進(jìn)給速度軌跡規(guī)劃交叉的分類方法以及速度軌跡的擬合方法,但不夠具體。文獻(xiàn)[9]也提出了相鄰敏感點(diǎn)速度軌跡規(guī)劃交叉的解決方法,也沒(méi)有具體分類。
因此,目的是處理相鄰敏感點(diǎn)之間的速度規(guī)劃。首先,由G1和G2不連續(xù)的斷點(diǎn)和大曲率的關(guān)鍵點(diǎn)將NURBS曲線分段。采用S型加速度軌跡曲線得到更為平滑的速度軌跡,以減緩在曲線段連接處的速度波動(dòng)。此外,提出了相鄰敏感點(diǎn)之間的速度軌跡規(guī)劃交叉的全部分類及對(duì)應(yīng)的判定條件,同時(shí)針對(duì)每種類型進(jìn)行速度軌跡規(guī)劃。另外,考慮當(dāng)前和下一插補(bǔ)敏感點(diǎn)區(qū)域的速度軌跡規(guī)劃可能的情況,提出了整條曲線的速度軌跡規(guī)劃方法。
一條p階的NURBS曲線C(u)定義如下[10]:
式中:{Pi}—控制點(diǎn)序列;{wi}—權(quán)因子;Ni,p(u)—第 i個(gè) p 次 B樣條基函數(shù),它定義在非均勻節(jié)點(diǎn)矢量U={0,…,0,up+1,…,um-p-1,1,…,1}上,其表達(dá)式定義如下:
由給定的曲線參量u,通過(guò)上式即可求出對(duì)應(yīng)點(diǎn)。在求解NURBS曲線導(dǎo)矢時(shí)可采用文獻(xiàn)[10]的方法。
計(jì)算插補(bǔ)點(diǎn)曲線參量一般使用泰勒展開近似方法。假設(shè)ti時(shí)刻對(duì)應(yīng)的曲線參量為ui,則ti+1時(shí)刻的參量ui+1為:
式中:Ts—插補(bǔ)周期。
經(jīng)推導(dǎo),曲線參量u的二階泰勒公式展開如下:
式中:A(ti)—ti時(shí)刻加速度;C′(ui)—NURBS曲線一階導(dǎo)數(shù);C″(ui)—NURBS曲線二階導(dǎo)數(shù)。
通過(guò)采取圓弧近似的方法,進(jìn)給速度根據(jù)弦誤差和曲線曲率自適應(yīng)的變化[4]:
式中:V(ti)—自適應(yīng)進(jìn)給速度;ρi—曲線曲率;δmax—最大允許弦誤差,ρi計(jì)算公式如下:
在工件加工到速度敏感點(diǎn)時(shí),進(jìn)給速度會(huì)產(chǎn)生劇烈波動(dòng),使得加工質(zhì)量產(chǎn)生惡化。速度敏感點(diǎn)包括斷點(diǎn)(G0連續(xù),G1不連續(xù)點(diǎn)和G1連續(xù),G2不連續(xù)點(diǎn))和大曲率的關(guān)鍵點(diǎn)。第一類斷點(diǎn)和部分第二類斷點(diǎn)位于節(jié)點(diǎn)處,可以在節(jié)點(diǎn)矢量中尋找[10],非節(jié)點(diǎn)處的第二類斷點(diǎn)可以通過(guò)粗插補(bǔ)的方法尋找曲線曲率突變的點(diǎn)。判據(jù)如下:
式中:ρi—第i個(gè)插補(bǔ)點(diǎn)的曲率半徑。
尋找關(guān)鍵點(diǎn)重點(diǎn)是確定曲線關(guān)鍵曲率。首先搜索曲率極大值的點(diǎn)作為備選關(guān)鍵點(diǎn),再?gòu)膹膫溥x點(diǎn)中篩選出滿足條件Vkr Vkr=min)是根據(jù)弦誤差和向心加速度的限制得到的修改的進(jìn)給速度。 根據(jù)前瞻得到的信息,兩個(gè)相鄰敏感點(diǎn)之間曲線段的弧長(zhǎng)就能夠被近似計(jì)算: 式中:S(l)—整個(gè)曲線第l段的弧長(zhǎng);NBλ—該段第λ個(gè)敏感點(diǎn)所對(duì)應(yīng)的插補(bǔ)點(diǎn)的下標(biāo)。 S型加速度軌跡曲線[9]使得加速度平滑變化,而加加速度也呈梯形變化,同時(shí)滿足限定要求,得到的速度軌跡也更加平滑。所以利用文獻(xiàn)[9]中提到的S型加速度軌跡曲線進(jìn)行速度規(guī)劃,如圖1所示。 圖1 S型加速度軌跡曲線Fig.1 S-Shaped Acceleration Profile 4.2.1 速度軌跡規(guī)劃交叉類型 當(dāng)NURBS曲線兩相鄰敏感點(diǎn)之間的弧長(zhǎng)較小時(shí),進(jìn)給速度就不能加速至最大速度。即兩敏感點(diǎn)的速度軌跡規(guī)劃出現(xiàn)交叉。具體分為以下七類。 圖2 速度軌跡規(guī)劃交叉類型Fig.2 Intersection Types of Feedrate Scheduling 4.2.2 相鄰敏感點(diǎn)區(qū)域速度軌跡規(guī)劃 針對(duì)這些類型在進(jìn)行速度軌跡規(guī)劃時(shí)可分為以下五類: 規(guī)劃1:速度軌跡規(guī)劃不交叉,如圖2(a)所示。 進(jìn)給速度加速至速度限定值Vm,勻速行進(jìn)至減速點(diǎn)后減速。 規(guī)劃2:起始敏感點(diǎn)的加速和終止敏感點(diǎn)的減速階段交叉,如圖 2(b)、圖 2(i)所示。 這兩種類型速度軌跡規(guī)劃類似,進(jìn)給速度加速到某一速度值后減速。在尋找該中間速度時(shí)使用文獻(xiàn)[8]中的二分法。 規(guī)劃3:起始敏感點(diǎn)的加速和終止敏感點(diǎn)的加速階段交叉,如圖 2(d)所示。 (1)計(jì)算以起始敏感點(diǎn)的自適應(yīng)速度開始,按照S型加速度軌跡曲線規(guī)律加速,刀具行進(jìn)至終止敏感點(diǎn)時(shí)對(duì)應(yīng)速度。 (2)若該速度大于終止敏感點(diǎn)的自適應(yīng)速度,則可以加速至該速度后保持勻速至終止敏感點(diǎn),如圖3(a)所示。若小于終止敏感點(diǎn)自適應(yīng)速度,則將原終止敏感點(diǎn)自適應(yīng)速度調(diào)整為該速度(該速度小于原自適應(yīng)速度,故弦誤差滿足要求),采用S型加速度軌跡曲線加速,如圖3(b)所示。 規(guī)劃4:起始敏感點(diǎn)的減速和終止敏感點(diǎn)的減速階段交叉,如圖 2(g)所示。 該類型與類型 3 類似,兩種情況分別,如圖 3(c)、圖 3(d)所示。 規(guī)劃5:一敏感點(diǎn)速度軌跡規(guī)劃包含另一敏感點(diǎn)速度軌跡規(guī)劃,如圖 2(e)、圖 2(f)所示。 把被包含的敏感點(diǎn)從敏感點(diǎn)序列中剔除。 圖3 相鄰敏感點(diǎn)區(qū)域速度軌跡規(guī)劃Fig.3 Feedrate Scheduling of Adjacent Sensitive Points Region 4.2.3 整條NURBS曲線的速度軌跡規(guī)劃 上節(jié)只是考慮相鄰敏感點(diǎn)區(qū)域速度軌跡規(guī)劃,插補(bǔ)時(shí)當(dāng)前插補(bǔ)敏感點(diǎn)區(qū)域和下一插補(bǔ)敏感點(diǎn)區(qū)域的速度軌跡規(guī)劃會(huì)相互作用。在當(dāng)前插補(bǔ)敏感點(diǎn)區(qū)域,首先判斷速度軌跡規(guī)劃交叉類型,并選擇對(duì)應(yīng)速度軌跡規(guī)劃方法,與此同時(shí)判斷下一插補(bǔ)敏感點(diǎn)區(qū)域速度軌跡規(guī)劃交叉類型及對(duì)應(yīng)方法。如果下一插補(bǔ)敏感點(diǎn)區(qū)域交叉類型為2-3,且需要調(diào)整起始敏感點(diǎn)的自適應(yīng)速度,則需要對(duì)當(dāng)前插補(bǔ)敏感點(diǎn)區(qū)域重新進(jìn)行交叉類型判別。若交叉類型為3-2,則起始敏感點(diǎn)被剔除,需要重新對(duì)新的當(dāng)前插補(bǔ)敏感點(diǎn)區(qū)域和下一插補(bǔ)敏感點(diǎn)區(qū)域進(jìn)行交叉類型判別。 當(dāng)前插補(bǔ)敏感點(diǎn)區(qū)域速度軌跡規(guī)劃交叉只會(huì)出現(xiàn)類型1,2-1或2-4,2-2,2-3,3-1這幾種情況。而類型3-1只可能出現(xiàn)在曲線第一個(gè)相鄰敏感點(diǎn)區(qū)域。其他相鄰敏感點(diǎn)區(qū)域不可能出現(xiàn)3-1,3-2的情況,因?yàn)槊看萎?dāng)前插補(bǔ)敏感點(diǎn)區(qū)域交叉類型判別時(shí),都會(huì)進(jìn)行下一插補(bǔ)敏感點(diǎn)區(qū)域交叉類型判別,若出現(xiàn)3-1或3-2的情況,其起始或終止敏感點(diǎn)都會(huì)被剔除,所以不可能出現(xiàn)這兩種類型。 當(dāng)下一插補(bǔ)敏感點(diǎn)區(qū)域?yàn)樵摬逖a(bǔ)曲線最后一個(gè)曲線段時(shí),此時(shí)終止敏感點(diǎn)的自適應(yīng)速度為0,交叉類型只可能是1,2-3,2-4,3-2。對(duì)于類型 1,2-3,2-4,仍采用其原速度軌跡規(guī)劃方法,而類型3-2,則按照類型2-3的方法進(jìn)行速度軌跡規(guī)劃,若出現(xiàn)起始敏感點(diǎn)的自適應(yīng)速度調(diào)整,則還要對(duì)當(dāng)前插補(bǔ)敏感點(diǎn)區(qū)域重新進(jìn)行交叉類型判別。 下面以一條3次葉型NURBS曲線為例,如圖4所示。通過(guò)仿真驗(yàn)證提出的基于相鄰敏感點(diǎn)區(qū)域速度軌跡規(guī)劃插補(bǔ)算法,檢驗(yàn)其在速度平滑和運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)性能上的優(yōu)越表現(xiàn)。 該曲線的控制點(diǎn)、權(quán)因子、節(jié)點(diǎn)矢量信息如下: 圖4 葉型曲線Fig.4 Leaf-Shaped NURBS Curve 其弦誤差和運(yùn)動(dòng)學(xué)限定要求,如表1所示。 表1 弦誤差和運(yùn)動(dòng)學(xué)限定要求Tab.1 Chord Error and Parameters of Kinematic Constraints 通過(guò)前瞻模塊可知,該曲線存在著很多曲率極大值點(diǎn)且距離較近,可能會(huì)出現(xiàn)相鄰敏感點(diǎn)區(qū)域速度軌跡規(guī)劃交叉。后面利用該曲線對(duì)這里算法和自適應(yīng)速度算法進(jìn)行了比較。 在分別比較了自適應(yīng)速度算法和提出算法的弦誤差和速度軌跡之后,如圖5(a)、圖5(b)所示。可看出采用這里算法后速度軌跡更加平滑,滿足了弦誤差和進(jìn)給速度的限定要求。在分別比較了兩種算法的加速度和加加速度之后,如圖5(c)、圖5(d)所示??煽闯霾捎眠@里算法后加速度軌跡也更平滑,同時(shí)保證了加速度限定要求。加加速度是梯形曲線變化,也保證了加加速度的限定要求。 圖5 這里算法與自適應(yīng)速度算法各參數(shù)對(duì)比Fig.5 Parameters Comparison Between Adaptive Algorithm and the Proposed Algorithm 針對(duì)NURBS插補(bǔ)中弦誤差、速度、加速度及加加速度的限定要求,以及可能出現(xiàn)的速度、加速度及加加速度突變的問(wèn)題,從速度規(guī)劃的角度考慮,對(duì)相鄰敏感點(diǎn)區(qū)域速度軌跡規(guī)劃進(jìn)行了深入研究,以實(shí)現(xiàn)速度軌跡和加速度軌跡更加平滑,加加速度無(wú)突變,同時(shí)保證弦誤差、速度、加速度、加加速度的限定要求。仿真結(jié)果表明,該算法得到的速度軌跡曲線平滑,加速度軌跡曲線呈S型變化,加加速度軌跡曲線呈梯形變化,同時(shí)都在限定范圍之內(nèi),滿足了機(jī)床加工的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)要求。3.2 NURBS曲線段弧長(zhǎng)計(jì)算
4 速度軌跡規(guī)劃和加減速
4.1 速度軌跡曲線
4.2 速度軌跡規(guī)劃交叉
5 算法實(shí)例驗(yàn)證
5.1 葉型曲線
5.2 算法分析
6 結(jié)論