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