郭永環(huán) 范希營(yíng) 劉鳳國(guó)
(江蘇師范大學(xué)機(jī)電工程學(xué)院,江蘇徐州 221116)
插補(bǔ)算法是整個(gè)數(shù)控系統(tǒng)控制的核心,其穩(wěn)定性和算法精度將直接影響到CNC系統(tǒng)的性能指標(biāo)。根據(jù)插補(bǔ)采用的原理和計(jì)算方法的不同,可有許多插補(bǔ)方法。目前應(yīng)用的插補(bǔ)方法分為2類(lèi):基準(zhǔn)脈沖插補(bǔ)和數(shù)據(jù)采樣插補(bǔ)。基準(zhǔn)脈沖插補(bǔ)中常用的有逐點(diǎn)比較法(在2個(gè)坐標(biāo)軸開(kāi)環(huán)的CNC系統(tǒng)中應(yīng)用比較普遍,一般不用于多軸聯(lián)動(dòng),應(yīng)用范圍受到一定限制)和數(shù)字積分法(簡(jiǎn)稱(chēng)DDA法,易于實(shí)現(xiàn)多坐標(biāo)軸聯(lián)動(dòng))。本文主要研究新型的DDA法。由于傳統(tǒng)的DDA法沿各坐標(biāo)軸脈沖頻率不均勻,進(jìn)給速度不夠快,以及插補(bǔ)誤差較大,精度較低。因此國(guó)內(nèi)外許多學(xué)者研究了各種改進(jìn)方法,取得了豐碩的成果[1-6]。這些成果中有的插補(bǔ)精度提高了,但由于算法復(fù)雜使得插補(bǔ)速度卻降低了[7-9];也有的沿x軸脈沖分配均勻,但沿y軸脈沖分配不均勻[10-11]。本文將研究一種提高精度但算法簡(jiǎn)單以及各軸脈沖分配均勻的插補(bǔ)算法。
近年來(lái),國(guó)內(nèi)外學(xué)者取得了可喜的成績(jī)[1-12],但在下述3個(gè)方面還需進(jìn)一步改進(jìn)和提高。
(1)沿各坐標(biāo)軸脈沖頻率不均勻 例如,起點(diǎn)坐標(biāo)為o(0,0),終點(diǎn)坐標(biāo)為A(10,7),用傳統(tǒng)的DDA法進(jìn)行直線(xiàn)插補(bǔ)時(shí),被積函數(shù)寄存器為四位二進(jìn)制寄存器,累加器和終點(diǎn)計(jì)數(shù)器也為四位二進(jìn)制計(jì)數(shù)器,迭代次數(shù)為24=16次時(shí),插補(bǔ)結(jié)束。插補(bǔ)計(jì)算的過(guò)程如表1所示。
表1 傳統(tǒng)數(shù)字積分插補(bǔ)法直線(xiàn)插補(bǔ)運(yùn)算過(guò)程
根據(jù)表1可以看出脈沖沿x軸發(fā)出10次,沿y軸發(fā)出7次,x軸脈沖分配不均勻,y軸脈沖分配更不均勻,且間隔增大,將造成步進(jìn)電動(dòng)機(jī)失步,使各軸運(yùn)轉(zhuǎn)不平穩(wěn)以及步進(jìn)電動(dòng)機(jī)噪聲增大,影響工件的表面質(zhì)量。
(2)插補(bǔ)精度較高時(shí),進(jìn)給速度不夠快。
(3)插補(bǔ)算法簡(jiǎn)單時(shí),插補(bǔ)誤差較大,精度較低。
以第一象限直線(xiàn)插補(bǔ)為例,設(shè)直線(xiàn)起點(diǎn)為o(0,0),終點(diǎn)為A(xe,ye),如圖1所示。對(duì)xoy平面上的一條直線(xiàn)(如圖1中的oA)可用下面的方程式來(lái)表達(dá):y
將式(1)兩邊對(duì)x求導(dǎo)得,并對(duì)時(shí)間微分得:
這里,dy/dt、dx/dt的物理意義分別對(duì)應(yīng)動(dòng)點(diǎn)沿y軸和x軸方向上的運(yùn)動(dòng)速度分量。
又可以改寫(xiě)成:
式中:k為比例常數(shù)。
當(dāng)xe>ye時(shí),只能走x或x、y同時(shí)走的方式。說(shuō)明沿x軸方向的運(yùn)動(dòng)總步數(shù)大于沿y軸方向的總步數(shù),所以每一次插補(bǔ)中都沿x軸正向進(jìn)給一步。由此說(shuō)明了在插補(bǔ)過(guò)程中不需要判斷x軸在插補(bǔ)過(guò)程中的累加,從而只要判斷y軸方向在插補(bǔ)過(guò)程中的累加[12]。其中脈沖當(dāng)量為單位脈沖,循環(huán)次數(shù)q1為(xe,ye)中的最大數(shù),由于xe≥ye,則對(duì)y軸方向積分[13]為
被積函數(shù)寄存器存放y軸終點(diǎn)坐標(biāo)值ye,每來(lái)一個(gè)ΔT脈沖,被積函數(shù)寄存器里的函數(shù)值送往相應(yīng)的累加器中相加一次。當(dāng)累加和超過(guò)累加器的容量時(shí),便溢出脈沖,作為驅(qū)動(dòng)相應(yīng)坐標(biāo)軸的進(jìn)給脈沖y,而余數(shù)仍存在積分累加器中。
設(shè)積分累加器控制極限為q1,當(dāng)超過(guò)積分累加器控制極限q1時(shí),必須發(fā)出脈沖溢出。若將q1規(guī)定為單位“1”(相當(dāng)于一個(gè)輸出脈沖),那么積分累加器中的存數(shù)總是小于q1,即為小于1的數(shù),該數(shù)稱(chēng)為積分余數(shù)。如將ye累加q1次后的y積分值[14]應(yīng)為
積分值大于q1的部分表示溢出的脈沖,而余數(shù)部分存放在累加器中,即:
積分值=溢出脈沖數(shù)+余數(shù)
表2 新型DDA法直線(xiàn)插補(bǔ)的計(jì)算過(guò)程
當(dāng)兩個(gè)坐標(biāo)軸同步插補(bǔ)時(shí),用溢出脈沖控制機(jī)床的進(jìn)給,就可以走出所需的直線(xiàn)軌跡。
若x向已走夠指定步數(shù)q1=xe時(shí),即插補(bǔ)結(jié)束。
為了減小插補(bǔ)誤差,提高插補(bǔ)精度,可以在插補(bǔ)開(kāi)始時(shí)設(shè)置積分初值為終點(diǎn)坐標(biāo)值中最大值的一半[14],即sy=xe/2。
對(duì)于x軸,不管y軸如何變化,在每次插補(bǔ)過(guò)程中,x軸都向正向走一步,也就是說(shuō),x軸在每次插補(bǔ)過(guò)程中都有脈沖輸出。而y軸在某一周期可能走也可能不走,仍不能保持y軸均勻分配脈沖。因此將累加器控制極限q1分成ye等分,即每等分為q1/ye,其中累加器中y的余數(shù)為sy,也是分成ye等分,即每等分為sy/ye。當(dāng)sy+ye≥q1時(shí),為了能使y軸均勻分配脈沖,y軸應(yīng)該在待定時(shí)刻發(fā)出脈沖,即和新型插補(bǔ)法計(jì)算的時(shí)間之間有一個(gè)時(shí)間差為[13]
其中:T為傳統(tǒng)DDA法的脈沖發(fā)出時(shí)刻。
如果sy+ye<q1時(shí),就不必考慮y軸的走向。同理,當(dāng)xe<ye時(shí),只能走 y或 x、y同時(shí)走的方式,同樣可以分析xe≤ye時(shí)的插補(bǔ)情況。
設(shè)直線(xiàn)的軌跡為oA,起點(diǎn)坐標(biāo)為o(0,0),終點(diǎn)坐標(biāo)為A(10,7),則脈沖個(gè)數(shù)q1=max(10,7)=10,令積分初值為sy=xe/2=10/2=5,y軸發(fā)出脈沖與產(chǎn)生的時(shí)間差為各個(gè)脈沖特定時(shí)刻ΔT=(q1-sy)/T/ye。其中sy為上步中積分修正值,其計(jì)算結(jié)果如表2所示。
兩種DDA法直線(xiàn)插補(bǔ)的脈沖分配波形如圖3所示。圖3a與3b相比較可以看出在數(shù)控加工過(guò)程中,傳統(tǒng)的DDA直線(xiàn)插補(bǔ)法的各坐標(biāo)軸發(fā)出脈沖的時(shí)間間隔極不均勻,而且循環(huán)次數(shù)較多,從而降低了插補(bǔ)速度,影響了生產(chǎn)率。新型的DDA直線(xiàn)插補(bǔ)法使得各坐標(biāo)軸發(fā)出脈沖的時(shí)間間隔均勻,提高各軸步進(jìn)電動(dòng)機(jī)運(yùn)行的平穩(wěn)性,減少了失步的可能性。同時(shí)插補(bǔ)速度大大提高,由傳統(tǒng)的DDA直線(xiàn)插補(bǔ)累加16次(如表1所示)減少到10次(如表2所示),而進(jìn)給速度并沒(méi)有降低,也未影響生產(chǎn)率。
(1)新型DDA直線(xiàn)插補(bǔ)算法使x、y坐標(biāo)軸脈沖分配較均勻,沒(méi)有周期性變化。
(2)新型積分直線(xiàn)插補(bǔ)算法簡(jiǎn)單,插補(bǔ)次數(shù)取終點(diǎn)坐標(biāo)值較大者。而傳統(tǒng)的插補(bǔ)算法的插補(bǔ)次數(shù)與寄存器的位數(shù)有關(guān),如果寄存器的位數(shù)N=3,則要累加n=23=8,即插補(bǔ)8次,如果寄存器的位數(shù)N=4,則要插補(bǔ)16次。因此傳統(tǒng)的插補(bǔ)算法當(dāng)寄存器的位數(shù)越大,則插補(bǔ)次數(shù)越多,插補(bǔ)效率越低。
(3)新型DDA直線(xiàn)插補(bǔ)算法插補(bǔ)誤差小于0.5個(gè)脈沖當(dāng)量。
[1]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.
[2]Pedro L D Peres,Ivanil S Bonatti,Walter C Borelli.The linear interpolation method:A sampling theorem approach[J].Controle y Automacao,2003,14(4):439 -444.
[3]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.
[4]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.
[5]LI Guihua,F(xiàn)EI Yetai,MA Xiushui.Principle of error compensation in long axle cutting[J].Nongye Jixie Xuebao/Transactions of the Chinese Society of Agricultural Machinery,2006,37(6):131 -133.
[6]MENG Shuyun,ZHAO Dongbiao.Direct interpolation algorithm for pen- cutting of sculptured surfaces[J].Journal of Southeast University(English Edition),2006,22(1):73 -77.
[7]ZHAO Qingzhi,LIU Zhengxun,GU An,et al.New machining method for different top and bottom shaped workpiece with LS-WEDM based on difference interpolation theory[J].China Mechanical Engineering,2006,17(8):793 -797.
[8]王忠平.基于DSP的數(shù)控雕刻系統(tǒng)研究及其仿真實(shí)現(xiàn)[D].上海:上海交通大學(xué),2007.
[9]林礪宗,劉磊.基于TMS320F2812的多軸運(yùn)動(dòng)控制器研究[J].微電機(jī),2007,40(9):40 -48.
[10]程鐵漢.在線(xiàn)工業(yè)標(biāo)記打印機(jī)的研究[D].重慶:重慶大學(xué),2008.
[11]古至和.嵌入式數(shù)控雕刻機(jī)軟件系統(tǒng)開(kāi)發(fā)[D].成都:電子科技大學(xué),2009.
[12]楊樹(shù)蓮.快速數(shù)字積分插補(bǔ)算法及其實(shí)現(xiàn).機(jī)床電器,2003(6):12-14.
[13]王廣炎,張潤(rùn)孝,王小椿.脈沖均勻化插補(bǔ)方法[D].西安:西安交通大學(xué),2000.
[14]李郝林,方鍵.機(jī)床數(shù)控技術(shù)[J].北京:機(jī)械工業(yè)出版社,2000.