封雨鑫,鐘 菲,余 強(qiáng)
(深圳市大族智能控制科技有限公司,廣東 深圳 518101)
隨著智能制造行業(yè)的迅猛發(fā)展,現(xiàn)代數(shù)控系統(tǒng)正向著高速度、高精度、高可靠性等方面發(fā)展。如何在保證加工精度的同時(shí)最大可能的提高加工效率,是當(dāng)前數(shù)據(jù)控系統(tǒng)研究的熱點(diǎn)。傳統(tǒng)的數(shù)控系統(tǒng)在加工曲線曲面軌跡時(shí),為了滿足精度需求,通常將它們離散成一系列首尾相連的微小線段來(lái)逼近原始加工軌跡,不可避免地產(chǎn)生了大量加工代碼。這樣不僅增加了數(shù)據(jù)存儲(chǔ)、傳輸以及處理的負(fù)擔(dān),還會(huì)因?yàn)榧庸み@些小線段速度和加速度的頻繁變化,降低了零件表面加工質(zhì)量和效果。現(xiàn)代數(shù)控加工中,通常會(huì)使用連續(xù)性更好的參數(shù)曲線,對(duì)小線段表示的路徑擬合[1],使得擬合后的曲線路徑變長(zhǎng),同時(shí)保證了曲線除首末端點(diǎn)外均為二階連續(xù),即加速度連續(xù),這樣不僅可以提高機(jī)床加工速度,還可以減少機(jī)床加工過(guò)程中的振動(dòng),提高整體加工質(zhì)量。
B樣條曲線因其表達(dá)式的通用性和應(yīng)用的廣泛性,使得B 樣條擬合技術(shù)成為了國(guó)內(nèi)外許多專家和學(xué)者們研究的熱點(diǎn)[2-4]。這些研究大多將輸入數(shù)據(jù)作為參數(shù)曲線的控制點(diǎn),未考慮擬合誤差和曲線光順的問(wèn)題,難以直接應(yīng)用于數(shù)控系統(tǒng)中大量小線段的加工。為了提高數(shù)控系統(tǒng)中直線段的加工效率,改善線段銜接處的連續(xù)性,研究人員常采用局部過(guò)渡(如:倒圓角[5],PH曲線[6],羊角曲線[7]等)方法或全局?jǐn)M合方法對(duì)連續(xù)直線段進(jìn)行平滑。而對(duì)于連續(xù)小線段路徑而言,局部平滑過(guò)渡會(huì)顯著降低加工效率。對(duì)此,一些研究學(xué)者根據(jù)B樣條特性對(duì)連續(xù)小線段的擬合進(jìn)行了研究[8-10]。Deng[8]等將迭代逼近和最小二乘法相結(jié)合,提出了一種漸進(jìn)迭代逼近最小二乘法的B樣條擬合方法,該算法通過(guò)建立型值點(diǎn)與B樣條曲線對(duì)應(yīng)點(diǎn)距離的平方和為目標(biāo)函數(shù),利用給定步長(zhǎng)最速下降法來(lái)求解目標(biāo)函數(shù)。但該方法未考慮弓高誤差的約束,同時(shí)存在數(shù)值計(jì)算不穩(wěn)定的問(wèn)題,難以應(yīng)用于實(shí)際加工中。為了提高樣條擬合精度和數(shù)值計(jì)算的穩(wěn)定性,Qing[9]等提出了一種帶弓高誤差約束迭代逼近B 樣條擬合方法。該方法在樣條擬合過(guò)程中通過(guò)漸進(jìn)迭代逼近和局部細(xì)化的方法,使擬合曲線滿足弓高誤差約束,同時(shí)保證了樣條曲線的凸包性。Du[10]等提出了一種基于優(yōu)勢(shì)點(diǎn)的誤差有界b 樣條曲線逼近方法。該方法根據(jù)連續(xù)小線段的幾何特征和加工工藝,采用雙邊弓高誤差選擇合適的擬合點(diǎn),然后根據(jù)最小二乘法迭代來(lái)迭代逼近原始路徑。本文在前人的基礎(chǔ)之上,提出了一種新的三次B 樣條高精度擬合連續(xù)微小線段的方法。為了減少迭代和誤差調(diào)整對(duì)加工小線段的效率,該方法首先采用連續(xù)小線段的轉(zhuǎn)角限制和雙邊弓高誤差限制,選擇滿足連續(xù)小線段可被擬合的型值點(diǎn)集;接著,采用凹凸性準(zhǔn)則對(duì)可擬合點(diǎn)集分段后擬合成參數(shù)曲線;最后,利用插值擬合和誤差分析模塊,保證擬合的參數(shù)曲線在誤差允許的范圍以內(nèi),并通過(guò)實(shí)驗(yàn)驗(yàn)證了本文算法的有效性。
B樣條曲線是一種描述曲線曲面造型技術(shù),在計(jì)算機(jī)輔助設(shè)計(jì)中應(yīng)用廣泛。一條k次B樣條曲線表達(dá)式[2]:
其中,Pi(i=0,1,…,n)是曲線的控制頂點(diǎn),控制頂點(diǎn)順序連成的折線段稱為B樣條曲線的控制多邊形。Ni,k(u)稱為k次B樣條曲線的基函數(shù),由德布爾遞推公式計(jì)算如下:
對(duì)于任意連續(xù)小線段而言,不能保證用一條符合誤差約束的B 樣條擬合,因此,需要找出擬合中容易產(chǎn)生超過(guò)擬合誤差的轉(zhuǎn)折部分,并將其設(shè)置為不可擬合的斷點(diǎn),其余部分?jǐn)M合成平滑的樣條曲線。為了提高小線段的擬合率,本文采用相鄰線段間的轉(zhuǎn)角,雙邊弓高誤差[11]以及凹凸性準(zhǔn)則,用于擬合時(shí)篩選能夠被擬合的型值點(diǎn)集。
在擬合連續(xù)小線段時(shí),為了獲得較好的精度,通常對(duì)相鄰線段采用圓弧近似法來(lái)計(jì)算擬合的弓高誤差。如圖1所示,任意相鄰兩段線段Qi-1Qi和QiQi+1,線段長(zhǎng)度分別為li和li+1,所形成的轉(zhuǎn)角為θi,通過(guò)判斷雙邊弓高誤差εmax=max(δi,δi+1)是否超過(guò)給定值以及θi方向變化,來(lái)選擇適合擬合的連續(xù)小線段。
圖1 相鄰小線段的圓弧近似示意圖
2.2.1 轉(zhuǎn)角斷點(diǎn)判據(jù)
當(dāng)相鄰路徑段轉(zhuǎn)角偏轉(zhuǎn)較大時(shí),路徑段局部容易形成尖角,導(dǎo)致擬合后的曲線誤差較大。為了合理控制擬合精度,相鄰路徑的夾角應(yīng)滿足:
上式中,θcircle為夾角臨界值。當(dāng)θi≤θcircle時(shí),容易導(dǎo)致輪廓超過(guò)限定誤差εmax。此時(shí),應(yīng)將∠Qi-1QiQi+1作為尖角來(lái)處理,并對(duì)尖角對(duì)應(yīng)的點(diǎn)Qi作為不可擬合的斷點(diǎn)。
2.2.2 雙邊弓高誤差判據(jù)
為了保證樣條高精度擬合效果,需要檢測(cè)擬合點(diǎn)Qi前后的弓高誤差是否超過(guò)了最大弓高誤差εmax。如果超過(guò)εmax,需要將Qi點(diǎn)設(shè)置為不可擬合的斷點(diǎn),否則將點(diǎn)Qi放入可擬合的型值點(diǎn)集中。雙邊誤差判據(jù)公式如下[12]:
2.2.3 凹凸性準(zhǔn)則判據(jù)
為了保證樣條擬合的凸包性,避免曲線擬合出現(xiàn)拐角或振蕩現(xiàn)象,在上述兩個(gè)準(zhǔn)則的基礎(chǔ)上,本文增加了對(duì)連續(xù)小線段凹凸性檢測(cè)。采用的方法是記錄轉(zhuǎn)角θi偏轉(zhuǎn)方向,即:
通過(guò)對(duì)連續(xù)小線段轉(zhuǎn)角θi符號(hào)變化的判斷,將符號(hào)變化的點(diǎn)Qi作為擬合分?jǐn)帱c(diǎn),即可獲得具有凹凸特性的擬合點(diǎn)集,從而保證各段擬合曲線的凸包性。
由式(1)可知,B 樣條曲線擬合需要確定節(jié)點(diǎn)矢量U={u0,u1,…,un+k+1}和Pi(i=0,1,…,n)控制頂點(diǎn)。而節(jié)點(diǎn)矢量和控制頂點(diǎn)求解與2.2 篩選出的每一段型值點(diǎn)集Qi(i=0,1,…,m)有關(guān)[2]。
2.3.1 節(jié)點(diǎn)矢量計(jì)算
為了使一條k次B 樣條曲線通過(guò)一組型值點(diǎn)Qi(i=0,1,…,m),其反算過(guò)程一般要求曲線的首末端點(diǎn)分別與首末型值點(diǎn)一致,內(nèi)型值點(diǎn)依次與k次B樣條曲線定義域內(nèi)的節(jié)點(diǎn)一一對(duì)應(yīng),即Qi對(duì)應(yīng)節(jié)點(diǎn)值ui+k。因此,B 樣條將有m段,所求的k次B 樣條插值曲線將有n+1 個(gè)控制頂點(diǎn)Pi(i=0,1,…,n),其中,n=m+k-1。節(jié)點(diǎn)矢量U在首末端點(diǎn)處具有k+1階重復(fù)度,相應(yīng)的節(jié)點(diǎn)矢量為:
對(duì)于開(kāi)曲線包括非周期閉曲線,通常兩端點(diǎn)取重復(fù)度k+1,即u[uk,un+1]=[0,1]。于是u0=u1=…=uk=0,un+1=un+2=…=un+k+1=1,只需計(jì)算uk+1,uk+2,…,un內(nèi)節(jié)點(diǎn)矢量。
為了確定與型值點(diǎn)Qi(i=0,1,…,m)相對(duì)應(yīng)的參數(shù)值ui+k(i=0,1,…,n),需要對(duì)型值點(diǎn)進(jìn)行參數(shù)化處理。通常對(duì)型值點(diǎn)參數(shù)化處理有均勻參數(shù)化法,向心參數(shù)化法和累積弦長(zhǎng)參數(shù)化法。對(duì)于均勻參數(shù)化法,當(dāng)數(shù)據(jù)分布不均勻時(shí),擬合會(huì)產(chǎn)生嚴(yán)重變形。向心參數(shù)化法主要適用于數(shù)據(jù)點(diǎn)急轉(zhuǎn)彎變化的場(chǎng)合。累計(jì)弦長(zhǎng)參數(shù)化法是一種常用的節(jié)點(diǎn)矢量計(jì)算方法,該方法使得每個(gè)節(jié)點(diǎn)區(qū)間長(zhǎng)度與對(duì)應(yīng)曲線上兩點(diǎn)之間的弦長(zhǎng)相對(duì)應(yīng),保證了擬合曲線良好的光順性。因此,本文采用累計(jì)弦長(zhǎng)參數(shù)化方法。
當(dāng)k=3 時(shí),B 樣條曲線而言可達(dá)到C2連續(xù),而更高次數(shù)的B樣條將帶來(lái)更加復(fù)雜計(jì)算。因此,本文所述B樣條均指三次B樣條曲線。采用累計(jì)弦長(zhǎng)法計(jì)算相應(yīng)節(jié)點(diǎn)矢量為:
根據(jù)B樣條曲線的定義可知,其定義區(qū)間不包括節(jié)點(diǎn)矢量構(gòu)成的前三個(gè)和后三個(gè)參數(shù)區(qū)間。因此,在端點(diǎn)處存在四重節(jié)點(diǎn)U=[u0=u1=u2=u3=u0,un+3=uk(k=1,2,…,(n-1),un+3=un+4=un+5=un+6=un=1]。從而保證了選取的節(jié)點(diǎn)矢量與弦長(zhǎng)有良好的對(duì)應(yīng)關(guān)系,同時(shí)也使得對(duì)每個(gè)型值點(diǎn)所產(chǎn)生影響的控制點(diǎn)不會(huì)完全相同。
2.3.2 控制點(diǎn)的反算
給定型值點(diǎn)Qi(i=0,1,…,m),節(jié)點(diǎn)矢量U=[0,0,0,0,uk+1,uk+2,un,1,1,1,1],采用切點(diǎn)矢量的邊界條件,反算Pi(i=0,1,…,n)為所求控制頂點(diǎn),屬于式(1)的逆過(guò)程。
根據(jù)三次B樣條插值條件:
三次樣條的首末節(jié)點(diǎn)重復(fù)度為4,所以B 樣條曲線的首末控制頂點(diǎn)與首末型值點(diǎn)相同,即Q0=P0,Qm=Pn。將上述線性方法改寫(xiě)為矩陣形式:
通過(guò)高斯消元法即可求出全部未知控制點(diǎn)。
誤差控制是連續(xù)小線段擬合后實(shí)現(xiàn)高精度加工的關(guān)鍵步驟。定義連續(xù)小線段允許最大擬合擬合誤差εallowmax和平均誤差εavg,C(u)表示連續(xù)小線段擬合的參數(shù)曲線。如果直接求解連續(xù)小線段到C(u)的最大距離εmax和平均誤差εavg,一般沒(méi)有解析解,只能通過(guò)迭代算法求解,難以滿足數(shù)控系統(tǒng)對(duì)實(shí)時(shí)性的要求;另一種簡(jiǎn)化方法是先計(jì)算曲線C(u)與擬合型值點(diǎn)間組成的每一個(gè)線段之間的最大弦差εi,max和平均誤差εi,avg,后計(jì)算所有線段之間最大誤差值εmax=max(εi,max)和平均值εavg=(1/n)εi,avg分別為擬合曲線C(u)最大近似誤差參考值和平均誤差參考值。其中,每一個(gè)線段之間的最大弦差εi,max和平均誤差εi,avg的計(jì)算過(guò)程如圖2所示。在曲線段C(ui+k)和C(ui+k+1)之間將u[ui+k,ui+k+1]等分成若干等分,得到一系列C(u)的上的點(diǎn)集,計(jì)算這些點(diǎn)到對(duì)應(yīng)直線段Qi-1Qi的距離εi,將其最大距離作為εi,max和平均距離作為εi,avg,以此來(lái)控制擬合曲線精度。
圖2 誤差分析示意圖
依據(jù)以上方法,針對(duì)連續(xù)小線段建立完成的擬合流程圖如圖3所示。
圖3 連續(xù)小線段擬合流程圖
該算法首先提取連續(xù)小線段端點(diǎn)作為待擬合型值點(diǎn)集,并采用轉(zhuǎn)角,雙邊弓高誤差以及凸包特性判別擬合分段點(diǎn),見(jiàn)圖4(b);接著,統(tǒng)計(jì)分段點(diǎn)間的型值點(diǎn)數(shù)目m,判斷擬合點(diǎn)數(shù)是否滿足三次B樣條擬合的最小數(shù)目3。對(duì)滿足擬合條件的型值點(diǎn),設(shè)定最大擬合點(diǎn)數(shù)M來(lái)控制擬合曲線計(jì)算規(guī)模,避免計(jì)算超時(shí)的情況;然后,采用一條三次B 樣條擬合這些型值點(diǎn)。而對(duì)于不能擬合的型值點(diǎn),采用直線直接連接。最后,采用誤差控制模塊,對(duì)擬合曲線的誤差進(jìn)行分析。若擬合曲線與原連續(xù)小線段的誤差沒(méi)有超過(guò)精度限制,則輸出擬合誤差結(jié)果和擬合曲線參數(shù)。否則,將超過(guò)誤差最大的點(diǎn)設(shè)置為斷點(diǎn),針對(duì)新的斷點(diǎn)重新擬合和誤差分析,至到所有型值點(diǎn)擬合的樣條曲線在誤差允許的范圍內(nèi)。
以“蝴蝶”圖形為例,對(duì)本文所提算法的擬合效果進(jìn)行驗(yàn)證,其驗(yàn)證結(jié)果如圖4所示。圖4(a)為數(shù)控編程N(yùn)CG01繪制的“蝴蝶”原始輪廓圖,實(shí)驗(yàn)設(shè)定最大擬合誤差εallowmax=20um,擬合轉(zhuǎn)角θcircle=40°時(shí),采用本文算法擬合后的“蝴蝶”圖形如圖4(b)所示,其中,(b)圖中的“o”表示分段點(diǎn)。對(duì)比圖4(a)和圖4(b),可以發(fā)現(xiàn)擬合后的“蝴蝶”非常光順平滑,說(shuō)明本文算法的有效性。
圖4 “蝴蝶”輪廓圖及其分段點(diǎn)和擬合曲線
為了進(jìn)一步驗(yàn)證本文算法的有效性,實(shí)驗(yàn)對(duì)比了“蝴蝶”擬合前后的數(shù)據(jù),見(jiàn)表1。擬合前,“蝴蝶”輪廓由1000 段長(zhǎng)短不一的小線段首尾連接而成的,采用本文算法擬合后,“蝴蝶”輪廓僅需38條三次B樣條即可表示,小線段數(shù)量減少了96.20%,并且擬合后的曲線長(zhǎng)度分別較擬合前小線段的最大路徑長(zhǎng)度整體提升96.17%,最短長(zhǎng)度提升98.89%,平均路徑長(zhǎng)度提升96.19%。說(shuō)明本文算法對(duì)減少小線段數(shù)量,使得擬合的路徑變長(zhǎng)的效果顯著。并且,整體擬合時(shí)間只花費(fèi)了0.2919秒,實(shí)時(shí)性好,可以實(shí)現(xiàn)小線段的在線擬合。
表1 “蝴蝶”輪廓擬合數(shù)據(jù)
lmax,lmin,l平均分別為最大,最短線段長(zhǎng)度和平均線段長(zhǎng)度。
按照2.4的誤差控制模塊,將圖4(b)“蝴蝶”擬合每一段B 樣條曲線,按△u=0.001 下進(jìn)行等分密化掃描,計(jì)算“蝴蝶”擬合圖形的最大誤差和平均誤差,其結(jié)果如圖5 所示。圖中“*”表示每一段B 樣條擬合的誤差值。由圖5(a)可知,坐標(biāo)(1,16.7561)表示最大誤差在第一段擬合曲線上,其值為εmax=16.7561um<εallowmax=20um,小于擬合允許誤差。由圖5(b)可知,坐標(biāo)(38,0.55336)表示最大平均誤差在最后一段,其值為εavg=0.55336um,其值遠(yuǎn)遠(yuǎn)小于擬合允許誤差,說(shuō)明擬合的曲線非常貼合原始路徑。
圖5 “蝴蝶”擬合最大誤差和平均擬合誤差
為了進(jìn)一步驗(yàn)證本文算法的實(shí)用性,試驗(yàn)在HAN’S801激光切割機(jī)床上進(jìn)行,試驗(yàn)臺(tái)與工控機(jī)相連,進(jìn)給軸最大速度30m/min,最大加速度為1.5g,對(duì)“蝴蝶”輪廓分別采用小線段加工方法和本文所提三次B 樣條擬合加工方法進(jìn)行切割。為了更加清晰地描述實(shí)際切割的細(xì)節(jié)部分,我們使用“黑色”矩形標(biāo)簽框任意挑選切割工件邊緣一個(gè)區(qū)域,并放大顯示在對(duì)應(yīng)圖像的右側(cè)。圖6(a)為小線段直接加工的“蝴蝶”圖形,6(b)為6(a)“蝴蝶”加工細(xì)節(jié)部分。圖6(c)為采用本文方法擬合后加工的“蝴蝶”圖形,6(d)為6(c)“蝴蝶”加工細(xì)節(jié)部分。通過(guò)對(duì)比,不難發(fā)現(xiàn),圖6(b)切割邊緣毛刺較明顯,邊緣切割質(zhì)量差,圖6(d)切割邊緣較平滑,表面切割質(zhì)量明顯優(yōu)于圖6(a)的方法。
圖6 不同算法下的“蝴蝶”加工效果圖
表2給出了不同方法擬合“蝴蝶”輪廓后,加工時(shí)間和速度。直接采用小線段加工“蝴蝶”輪廓,實(shí)際加工時(shí)間約為9s,而采用本文所提方法擬合后,由于平均加工速度的提高,實(shí)際加工時(shí)間減少到了2s,加工效率提高了78%,從實(shí)際加工速度與指令加工速度的均方差可以看出,小線段加工過(guò)程的速度波動(dòng)較大,而采用B樣條曲線加工的速度波動(dòng)則小的多,而且小線段加工過(guò)程中的最大加速度也比B樣條曲線加工過(guò)程中的要大。在實(shí)際加工過(guò)程中,樣條曲線擬合的目的是在控制加工輪廓在允許范圍內(nèi),盡量拉伸單段加工軌跡的長(zhǎng)度,提高單段軌跡加工速度,從而提高整個(gè)輪廓的加工效率。
表2 不同算法加工“蝴蝶”時(shí)間和速度
本文提出的連續(xù)小線段的高精度B樣條擬合方法,通過(guò)將連續(xù)小線段擬合成參數(shù)曲線來(lái)實(shí)現(xiàn)數(shù)控加工路徑變長(zhǎng),同時(shí)保證參數(shù)擬合曲線精度可控。采用誤差對(duì)加工路徑進(jìn)行轉(zhuǎn)角和雙邊弓高檢驗(yàn),快速確定擬合型值點(diǎn)集。運(yùn)用凹凸性檢測(cè)準(zhǔn)則,保證擬合樣條的凸包性。運(yùn)用誤差控制模塊,保證擬合的參數(shù)曲線控制在精度允許范圍以內(nèi)。實(shí)驗(yàn)結(jié)果表明,所提出的算法可以將路徑數(shù)量減少96.20%,同時(shí),在誤差控制模塊下,保證每一段參數(shù)曲線的擬合誤差不超過(guò)精度限制,而且整個(gè)求解過(guò)程無(wú)迭代,實(shí)時(shí)性好。通過(guò)在數(shù)控機(jī)床上的切割試驗(yàn),也進(jìn)一步驗(yàn)證了本文方法的實(shí)用性。