摘 要:為實(shí)現(xiàn)橢圓弧的等誤差直線擬合,提出了一種基于羅爾定理和二分法的曲線節(jié)點(diǎn)計(jì)算新算法。該算法通過二分角度迭代求解弦與對應(yīng)的弧之間的誤差,逐步逼近程序要求的允差。最后,總結(jié)了具體的算法流程并進(jìn)行了軌跡仿真驗(yàn)證。
關(guān)鍵詞:等誤差擬合;二分法;羅爾定理
引言
本文提出了一種基于羅爾定理與二分法的曲線等誤差直線擬合新算法,適用于橢圓弧的擬合節(jié)點(diǎn)計(jì)算,該算法通過二分角度迭代求解弦與對應(yīng)的弧之間的誤差,逐步逼近程序要求的允差,避免了高次方程組的求解[1][2],可廣泛應(yīng)用于數(shù)控加工。
1 基于羅爾定理與二分法的曲線等誤差直線擬合新算法
圖1 橢圓弧等誤差直線擬合新算法
如圖1所示,在本節(jié)討論中不妨設(shè)橢圓弧AB夾角∠AOB≤180°。用直線連接曲線的兩個端點(diǎn)A、B,我們稱直線AB為曲線的弦。只要該曲線上的點(diǎn)到弦AB的最大距離hmax小于程序設(shè)定的允許誤差res,就可以用直線段AB來擬合曲線AB。而當(dāng)hmax大于res時,就需要用二分法在∠AOB范圍內(nèi)搜索擬合點(diǎn)F[3]。
1.1 擬合誤差的求解
如圖1所示,弦AB斜率為k,橢圓弧的AB段為凹凸性一致的單值區(qū)間,由羅爾定理可知,在弧AB上有且僅有一點(diǎn)C,使得過C點(diǎn)的橢圓弧切線斜率與弦AB斜率相等。設(shè)過C點(diǎn)的該切線為lc,則線段AB擬合橢圓弧AB的誤差為直線lc與直線AB之間的距離。
設(shè)A點(diǎn)坐標(biāo)為A(xa,ya),則直線AB的方程為:
y-ya=k(x-xa) (1)
由橢圓弧AB方程x2/a2+y2/b2=1,得到橢圓上的點(diǎn)C(xc,yc)處切線斜率為:
k=-b2xc/a2yc (2)
可求得切點(diǎn)C的坐標(biāo)為:
或 (3)
直線lc的方程為:
y-yc=k(x-xc) (4)
可得圓心O到直線lc的距離為:
d1= / (5)
圓心O到直線AB的距離為:
d2=|ya-kxa|/ (6)
于是得到切點(diǎn)C到直線AB的距離,即弦AB的擬合誤差為
d=d1-d2= (7)
1.2 二分法擬合的過程
設(shè)AB為要求擬合的橢圓弧段,A(xa,ya)為起始點(diǎn),B(xb,yb)為終止點(diǎn)。在單值擬合區(qū)間AB上,弦AB擬合曲線AB的擬合誤差hAB往往大于程序設(shè)定的允許誤差res,這時就需要在∠AOB范圍內(nèi)二分角度迭代求解弦的擬合誤差來逐步逼近允許誤差res。二分法應(yīng)用過程如下:
(1)初始化A點(diǎn)坐標(biāo)為擬合區(qū)間起點(diǎn)坐標(biāo)(xa,ya),B點(diǎn)坐標(biāo)為擬合區(qū)間終點(diǎn)坐標(biāo)(xb,yb)。A點(diǎn)為當(dāng)前已知擬合點(diǎn),動點(diǎn);B為固定點(diǎn)。
(2)將A點(diǎn)賦值給S1點(diǎn),B點(diǎn)賦值給S2點(diǎn)。S1,S2點(diǎn)為區(qū)間二分迭代時用到的點(diǎn),為動點(diǎn)。
(3)計(jì)算弦AB擬合曲線AB的擬合誤差hAB,賦值h=hAB。
(4)比較擬合誤差h與允差res的大小:如果h>res,轉(zhuǎn)步驟(5);如果h>res,則區(qū)間終點(diǎn)B作為最終擬合節(jié)點(diǎn),整個擬合過程結(jié)束。
(5)二分∠S1OS2,得到與橢圓弧的交點(diǎn)M(xm,ym)。
(6)計(jì)算弦AM擬合曲線AM的擬合誤差hAM,賦值h=hAM。
(7)比較擬合誤差h與允差res的大?。喝绻鹔>res,M點(diǎn)賦值給S2;如果h?燮res,M點(diǎn)賦值給S1。
(8)計(jì)算|res-h|之值,如果小于或等于指定的誤差值,尋找插補(bǔ)點(diǎn)結(jié)束,得到新擬合節(jié)點(diǎn)F,轉(zhuǎn)步驟(9);如果大于指定的誤差值,返回步驟(5)繼續(xù)查找。
(9)F賦值給A點(diǎn),轉(zhuǎn)步驟(2)。
2 軌跡仿真與應(yīng)用
基于本文算法,以C++ Builder 6.0為開發(fā)工具,編程實(shí)現(xiàn)橢圓弧等誤差直線擬合的仿真。當(dāng)橢圓圓心為(50,60),半軸長a=320,b=180,起始角度?琢=200°,終止角度?茁=300°,擬合方向?yàn)轫槇A弧,允許誤差res=10時,仿真效果見圖2。
圖2 橢圓弧等誤差直線擬合軌跡仿真
3 結(jié)束語
等誤差法直線逼近橢圓弧的一般解法需要設(shè)定誤差圓方程后解高次方程組,確定其唯一解很復(fù)雜。本文提出了一種基于羅爾定理與二分法的插補(bǔ)橢圓弧新算法,其思想是求解弦對應(yīng)的擬合誤差來逐步逼近允許誤差,體現(xiàn)了正難則反的逆向思維。該算法避免了高次方程組的求解,容易控制插補(bǔ)精度,易于實(shí)現(xiàn)程序編制求得插補(bǔ)節(jié)點(diǎn)的坐標(biāo),在數(shù)控加工中有較高的應(yīng)用價值。
參考文獻(xiàn)
[1]于洋,魏娟等.誤差直線逼近非圓曲線節(jié)點(diǎn)計(jì)算新方法[J].組合機(jī)床與自動化加工技術(shù),2005(5):32-33.
[2]趙玉剛,宋現(xiàn)春主編. 數(shù)控技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.
[3]王麗萍,孫國防,季紹坤 .非圓曲線數(shù)控編程的等誤差圓弧逼近法及其實(shí)現(xiàn) [J]. 現(xiàn)代制造工程,2006(10):25-28.
作者簡介:于光偉(1984-),男,山東青島平度人,碩士,研究方向?yàn)闄C(jī)械制造及自動化。