張 弛, 陳錦昌, 申藝杰
(1.華南理工大學(xué)設(shè)計學(xué)院,廣東 廣州 510006;2.華南理工大學(xué)機械與汽車工程學(xué)院,廣東 廣州 510640)
在數(shù)控加工中,刀具的路徑一般為直線和圓弧,所以大多數(shù)數(shù)控機床只能實現(xiàn)直線插補和圓弧插補。在加工帶有曲線輪廓的工件時,按照刀具的路徑特點,需要把曲線轉(zhuǎn)化為由直線或圓弧組成的樣條以方便刀具的加工。進行直線插補時由于刀具在每個插補段都要經(jīng)歷加速、勻速、減速和停頓,使加工時間延長且產(chǎn)生過多的振動和磨損,而使用圓弧插補能實現(xiàn)勻速加工且加工曲線光滑還能減少加工時間提高效率,因此,使用圓弧逼近來代替曲線更為有利[1-2]。圓弧逼近一般分為單圓弧逼近和雙圓弧逼近。單圓弧逼近具有使用圓弧數(shù)少連續(xù)性好等優(yōu)點,但同時穩(wěn)定性差、缺乏靈活性,不能處理有拐點的情況;雙圓弧逼近則具有較高的靈活性和穩(wěn)定性,更加適用于曲線輪廓工件的數(shù)控加工[3]。
本文主要研究雙圓弧對曲線的逼近及其優(yōu)化設(shè)計,運用VB編程實現(xiàn)了曲線輪廓工件的雙圓弧擬合以及擬合誤差的分析計算,使用隨機數(shù)和判斷函數(shù)實現(xiàn)了簡單的雙圓弧擬合優(yōu)化設(shè)計,求出可行的擬合參數(shù)。對影響誤差的因數(shù)進行了討論。并按照所得結(jié)論在優(yōu)化雙圓弧算法[4]基礎(chǔ)上對算法進行了改進。
雙圓弧的擬合方法常用的有3種:第1種是以三角形的內(nèi)心作為雙圓弧的聯(lián)接點,稱為內(nèi)心法。第2種是將雙圓弧的聯(lián)接點選在樣條曲線上,稱為交點法。第3種方法是采用改變雙圓弧聯(lián)接點的切線斜率使雙圓弧曲線與樣條曲線之間的法向誤差達到最小,又稱優(yōu)化雙圓弧擬合。內(nèi)心法計算簡便,但誤差不易控制在允許范圍內(nèi);交點法的誤差較小,但是由于要解四次非線性方程,計算復(fù)雜;優(yōu)化雙圓弧計算簡便,線性,穩(wěn)定性好,十分適于運用到數(shù)控加工。本文以優(yōu)化雙圓弧作為曲線輪廓工件加工時擬合算法,并通過調(diào)節(jié)分段數(shù)和每段聯(lián)接點斜率來減小誤差,達到擬合的優(yōu)化設(shè)計。為了找出較適合的斜率,將使用隨機數(shù)生成斜率值并計算相應(yīng)的誤差,通過誤差與最大允許誤差的比較選出適合的斜率。
設(shè)由測量或?qū)嶒炈玫囊唤M離散有序的點列Pti(xi,yi)(i=1,2,…,n)形成一條樣條曲線,稱目標曲線。設(shè)目標曲線相鄰兩個節(jié)點為Pti、Pti+1(i=1,2,…,n),現(xiàn)在不妨在曲線上取兩點來做研究。設(shè)已知兩節(jié)點坐標為P1(x1,y1),P2(x2,y2),經(jīng)過P1、P2點的曲線切線斜率為T1、T2(圖1),并設(shè)T1>T2,兩切線的交點為P3,設(shè)ΔP1P3P2三邊長a=,b=、c=,若已經(jīng)取定一數(shù)值TN(T1>TN>T2)作為雙圓弧擬合公切點的切線斜率,則有

圖1 優(yōu)化雙圓弧擬合基本原理
(1)過1P作斜率為TN的直線交P23P于P4,此時我們可以求出已知量d=、e=;
(2)假設(shè)已經(jīng)找到雙圓弧公切點P5及公切線P6P7,注意P6∈P1P3、P7∈P2P3,則有關(guān)系P6P7//P1P4,下面我們確定P6,進而確定P5的位置;
(3)設(shè)m=,由關(guān)系P6P7//P1P4,由文獻[4]有設(shè)n=,易得
當(dāng)d>e時有m>0,可在P6P7上求得符合條件的公切點P5點,上式成立。當(dāng)d<e時則有m<0,這時P6在P1P3的延長線上,無法求出公切點P5。此時應(yīng)該取P2為基點,過P2點作斜率為TN的直線,同理相反方向作圖即可。若T1<TN<T2,出現(xiàn)d<e的情況同理。
(4)設(shè)O1、O2分別為兩個圓弧的圓心,r1、r2為兩圓弧的半徑。有O1P1⊥P1P3、O2P2⊥P2P3、O1P5⊥P6P7。且有P1P6=P6P5、P5P7=P7P2,從而可以作出雙圓弧。
按照以上結(jié)果,將優(yōu)化雙圓弧擬合算法作為曲線擬合時求解的數(shù)學(xué)模型。應(yīng)用VB編寫雙圓弧擬合計算子函數(shù),函數(shù)需要5個已知變量,在代碼中命名如下:兩個節(jié)點的坐標值(x1,y1)、(x2,y2)及對應(yīng)的切矢ks和ke,TN值則由聯(lián)接點切線與節(jié)點連線的夾角rr=∠P3P1P2來間接表示。函數(shù)運行后返回輸出對應(yīng)兩圓弧的圓心坐標、聯(lián)接點坐標和圓弧半徑,在代碼中表示為xo1,yo1,xo2,yo2,xn,yn,r1,r2。另外,函數(shù)中定義數(shù)組x(i)、y(i)用來存儲曲線上每段圓弧端點的坐標值,用于函數(shù)中的計算及雙圓弧曲線的繪制。函數(shù)名:Function shuangyuanhu(x1,y1,x2,y2,ks,ke,rr,xo1,yo1,xo2,yo2,xn,yn,r1,r2)。再通過圓弧繪制命令:Call draw_Arc(x(i),y(i),xn,yn,xo1,yo1)Call draw_Arc(xn,yn,x(i+1),y(i+1),xo2,yo2)繪制兩段圓弧即可實現(xiàn)曲線輪廓工件的雙圓弧擬合。
曲線輪廓工件雙圓弧擬合分析誤差時,計算原曲線和雙圓弧擬合曲線之間的法向誤差:
以每相鄰兩型值點為一個單元進行討論,可在型值點間取10個等分點,若等分點在以O(shè)1為圓心的圓弧上時,法向誤差為

若等分點在以O(shè)2為圓心的圓弧上時

設(shè)允許的最大誤差為Δ允,當(dāng)ΔX<Δ允時,雙圓弧合格,反之則不合格[5]。若雙圓弧不合格要改變TN值重新擬合直到雙圓弧合格為止。
例:用數(shù)控車床加工某回轉(zhuǎn)體工件時,設(shè)工件的母曲線方程為二次方程y=0.213157×x-0.50216×10-3×x2其中x∈(0,170)。
這里不妨先按步長為10,各段雙圓弧的TN值為隨機生成的方案進行擬合。運用編寫的程序畫出雙圓弧擬合曲線圖如圖2所示。

圖2 雙圓弧擬合實例
在VB的窗口中繪制法向誤差圖表,以x值為橫坐標,每組雙圓弧對應(yīng)的最大誤差值為縱坐標,畫出誤差分布如圖3所示,并在圖中標出允許誤差值Δ允,令Δ允=0.007μm。圖3可以直觀地觀察雙圓弧曲線各部分誤差情況。

圖3 誤差分布圖
誤差分布圖顯示出這次的擬合有4段曲線是不合格的,要重新選擇每段的TN值,并重新擬合。設(shè)置誤差判斷條件,當(dāng)誤差不滿足條件時重新生成TN值,如此重復(fù)循環(huán),直到法向誤差符合要求為止。擬合優(yōu)化程序框圖如圖4所示。

圖4 擬合優(yōu)化程序框圖
進行TN值的重選和雙圓弧曲線再擬合就可以得出基本符合要求的雙圓弧擬合曲線如圖5所示。

圖5 重選TN值后的誤差分布圖
運用重選TN值求解雙圓弧曲線計算量大且常會出現(xiàn)難以收斂導(dǎo)致程序無限循環(huán)的問題。因此應(yīng)該從誤差的規(guī)律入手尋求更簡單高效的擬合方案。
上例是以步長為10這一條件為前提進行研究的,所以TN值成為影響曲線擬合精度的唯一變量。但由于雙圓弧擬合曲線的形狀是由各段基點位置及其TN值共同決定的,所以對雙圓弧擬合方案求最優(yōu)解將是一個多元非線性問題。這里我們將問題簡化,固定其中一部分條件研究其他條件對雙圓弧擬合的影響。
這里先固定各節(jié)點位置,以便直觀的研究TN值對擬合誤差的影響。由圖1可見端點及其對應(yīng)的切矢固定時,取不同TN值將獲得不同的擬合曲線,在ΔP1P3P2包圍的區(qū)域內(nèi)有無數(shù)解。
不妨分別按照P1P2斜率和黃金分割率來確定TN值來觀察擬合效果。
(1)平行弦法確定TN值
平行弦法是指取TN值等于P12P斜率,這時點4P與2P重合,直線P6P7平行于直線P12P。圖6(a)為上例曲線采用平行弦法雙圓弧擬合時得出的結(jié)果。該曲線使用平行弦法擬合的最大法向誤差為1.96E-6mm,情況比較理想。
(2)黃金分割法確定TN值
在T1,T2間按黃金分割率0.618取值作為TN值,圖6(b)為上例雙圓弧擬合時得出的結(jié)果。

圖6 不同TN值對應(yīng)的誤差分布圖
TN值確定了雙圓弧擬合曲線的形狀,進而決定了誤差的分布。在確定基點的情況下,調(diào)節(jié)TN值可以減小誤差。
(1)減少分段數(shù),增大步長
將上例中步長10,改為步長19進行雙圓弧擬合,為了減小其他變量的影響,TN按照平行弦法取值,所得結(jié)果如圖7(a)與圖6(a)比較可知雙圓弧擬合的誤差增大,超出了允許值。
(2)增加分段數(shù),減小步長
將上例步長改為步長15.4mm進行雙圓弧擬合,TN按照平行弦法取值,所得結(jié)果如圖7(b),與圖6(a)比較,誤差減小,擬合精確度提高,法向誤差降低為6.89E-06mm,剛好達到要求。

圖7 改變步長時誤差分布圖
經(jīng)過多次改變步長獲得多組誤差分布圖后發(fā)現(xiàn)步長15.4mm是臨界步長,相應(yīng)分段數(shù)為11段。當(dāng)所選步長小于15.4mm時雙圓弧曲線都能滿足要求。
比較圖6(a)和圖7(a)時可以發(fā)現(xiàn),盡管所取的分段數(shù)不同,其誤差曲線波動趨勢基本相似。這是由于采用平行弦法確定TN值時,雙圓弧擬合曲線將只由兩節(jié)點及其切矢決定,也就是說此時擬合誤差將只受節(jié)點選取的影響。
改變步長就相當(dāng)于改變了節(jié)點的選取。通過減小步長來減小誤差雖然效果明顯,但是常常會引起大部分曲線段精度過高同時過小的步長會使分段數(shù)增多。在具體的曲線擬合中,對于給定的誤差,往往要求用盡量少的圓弧段數(shù)[6],因此單純通過減小步長來控制誤差不一定是可取的。
結(jié)合平行弦法和改變步長的方法來進行優(yōu)化,在采用平行弦確定各段TN值的前提下,根據(jù)曲線的擬合誤差分布情況來重新規(guī)劃各分段所使用的步長,使擬合曲線的最大誤差值低于允差的同時避免出現(xiàn)精度過高的情況并降低分段數(shù)。步長規(guī)劃算法:
設(shè)第i段的兩個基點為Pti、Pti+1(i=1,2,…,n)。兩點間的步長為Li測得滿足擬合條件的臨界步長Lc以及能使大部分曲線段不合格的較大步長Lb,Li的取值范圍為Lc<Li<Lb。則兩基點的坐標為:

擬合曲線時,比較該段雙圓弧曲線擬合的最大法向誤差,當(dāng)最大法向誤差Δmax>Δ允時,選用更小的Li重新擬合。當(dāng)最大法向誤差Δmax過小時則增大Li,這樣將使Li自動向理想值逼近,直到雙圓弧曲線符合要求為止并繼續(xù)擬合下一段曲線。步長規(guī)劃的程序框圖如圖8所示。

圖8 步長規(guī)劃程序框圖
該程序運行后將自動生成各分段的步長并繪出相應(yīng)的雙圓弧曲線。
對于上例中的曲線,按照第三部分的實驗結(jié)果,Lc取13mm,Lb取20mm。
運行程序生成各段步長14.11,14.62,15.21…19.39,共生成10段。擬合曲線誤差如圖9所示。

圖9 上例改進的擬合誤差分布圖
與圖7(a)的情況相比,分段數(shù)同為10段,采用變化步長的擬合曲線沒有超出允差。最大誤差為:6.77E-06mm。誤差較之前分布更加均勻且沒有出現(xiàn)精度過高問題。
實驗證明規(guī)劃步長擬合法可以用較少的分段數(shù)擬合出符合允差的雙圓弧擬合曲線,計算量少,更易于實現(xiàn)工件的輪廓曲線的加工。
本文運用VB實現(xiàn)優(yōu)化雙圓弧算法的計算機模型,對擬合誤差進行了計算和分析。討論了影響擬合誤差的因素,并在此基礎(chǔ)上提出了雙圓弧擬合的改進算法,通過步長規(guī)劃方法改進雙圓弧曲線的擬合,保證了較低的計算量、較少的步長以及允許的加工精度,使擬合曲線的獲得更簡化,更有利于計算機的編程和硬件實現(xiàn)。
[1]沈紀桂.數(shù)控加工圓弧擬合的優(yōu)化方法[J].機械工程學(xué)報,1997,(6): 64-69.
[2]蘇步青,劉鼎元.計算幾何[M].上海: 上??茖W(xué)出版社,1981: 195-203.
[3]丁克會,席平原,周紅斌.參數(shù)方程曲線的最優(yōu)逼近算法及實現(xiàn)[J].機械傳動,2008,(6): 57-59.
[4]沈紀桂,方志梅,李凌豐.優(yōu)化雙圓弧擬合[J].工程圖學(xué)學(xué)報,1995,(1): 53-56.
[5]郭文蘭,張 彤.曲線方程的雙圓弧擬合算法及實現(xiàn)[J].哈爾濱理工大學(xué)學(xué)報,2004,9(6): 87-89.
[6]虞銘財,楊勛年,汪國昭.整體最優(yōu)雙圓弧擬合[J].高校應(yīng)用數(shù)學(xué)學(xué)報A輯,2004,19(2): 225-232.