郭永環(huán) 范希營(yíng)
(江蘇師范大學(xué)機(jī)電工程學(xué)院,江蘇徐州 221116)
傳統(tǒng)的數(shù)字積分插補(bǔ)法又稱數(shù)字微分法(DDA),它是在數(shù)字積分器的基礎(chǔ)上建立起來(lái)的一種插補(bǔ)法。數(shù)字積分器通常由函數(shù)寄存器、累加器(余數(shù)寄存器)和與門(mén)組成。其工作過(guò)程為每隔時(shí)間t發(fā)出1個(gè)脈沖,與門(mén)打開(kāi)1次,將函數(shù)寄存器中的函數(shù)值送累加器中累加1次,當(dāng)累加和超過(guò)累加器的容量時(shí),便發(fā)出溢出脈沖,這樣累加過(guò)程中產(chǎn)生的溢出脈沖總數(shù)就是所求的積分值。插補(bǔ)器控制刀具以1個(gè)脈沖為單位向前前進(jìn)。脈沖插補(bǔ)法的計(jì)算簡(jiǎn)單,用加減法即可實(shí)現(xiàn),每個(gè)插補(bǔ)循環(huán)占用時(shí)間短。可以實(shí)現(xiàn)1次、2次、甚至是高次曲線的插補(bǔ)(只要曲線的切線方向容易求得,就可利用該方法進(jìn)行插補(bǔ)),也可實(shí)現(xiàn)多坐標(biāo)聯(lián)動(dòng)控制。但是數(shù)字積分插補(bǔ)法的插補(bǔ)誤差比較大,尤其是圓弧插補(bǔ)有時(shí)甚至是大于 1 個(gè)脈沖當(dāng)量[1]。Tsai[2]、Peres Pedro[3]、Yang Minyang[4]、Chen Hsinchuan[5]等人研究了改進(jìn)的插補(bǔ)算法,使插補(bǔ)精度提高,但算法過(guò)于復(fù)雜。蒙斌[6]對(duì)數(shù)字積分圓弧插補(bǔ)法進(jìn)行了改進(jìn),改進(jìn)后實(shí)際插補(bǔ)誤差可以降低到小于1個(gè)脈沖當(dāng)量。本文將繼承這些成果,研究一種提高精度但算法簡(jiǎn)單以及各軸脈沖分配均勻性的數(shù)字積分圓弧插補(bǔ)方法。
當(dāng)在第1象限逆圓弧插補(bǔ)時(shí)x軸和y軸的進(jìn)給方向分別是-x和+y方向,將圓弧起始點(diǎn)所在軸方向即x向積分累加器賦初值改為:大于等于x方向最大增量值的2/3的最小整數(shù),例如圓弧AB的起點(diǎn)坐標(biāo)為A(20,0),終點(diǎn)坐標(biāo)為B(0,20),則Sx的初值取≥2 ×20/3的最小整數(shù)為14,即向上取整。記作:FUP(x)=min{n∈Z|x≤n},F(xiàn)UP(2×20/3)=14。而y軸方向(即另外一根軸方向)的積分累加器的初值改為:小于等于y方向最大增量值的1/2的最大整數(shù),即初值取≤1×20/2的最大整數(shù)為10,即向下取整。記作:FIX(x)=max{n∈Z|n≤x},F(xiàn)IX(1 ×20/2)=10。插補(bǔ)原理如圖1所示,圖中N為每個(gè)坐標(biāo)方向終點(diǎn)和起點(diǎn)坐標(biāo)之差的絕對(duì)值之和。同理,如果順圓弧插補(bǔ),則FUP(2R/3)→Sy,F(xiàn)IX(R/2)→Sx,其他類(lèi)似,此外略。
圓弧AB的起點(diǎn)坐標(biāo)為A(20,0),終點(diǎn)坐標(biāo)為B(0,20),sx和sy分別是x軸和y軸坐標(biāo)方向的積分累加器。
3種DDA法圓弧插補(bǔ)的脈沖分配波形如圖3所示。
圖3c與圖3a比較可以看出,新型DDA插補(bǔ)法x軸的脈沖越往后脈沖輸出越連續(xù)。y軸的脈沖間隔由4個(gè)降為2個(gè)。圓弧插補(bǔ)的累加次數(shù)由原來(lái)的51次降到31次,插補(bǔ)速度大大提高。3種插補(bǔ)方法的比較見(jiàn)表1所示。
表1 3種DDA插補(bǔ)方法的比較
(1)新型DDA圓弧插補(bǔ)算法插補(bǔ)精度提高了一倍。插補(bǔ)起點(diǎn)坐標(biāo)為A(20,0),終點(diǎn)坐標(biāo)為B(0,20)的圓弧AB,傳統(tǒng)的DDA圓弧插補(bǔ)算法的插補(bǔ)誤差為1.26個(gè)脈沖當(dāng)量,而新型DDA圓弧插補(bǔ)算法插補(bǔ)誤差為0.62脈沖當(dāng)量。
(2)采用非對(duì)稱式的加載方法,可以提高插補(bǔ)速度。采用新型插補(bǔ)方法將圓弧起始點(diǎn)所在軸方向進(jìn)給的積分累加器的賦初值為大于等于該方向最大增量值的2/3的最小整數(shù),而另一方向進(jìn)給的積分累加器賦初值為小于等于該方向最大增量值的1/2的最大整數(shù)之后,插補(bǔ)圓弧AB的次數(shù)由原來(lái)的51次降到31次,而算法并不復(fù)雜。
[1]吳福忠.數(shù)字積分法插補(bǔ)誤差分析[J].紹興文理學(xué)院學(xué)報(bào),2007,27(9):31-33.
[2]Tsai,HUI Feng,JIANG Zanghao,et al.Interpolated timing recovery using raised cosine pulse[J].International Journal of Electrical Engineering,2005,12(4):391 -398.
[3]Peres Pedro L D,Bonatti Ivanil S,Borelli Walter C.The linear interpolation method:a sampling theorem approach[J].Controle y Automacao,2003,14(4):439 -444.
[4]YANG Minyang,HONG Wonpyo.Three- dimensional reference pulse linear and circular interpolators for CNC systems[J].International Journal of Machine Tools& Manufacture,2001(41),555-566.
[5]CHEN Hsinchuan,CHIANG Jenshiun.A low -jitter phase-interpolation direct digital synthesizer using single capacitor integration[J].International Journal of Electrical Engineering,2005,12(3):225 -232.
[6]蒙斌.數(shù)控機(jī)床數(shù)字積分插補(bǔ)法的改進(jìn)[J].中國(guó)制造業(yè)信息化,2007,36(17):20 -22.
[7]劉希敏,劉新宇,趙先仲.軟件插補(bǔ)處理的新方法——比較積分法[J].華北航天工業(yè)學(xué)院學(xué)報(bào),2003,13(1):20 -22.
[8]周保廷,王柏軍.基于FPGA的數(shù)控?cái)?shù)字積分法圓弧插補(bǔ)器的設(shè)計(jì)與實(shí)現(xiàn)[J].電氣傳動(dòng)自動(dòng)化,2005,27(5):16 -18.