在數(shù)控系統(tǒng)中,插補(bǔ)算法是生成加工軌跡的一個(gè)*基本的子程序,在很大程度上決定了數(shù)控機(jī)床的加工精度和*大進(jìn)給速度。傳統(tǒng)DDA圓弧插補(bǔ)計(jì)算過程簡單,但是用切線逼近圓弧造成誤差。本文提出了一種新的圓弧DDA插補(bǔ)算法,該改進(jìn)算法使用割線逼近圓弧,可以降低徑向誤差,插補(bǔ)精度較高,誤差分析結(jié)果表明DDA圓弧插補(bǔ)改進(jìn)算法具明顯的優(yōu)勢(shì),可以有效提高計(jì)算精度和計(jì)算效率。
1傳統(tǒng)DDA圓弧插補(bǔ)算法在用戶編制的零件程序中,對(duì)于圓弧插補(bǔ)的程序段,提供了圓弧在XZ平面中的起點(diǎn)、終點(diǎn)以及圓心相對(duì)于起點(diǎn)的偏移量I 0、K 0值?,F(xiàn)以**象限的順圓為例,說明傳統(tǒng)DDA圓弧插補(bǔ)算法的實(shí)現(xiàn)。
在機(jī)床XZ坐標(biāo)系中,設(shè)圓弧起點(diǎn)為A,圓心為C,坐標(biāo)軸原點(diǎn)平移A點(diǎn)后構(gòu)成IK坐標(biāo)系。IK坐標(biāo)系原點(diǎn)A即切割槍位置,隨著切割槍而移動(dòng),圓心C相對(duì)于原點(diǎn)A的坐標(biāo)值為(K,I)。第i次迭代之后,切割槍按照插補(bǔ)命令移動(dòng)到A i點(diǎn),這時(shí)圓心C的坐標(biāo)為(K i,I i)。在第i+1次迭代中,切割槍將沿著切線A i C′方向移動(dòng),于是將按斜率為-K i/I i的切線進(jìn)行插補(bǔ)迭代一步,切割槍移動(dòng)到A i+1點(diǎn)。此時(shí)圓心C相對(duì)于A i+1,的坐標(biāo)為(I i+1,K i+1)。
式(1)X和Z軸的進(jìn)給步長可以根據(jù)編程速度按斜率為-K i/I i;的直線A i C′計(jì)算如下:△X i+1=v(3)因此,**象限順圓的傳統(tǒng)DDA圓弧插補(bǔ)迭代公式如下式(4)I i=I i-1-△X i K i=K i-1-△Z i)式(5)X i=X i-1-△X i Z i=Z i-1-△Z i)式(6)上述公式中**個(gè)公式用來計(jì)算第I次插補(bǔ)周期中坐標(biāo)軸的進(jìn)給步長,第二個(gè)公式用來修正圓心相對(duì)于切割槍位置的現(xiàn)時(shí)坐標(biāo),第三個(gè)公式用來計(jì)算切割槍應(yīng)該達(dá)到的命令位置。圖2中軌跡是根據(jù)傳統(tǒng)DDA圓弧插補(bǔ)算法形成的軌跡曲線,包括8個(gè)插補(bǔ)點(diǎn)。由切線逼近圓弧的插補(bǔ)算法本身的誤差所引起的徑向誤差較大。
2DDA圓弧插補(bǔ)改進(jìn)算法及其實(shí)現(xiàn)傳統(tǒng)DDA圓弧插補(bǔ)計(jì)算過程簡單,但是用切線逼近圓弧造成誤差。該改進(jìn)算法使用割線逼近圓弧,可以降低徑向誤差。改進(jìn)算法的思想如圖3所示,下面以順圓為例說明。
IK坐標(biāo)系原點(diǎn)A即切割槍位置,隨著切割槍而移動(dòng),圓心C相對(duì)于原點(diǎn)A的坐標(biāo)值為(K,I)。第i次迭代之后,切割槍按照插補(bǔ)命令移動(dòng)到A i點(diǎn),這時(shí)圓心C的坐標(biāo)為(K i,I i)。
在第i+l次迭代中,切割槍將移動(dòng)到A i+1點(diǎn)。A i A i+1是輔助圓A i DA i+1的割線和輔助圓EBF的切線,R 1、R 2分別是輔助圓A i DA i+1和EBF的半徑。
R是插補(bǔ)圓弧的半徑,因?yàn)閮?nèi)外均差割線可以降低徑向誤差,所以由DDA圓弧插補(bǔ)原理可得G點(diǎn)坐標(biāo)(Z g,X g)Z x=Z i+A i G因?yàn)镚、B、C在一條直線上,C點(diǎn)在ZX坐標(biāo)系下坐標(biāo)為(Z c,X c},所以B點(diǎn)坐標(biāo)(Z b,X b)為Z b=Z c+Z g式(15)因?yàn)锽為A i A i+1的中點(diǎn),所以A i+1的坐標(biāo)(Z i+1,X i+1)為Z i+1=2Z b-Z i X i+1=2b-X i)式(16)如圖4所示在插補(bǔ)的開始和結(jié)束位置,根據(jù)DDA插補(bǔ)原理,使用插補(bǔ)圓弧的切線連接插補(bǔ)圓弧和逼近圓弧的割線。
設(shè)圓弧插補(bǔ)起點(diǎn)為P o(Z o,X o),終點(diǎn)為P e(Z e,X e),圓心相對(duì)于圓弧起點(diǎn)的偏差為K 0和I 0,圓心相對(duì)于圓弧終點(diǎn)的偏差為K e和I e,圓弧半徑為R,進(jìn)給速度為v,插補(bǔ)周期為T,則改進(jìn)圓弧插補(bǔ)算法為(1)計(jì)算輔助圓半徑R 1和R 2 R 1=R2)計(jì)算插補(bǔ)圓弧起點(diǎn)和終點(diǎn)處的切線斜率在起點(diǎn)處:k 0=-k 0/I 0式(19)在終點(diǎn)處:k e=-k e/I e式(20)(3)計(jì)算插補(bǔ)圓弧起點(diǎn)和終點(diǎn)的切線與外側(cè)輔助圓的交點(diǎn)A 1和A n的坐標(biāo)A 1的坐標(biāo):Z 1=R 1 2-R 2K 0/R+Z 0 X 1=-R 1 2-R I 0/R+X 0
式(22)(4)計(jì)算**步進(jìn)給量△Z 1=Z 1-Z 0式(23)△X 1=X 1-X 0式(24)(5)修正圓心坐標(biāo)K 1=K i-1-Z i I 1=I i-1-X i(式(25)(6)計(jì)算算輔助插補(bǔ)步長L=vTR 1 2R 2式(26)(7)根據(jù)式(13-16)計(jì)算第i步的命令位置A i(Z i,X i)(8)計(jì)算進(jìn)給量△Z i=Z i-Z i-1式(27)△X i=X i-X i-1式(28)(9)判別是否到達(dá)終點(diǎn)A n,若是,轉(zhuǎn)項(xiàng)(10),否則i加1后轉(zhuǎn)項(xiàng)(5)(10)結(jié)束軌跡是改進(jìn)后的DDA圓弧插補(bǔ)算法形成的軌跡曲線,對(duì)比可知改進(jìn)后的DDA圓弧插補(bǔ)算法的徑向誤差比原算法小。
3DDA圓弧插補(bǔ)改進(jìn)算法誤差分析以下的誤差分析主要針對(duì)DDA圓弧插補(bǔ)改進(jìn)算法的徑向誤差與弦線逼近圓弧的弦線誤差進(jìn)行比較。在相同的步長δ和相同的圓弧半徑R條件下,e r1為弦線逼近圓弧的弦線誤差,e r2為DDA圓弧插補(bǔ)改進(jìn)算法的徑向誤差。如所示,在弦線逼近圓弧時(shí)e r1的計(jì)算公式為e r1=R(1-δ2 4R 2)式(29)如所示,在DDA圓弧插補(bǔ)改進(jìn)算法中的計(jì)算公式為e r2=Rδ2 8R 2式(30)令△e r=e r1-e r2 R=1-1-δ2 4R 2 "-δ2 8R 2式(31)K=δR式(32)則△e r=1-1-k 2 4-k 2 8式(33)函數(shù)圖像如所示。當(dāng)0<k≤2時(shí),△e r>0,即DDA圓弧插補(bǔ)改進(jìn)算法的徑向誤差小于弦線逼近圓弧的弦線誤差。而且在k>1時(shí),即切割小半徑圓弧時(shí)前者有明顯的優(yōu)勢(shì)。另外在DDA圓弧插補(bǔ)改進(jìn)算法中不包含超越函數(shù),可以有效提高計(jì)算精度和計(jì)算效率。
4小結(jié)本文介紹了數(shù)控系統(tǒng)所使用的圓弧插補(bǔ)算法。
其中提出了一個(gè)基于傳統(tǒng)DDA圓弧插補(bǔ)算法的改進(jìn)算法,并通過比較證明了該算法相對(duì)于弦線插補(bǔ)算法的優(yōu)越性。實(shí)踐表明DDA圓弧插補(bǔ)改進(jìn)算法精簡了計(jì)算步驟,提高了計(jì)算速度。