解本銘,王 磊
(中國民航大學(xué),天津 300300)
插補(bǔ)計(jì)算是實(shí)現(xiàn)并聯(lián)機(jī)床刀具高速、高精度軌跡控制的關(guān)鍵技術(shù)。在數(shù)控加工中,數(shù)控系統(tǒng)要解決控制刀具與工件運(yùn)動軌跡的問題,在規(guī)定路徑上根據(jù)某一數(shù)學(xué)函數(shù)確定已知兩點(diǎn)間多個(gè)中間點(diǎn)坐標(biāo)。插補(bǔ)的實(shí)質(zhì)其實(shí)是根據(jù)有限信息完成“數(shù)據(jù)密化”的工作[1]。
數(shù)控加工程序提供了刀具運(yùn)動的起點(diǎn)、終點(diǎn)和運(yùn)動軌跡,具體到刀具如何從起點(diǎn)沿運(yùn)動軌跡走到終點(diǎn)則由數(shù)控系統(tǒng)的插補(bǔ)裝置來控制。原則上講,刀具運(yùn)動軌跡應(yīng)該準(zhǔn)確的按零件的輪廓形狀生成。但是,由于對于復(fù)雜的曲線輪廓,直接計(jì)算刀具運(yùn)動軌跡非常復(fù)雜,計(jì)算工作量很大,不能滿足數(shù)控加工的實(shí)時(shí)控制要求。因此,在實(shí)際應(yīng)用中,是用一小段直線或圓弧去逼近零件輪廓曲線,即直線和圓弧插補(bǔ)。對于大多數(shù)數(shù)控系統(tǒng)來說,都具有直線和圓弧插補(bǔ)功能,只有在一些較高檔次的數(shù)控系統(tǒng)才具有拋物線、螺旋線插補(bǔ)功能[2]。本課題所需打磨的零件輪廓可以近似等效為直線與圓弧的組合,因此,如何設(shè)計(jì)直線和圓弧的插補(bǔ)算法是本系統(tǒng)的主要任務(wù)。
插補(bǔ)方法常見的有脈沖增量插補(bǔ)和數(shù)據(jù)采樣插補(bǔ)兩大類。脈沖增量插補(bǔ)法適用于以步進(jìn)電機(jī)為驅(qū)動裝置的開環(huán)數(shù)控系統(tǒng)。它僅僅適用于中等精度和中等速度、以步進(jìn)電機(jī)為執(zhí)行機(jī)構(gòu)的機(jī)床數(shù)控系統(tǒng)。數(shù)據(jù)采樣插補(bǔ)方法適用于閉環(huán)和半閉環(huán)以直流或交流伺服電機(jī)為執(zhí)行機(jī)構(gòu)的數(shù)控系統(tǒng)。本系統(tǒng)打磨機(jī)采用了半閉環(huán)的交流伺服電機(jī)作為執(zhí)行機(jī)構(gòu),在插補(bǔ)算法選擇中選擇數(shù)據(jù)采樣插補(bǔ)。時(shí)間分割插補(bǔ)法作為典型的數(shù)據(jù)采樣插補(bǔ)方法,它每次插補(bǔ)一小段直線,各坐標(biāo)同時(shí)進(jìn)給,具有更高的軌跡控制精度[3]。本系統(tǒng)要實(shí)現(xiàn)三軸聯(lián)動直線插補(bǔ)和圓弧插補(bǔ)的半閉環(huán)伺服控制功能,采用時(shí)間分割法,對插補(bǔ)過程進(jìn)行分析研究,為后續(xù)軟件實(shí)現(xiàn)做好鋪墊。
設(shè)工件或刀具在三維空間中作直線運(yùn)動,如圖1所示。 假設(shè)直線段的起點(diǎn)坐標(biāo)為 Ps(Xs,Ys,Zs), 終點(diǎn)坐標(biāo)為Pe(Xe,Ye,Ze), Pi(Xi,Yi,Zi)為一瞬時(shí)插補(bǔ)點(diǎn), 插補(bǔ)周期為 t(ms),采樣周期與插補(bǔ)周期相同,進(jìn)給速度為v(mm/min)。
圖1 插補(bǔ)直線段
圖2 直線插補(bǔ)終點(diǎn)判別原理
程 序 段 在 各 坐 標(biāo) 軸 的 單 位 分 量 為 :X'=|x2-x1|/L,Y'=|Y2-Y1|/L,Z'=|Z2-Z1|/L。 在一個(gè)插補(bǔ)周期內(nèi)刀具在各坐標(biāo)方向的進(jìn)給為:X=s*X',Y=s*Y', Z=s*Z'。
在插補(bǔ)過程中,各坐標(biāo)進(jìn)給量是不變的,因此只需插補(bǔ)開始一次離線計(jì)算,插補(bǔ)過程中無需重復(fù)計(jì)算,之后每進(jìn)行一次插補(bǔ)計(jì)算,輸出下一組插補(bǔ)點(diǎn)坐標(biāo)并進(jìn)行終點(diǎn)的判別。
直線插補(bǔ)的終點(diǎn)判別:直線插補(bǔ)的終點(diǎn)判別原理如圖2 所示。 已知插補(bǔ)起始點(diǎn)為 P0(x0,y0),終點(diǎn)為 Pe(xe,ye),中間瞬時(shí)插補(bǔ)點(diǎn)為Pi(xi,yi),OXY坐標(biāo)系為直線插補(bǔ)參考坐標(biāo)系。以插補(bǔ)起始點(diǎn)為原點(diǎn)建立輔助坐標(biāo)系O'X'Y',設(shè)Sx,Sy為終點(diǎn)判別參數(shù)。它們的取值取決于終點(diǎn)在輔助坐標(biāo)系中的位置。
直線插補(bǔ)終點(diǎn)判別條件為:
如果式(1)成立,則表明插補(bǔ)點(diǎn)在X上的坐標(biāo)超過了插補(bǔ)終點(diǎn)的坐標(biāo),因此,X軸的進(jìn)給量應(yīng)該改為xe-xi-1;同理,如果式(2)成立,則Y軸的進(jìn)給應(yīng)改為ye-yi-1。
直線插補(bǔ)終點(diǎn)判別方法中,Sx和Sy在插補(bǔ)開始前就已經(jīng)離線計(jì)算好,只需實(shí)時(shí)計(jì)算終點(diǎn)判別條件是否成立。
圓弧插補(bǔ)的思想是在滿足精度要求的前提下,用弦或割線、切線代替圓弧進(jìn)給,時(shí)間分割法采用的是用弦線代替圓弧進(jìn)給。實(shí)際上也是用直線逼近圓弧,重要的是計(jì)算出下一個(gè)插補(bǔ)點(diǎn)的坐標(biāo)和進(jìn)給量。
圖3 時(shí)間分割圓弧插補(bǔ)原理
如圖3所示,圓上Pi,Pi+1是插補(bǔ)中第一象限相鄰兩點(diǎn),在一次插補(bǔ)周期內(nèi)進(jìn)給量PiPi+1即為進(jìn)給步長。PiP是圓弧在Pi點(diǎn)的切線,M是弦PiPi+1的中點(diǎn),OM⊥PiPi+1,ME⊥PiF,E為AF的中點(diǎn)。
因?yàn)?OPi⊥PiP, 所以有△PiOC~△PPiF, 則:
因?yàn)镻iP為切線,所以:
計(jì)算tanα很困難。為此,用cos45°和sin45°來代替cosα和sinα。上式可改為:
因?yàn)镻i點(diǎn)的坐標(biāo)值已知,若想求Pi+1點(diǎn)的坐標(biāo)可通過求X軸的進(jìn)給量:
又因?yàn)镻i,Pi+1是圓弧上兩點(diǎn),所以滿足圓的方程式:
由此可以得出下一個(gè)插補(bǔ)點(diǎn)Pi+1的坐標(biāo)為:
以上是以第一象限順時(shí)針插補(bǔ)計(jì)算得到的進(jìn)給公式,其它象限推導(dǎo)過程同理。
圓弧插補(bǔ)終點(diǎn)判別:終點(diǎn)判斷是保證插補(bǔ)運(yùn)動能順利實(shí)現(xiàn)的重要因素。在圓弧插補(bǔ)的過程中,終點(diǎn)判斷失效可能導(dǎo)致插補(bǔ)進(jìn)入死循環(huán)。因此,終點(diǎn)判斷方法的合理設(shè)計(jì)直接關(guān)系到圓弧插補(bǔ)程序的可靠性。
現(xiàn)令已知圓弧插補(bǔ)起、終點(diǎn)坐標(biāo)及I,K參數(shù),由此得到圓弧圓心坐標(biāo)為 xo=xs+I,yo=ys+J,(xs,ys)為輔助坐標(biāo)系O'X'Y'的原點(diǎn)在坐標(biāo)系OXY中的坐標(biāo)值。設(shè)兩個(gè)終點(diǎn)判別參數(shù)Sx,Sy。
(1)順圓插補(bǔ)時(shí),Sx,Sy的表達(dá)式為:
(2)逆圓插補(bǔ)時(shí),Sx,Sy的表達(dá)式為:
其中,sgn(*)表示符號函數(shù),定義:
設(shè)變量Psx與Psy用來判別插補(bǔ)點(diǎn)是否與插補(bǔ)終點(diǎn)處于輔助坐標(biāo)系O'X'Y'中所定義象限的同一象限,定義為:
順圓插補(bǔ)時(shí),Psx=-Sy,Psy=Sx;逆圓插補(bǔ)時(shí),Psx=Sy,Psy=-Sx。 設(shè) Si為插補(bǔ)點(diǎn) Pi(xi,yi)到終點(diǎn) Pe(xe,ye)的距離, 為:
Si=。判斷插補(bǔ)點(diǎn)與插補(bǔ)終點(diǎn)在輔助坐標(biāo)系同一象限的條件為: (xi-xo)Psx>0, (yi-yo)Psy>0。 終點(diǎn)判別的條件表達(dá)式為: (xi-xe)Sx>0, (yi-ye)Sy>0。
在插補(bǔ)開始時(shí),首先檢查插補(bǔ)點(diǎn)與插補(bǔ)終點(diǎn)間距離是遞減還是遞增,這一過程只需比較大小,不需求出具體值,即只需進(jìn)行符號判斷[4]。
在圓弧插補(bǔ)終點(diǎn)快速判別方法中,判別終點(diǎn)和象限所用的變量Sx,Sy,Psx與Psy的計(jì)算均為離線計(jì)算,在插補(bǔ)開始前計(jì)算好,由其表達(dá)式可知,在插補(bǔ)過程中它們的值不變。實(shí)時(shí)計(jì)算的值是象限判別式的計(jì)算,因?yàn)樵诓逖a(bǔ)過程中要時(shí)時(shí)判別插補(bǔ)點(diǎn)與插補(bǔ)終點(diǎn)是否到達(dá)同一象限,從而判斷是否進(jìn)行終點(diǎn)判別。
數(shù)據(jù)采樣插補(bǔ)算法得出的不是進(jìn)給脈沖,而是用二進(jìn)制表示的進(jìn)給量,也就是在下一插補(bǔ)周期中,輪廓曲線上的進(jìn)給段在各坐標(biāo)軸上的分矢量。計(jì)算機(jī)定時(shí)對坐標(biāo)的實(shí)際位置進(jìn)行采樣,采樣數(shù)據(jù)與指令位置進(jìn)行比較,得出位置誤差,再根據(jù)位置誤差對伺服系統(tǒng)進(jìn)行控制,達(dá)到消除誤差、使實(shí)際位置跟隨指令位置[5]。
在直線插補(bǔ)過程中,插補(bǔ)分割后的微小直線段與給定曲線是重合的(給定輪廓曲線是直線),所以不存在輪廓誤差。實(shí)例假設(shè)在OXY平面中插補(bǔ)起始點(diǎn)坐標(biāo)(2,0),終點(diǎn)坐標(biāo)(5,3),插補(bǔ)步長l=0.1。在MatLAB中編程后插補(bǔ)仿真如圖4所示,仿真結(jié)果與理論軌跡無誤差。
時(shí)間分割圓弧插補(bǔ)法是用弦線代替圓弧插補(bǔ),插補(bǔ)實(shí)例仿真結(jié)果如圖5所示。雖然插補(bǔ)點(diǎn)均在所需插補(bǔ)圓弧上,由于相鄰插補(bǔ)點(diǎn)之間是直線進(jìn)給逼近,所以插補(bǔ)過程中仍會產(chǎn)生徑向誤差。
圖4 直線插補(bǔ)運(yùn)行軌跡與理論軌跡
圖5 圓弧插補(bǔ)理論與實(shí)際軌跡
圖6 時(shí)間分割圓弧插補(bǔ)誤差
其中:F—進(jìn)給速度;T—插補(bǔ)周期。由式(4)可知,徑向誤差 與插補(bǔ)周期 、插補(bǔ)圓弧半徑 和進(jìn)給速度 有關(guān)。在一臺確定的數(shù)控機(jī)床中,允許的插補(bǔ)誤差是確定的,它小于機(jī)床的分辨率,即小于一個(gè)脈沖當(dāng)量[6]。因此,在誤差確定的基礎(chǔ)上,可以通過平衡進(jìn)給速度和插補(bǔ)周期的關(guān)系以實(shí)現(xiàn)所優(yōu)先考慮的插補(bǔ)參數(shù)。值得一提的是,插補(bǔ)周期的選擇還要受計(jì)算機(jī)運(yùn)算速度的限制,插補(bǔ)周期應(yīng)大于插補(bǔ)運(yùn)算時(shí)間和完成其他如顯示等任務(wù)所用時(shí)間之和。在實(shí)際應(yīng)用中可據(jù)此根據(jù)要求合理設(shè)計(jì)插補(bǔ)參數(shù),以期達(dá)到理想中的效果。
針對所研究打磨機(jī)課題,對數(shù)控系統(tǒng)中關(guān)鍵環(huán)節(jié)插補(bǔ)算法的設(shè)計(jì)進(jìn)行了研究。根據(jù)打磨機(jī)系統(tǒng)的半閉環(huán)交流伺服系統(tǒng)要求,插補(bǔ)方法選擇了數(shù)據(jù)采樣插補(bǔ)算法,對該算法的原理、插補(bǔ)過象限問題、終點(diǎn)判別及誤差分析進(jìn)行了研究,通過在MatLAB中編程仿真驗(yàn)證,證實(shí)了所采用算法的正確性及實(shí)現(xiàn)過程的可行性。從而為后續(xù)插補(bǔ)軟件的設(shè)計(jì)提供了參考。
[1]李恩林.數(shù)控系統(tǒng)插補(bǔ)原理通論[M].國防工業(yè)出版社,2008.
[2]孔德彭,張國平,等.基于圓弧插補(bǔ)的時(shí)間分割插補(bǔ)算法改進(jìn)[J].機(jī)械與電子,2010,2.
[3]林本杰,石川,張輝,等.圓弧插補(bǔ)終點(diǎn)判斷方法研究[J].制造技術(shù)與機(jī)床,2007,6.
[4]張吉堂.現(xiàn)代數(shù)控原理及控制系統(tǒng)[M].國防工業(yè)出版社,2009.
[5]伍胡平,周亞軍.數(shù)據(jù)采樣插補(bǔ)算法的研究[J].組合機(jī)床與自動化加工技術(shù),2008,9.
[6]陳東海,牛景麗,劉進(jìn)錢.CNC系統(tǒng)數(shù)據(jù)采樣插補(bǔ)的新算法[J].制造業(yè)自動化,2009,9.