王海濤 趙東標(biāo) 陸永華 劉 凱
南京航空航天大學(xué),南京,210016
目前,參數(shù)曲線(曲面)廣泛應(yīng)用于航空、模具等制造領(lǐng)域中,復(fù)雜曲線、曲面的造型技術(shù)發(fā)展迅猛。對(duì)于復(fù)雜參數(shù)曲線的插補(bǔ),傳統(tǒng)數(shù)控系統(tǒng)在規(guī)劃復(fù)雜參數(shù)曲線加工軌跡時(shí),必須將曲線加工刀具路徑處理成大量離散的直線段來(lái)編制數(shù)控加工程序[1-2],此種處理方法會(huì)導(dǎo)致編程復(fù)雜,效率低,造成數(shù)控代碼在傳輸過(guò)程中誤碼率上升,加工狀態(tài)不穩(wěn)定。為了解決這一問(wèn)題,很多學(xué)者采用泰勒展開式的方法進(jìn)行直接插補(bǔ)[3],此方法大大簡(jiǎn)化了編程,提高了效率,但是由于速度有波動(dòng)而很難保證精度。Yong等[4]綜合了系統(tǒng)允許輪廓誤差條件下進(jìn)給速度的變化情況,采用二分法設(shè)計(jì)插補(bǔ)中加減速控制方法,保證了插補(bǔ)時(shí)加速度在系統(tǒng)允許范圍內(nèi),缺點(diǎn)在于這種方法只針對(duì)特定的加減速特性曲線,不能適應(yīng)曲線復(fù)雜多變的特性。Nam等[5]提出了加加速度限制條件下的進(jìn)給速度的加減速變化控制方法,當(dāng)加速度、加加速度超過(guò)系統(tǒng)性能的允許范圍時(shí),采用均勻變化的加速度曲線來(lái)控制進(jìn)給速度的突變,減少了速度的突變對(duì)系統(tǒng)性能的影響,但有些情況下加工誤差仍然難以滿足精度要求。Du等[6]提出了一種自適應(yīng)的前瞻插補(bǔ)算法,在對(duì)速度進(jìn)行自適應(yīng)控制的同時(shí)進(jìn)行前瞻控制,找出速度變化超過(guò)允許范圍的敏感點(diǎn),提前進(jìn)行加減速規(guī)劃,盡量避免速度變化過(guò)大對(duì)機(jī)床產(chǎn)生沖擊,但是這種方法沒有對(duì)加加速度進(jìn)行控制。曹宇男等[7]設(shè)計(jì)了一種基于S形加減速的前瞻控制算法,算法中設(shè)定了最大前瞻段數(shù),并根據(jù)實(shí)際插補(bǔ)軌跡的幾何特性實(shí)現(xiàn)了加減速的控制。但是在對(duì)復(fù)雜曲線進(jìn)行加減速控制時(shí),其前瞻距離的確定有一定的困難。
本文在以上研究基礎(chǔ)上,提出了一種實(shí)時(shí)參數(shù)曲線插補(bǔ)的柔性加減速前瞻算法,首先根據(jù)插補(bǔ)精度進(jìn)行速度自適應(yīng)控制,通過(guò)將曲線劃分為曲率上升點(diǎn)和曲率下降點(diǎn)來(lái)對(duì)曲線進(jìn)行前瞻處理,在加減速過(guò)程中,在使用S形柔性加減速算法的同時(shí),在曲率頻繁變化處對(duì)加減速進(jìn)行重新規(guī)劃,然后通過(guò)自行開發(fā)的數(shù)控系統(tǒng)驗(yàn)證了算法的可行性。
參數(shù)曲線的方程可以表示成如下形式[8](以三維曲線為例,u為參變量):
C(u)=(x(u),y(u),z(u))
(1)
其中,u∈[0,1],通過(guò)泰勒展開,經(jīng)過(guò)變化,可以近似得到插補(bǔ)中參變量的計(jì)算方程:
(2)
式中,T為插補(bǔ)周期;v為進(jìn)給速度。
在插補(bǔ)過(guò)程中,限定弓高誤差為δ,限定系統(tǒng)的最大進(jìn)給速度為vmax,插補(bǔ)點(diǎn)的實(shí)際弓高誤差為ρi,當(dāng)遇到大曲率點(diǎn),以vmax加工超過(guò)限定弓高誤差時(shí),就需要進(jìn)行減速,則相應(yīng)插補(bǔ)點(diǎn)的進(jìn)給速度V(ui)為
(3)
因此,進(jìn)給速度V(ui)就隨δ和ρi的變化自適應(yīng)地調(diào)整,調(diào)整規(guī)則如下:
(4)
但是對(duì)于曲率急劇變化的點(diǎn),按照此種規(guī)則調(diào)整就會(huì)引起速度的急劇變化,給機(jī)床帶來(lái)沖擊。
為了解決上述問(wèn)題,就需要在曲率變化點(diǎn)對(duì)速度進(jìn)行前瞻控制,使進(jìn)給速度在滿足弓高誤差的同時(shí)滿足柔性加減速的要求。
S形加減速方法作為一種數(shù)控系統(tǒng)插補(bǔ)的柔性加減速方法,能夠有效地避免速度和加速度的突變,提高數(shù)控系統(tǒng)的加工精度,但是S形加減速算法比較復(fù)雜,特別對(duì)于一些變化復(fù)雜的曲線,頻繁地加減速會(huì)加大系統(tǒng)的計(jì)算量,因此,本文使用三角函數(shù)加減速方法對(duì)曲線上頻繁加減速區(qū)域進(jìn)行規(guī)劃。
對(duì)于頻繁加減速區(qū)域的速度規(guī)劃有以下兩種情況:加速+減速→加速,如圖1所示;加速+減速→減速,如圖2所示。
圖1 參數(shù)曲線前瞻加速規(guī)劃前
圖2 參數(shù)曲線前瞻減速規(guī)劃前
2.1.1加速+減速→加速情況
在曲率頻繁變化處使用S形加減速方法規(guī)劃速度曲線如圖1所示,此時(shí)速度頻繁變化,S形加減速方法計(jì)算復(fù)雜,容易加重系統(tǒng)負(fù)荷。如果采用三角函數(shù)的加減速方法,如圖3所示,則可以大大簡(jiǎn)化加減速計(jì)算,其具體方法如下。
圖3 參數(shù)曲線前瞻加速規(guī)劃后
在曲線的規(guī)劃中采用的三角函數(shù)曲線為
(5)
分析整個(gè)規(guī)劃過(guò)程,其速度變化方程為
(6)
式中,ta_act為規(guī)劃后實(shí)際加速時(shí)間。
則其加速度、加加速度為
(7)
(8)
在三角函數(shù)加速過(guò)程中,其加加速度和加速度的最大值為
(9)
(10)
由于速度規(guī)劃前和速度規(guī)劃后兩點(diǎn)間的距離是不變的,且其速度規(guī)劃兩點(diǎn)間的距離Li可由規(guī)劃前的加減速方程得到,即
(11)
則可得到加速時(shí)間ta_act:
(12)
2.1.2加速+減速→減速情況
在加速+減速→減速的規(guī)劃中,使用的三角函數(shù)的減速特性曲線為
(13)
前瞻減速規(guī)劃前參數(shù)曲線如圖2所示,規(guī)劃后如圖4所示。
圖4 參數(shù)曲線前瞻減速規(guī)劃后
所謂前瞻,就是對(duì)要插補(bǔ)的參數(shù)曲線進(jìn)行預(yù)插補(bǔ)處理,通過(guò)預(yù)插補(bǔ)找出插補(bǔ)路徑上的速度敏感點(diǎn)及其對(duì)應(yīng)的進(jìn)給速度以及插補(bǔ)距離,然后對(duì)進(jìn)給速度進(jìn)行規(guī)劃,以便提早進(jìn)行加減速處理,以滿足誤差及機(jī)床的性能要求。
在前瞻的插補(bǔ)預(yù)處理中,將曲線分為兩種情況——曲率上升和曲率下降。曲率上升時(shí)說(shuō)明在插補(bǔ)過(guò)程中要遇到拐點(diǎn),需要進(jìn)行減速處理,而曲率下降說(shuō)明從拐點(diǎn)開始速度開始增大。因此將前瞻的預(yù)插補(bǔ)分為曲率上升模塊和曲率下降模塊。當(dāng)前瞻開始時(shí)的速度vstart (1)前瞻中曲率上升模塊。當(dāng)前瞻的初始速度vstart=vmax時(shí),說(shuō)明此時(shí)預(yù)插補(bǔ)的加工速度處于最大階段,在預(yù)插補(bǔ)的過(guò)程中有可能出現(xiàn)曲率上升階段,當(dāng)曲率上升時(shí),弓高誤差變大,進(jìn)給速度就要減小,進(jìn)入減速階段;另外也有可能在預(yù)插補(bǔ)過(guò)程中曲線形狀不發(fā)生大的變化,進(jìn)給速度也不發(fā)生變化,因此,對(duì)于此種情況其前瞻預(yù)讀距離也根據(jù)曲線形狀動(dòng)態(tài)變化,如果加工速度不發(fā)生變化,則預(yù)讀距離為從vmax減速到0所需要的距離,如果此時(shí)遇到拐點(diǎn),曲率發(fā)生變化,則前瞻距離預(yù)讀至整個(gè)拐點(diǎn)的曲率最大處。在前瞻過(guò)程中首先通過(guò)預(yù)插補(bǔ)分析各個(gè)插補(bǔ)點(diǎn),以最大加工速度vmax來(lái)計(jì)算各個(gè)插補(bǔ)點(diǎn)的位置,然后求出其弓高誤差,并且比較所得弓高誤差與系統(tǒng)允許最大弓高誤差δ的差值,如果在允許范圍內(nèi),則繼續(xù)比較下一個(gè)插補(bǔ)點(diǎn);否則,根據(jù)式(4)確定此點(diǎn)的最大加工速度,并且分析此點(diǎn)是否仍舊處于曲率增大的范圍,如果是,則繼續(xù)分析比較下一個(gè)插補(bǔ)點(diǎn),直到找到曲率最大點(diǎn),并且記錄此點(diǎn)的位置ui及最大的約束速度vend。如果在前瞻預(yù)讀的從vmax減速到0所需要的距離中,沒有出現(xiàn)曲率波動(dòng)點(diǎn),則記錄最后前瞻插補(bǔ)點(diǎn)ui。其具體前瞻過(guò)程如圖5所示。 圖5 參數(shù)曲線柔性加減速曲率上升前瞻模塊 (2)前瞻中的曲率下降模塊。當(dāng)前瞻的初始速度vstart 首先以速度v=vmax預(yù)插補(bǔ)并分析各個(gè)插補(bǔ)點(diǎn)的弓高誤差,因?yàn)榇藭r(shí)處于曲率下降的階段,所以弓高誤差應(yīng)該是一個(gè)變小的過(guò)程,所以,通過(guò)計(jì)算可以找到一個(gè)v=vmax且滿足弓高誤差(即ρi<δ)的插補(bǔ)點(diǎn),這樣就可以把曲率下降的加工路徑的速度規(guī)劃出來(lái)了。但是當(dāng)插補(bǔ)路徑變化復(fù)雜,需要頻繁加減速的時(shí)候,有時(shí)弓高誤差約束速度還未達(dá)到vmax,可能又會(huì)有新的拐點(diǎn)出現(xiàn),曲率就會(huì)轉(zhuǎn)而變大。如果出現(xiàn)這種情況,則找到新的敏感點(diǎn)的最大曲率處,表明此段前瞻路徑是速度頻繁加減速區(qū)域,設(shè)定Fv_plan=1,表明此路徑需要根據(jù)上文使用三角函數(shù)加減速方法對(duì)速度進(jìn)行規(guī)劃。因此,其前瞻距離的大小隨曲線曲率的變化自適應(yīng)改變,具體的前瞻過(guò)程如圖6所示。圖5和圖6中,L為前瞻預(yù)讀距離,本文中選取S形加減速?gòu)膙max減到0的距離;uend為前瞻結(jié)束后尋找到的速度敏感點(diǎn),如果在此段前瞻距離上沒有拐點(diǎn),則該點(diǎn)就是前瞻距離的最后插補(bǔ)點(diǎn);vend為滿足弓高誤差的速度敏感點(diǎn)的速度;vi為預(yù)插補(bǔ)點(diǎn)上的進(jìn)給速度;s為實(shí)際前瞻的距離;l為每個(gè)插補(bǔ)周期內(nèi)的位移量;ρi為預(yù)插補(bǔ)點(diǎn)上的弓高誤差;ρmax為記錄的前瞻預(yù)插補(bǔ)過(guò)程中的最大曲率;Fv_plan為速度重新規(guī)劃標(biāo)志,當(dāng)需要對(duì)頻繁加減速區(qū)域進(jìn)行重新速度規(guī)劃時(shí),F(xiàn)v_plan=1,否則Fv_plan=0。 圖6 參數(shù)曲線柔性加減速曲率下降前瞻模塊 這樣,就可以得到整個(gè)前瞻路徑上的曲率變化的特征,并且據(jù)此來(lái)對(duì)速度進(jìn)行規(guī)劃。 為了驗(yàn)證算法的可行性,仿真加工一段三次有理樣條曲線(圖7)。插補(bǔ)周期設(shè)為4ms,最大速度vmax=100mm/s,最大加速度amax=1m/s2,最大加加速度jmax=20m/s3,曲線的控制頂點(diǎn)數(shù)據(jù)如表1所示。 圖7 加工的NURBS曲線 表1 加工路徑數(shù)據(jù)點(diǎn) 如圖8所示,采用自適應(yīng)插補(bǔ)方法能將弓高誤差控制在允許范圍之內(nèi),但是為了控制誤差,未使用前瞻插補(bǔ)算法和使用前瞻插補(bǔ)算法,速度的變化是不相同的。在未使用前瞻插補(bǔ)算法時(shí),不能提前知道曲線的拐點(diǎn),因此無(wú)法使用S形加減速算法,其速度變化如圖9a所示,當(dāng)遇到高曲率點(diǎn)時(shí)其速度突然變小,因此帶來(lái)了很大的加速度變化,如圖10a所示,其最大加速度竟然接近10m/s2,整整超出了限定值的9倍多,這必然會(huì)給機(jī)床帶來(lái)很大沖擊。 圖8 參數(shù)曲線加減速弓高誤差變化曲線 通過(guò)圖9b使用前瞻算法的速度變化圖、圖10b使用前瞻算法的加速度變化圖和圖11可以看出,使用具有前瞻功能的插補(bǔ)算法,在良好控制弓高誤差的同時(shí),速度、加速度、加加速度都在限定范圍內(nèi),滿足了機(jī)床性能要求。 (a)未用前瞻算法(b)使用前瞻算法圖9 參數(shù)曲線加減速速度變化曲線 (a)未用前瞻算法的加速度曲線(b)使用前瞻算法的加速度曲線圖10 參數(shù)曲線加減速加速度變化曲線 圖11 參數(shù)曲線加減速加加速度變化曲線 在加工過(guò)程中,使用自主研發(fā)的基于RT-linux的數(shù)控系統(tǒng),采用R2.5mm的高速鋼球頭銑刀,在此相同的加工參數(shù)下,圖12a為未采用前瞻控制算法得到的加工零件圖,圖12b為采用前瞻控制算法得到的加工零件圖。選取其中兩處進(jìn)行放大比較,如圖13、圖14所示。 (a)未采用前瞻控制算法(b)采用前瞻控制算法圖12 加工試件 (a)未采用前瞻控制算法(b)采用前瞻控制算法圖13 試件1處局部放大圖 (a)未采用前瞻控制算法(b)采用前瞻控制算法圖14 試件2處局部放大圖 圖13a和圖14a所示為使用傳統(tǒng)的加減速方法加工的零件。可以看出其加工軌跡上有加工缺陷,表面比較粗糙,并且有明顯接刀痕。而采用前瞻控制算法加工獲得的試件如圖13b和圖14b所示,相比傳統(tǒng)方法而言,使用前瞻控制算法加工獲得的試件,其加工質(zhì)量提高了,加工缺陷減少了,加工表面也更加光滑了。 本文提出了一種參數(shù)曲線的S形加減速和三角函數(shù)加減速的混合型柔性加減速前瞻控制方法,在前瞻控制中以S形加減速為基礎(chǔ),并在曲率頻繁變化處使用三角函數(shù)的加減速方法來(lái)簡(jiǎn)化計(jì)算。在前瞻過(guò)程中,采用將路徑根據(jù)曲率變化分為曲率上升段和曲率下降段的方法來(lái)對(duì)前瞻路徑進(jìn)行劃分,這樣不僅僅能適應(yīng)參數(shù)曲線的復(fù)雜變化,而且降低了計(jì)算的復(fù)雜性,滿足了數(shù)控系統(tǒng)的實(shí)時(shí)性要求。通過(guò)仿真和實(shí)驗(yàn)可知,此種前瞻方法提高了加工質(zhì)量,取得了較為理想的結(jié)果。 [1] 茍琪.MasterCAM五軸加工方法[M]. 北京: 機(jī)械工業(yè)出版社, 2005. [2] 吳光琳. 組合曲面實(shí)時(shí)插補(bǔ)關(guān)鍵技術(shù)研究[D]. 上海: 上海交通大學(xué), 2000. [3] Shpitalni M, Koren Y, Lob C C. Realtime Curve Interpolators[J]. Computer-Aided Design, 1994, 26(11): 832-838. [4] Yong T, Narayanasami R. A Parametric Interpolation with Confined Chord Error Acceleration and Deceleration for NC Machining[J]. Computer-Aided Design, 2003, 35(13): 1249-1259. [5] Nam S H, Yang M Y. A Study on a Generalized Parametric Interpolator with Real-time Jerk-limited Acceleration[J]. Computer-Aided Design, 2004, 36(1): 27-36. [6] Du Daoshan, Liu Yadong, Yan Cunliang,et al. An Accurate Adaptive Parametirc Curve Interpolator for NURBS Curve Interpolation[J]. Int. Adv. Manuf. Technol.,2007,32:999-1008. [7] 曹宇男,王田苗,陳友東, 等. 插補(bǔ)前S加減速在CNC前瞻中的應(yīng)用[J].北京航空航天大學(xué)學(xué)報(bào),2007,33(5):594-599. [8] 施法中. 計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條 [M]. 北京:高等教育出版社,2001.3 參數(shù)曲線柔性加減速前瞻控制算法仿真與實(shí)驗(yàn)
4 結(jié)語(yǔ)