李建剛,孫喜慶,王 琳,鄭德鵬
(1.哈爾濱工業(yè)大學(xué)深圳研究生院,518055深圳; 2.上海大屯能源股份有限公司選煤中心,221611江蘇徐州)
?
數(shù)控加工中NURBS曲線的小線段離散方法
李建剛1,孫喜慶1,王琳2,鄭德鵬1
(1.哈爾濱工業(yè)大學(xué)深圳研究生院,518055深圳; 2.上海大屯能源股份有限公司選煤中心,221611江蘇徐州)
摘要:針對將NURBS曲線離散成連續(xù)小線段軌跡問題,提出局部等弦長、等弦差、偏轉(zhuǎn)角可控的離散算法.分別對等弦長、等弦差離散算法進(jìn)行仿真,驗證這兩種算法的優(yōu)缺點;結(jié)合弦長、弦差和偏轉(zhuǎn)角之間的耦合關(guān)系,提出對NURBS曲線進(jìn)行區(qū)域分割,實現(xiàn)離散后的小線段軌跡局部等弦長、等弦差,軌跡相對光順.利用平面光柵進(jìn)行實驗驗證,實驗結(jié)果表明:利用該算法,離散后的小線段軌跡可以很好地逼近原NURBS曲線,并且保證軌跡相對光順.
關(guān)鍵詞:NURBS曲線;離散算法;連續(xù)小線段軌跡;等弦長;等弦差
目前,多數(shù)CAD/CAM系統(tǒng)是采用NURBS參數(shù)曲線曲面形式來表達(dá)復(fù)雜的零件表面,如汽車模型、飛行器模型、渦輪葉片等[1-2].加工曲面的軌跡有兩種輸出形式:
第一種是針對傳統(tǒng)的CNC機(jī)床只能實現(xiàn)直線插補(bǔ)和圓弧插補(bǔ),CAM必須根據(jù)各種設(shè)定誤差,將NURBS曲線離散成小線段,用連續(xù)小線段軌跡近似NURBS曲線.針對參數(shù)曲線的離散方式主要有等弦長和等弦差兩種方法.等弦長離散是保證離散后的小線段長度近似相等[3-4];等弦差法是指離散后的小線段相對于原曲線弦差近似保持不變[5].但上述兩種離散算法主要針對曲線離散的弦差和計算的快速性方面進(jìn)行研究,并沒有考慮離散后的小線段軌跡中的線段長度、段間夾角等對數(shù)控系統(tǒng)中的插補(bǔ)、速度規(guī)劃以及控制的影響,例如過長或過短的小線段軌跡容易使機(jī)床產(chǎn)生較大的速度波動,不利于機(jī)床的平穩(wěn)運行;而如果線段間的夾角過大,則容易導(dǎo)致加工工件表面不夠光順.
第二種是直接輸出NURBS曲線形式的刀具軌跡,這種軌跡因為沒有各種近似誤差,加工出的工件表面非常光滑.目前,國外許多高檔的數(shù)控系統(tǒng)如FANUC、SIEMENS支持NURBS曲線插補(bǔ)方式.同時,已經(jīng)有很多學(xué)者提出了NURBS曲線插補(bǔ)器設(shè)計的相關(guān)算法文獻(xiàn).但是,這些算法因為計算量較大或者支持的NURBS曲線有一定要求,很難在實際系統(tǒng)中被廣泛采用[6-12].
為了在不支持NURBS曲線插補(bǔ)器的數(shù)控機(jī)床上加工出符合要求的光滑曲面,又避免第一種軌跡帶來的問題.本文提出在CAD/CAM軟件中輸出NURBS曲線軌跡,將NURBS曲線離散成為微小直線段的算法和后續(xù)數(shù)控加工特性相結(jié)合,在原有算法的基礎(chǔ)上,提出對連續(xù)NURBS曲線在局部范圍的等弦長、等弦差、偏轉(zhuǎn)角可控的離散算法,使曲線離散后的小線段軌跡在局部是等弦長、等弦差,更有利于進(jìn)行后續(xù)的數(shù)控加工,同時算法考慮了段間夾角,保證了離散后的軌跡相對光順.
1.1 NURBS曲線的定義和性質(zhì)
一條k次NURBS曲線可以表示為一分段有理多項式矢函數(shù)[13].
式中:ωi(i=0,1,2,…,n)稱為權(quán)重因子(weights),各自與控制點di(i=0,1,2,…,n)相關(guān)聯(lián).首末全因子ω0,ωn>0,其余ωi≥0.且順序k個權(quán)因子不同時為零.Ni,k(u)是由節(jié)點矢量U=[u0,u1,…,un+k+1]按照德布爾-考克斯遞推公式?jīng)Q定的k次規(guī)范B樣條基函數(shù):
對于NURBS開曲線,常將兩端節(jié)點的重復(fù)度取為k + 1,且在大多數(shù)的應(yīng)用里,端節(jié)點值分別取0和1,因此,曲線定義域u∈[uk,un+1]=[0,1].對于k次NURBS曲線上參數(shù)u∈[ui,ui+1]的一點p(u),至多與k + 1個控制點dj及相聯(lián)的權(quán)因子ωj,j=i-k,i-k + 1,…i有關(guān),與其他的頂點及權(quán)因子無關(guān);若移動k次NURBS曲線的一個控制頂點di或改變所聯(lián)系的權(quán)因子ωi,將僅影響定義在區(qū)間[ui,ui+k+1]?[uk,un+1]上那部分曲線的形狀,對曲線的其他部分不產(chǎn)生影響.
1.2 NURBS曲線離散
1.2.1等弦長離散
等弦長離散方法保證了曲線離散后小線段長度L的固定[14].
等弦長離散有一個弊端,如圖1所示,A區(qū)域曲率變化較小,應(yīng)用等弦長方法可以滿足離散要求; 但B、C區(qū)域曲率改變較大,應(yīng)用等弦長法進(jìn)行離散改變了原曲線的形狀.
1.2.2等弦差離散
等弦差離散是指將曲線離散成連續(xù)小線段時,使整條曲線的弦差保持固定不變或不超過所規(guī)定的范圍.在計算弦差E時,引入輪廓誤差的概念,如圖2所示,由于曲線線段很小,因此近似地將輪廓誤差作為弦差.
圖1 曲率與等弦長離散的關(guān)系
圖2 輪廓誤差示意
誤差的計算公式如下:
其中ρ是曲線的曲率半徑.
但這種離散算法也有它的弊端,如圖3所示.
圖3 偏轉(zhuǎn)角定義
Li、Li+1是利用等弦差逼近曲線產(chǎn)生的連續(xù)小線段的長度,這里稱αi是相鄰連續(xù)小線段之間的偏轉(zhuǎn)角.當(dāng)保證弦差不變時,偏轉(zhuǎn)角αi可能過大,從而造成尖角的產(chǎn)生.
本文的算法主要是對NURBS曲線進(jìn)行局部劃分,保證曲線離散后局部等弦長、等弦差、偏轉(zhuǎn)角可控.圖4是一條連續(xù)的NURBS曲線,在u∈[um,un]局部區(qū)間內(nèi)對曲線進(jìn)行離散.保證小線段軌跡弦長L1、弦差e不變、偏轉(zhuǎn)角α大小可控.
圖4 局部等弦長、等弦差、偏轉(zhuǎn)角可控的離散算法示意
分析弦長L、弦差e、偏角α之間的關(guān)系如下:
對于一段曲線段,當(dāng)離散弦長L增大時,則離散點的數(shù)目減少,弦差e增大,前后兩段的小線段偏轉(zhuǎn)角α增大,離散后的連續(xù)小線段軌跡保型性降低;
當(dāng)弦差e增大時,弦長L相應(yīng)的增大,離散的數(shù)據(jù)點數(shù)降低,偏轉(zhuǎn)角α增大,離散后軌跡保型性降低.
由以上分析可知,弦長L、弦差e、偏轉(zhuǎn)角α之間有相互制約、相互耦合的關(guān)系,因此在離散時要考慮這3個變量之間的相互影響.
參考文獻(xiàn)從[15]可知:針對曲線采用伸縮步長法進(jìn)行離散時,離散前后的弦差主要受到弦長的影響,為了保證離散后的弦差不變,因此引進(jìn)前后弦差比f這一參數(shù),如圖5所示.
圖5 前后弦差比定義
設(shè)曲線段AB為某一參數(shù)曲線上一段,被兩條小線段離散,C為兩小線段的交點.各段離散的弦差分別為e1、e2,弦長為L1、L2,則
設(shè)參數(shù)a,b,其中a<1<b.
1)當(dāng)f>b時,則L2對應(yīng)的弦差較前一段弦差過大,因此縮短L2.
2)當(dāng)f<a時,則L2對應(yīng)的弦差較前一段弦差過小,因此伸長L2.
3)當(dāng)a<f<b,則前后線段弦差近似相等,弦長L2滿足離散條件.
實際應(yīng)用中,一般取a=0.8,b=1.2,具體視情況而定.因此,在控制離散弦長不變的前提下,檢驗f滿足上述哪種情況就可以確定NURBS曲線的分割點;然后通過驗證離散后小線段的偏轉(zhuǎn)角是否滿足要求,精確地定位到曲線的分割點.
離散過程如下:設(shè)變量前一段起點終點為Ps1、Pe1,后一段起點終點為Ps,Pe,前一段弦差為e1,后一段弦差為e,兩段偏轉(zhuǎn)角αe1e.
1)首先初始化最大離散弦長Lmax、最初離散弦長L、離散誤差E、偏角α、以及弦長的伸縮步長λs,Ps=Pe=P(0).
2)以L為弦長,計算離散的第一個數(shù)據(jù)點.判斷此時的弦差e是否滿足離散誤差E,如果滿足,轉(zhuǎn)到3).否則,縮短L,且L=L-λs,重復(fù)執(zhí)行2).
3) Ps1=Ps,Pe1=Pe,Ps=Pe,e1=e,輸出Pe,記錄此時L,轉(zhuǎn)到4).
4)以L為弦長,計算離散的第一個數(shù)據(jù)點.判斷此時的弦差e是否滿足離散誤差E,如果滿足,轉(zhuǎn)到5).否則,縮短L,且L=L-λe1e,重復(fù)執(zhí)行4).
5)計算此時f.
當(dāng)f>1.2,表明此段弦差較前一段弦差較大,計算出來的為區(qū)域分割點,因此縮短弦長L=L-λs,跳轉(zhuǎn)至4) ;
當(dāng)f<0.8,表明此段弦差較前一段弦差較小,計算出來的該點仍為區(qū)域分割點,因此伸長弦長L=L +λs,如果弦長L≥Lmax,則令L=Lmax,跳轉(zhuǎn)至4) ;
當(dāng)0.8<f<1.2,表明此時前后兩段的離散線段弦長近似相等,弦差近似相等;
進(jìn)一步判斷前后兩段的偏轉(zhuǎn)角αe1e;
如果αe1e>α,表明此時對于該段曲線,選取的弦長過大,由于已經(jīng)滿足等弦長等弦差,所以,此時弦長的伸縮步長要選擇小一點,為了精確的計算,這里按照L=L-0.1*λs計算,跳轉(zhuǎn)4) ;
如果αe1e<α,則表明此點滿足等弦長、等弦差、偏角可控的要求.輸出Pe.
6)依次循環(huán)計算至最后一點.
設(shè)3次NURBS曲線,節(jié)點矢量
控制點{ (0,0),(1,1),(3,2),(4,1),(5,-1),(6,-1.5),(7,-1.9) },權(quán)重因子均為1,設(shè)離散弦長為0.01,弦差上限為0.001,偏轉(zhuǎn)角為2°.仿真結(jié)果如圖6所示.
由仿真結(jié)果可以看出,經(jīng)過該方法對NURBS曲線進(jìn)行離散后,弦長和弦差的變化為階梯狀,即說明離散后的小線段軌跡弦長和弦差在局部范圍內(nèi)是近似相等的,同時離散后的軌跡偏轉(zhuǎn)角在設(shè)定的范圍內(nèi),說明了離散后的軌跡具有較高的光順性;從而在離散精度和光順度滿足要求的前提下,使離散后的連續(xù)小線更有利于直接進(jìn)行CNC加工.
圖6 NURBS曲線局部等弦長、等弦差、偏轉(zhuǎn)角可控的離散仿真
實驗主要儀器是海德漢公司生產(chǎn)的KMG181型號平面光柵,該儀器是一種非接觸式、利用光學(xué)知識進(jìn)行運動檢測的裝置.該儀器主要包括光柵平面、測頭、機(jī)盒以及用于數(shù)據(jù)采集和分析的ACCOM軟件.
實驗的目的是為了驗證關(guān)于NURBS曲線離散算法的可行性和優(yōu)良性,并將該算法和原有的算法進(jìn)行對比實驗.具體實驗方法如下:
1)以一條NURBS曲線為例,對曲線進(jìn)行離散,分別利用等弦長、等弦差和本文提出的離散算法形成3條軌跡.
2)利用平面光柵實驗儀器,測量上述3條軌跡在實際運動過程中的偏離誤差,由于機(jī)床誤差是一定的,不同的軌跡會產(chǎn)生不同的運動偏差,從而對比了不同軌跡優(yōu)化算法的差別.
實驗采用3次NURBS曲線,控制點p={ (0,0),(2,5),(8,5),(12,0),(8,-8),(0,-18) (-8,-18),(-12,0),(-8,5),(-2,5),(0,0) } k=3U=[0,0,0,0,0.1,0.2,0.3,0.6,0.7,0.8,0.9,1.0,1.0,1.0,1.0],Mat-lab繪圖如圖7,其曲線曲率分布如圖8所示.
圖7 實驗待測NURBS曲線
圖8 待測曲線曲率分布
從圖8可以看出,實驗所選的NURBS曲線共有3處曲率改變較大的地方,從前面的分析可知,對于曲率改變較大處,等弦長離散和等弦差離散都不能滿足要求,因此該曲線具有一定的代表性,可以驗證本文所提算法的優(yōu)越性.將上述軌跡導(dǎo)入平面光柵中,啟動機(jī)床.統(tǒng)計實驗運行結(jié)果,最大軌跡偏差和速度偏差值如表1所示.
表1 軌跡運行狀態(tài)表
從以上實驗結(jié)果可以看出,等弦差和等弦長離散算法的最大運動偏差近似相近,均是在曲率改變較大處產(chǎn)生最大偏差;局部等弦長、等弦差、偏轉(zhuǎn)角可控的離散算法會產(chǎn)生較小的最大偏差,并保證軌跡在曲率較大處可以平穩(wěn)的過渡.3種軌跡優(yōu)化算法的最大速度偏差都不是很大,本文提出的離散算法雖然開始時會產(chǎn)生最大的速度偏差,但到后期會產(chǎn)生較平穩(wěn)的速度變化,這主要是因為該算法在起初要設(shè)定初始的離散弦長,然后根據(jù)弦差和偏轉(zhuǎn)角的限定因素,逐步的去調(diào)整弦長的參數(shù),從而達(dá)到類似于自整定的過程,實現(xiàn)弦長、弦差和偏轉(zhuǎn)角3個參數(shù)的合理配置.實驗結(jié)果表明,本文所提的離散算法和擬合算法可以進(jìn)行平穩(wěn)的加工,因此,本文所提出的算法是可行、有效的.
1)分析了利用傳統(tǒng)的曲線離散算法如等弦長或等弦差法產(chǎn)生的小線段軌跡在數(shù)控加工中的不足.
2)討論了弦長、弦差和離散后的段間夾角之間相互制約的關(guān)系,在原有算法的基礎(chǔ)上提出局部等弦長、等弦差、偏轉(zhuǎn)角可控的曲線離散算法,保證離散后的軌跡更適合于數(shù)控系統(tǒng)的后續(xù)加工,并進(jìn)行算法仿真.
3)利用平面光柵,驗證本文提出的離散算法,實驗結(jié)果表明,該算法避免了在曲線曲率改變較大的地方出現(xiàn)尖角或過大偏差的缺點,產(chǎn)生的軌跡相對光順,機(jī)床運行速度相對于傳統(tǒng)的離散算法更加平穩(wěn),證明了該離散算法更有利于CNC的加工.
[1]周楊,劉瑛.?dāng)?shù)控加工中非圓曲線離散方法的誤差分析[J].機(jī)械研究與應(yīng)用,2012,25(4) : 54-56.
[2]蔡永林,孫衛(wèi)青.一種新的平面曲線圓弧插補(bǔ)節(jié)點獲取方法[J].工程圖學(xué)學(xué)報,2002,23(1) : 97-103.
[3]文豪,高?。?dāng)?shù)控系統(tǒng)等誤差直線逼近節(jié)點算法分析與改進(jìn)[J].機(jī)械設(shè)計與制造,2013 (9) : 217-219.
[4]范云霄,鄭軼.等誤差直線逼近非圓曲線的節(jié)點計算及刀具軌跡模擬[J].工具技術(shù),2002,36(8) : 30-32.
[5]樂英,韓慶瑤,王璋奇.NURBS曲線數(shù)控加工中的一種逼近方法[J].機(jī)床與液壓,2007,35(1) : 63-64.
[6]LI J,ZHANG T,LI Z.An adaptive off-line NURBS interpolator for CNC machining[J].The International Journal of Advanced Manufacturing Technology,2012,63 (5/6/7/8) : 719-729.
[7]LUO Fuyuan,YOU Youpeng,YIN Juan.Research on the algorithm of NURBS curve bidirectional optimization interpolation with S-type acceleration and deceleration control[J].Journal of Mechanical Engineering,2012,48 (5) : 147-156.
[8]DU D.An accurate adaptive parametric curve interpolator for NURBS curve interpolation[J].The International Journal of Advanced Manufacturing Technology,2007,32 (9/10) : 999-1008.
[9]LAURENT-GENGOUX P,MEKHILEF M.Optimization of a NURBS representation[J].Computer Aided Design,1993,25(11) : 699-710.
[10]MEEK D S,WALTON D J.Approximating quadratic NURBS curves by arc splines[J].Computer-Aided design,1993,25(6) : 371-376.
[11]任秉銀,梁兆東,孔民秀.機(jī)械手空間圓弧位姿軌跡規(guī)劃算法的實現(xiàn)[J].哈爾濱工業(yè)大學(xué)學(xué)報,2012,44(7) : 27-31.
[12]LIU Yu,ZHAO Bo,DAI Li,et al.Feedrate system dynamics based interpolaor for NURBS curve[J].Journal of Mechanical Engineering,2009,45 (12) : 187-191.
[13]PIEGL L,TILLER W.The NURBS Book(Monographs in Visual Communication)[M].Berlin Heidelberg: Springer,1997.[14]邊玉超.CNC系統(tǒng)中NURBS曲線實時插補(bǔ)算法研究[J].機(jī)械制造與自動化,2003(6) : 36-39.
[15]王學(xué)穎,任鵬.?dāng)?shù)控機(jī)床等弦長擬合優(yōu)化算法的實現(xiàn)[J].沈陽師范大學(xué)學(xué)報(自然科學(xué)版),2010(4) : 499-502.
(編輯楊波)
NURBS curve separation algorithm for CNC machining
LI Jiangang1,SUN Xiqing1,WANG Lin2,ZHENG Depeng1
(1.Harbin Institute of Technology Shenzhen Graduate School,518055 Shenzhen,China; 2.Shanghai Datun Energy Resources Co.,Ltd Coal preparation center,221611,Xuzhou,Jiangsu,China)
Abstract:A new method is proposed to solve the problem of NURBS curve separation.Firstly,both of the equal chord length and the equal error separation algorithms are simulated to verify the advantages and disadvantages.Given the relationships among chord length,error and deflection angle,the separation of the NURBS curve is proposed.The algorithm guarantees the chord length and error remaining unchanged,and the deflection angle stays in a feasible range.Then some simulations are carried out to test the correctness of the algorithm.At last,the plane grating is used to make an experience to verify the algorithm.Experimental results indicate that the continuous line segments can approach the NURBS curve with the proposed algorithm accurately and the fitting location is smooth.The proposed approach can discrete the NURBS curve into the continuous line segments effectively.
Keywords:NURBS curve; separation algorithm; continuous segments location; constant chord; constant error
通信作者:李建剛,jiangang_lee@ 163.com.
作者簡介:李建剛(1976—),男,教授,碩士生導(dǎo)師.
收稿日期:2014-12-26.
doi:10.11918/j.issn.0367-6234.2016.01.008
中圖分類號:TH164
文獻(xiàn)標(biāo)志碼:A
文章編號:0367-6234(2016) 01-0053-05