林 峰 張正紅 陳 勝
1.衢州學(xué)院,衢州,324000 2.浙江永力達(dá)數(shù)控機(jī)床有限公司,衢州,324000
NURBS為初等解析曲線/曲面和自由曲線/曲面提供了統(tǒng)一的數(shù)學(xué)表達(dá)形式,以NURBS為表達(dá)形式的數(shù)控代碼以其良好的輪廓表征精度和精簡的代碼量,已得到越來越多數(shù)控系統(tǒng)的支持。對于現(xiàn)代智能化的CNC控制器而言,一個可靠高效的NURBS刀路插補(bǔ)控制器至關(guān)重要[1]。與基于NURBS表達(dá)的造型技術(shù)相比,基于NURBS的插補(bǔ)技術(shù)相對滯后,當(dāng)前NURBS插補(bǔ)算法缺乏對曲線線形良好的自適應(yīng)性。
Huang等[2]設(shè)計(jì)了恒定進(jìn)給速度的插補(bǔ)控制方法,該方法采用一階泰勒展開來計(jì)算指令步長下NURBS曲線上的插補(bǔ)點(diǎn)坐標(biāo)。為提高計(jì)算精度,Yang等[3]提出采用二階泰勒展開近似求解,以減小進(jìn)給速度的波動。Nam等[4]提出了一種在參數(shù)曲線的始末點(diǎn)進(jìn)行速度光滑處理,在插補(bǔ)曲線的中間區(qū)域保持恒定進(jìn)給速度的規(guī)劃方法。Altintas等[5]采用五次樣條實(shí)現(xiàn)了有加加速度限制的插補(bǔ),但該方法只在插補(bǔ)始末段應(yīng)用,中間過程未考慮插補(bǔ)精度問題。Yeh等[6]實(shí)現(xiàn)了一種進(jìn)給速率自適應(yīng)的NURBS插補(bǔ)器,該方法根據(jù)弓高誤差獲得最大允許進(jìn)給速度值。但該方法沒有提供合適的加減速方案,在步長減小的低速區(qū)域附近,可能出現(xiàn)速度突變。Yong等[7]提出了離線尋找危險點(diǎn)的的插補(bǔ)算法,并對速度變化區(qū)域進(jìn)行加減速控制。Shen等[8]基于進(jìn)給軸伺服驅(qū)動能力角度,提出了基于軸向加速度、加加速度限制的異步插補(bǔ)算法。
本文提出一種基于進(jìn)給速度曲線敏感點(diǎn)識別的NURBS插補(bǔ)算法。敏感點(diǎn)根據(jù)弓高誤差在離線處理階段確定,此后的進(jìn)給速度規(guī)劃即基于此已識別的敏感點(diǎn)。相鄰敏感點(diǎn)之間的加減速則根據(jù)兩點(diǎn)之間的距離進(jìn)行自適應(yīng)控制。進(jìn)而,整個插補(bǔ)進(jìn)給速度曲線可通過連接所有敏感點(diǎn)區(qū)域速度段來完成。
眾所周知,加工自由曲線時保持恒定的加工速度將無法限制弓高誤差。對于給定的加工軌跡,弓高誤差取決于速度曲線,本文將進(jìn)給速度指令值vF下弓高誤差超過給定值的點(diǎn)稱為敏感點(diǎn)。因此,首先需要正確地計(jì)算弓高誤差,然后進(jìn)行速度曲線的正確規(guī)劃。
傳統(tǒng)方法計(jì)算弓高誤差Ei時,采用局部區(qū)域的圓弧近似方法,表達(dá)式如下:
式中,Li為插補(bǔ)周期步長;v(ui)為C(ui)點(diǎn)的進(jìn)給速度;T為恒定的插補(bǔ)周期;ρi為曲線在u=ui處的曲率半徑。
為了識別整個NURBS曲線上的敏感點(diǎn),有必要在插補(bǔ)開始之前對整個0到1的參數(shù)空間進(jìn)行離散。參數(shù)步長Δui越大,越有利于提高計(jì)算效率,但為了提高敏感點(diǎn)識別的精度,步長值越小越好。為了在計(jì)算效率和識別精度之間獲得平衡,通過以下法則來確定參數(shù)步長Δui:
(1)初始參數(shù)步長Δui預(yù)設(shè)為Δui=2Δui-1;
(2)如果下式滿足:
式中,la為以a為起點(diǎn),參數(shù)中點(diǎn)為終點(diǎn)的弦長;lb為以參數(shù)中點(diǎn)為起點(diǎn),b為終點(diǎn)的弦長;lab為以a為起點(diǎn),b為終點(diǎn)的弦長;ξ為逼近誤差率。
他本來會撲到熊身上,把它殺了的??墒撬男膮s開始了那種警告性的猛跳。接著又向上猛頂,迅速跳動,頭像給鐵箍箍緊了似的,腦子里漸漸感到一陣昏迷。
則接受Δui的值,否則執(zhí)行第(3)步;
在式(2)中,我們選擇ξ=1%。整個處理過程將在獲得合適的參數(shù)增量Δui之后結(jié)束,并以C(ui)點(diǎn)離散整個NURBS曲線。
如果設(shè)定弓高誤差的公差為Et,則當(dāng)Ei>Et時,C(ui)為敏感點(diǎn);當(dāng)Ei≤Et時,C(ui)不為敏感點(diǎn)。
若C(ui)是敏感點(diǎn),則該點(diǎn)的最大允許進(jìn)給速度vs可用下式定義:
整個敏感點(diǎn)識別的過程不僅僅是獲得一系列的敏感點(diǎn)信息,同時任意兩個離散計(jì)算點(diǎn)之間的距離信息也被存儲,用于后續(xù)插補(bǔ)規(guī)劃。
如果敏感點(diǎn)存在,則進(jìn)給速度不能在整個加工過程中保持恒定的vF。因此,需要在敏感點(diǎn)附近區(qū)域進(jìn)行加減速。然而,NURBS曲線上相鄰兩個敏感點(diǎn)之間的距離是不同的,所以加減速方案需要根據(jù)不同的情況進(jìn)行自適應(yīng)調(diào)整。
假設(shè)兩點(diǎn)之間的距離足夠保證進(jìn)給速度由vs1加速到vF以及由vF減速到vs2進(jìn)行平滑加減速所需的長度,我們有必要獲得完成這兩個過程所需的距離。如圖1所示,在加速階段,存在ta1、ta2、ta3三個 時間階段,分別實(shí) 現(xiàn) 了 Δva1、Δva2、Δva3的速度變化量。在ta1、ta3階段,進(jìn)行速度增加的同時,加速度也在變化。為保證過程的平滑性,加速度以恒定的加加速度j=j(luò)max進(jìn)行變化。在ta2階段,加速度保持為恒定的amax。
圖1 加減速階段劃分(Ss=Sa+Sd)
首先,必須獲得ta1、ta3階段的加速時間:
式中,ta1為加速度從0變化到amax所需的時間;ta3為從amax變化到0所需的時間。
從圖1可知:
同理,對于降速階段速度曲線,進(jìn)給速度需要從vF平滑過渡到下個敏感點(diǎn)所需速度vs2。降速時間td1、td3的表示式為
圖2 帶恒定速度區(qū)域v=vF的進(jìn)給速度曲線(Ss>Sa+Sd)
否則,若Ss<Sa+Sd,則表示速度無法達(dá)到vF。此時,需要調(diào)整兩敏感點(diǎn)之間最大速度值,vmax←vmaxη,其中,參數(shù)η設(shè)置為0.618。
重復(fù)式(4)~式(12)的計(jì)算,并校驗(yàn)是否滿足式(12)。若不滿足,則需要按上述方式進(jìn)行調(diào)整。當(dāng)滿足式(12),保持恒定速度的時間由以下法則確定:
vmax≠vF時的S′a、S′d與vmax=vF時的Sa、Sd不同,有 S′a< Sa,S′d< Sd。 從 式 (13)可 知,若vmax≠vF,并且Ss-S′a-S′d≠0,則存在一個恒速度為(vmax+vs2)/2的安全緩沖區(qū)域(security buffer),如圖3所示。如果vmax≠vF,且Ss-S′a-S′d=0,則不存在該安全緩沖區(qū),如圖4所示。
圖3 帶安全緩沖區(qū)域速度曲線(Ss<Sa+Sd)
圖4 不帶安全緩沖區(qū)速度曲線(Ss<Sa+Sd)
在曲線插補(bǔ)的開始階段,也必須具有加速階段,盡管第1個插補(bǔ)點(diǎn)不必是敏感點(diǎn)。對于曲線末尾階段情況也一樣。但在本算法中,在曲線始末端通過設(shè)置vs=0的方法來實(shí)現(xiàn)加減速控制。也即是說將始末兩點(diǎn)視為敏感點(diǎn),這樣就無需設(shè)計(jì)專門的算法解決始末端的加減速問題。
采用三次NURBS曲線來驗(yàn)證本插補(bǔ)算法的有效性。曲線控制參數(shù)如表1所示。
表1 NURBS曲線參數(shù)
示例NURBS曲線的形貌如圖5所示,可以看到三個較明顯的高曲率區(qū)域。事實(shí)上,在弓高誤差允許值Et=0.5μm時,這些點(diǎn)即為敏感點(diǎn)。
圖5 NURBS曲線形貌
仿 真 實(shí) 驗(yàn) 在 vF為 80mm/s、100mm/s、140mm/s三個不同的進(jìn)給速度指令值下實(shí)施。仿真使用的加工參數(shù)如表2所示。
表2 加工參數(shù)
圖6~圖8所示為不同進(jìn)給速度指令值vF條件下的插補(bǔ)速度vf曲線,從中可以看出,敏感點(diǎn)的存在與否(或者其位置)在不同的進(jìn)給速度指令值條件下可能發(fā)生變化,特別地,在vf=80mm/s以下時,該NURBS曲線不存在敏感點(diǎn)。
圖6 vF=80mm/s時的插補(bǔ)速度曲線
圖9~圖11所示為不同進(jìn)給速度指令值vF條件下的輪廓誤差??梢钥闯?,弓高誤差被嚴(yán)格限制在0.5μm以內(nèi)。盡管在敏感點(diǎn)處,弓高誤差和速度的預(yù)設(shè)值是通過式(3)確定的,但由于插補(bǔ)計(jì)算時,兩點(diǎn)之間的距離不是嚴(yán)格的精確值,當(dāng)插補(bǔ)計(jì)算到達(dá)敏感點(diǎn)時,實(shí)際速度已經(jīng)與式(3)的預(yù)設(shè)值產(chǎn)生了差異。
圖7 vF=100mm/s時的插補(bǔ)速度曲線
圖8 vF=140mm/s時的插補(bǔ)速度曲線
圖9 vF=80mm/s時的輪廓誤差
圖10 vF=100mm/s時的輪廓誤差
圖11 vF=140mm/s時的輪廓誤差
本文提出的基于進(jìn)給速度曲線敏感點(diǎn)識別的插補(bǔ)方法,可以有效地確定高曲率區(qū)域的速度敏感點(diǎn)。在兼顧計(jì)算效率和識別準(zhǔn)確性的問題上,本文設(shè)計(jì)了可靠的法則以確定參數(shù)步長增量。同時,設(shè)計(jì)了一套在兩個相鄰的速度敏感點(diǎn)之間進(jìn)行自適應(yīng)速度規(guī)劃的算法,提出采用安全緩沖區(qū)的方法進(jìn)行距離自適應(yīng)。算法不僅考慮了插補(bǔ)加工的平滑性和安全性,同時兼顧加工精度和效率。NURBS插補(bǔ)仿真結(jié)果顯示,本算法能夠有效處理敏感點(diǎn)距離與進(jìn)給速度之間存在復(fù)雜關(guān)系的不同情況。
[1]Lei W T,Sung M P,Lin L Y,et al.Fast Realtime NURBS Path Interpolation for CNC Machine Tools[J].International Journal of Machine Tools &Manufacture,2006,43:1-12.
[2]Huang J,Yang D.A Generalized Interpolator for Command Generation of Parametric Curves in Computer Controlled Machines[C]//ASME Japan/USA Symposium on Flexible Automation.San Francisco,CA,USA,1992:286-292.
[3]Yang D,Kong T.Parametric Interpolator Versus Linear Interpolator for Precision CNC Machining[J].Comput-Aided Design,1994,26(3):225-233.
[4]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.
[5]Erkorkmaz K,Altintas Y.High Speed CNC System Design.Part I:Jerk Limited Trajectory Generation and Quintic Spline Interpolation[J].International Journal of Machine Tools & Manufacture,2001,41:1323-1345.
[6]Yeh S,Hsu P.Adaptive-feedrate Interpolation for Parametric Curves with a Confined Chord Error[J].Computer-Aided Design,2002,34(2):229-237.
[7]Yong T,Narayanaswami R.A Parametric Interpolator with Confined Chord Errors,Acceleration and Deceleration for NC Machining[J].Computer-Aided Design,2003,35(13):1249-1259.
[8]Shen Hongyao,F(xiàn)u Jianzhong,Chen Zichen.Axisbased Look-ahead Interpolator for Machining of Surfaces Represented by Nurbs Curves[J].Machining Science and Technology,2008,12(4):546-562.