1. 前言
數(shù)控系統(tǒng)的NURBS曲線插補技術(shù)是基于PC開放式數(shù)控系統(tǒng)的發(fā)展關(guān)鍵技術(shù)之一。數(shù)控加工時經(jīng)常遇到諸如飛機的機翼、汽車流線型覆蓋件、成型模具型腔、汽輪機葉片等許多具有復(fù)雜外形型面的零件,CAD/CAM通常用列表曲線來描述它們。列表曲線的擬合方法很多,如三次樣條、B樣條、圓弧樣條及牛頓插值方法等。由于NURBS曲線具有良好的直觀性,且在“局部性”及收斂、逼近性方面占有優(yōu)勢,已經(jīng)成為當前最為通用的列表曲線擬合方法,利用NURBS在CAD/CAM系統(tǒng)中可以使所有的曲線具有統(tǒng)一的數(shù)學(xué)表達式,國際標準化組織(ISO)在其正式頒布的工業(yè)產(chǎn)品幾何定義STEP標準中,亦將NURBS作為產(chǎn)品交換的國際標準。于是,對CNC添加NURBS曲線曲面插補功能,成為現(xiàn)代開放式數(shù)控系統(tǒng)的關(guān)鍵技術(shù)之一?;赑C開放式數(shù)控系統(tǒng)可以充分利用PC的強大計算能力,實現(xiàn)NURBS曲線曲面高速度高精度的實時插補。
2.數(shù)控插補原理
在CNC系統(tǒng)中,插補器的硬件功能全部或部分地由計算機的系統(tǒng)程序來實現(xiàn)。CNC根據(jù)來自數(shù)據(jù)處理結(jié)果緩沖區(qū)中存儲的零件程序數(shù)據(jù)段的信息,以數(shù)字方式進行計算,不斷向系統(tǒng)提供坐標軸的位置命令,這種計算叫做插補計算,簡稱插補。插補軟件的任務(wù)是完成在輪廓起點到終點的中間點的坐標計算。尤其對于輪廓控制系統(tǒng)而言,插補是最重要的計算任務(wù)。插補必須是實時的,即必須在有限的時間內(nèi)完成計算任務(wù),對各坐標軸分配速度或位置信息。插補程序的運行時間和計算精度影響著整個CNC系統(tǒng)的性能指標??偨Y(jié)目前普遍應(yīng)用的插補算法可分為兩類:
(1)脈沖增量插補。脈沖增量插補也稱為行程標量插補,就是用軟件模擬NC系統(tǒng)常用的逐點比較法、DDA積分法以及這兩種算法的改型算法。插補的結(jié)果是產(chǎn)生單個的行程增量,以一個個脈沖的方式輸出給步進電機。脈沖增量插補輸出的頻率主要受插補程序所用的時間限制,適用于中等精度和中等速度,以步進電機為驅(qū)動元件。
(2)數(shù)據(jù)采樣插補。數(shù)據(jù)采樣插補也稱為時間分割插補,適用于閉環(huán)和半閉環(huán)以直流或交流電機為執(zhí)行機構(gòu)的位置采樣控制系統(tǒng)。插補程序的調(diào)用周期可以和系統(tǒng)的位置采樣周期相同,也可以是采樣周期的整數(shù)倍。在這種系統(tǒng)中,插補程序的運行時間不多于計算機時間負荷的30%-40%,在其余時間內(nèi),計算機可以實現(xiàn)顯示、譯碼、刀補等數(shù)控功能。本文所研究的NURBS曲線插補算法就屬于這一類插補算法。
3. 參數(shù)曲線直接插補算法基礎(chǔ)
曲線表示主要有兩種方法:隱式方程法和參數(shù)方程法。參數(shù)方程法因其易于編程和計算成為CAD系統(tǒng)首選的曲線表示方法。一個三維曲線就可以用如下的參數(shù)方程表示:
x = x(u), y = y(u), z = z(u)
其中抽象參數(shù)u滿足0 < u <1。曲線的參數(shù)方程可以非常方便的控制多軸機床的運動,而且對各軸的控制可以是分別、獨立的進行,故數(shù)控系統(tǒng)的各種曲線直接插補算法都基于曲線的參數(shù)方程。通常把這三個方程合寫成p(u) = [x(u), y(u), z(u)],或者笛卡兒分量表示形式P(u) = x(u)i + y(u) j + z(u)k ,其中i, j, k 分別為沿x, y, z軸正向的三個單位矢量。常簡記Pi = p(ui)。
插補計算就是在CNC系統(tǒng)的第i-1工作周期中,實時計算出滿足指定加工要求的下一個工作周期的各軸運動分量ΔPi 。例如滿足加工步長要求ΔLi的插補點Pi + 1為:
3.1 B樣條曲線的定義
非均勻有理B樣條曲線NURBS方法提出的首要理由是,為了找到與描述自由型曲線的B樣條方法相統(tǒng)一的、且又能精確表示二次曲線弧與二次的數(shù)學(xué)方法。因此在了解NURBS曲線之前,有必要首先了解B樣條曲線,B樣條曲線是采用控制頂點來定義曲線的,其曲線方程可寫為:
Ni, k(u),i = 0,1,K , n稱為k次規(guī)范B樣條基函數(shù),其中的每一個k次規(guī)范B樣條基函數(shù)簡稱為B樣條。它是由一個稱為節(jié)點矢量的非遞減的參數(shù)u的序列U: u0 ≤ u1 ≤K ≤ ui + k + 1 所決定的k次分段多項式.
B樣條基Ni, k(u)通常采用截尾幕函數(shù)的差商定義,德布爾一考克斯的遞推定義為:
Ni, k(u)的雙下標中第二下標k表示次數(shù),第一下標i表示序號。該遞歸公式表明,欲確定第i個k次B樣條Ni, k(u),需要用到ui,ui + 1,K ui + k + 1共k+2個節(jié)點,包含的區(qū)間[ui,ui + k + 1]被稱為Ni, k(u)的支承區(qū)間。Ni, k(u)的第一下標等于其支承區(qū)間左端節(jié)點的下標,即表示該B樣條在參數(shù)u軸上的位置。曲線方程(23)中相應(yīng)的n +1個控制頂點di,i = 0,1K n,要用到n +1個k次B樣條基函數(shù)Ni, k(u),i = 0,1,K , n。它們的支承區(qū)間的并集,被定義為這一組B樣條基的節(jié)點矢量U = [u0,u1,K un + k + 1]。
3.2 NURBS曲線的定義
在B樣條曲線定義的基礎(chǔ)上,若節(jié)點序列為非均勻分布,且在每個控制點處加一個表示對曲線形狀影響大小的加權(quán)因子Wi,則k階B樣條曲線相應(yīng)的變?yōu)閗階NURBS曲線,其公式相應(yīng)為:
對于非周期NURBS曲線,往往取u0 = u1 =K = uk = 0,un + 1 = un + 2 =K = un + k + 1 =1,即將兩端節(jié)點的重復(fù)度取為k+1,從而使曲線兩端能相切通過控制多邊形的首、末端節(jié)點。于是,曲線定義域u∈[uk,un + 1] = [0,1],節(jié)點矢量U = [0,0,K 0,uk + 1,K ,un,1,1,K 1]。而且由于NURBS曲線方程的有理性,使得尋求NURBS曲線的迭代公式變得相當困難。
4.NURBS曲線插補技術(shù)
4.1 傳統(tǒng)的CNC機床的加工方法
圖1描述了CNC機床傳統(tǒng)的曲線加工方法。首先,用CAD系統(tǒng)軟件設(shè)計加工零件的幾何模型,然后由CAM系統(tǒng)將刀具接觸軌跡轉(zhuǎn)化為刀具位置軌跡。以為目前的CNC系統(tǒng)一般只具有直線和圓弧插補功能,為了確保CNC系統(tǒng)能控制機床沿著刀具位置軌跡來執(zhí)行加工任務(wù),刀具位置軌跡通常被分解為一系列直線段或圓弧段(也稱為NC代碼)。應(yīng)用足夠數(shù)量的直線段或圓弧段,就可以在指定的精度內(nèi)逼近給定的曲線。但這種方法存在以下缺點:
1) 由于用直線逼近曲線本身是用直線代替曲線,逼近后的線是一階的,導(dǎo)矢不連續(xù)的,所以加工表面不光滑。
2) 在曲線的加工過程中,如果在直線部分不進行加減速,那么就要求在較低的速度下進行加工,這樣一來不能滿足高速加工的要求。并且由于直線段的一階不連續(xù),在加工過程中會造成機床的過沖,不能保證加工的質(zhì)量和精度要求。如果在曲線的加工過程中,對直線段部分的每一段直線進行加減速,會造成加工速度的不平衡,加工的質(zhì)量差,時間長。
3) 大量的直線段或圓弧段將會增加加工速度的變化和曲線的加工時間,這樣將會降低曲線的平均加工速率,降低加工效率。
4) 具有復(fù)雜曲面形狀的零件的加工,需要存儲的程序段數(shù)非常龐大,而CNC系統(tǒng)的內(nèi)存容量相對較小,因此需要分段存儲和調(diào)用,這不僅會降低系統(tǒng)的可靠性,也會降低加工效率。
通過設(shè)定曲線加工時的允許誤差和曲線曲率或者待加工曲線的長度,就可以確定加工任務(wù)中的最小直線段數(shù)。如果刀具實際走過的直線或圓弧段數(shù)太少,將會引起實際加工的曲線的一階和二階導(dǎo)矢的不連續(xù)。進而導(dǎo)致加工后的工件表面的光滑性和曲面的光潔度的畸變?;谝陨戏治觯绻捎脗鹘y(tǒng)的直線和圓弧的插補器,很難獲得高速,高精度的曲線加工。所以,開發(fā)一種新型的CNC插補器是十分必要的。
圖1 CNC機床傳統(tǒng)的曲線加工方法
4.2 采用NURBS插補技術(shù)的CNC機床的加工方法
圖2描述了一種新型的CNC機床的曲線曲面加工方法。在這種加工模式下,數(shù)控機床在它的伺服控制環(huán)中配備了NURBS曲線的實時插補器。因為NURBS曲線的定義參數(shù)較少,并且即可以表示解析曲線,又可以表示自由曲線,所以可以節(jié)省大量的花費在CAD/CAM和CNC機床之間的數(shù)據(jù)傳遞時間。
圖2 采用NURBS插補技術(shù)的CNC機床曲線曲面加工方法
一個三軸聯(lián)動的數(shù)控機床的伺服控制結(jié)構(gòu)圖如圖3,其中CNC運動控制器的主要任務(wù)可以分為三部分。第一部分就是解釋從CAD/CAM系統(tǒng)中獲得的加工代碼。第二部分是將從第一部分中獲得的數(shù)據(jù)在一個采樣周期中轉(zhuǎn)變?yōu)镃NC的伺服控制命令。第三部分就是在CNC控制器的各個運動軸上執(zhí)行伺服控制命令。因為運動控制必須實時地進行,所以這三部分任務(wù)必須在一個給定的采樣周期內(nèi)完成。因為代碼解釋通常都是在數(shù)控加工開始之前就完成了,所以第一部分任務(wù)不必實時完成。而且采用NURBS的加工方法只占用少量的程序內(nèi)存,花費在曲線解釋上的時間可以大大的減少,因而總的加工時間也得以減少。因此在圖3中只有第二部分和第三部分需要實時進行。隨著伺服控制技術(shù)的發(fā)展,第三部分已經(jīng)能夠?qū)崟r的實現(xiàn),所以,為了能夠成功地實現(xiàn)數(shù)控加工的實時運動控制,第二部分的命令生成任務(wù)必須在一個采樣周期內(nèi)完成。
圖3 三軸聯(lián)動數(shù)控機床的伺服控制結(jié)構(gòu)圖
5.結(jié)語
在現(xiàn)代開放式數(shù)控系統(tǒng)中,引入NURBS曲線進行插補,能有效地提高實時插補的速度和精度,從而進一步提高數(shù)控系統(tǒng)的工作效率。
-
控制器
+關(guān)注
關(guān)注
114文章
17113瀏覽量
184355 -
計算機
+關(guān)注
關(guān)注
19文章
7663瀏覽量
90825 -
數(shù)控系統(tǒng)
+關(guān)注
關(guān)注
5文章
264瀏覽量
24948
發(fā)布評論請先 登錄
評論