金艷玲,楊東武,姚東成
(1.中航工業(yè)西安飛行自動(dòng)控制研究所,西安 710065;2.西安電子科技大學(xué)機(jī)電工程學(xué)院,西安710071)
目前,一般的數(shù)控機(jī)床只具備直線插補(bǔ)和圓弧插補(bǔ)功能。當(dāng)加工由雙曲線、橢圓、擺線等非圓曲線組成的平面輪廓時(shí),就得用若干直線段或圓弧段去逼近其輪廓,并計(jì)算出逼近線段與非圓曲線的交點(diǎn)或切點(diǎn),即插補(bǔ)節(jié)點(diǎn)。采用直線段逼近非圓曲線,一般數(shù)學(xué)處理較簡(jiǎn)單,但節(jié)點(diǎn)計(jì)算時(shí)的坐標(biāo)數(shù)據(jù)較多,且由于各節(jié)點(diǎn)連接處存在尖角,刀具在尖角處不能連續(xù)對(duì)零件進(jìn)行切削,導(dǎo)致零件表面出現(xiàn)硬點(diǎn)或刀痕,從而降低加工表面質(zhì)量。采用圓弧段逼近非圓曲線,不僅可大大減少程序段的數(shù)目,而且當(dāng)采用彼此相切的圓弧段來(lái)逼近非圓曲線時(shí),能夠使工件表面整體光滑,有利于加工表面質(zhì)量的提高。
用圓弧逼近數(shù)控加工曲線的方法分為兩大類,即細(xì)分曲線(即離散點(diǎn)列或列表曲線)的插值或擬合[1-2]以及自由型曲線的擬合[3-5]。自由型曲線擬合方法是在已知零件輪廓曲線方程時(shí)較常采用的插補(bǔ)方法,具有誤差控制精準(zhǔn)的優(yōu)點(diǎn)。本文討論自由型曲線的擬合方法。
曲率圓法是對(duì)自由型曲線擬合的基本方法,有時(shí)也被稱為等誤差圓弧逼近法,其原理是通過(guò)控制所生成的插補(bǔ)圓弧段與實(shí)際工件輪廓曲線均位于曲率圓與偏差圓之間,以使圓弧插補(bǔ)的逼近誤差總小于或等于插補(bǔ)容差。相比與其它圓弧插補(bǔ)方法,它具有編程時(shí)算法設(shè)計(jì)簡(jiǎn)單,誤差控制直接的優(yōu)點(diǎn),成為數(shù)控編程類教材中圓弧插補(bǔ)的基本方法[6]。采用彼此相切的圓弧段來(lái)逼近非圓曲線時(shí),能夠使工件表面整體光滑,加工質(zhì)量較高。文獻(xiàn)[3-4]中的整體最優(yōu)雙圓弧逼近方法計(jì)算參數(shù)多,計(jì)算量大,程序設(shè)計(jì)復(fù)雜。文獻(xiàn)[7-9]中變步長(zhǎng)雙圓弧逼近方法的誤差控制采用后驗(yàn)方式,即先構(gòu)造圓弧后通過(guò)在插補(bǔ)區(qū)間取點(diǎn)的方式檢驗(yàn)誤差,通過(guò)誤差檢驗(yàn)結(jié)果實(shí)時(shí)調(diào)整步長(zhǎng)并重新生成圓弧;方法中的步長(zhǎng)調(diào)整沒(méi)有規(guī)律可循,導(dǎo)致每個(gè)插補(bǔ)區(qū)間的圓弧生成與誤差檢驗(yàn)可能會(huì)多次反復(fù),數(shù)據(jù)處理過(guò)程的計(jì)算量較大。
借鑒曲率圓法中的誤差控制原理,本文給出非圓曲線輪廓的一種三圓弧逼近方法。在介紹方法基本思想的基礎(chǔ)上,給出圓弧插補(bǔ)節(jié)點(diǎn)及圓弧參數(shù)的計(jì)算步驟,并進(jìn)行方法的可行性分析。
設(shè)平面輪廓曲線具有顯式表達(dá)式,且加工時(shí)的插補(bǔ)容差為δa>0。在曲率極值點(diǎn)、拐點(diǎn)以及曲率非連續(xù)點(diǎn)處將整個(gè)輪廓曲線劃分為多段,這樣,每一局部段就是曲率單調(diào)的。不妨設(shè)某一段曲線)AP的曲率是單調(diào)下降的,如圖1所示。
圖1 三圓弧插補(bǔ)節(jié)點(diǎn)的確定
設(shè)點(diǎn)B(xB,yB)為曲線上的一點(diǎn),記該點(diǎn)的曲率圓圓心為OB,曲率半徑為RB,則曲率圓圓心OB(ξB,ηB)及半徑RB的計(jì)算公式為:
式中,yB=f(xB)為點(diǎn)B的縱坐標(biāo),y'B與y″B分別為曲線y=f(x)在點(diǎn)B處的一階和二階導(dǎo)數(shù)值。
記點(diǎn)A的坐標(biāo)為(xA,yA),則點(diǎn)B(xB,yB)的坐標(biāo)可通過(guò)求解方程式:
得到。
為求解以上非線性方程式(2),設(shè)點(diǎn)D(xD,yD)為曲線上的動(dòng)點(diǎn),且其曲率圓圓心為OD,曲率圓半徑為RD,同時(shí),構(gòu)造函數(shù):
則函數(shù)z1的零點(diǎn)即為點(diǎn)B的橫坐標(biāo)xB。
圖2 第二個(gè)插補(bǔ)節(jié)點(diǎn)的確定
式(5)和式(6)表明,當(dāng)動(dòng)點(diǎn)D由點(diǎn)A運(yùn)動(dòng)到點(diǎn)P的過(guò)程中,函數(shù)z1單調(diào)遞增。同時(shí)考慮到,當(dāng)動(dòng)點(diǎn)D位于點(diǎn)A時(shí),函數(shù)z1的值取負(fù)值-δa。因此,只要曲線的弧長(zhǎng)足夠,函數(shù)z1的零點(diǎn)存在且唯一,即就是點(diǎn)B存在且唯一。
點(diǎn)B的坐標(biāo)確定后,由式(1)可求得曲率圓圓心OB(ξB,ηB)以及半徑RB。類似地,若構(gòu)造函數(shù):
且取x∈[xB,xP],則函數(shù)z2的零點(diǎn)即為點(diǎn)C的橫坐標(biāo)xC。容易證明,函數(shù)z2同樣單調(diào)遞增,且在曲線的弧長(zhǎng)足夠的情況下,在區(qū)間[xB,xP]上存在且僅存在唯一的零點(diǎn)。于是,點(diǎn)C可唯一確定。
當(dāng)圓弧插補(bǔ)節(jié)點(diǎn)A和C確定后,連續(xù)相切的三個(gè)插補(bǔ)圓弧段分別構(gòu)造如下:
(1)第一段插補(bǔ)圓弧為過(guò)A點(diǎn)且與點(diǎn)A和點(diǎn)B處的曲率圓均相切的圓弧。
(2)第三段插補(bǔ)圓弧為過(guò)C點(diǎn)且與點(diǎn)C和點(diǎn)B處的曲率圓均相切的圓弧。
(3)設(shè)第一段與第三段插補(bǔ)圓弧與點(diǎn)B處的曲率圓分別相切于點(diǎn)E和點(diǎn)F,則點(diǎn)B處的曲率圓上位于點(diǎn)E和點(diǎn)F之間的圓弧段為第二段插補(bǔ)圓弧。
圖3 插補(bǔ)圓弧的構(gòu)造
如圖3所示。若記第一段和第三段插補(bǔ)圓弧(點(diǎn)線)的圓心分別為O1(ξ1,η1)和O3(ξ3,η3),半徑分別為R1和R3,且點(diǎn)A和點(diǎn)C處的曲率圓圓心分別為OA(ξA,ηA)和OC(ξC,ηC),半徑分別為RA和RC,則應(yīng)有點(diǎn)A、OA、O1三點(diǎn)共線,點(diǎn)E、O1、OB三點(diǎn)共線,且點(diǎn)C、O3、OC三點(diǎn)共線,點(diǎn)F、OB、O3三點(diǎn)共線,且有:
曲率圓圓心OA和OC的坐標(biāo)以及RA和RC可參照式(1)計(jì)算。插補(bǔ)圓弧半徑R1和R3通過(guò)求解以下兩個(gè)一元二次方程得到,方程的根僅取R1>RA和R3<RC。
插補(bǔ)圓弧圓心O1和O3的坐標(biāo)計(jì)算公式為:
下面證明點(diǎn)E必位于圓弧段 內(nèi)。如前所述,輪廓曲線的漸屈線應(yīng)該是凹向一致且光滑連續(xù)的。由漸屈線的性質(zhì)知:
采用反證法進(jìn)行證明。假設(shè)存在過(guò)A點(diǎn)且與點(diǎn)A和點(diǎn)B處的曲率圓均相切的圓弧',它與點(diǎn)B處的曲率圓相切于點(diǎn)E',且點(diǎn)E'位于圓弧段上。記圓弧的圓心為O',且直線OO'與直線OB的A1B交點(diǎn)為點(diǎn)G,見(jiàn)圖4。特別地,當(dāng)點(diǎn)E'與點(diǎn)B重合時(shí),圓心O1'與點(diǎn)G重合。由于圓弧 與點(diǎn)A和點(diǎn)B處的曲率圓分別相切于點(diǎn)A和點(diǎn)B,因此:
結(jié)合式(13)~(15),可得:
顯然,式(16)與式(17)矛盾。
類似地,可以證明點(diǎn)F必位于圓弧段內(nèi)。因此,所作三圓弧的最大插補(bǔ)誤差在容差范圍之內(nèi),即該三圓弧逼近方法是可行的。
圖4 三圓弧相切點(diǎn)的位置
對(duì)于任意給定的平面輪廓曲線,三圓弧逼近的總體步驟為:首先在曲線的曲率極值點(diǎn)、拐點(diǎn)以及曲率不連續(xù)點(diǎn)處將整個(gè)輪廓曲線劃分為多段,并通過(guò)一定的旋轉(zhuǎn)或鏡像變換使每個(gè)曲線段都滿足曲率連續(xù)且單調(diào)遞減的條件。其次,對(duì)每個(gè)曲線段分別應(yīng)用三圓弧逼近方法生成所需的擬合圓弧樣條曲線。最后,將所生成的圓弧樣條曲線做相應(yīng)的反變換以連接各部分形成整體輪廓的圓弧樣條曲線。
對(duì)于每一個(gè)經(jīng)變換后的曲線段(直線段除外),三圓弧逼近的算法流程如下:
(1)記曲線段的起點(diǎn)為A,終點(diǎn)為P,并計(jì)算相應(yīng)的曲率圓圓心OA(ξA,ηA)和OP(ξP,ηP),以及曲率圓半徑RA和RP。以k表示當(dāng)前三圓弧樣條曲線段的序號(hào),并令k=1。
(2)分別計(jì)算式(3)所定義的函數(shù)z1在點(diǎn)A及點(diǎn)P處的函數(shù)值,即z1(xA)和z1(xP)。若函數(shù)值z(mì)1(xA)和z1(xP)異號(hào),則在區(qū)間[xA,xP]上求解該非線性函數(shù)的零點(diǎn)并計(jì)算得到相應(yīng)的點(diǎn)B;否則,轉(zhuǎn)至第⑤步。
(3)計(jì)算點(diǎn)B處的曲率圓圓心OB(ξB,ηB)和半徑RB,以及式(7)所定義的函數(shù)z2在點(diǎn)B及點(diǎn)P處的函數(shù)值,即z2(xB)和z2(xP)。若函數(shù)值z(mì)2(xB)和z2(xP)異號(hào),則在區(qū)間[xB,xP]上求解該非線性函數(shù)的零點(diǎn)并計(jì)算得到相應(yīng)的點(diǎn)C;否則,轉(zhuǎn)至第⑥步。
(4)計(jì)算點(diǎn)C處的曲率圓圓心OC(ξC,ηC)和半徑RC;由式(9)~(12)分別計(jì)算當(dāng)前三圓弧中第一段和第三段插補(bǔ)圓弧的半徑R1、R3以及圓心O1和O3的坐標(biāo);由OB、O1及點(diǎn)E的位置關(guān)系計(jì)算點(diǎn)E的坐標(biāo),由OB、O3及點(diǎn)F的位置關(guān)系計(jì)算點(diǎn)F的坐標(biāo),并保存R1、RB和R3以及點(diǎn)A、C、O1、OB、O3、E和F的信息后,令k=k+1,并將點(diǎn)C記作點(diǎn)A返回到第②步繼續(xù)執(zhí)行。
(5)將點(diǎn)P記作點(diǎn)B并依據(jù)式(9)和(11),計(jì)算R1和點(diǎn)O1,由OB、O1及點(diǎn)E的位置關(guān)系計(jì)算點(diǎn)E的坐標(biāo),保存R1和RB以及點(diǎn)A、O1、OB、和E的信息后退出。
(6)將點(diǎn)P記作點(diǎn)C并由式(9)~(12)分別計(jì)算當(dāng)前三圓弧中第一段和第三段插補(bǔ)圓弧的半徑R1、R3以及圓心O1和O3的坐標(biāo);由OB、O1及點(diǎn)E的位置關(guān)系計(jì)算點(diǎn)E的坐標(biāo),由OB、O3及點(diǎn)F的位置關(guān)系計(jì)算點(diǎn)F的坐標(biāo),并保存R1、RB和R3以及點(diǎn)A、C、O1、OB、O3、E和F的信息后退出。
一橢圓曲線零件,其長(zhǎng)半軸為50mm,短半軸為30mm,橢圓方程為:
因橢圓關(guān)于X軸和Y軸對(duì)稱,選第二象限進(jìn)行圓弧插補(bǔ),則所選曲線段的曲率連續(xù)且單調(diào)遞增,無(wú)需進(jìn)行圖形的旋轉(zhuǎn)或鏡像變換。
設(shè)插補(bǔ)容差為δa=0.01mm,采用文中所提的三圓弧逼近方法,得到的三圓弧7組共20段圓弧,圓心坐標(biāo)及半徑如表1所示。
表1 各圓弧段的中心及半徑 (單位:mm)
(續(xù)表)
(1)論文提出了一種三圓弧逼近非圓曲線的方法,并證明了該方法的可行性。
(2)論文所提方法采用曲率圓以及相應(yīng)的偏差圓來(lái)確定插補(bǔ)節(jié)點(diǎn)并構(gòu)造連續(xù)相切的圓弧,計(jì)算簡(jiǎn)單,誤差控制直接,便于工程應(yīng)用。
[1]徐建明,劉飛,何援軍,等.離散點(diǎn)列的局部雙圓弧逼近[J].東華大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,31(4):62 -65.
[2]樂(lè)英,韓慶瑤,王璋奇.數(shù)控加工中非圓曲線的最小二乘圓弧逼近[J].華北電力大學(xué)學(xué)報(bào),2006,33(6):102 -104.
[3]虞銘財(cái),楊勛年,汪國(guó)昭.整體最優(yōu)雙圓弧擬合[J].高校應(yīng)用數(shù)學(xué)學(xué)報(bào)A輯,2004,19(2):225-232.
[4]蔡慧林,戴建強(qiáng).基于遺傳算法的相切圓弧逼近非圓曲線算法[J].蘭州交通大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,26(6):5-9.
[5]岳秋琴,蔣幸幸.數(shù)控編程中圓弧逼近非圓曲線的數(shù)據(jù)處理[J].機(jī)械研究與應(yīng)用,2003,16(3):56-60.
[6]張洪江,侯書(shū)林.數(shù)控機(jī)床與編程[M].北京:北京大學(xué)出版社,2009.
[7]陳明君,趙清亮,董申,等.基于雙圓弧步長(zhǎng)伸縮數(shù)控插補(bǔ)非圓曲線算法的研究[J].機(jī)械工程學(xué)報(bào),2003(39):111-116.
[8]張莉彥,邱輝,陳虎,等.平面曲線的雙圓弧最佳逼近[J].組合機(jī)床與自動(dòng)化加工技術(shù),2002(12):34-36.
[9]關(guān)耀奇.雙圓弧逼近在橢圓零件加工中節(jié)點(diǎn)值的求解[J].組合機(jī)床與自動(dòng)化加工技術(shù),2003(1):59-60.