周 同,杜珍珍,蔣劍軍
(1.銅陵職業(yè)技術(shù)學(xué)院基礎(chǔ)部,安徽 銅陵 244061;2.銅陵學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院,安徽 銅陵 244061)
工件表面質(zhì)量直接影響其性能和使用壽命,作為商品也影響客戶的使用體驗(yàn)。工件表面是通過工件輪廓線來畫像的,所以工件的輪廓線是工件表面質(zhì)量的外化指標(biāo)。
工件的輪廓線是通過輪廓儀采集數(shù)據(jù)后復(fù)現(xiàn)的。通過復(fù)現(xiàn)輪廓線計(jì)算輪廓線的各項(xiàng)參數(shù),工件表面質(zhì)量由輪廓線的各項(xiàng)參數(shù)來描述。
接觸式輪廓儀是一種測量工件輪廓線的距離、角度、圓弧半徑等參數(shù)的兩坐標(biāo)儀器[1],其工作原理是,探針接觸到被測工件表面并勻速滑行,傳感器感受到被測表面的幾何變化,在水平方向和豎直方向分別采樣,并轉(zhuǎn)換成電信號(圖1)。該電信號經(jīng)放大等處理,轉(zhuǎn)換成數(shù)字信號儲存在數(shù)據(jù)文件中。
圖1 接觸式輪廓儀測量示意圖
在理想狀況下,輪廓曲線應(yīng)該是光滑的,但由于接觸式輪廓儀存在探針沾污、缺陷、掃描位置不準(zhǔn)等問題[2],檢測到的輪廓曲線一般都呈現(xiàn)出粗糙不平的情況(如圖2局部放大圖),這給工件輪廓線參數(shù)的計(jì)算帶來誤差,從而對工件表面質(zhì)量的評價(jià)帶來影響。
圖2 輪廓儀獲取的數(shù)字信號
為了克服輪廓線數(shù)據(jù)失真對工件表面質(zhì)量評價(jià)的影響,關(guān)于輪廓儀數(shù)據(jù)校準(zhǔn)方法或輪廓線參數(shù)計(jì)算精度提升方法的研究一直備受關(guān)注。范一保等[3]、袁會敬[4]從輪廓儀設(shè)計(jì)的角度提出提升數(shù)據(jù)采集精度的方法。王旭剛等[5]、王云飛等[6]通過引入輪廓儀測量新方法解決了輪廓儀測量準(zhǔn)確率低和重復(fù)性不好的問題。婁云鴿等[7]從輪廓儀的設(shè)計(jì)和參數(shù)的計(jì)算兩個(gè)角度通過測量子午線方法實(shí)現(xiàn)了對光學(xué)元件輪廓線精密度的評定。張建群等[8]為確保檢測數(shù)據(jù)準(zhǔn)確可靠,提出了校準(zhǔn)方法及其校準(zhǔn)結(jié)果的不確定度評定方法,作為接觸式輪廓儀的技術(shù)依據(jù)。
本文在這些成果的基礎(chǔ)上研究工件輪廓線數(shù)據(jù)的校準(zhǔn)算法及其各項(xiàng)參數(shù)的計(jì)算算法設(shè)計(jì)問題,并應(yīng)用工件輪廓線公開數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)以驗(yàn)證算法的有效性。
工件輪廓線公開數(shù)據(jù)集見全國大學(xué)生數(shù)學(xué)建模競賽官網(wǎng)(http://www.mcm.edu.cn)。數(shù)據(jù)集復(fù)現(xiàn)輪廓線如圖3所示。
圖3 工件輪廓線復(fù)現(xiàn)曲線
圖3中,輪廓線含有三類基本圖形:水平直線段、斜線段和圓弧。輪廓線的參數(shù)主要是距離、角度、圓弧半徑等(表1)[1]。因?yàn)橛?jì)算參數(shù)的需要,本文將三類基本圖形組合為折線段(由水平直線段與斜線段構(gòu)成)、直弧線(水平直線段與圓弧的組合曲線)、斜弧線(斜線段與圓弧的組合曲線)、人字形(由兩條斜線段構(gòu)成)。各曲線部分參數(shù)如圖4、圖5、圖6所示。
表1 輪廓線的參數(shù)
圖4 圓弧參數(shù)
圖5 人字形參數(shù)
圖6 斜圓組合曲線參數(shù)
已知輪廓線數(shù)據(jù),復(fù)現(xiàn)輪廓線以后計(jì)算輪廓線的各項(xiàng)參數(shù),這是輪廓線標(biāo)注的基本問題。本文根據(jù)輪廓線數(shù)據(jù)給出該輪廓線各項(xiàng)參數(shù)的計(jì)算方法。
設(shè)計(jì)輪廓線數(shù)據(jù)校準(zhǔn)及參數(shù)計(jì)算算法的基本思想是先局部最優(yōu)逼近,再整體優(yōu)化調(diào)整。在算法描述中使用Matlab的數(shù)組語言。
下面介紹圖3中第一個(gè)折線中節(jié)點(diǎn)坐標(biāo)及斜線段方程的計(jì)算算法。圖3中第一個(gè)折線段如圖7所示。設(shè)相應(yīng)于圖7的數(shù)據(jù)為(xi,yi),i=1,2,…,n。如圖8所示,在折線段上任取一動點(diǎn)(m,t)。設(shè)輪廓線數(shù)據(jù)中橫坐標(biāo)在[x1,m]上的樣本點(diǎn)有p個(gè),在(m,xn]上樣本點(diǎn)有q個(gè)。
圖7 輪廓線上的第一段折線
圖8 算法1示意圖
以(m,t)為節(jié)點(diǎn)的近似點(diǎn),則水平直線段自(x1,y1)至(m,t),斜線段自(m,t)至(xn,yn)。最小誤差平方和意義下得水平直線段方程為
(1)
線性回歸得斜線段的方程為
以(m,t)為節(jié)點(diǎn)的近似點(diǎn)帶來的損失函數(shù)取為總誤差平方和:
(2)
于是求解節(jié)點(diǎn)(xn,yn)的問題,就轉(zhuǎn)化為求位置p使得損失R最小的優(yōu)化問題。
上述優(yōu)化問題的決策變量是求和項(xiàng)p,所以這并非常規(guī)的優(yōu)化問題。本文設(shè)計(jì)該優(yōu)化問題的求解算法如下:
算法1 斜線段與水平直線段之間節(jié)點(diǎn)坐標(biāo)和斜線段方程的最優(yōu)逼近算法
1:讀入折線段數(shù)據(jù);
2:近似:循環(huán)變量p=1,2,…,n.
線性回歸得斜線段方程,存于數(shù)組L中,
按(2)式計(jì)算R(p)
3:計(jì)算R最小值所在的位置Ko,輸出
最佳逼近點(diǎn)坐標(biāo)為
斜線段最佳逼近方程為
算法1描述的節(jié)點(diǎn)的最優(yōu)逼近算法與仇谷烽等[9]基于最小二乘法原理提出的可通過測量數(shù)據(jù)擬合出一個(gè)最佳位置放置參數(shù)的數(shù)學(xué)模型明顯不同,本文是輪廓線上節(jié)點(diǎn)的最佳逼近,而后者是工件放置位置的最佳逼近。
在輪廓線是光滑的理想狀態(tài)下,斜線段與圓弧之間的節(jié)點(diǎn)是二者的切點(diǎn)。
下面介紹第一個(gè)斜圓組合曲線上切點(diǎn)Tl和Tr的坐標(biāo)、圓弧方程的求解算法。設(shè)相應(yīng)于圖9的輪廓線數(shù)據(jù)為(xi,yi),i=1,2,…,n,其左端點(diǎn)坐標(biāo)為A(x1,y1),右端點(diǎn)坐標(biāo)為B(xn,yn),由算法1求得的左右斜線段的斜率和截距分別為[kl,bl]和[kr,br]。相應(yīng)的算法示意圖如圖10所示。
圖9 斜弧組合曲線(Tl和Tr是待求切點(diǎn))
圖10 算法2示意圖
首先,設(shè)左右兩端斜線段延長線交點(diǎn)為C(xC,yC),則
(3)
且∠ACB的平分線l的方程為
y=km(x-xC)+yC,
(4)
其中,
(5)
(6)
(7)
點(diǎn)Q的坐標(biāo)(xQ,yQ)為
(8)
最后最優(yōu)逼近:設(shè)A,P之間的樣本數(shù)據(jù)有p個(gè),P,Q之間的樣本點(diǎn)有s個(gè),Q,B之間的樣本點(diǎn)有q個(gè),損失函數(shù)取為總誤差平方和:
(9)
當(dāng)P在AC上移動時(shí),最小損失對應(yīng)的點(diǎn)P和點(diǎn)Q分別是切點(diǎn)Tl和Tr的一個(gè)理想逼近。于是求切點(diǎn)Tl和Tr的問題就轉(zhuǎn)化為求P的位置p使得損失R最小的優(yōu)化問題。
算法2 斜弧組合曲線上節(jié)點(diǎn)坐標(biāo)與圓弧方程的最優(yōu)逼近算法
1:讀入數(shù)據(jù)
斜圓組合曲線數(shù)據(jù);
讀入算法1中計(jì)算得到的斜線段的方程(斜率和截距)[kl,bl]和[kr,br];
2:計(jì)算
按(3)式計(jì)算點(diǎn)C的坐標(biāo);
按(5)式計(jì)算角平分線的斜率,按(4)式給出角平分線方程;
A與C之間樣本點(diǎn)的個(gè)數(shù)N;
3:近似:循環(huán)變量p=1,2,…,N.
以P(xP,yP)為左切點(diǎn)近似點(diǎn),然后
按(6)式計(jì)算圓心坐標(biāo)和半徑,存于數(shù)組A中:
A(p,∶)=[xO,yO,R].
按(7)式計(jì)算右切點(diǎn)逼近點(diǎn)Q的坐標(biāo),并連同點(diǎn)P的坐標(biāo)存于數(shù)組T中:
T(p,∶)=[xp,yp,xO,yO].
按(8)式計(jì)算R(p);
4:計(jì)算R最小值所在的位置Ko,輸出圓弧的最優(yōu)逼近方程:
及切點(diǎn)的最優(yōu)逼近點(diǎn):
T(Ko,∶)=[xp,yp,xO,yO].
需要說明兩點(diǎn):第一,算法2依賴于算法1的計(jì)算結(jié)果;第二,與朱曉林等[10]的計(jì)算方法相比,算法2保持了曲線的光滑性。
下面詳細(xì)介紹第一個(gè)圓弧與水平直線段之間節(jié)點(diǎn)坐標(biāo)及圓弧方程的逼近求解算法。
設(shè)相應(yīng)于圖11的輪廓線數(shù)據(jù)為(xi,yi),i=1,2,…,n,其左端點(diǎn)坐標(biāo)為A(x1,y1),右端點(diǎn)坐標(biāo)為B(xn,yn),左節(jié)點(diǎn)為Nl,右節(jié)點(diǎn)為Nr。本文求解Nl,Nr及圓弧方程的算法思想如圖12所示。
圖11 直弧組合曲線(Nl,Nr是待求節(jié)點(diǎn))
圖12 算法3示意圖
最后最優(yōu)逼近:A,P之間的樣本數(shù)據(jù)有p個(gè),P,Q之間的樣本數(shù)據(jù)有s個(gè),Q,B之間的樣本數(shù)據(jù)有q個(gè)。假設(shè)圓弧的擬合方程為
其中,O(xO,yO)為圓心,R為半徑。
由近似所帶來的損失取為總誤差平方和:
(10)
當(dāng)P(xP,yP)自A向右移動、Q(xQ,yQ)自B向左移動時(shí)對應(yīng)著一系列損失R(P,Q),其中最小損失對應(yīng)的P和Q就分別是Nl和Nr的最優(yōu)逼近,相應(yīng)的圓弧的擬合方程就是輪廓線圓弧方程的最優(yōu)逼近。
算法3直弧組合曲線的節(jié)點(diǎn)坐標(biāo)及圓弧方程的最優(yōu)逼近算法
1:讀入數(shù)據(jù)
直圓組合曲線數(shù)據(jù)(xi,yi),i=1,2,…,n;
2:初始化:R初始化為J×K零矩陣,用于存儲總誤差平方和;H初始化為J×K元胞數(shù)組,用于存儲節(jié)點(diǎn)近似坐標(biāo)和圓弧的近似方程。
3:近似:雙重循環(huán)
j=1,2,…,J;k=1,2,…,K.
以(xj,yj)近似Nl,
以(xn-k,yn-k)近似Nr,
以橫坐標(biāo)在xj,yn-k之間的數(shù)據(jù)對圓弧進(jìn)行非線性回歸,得圓心坐標(biāo)(xO,yO)和半徑R;
保存數(shù)據(jù):
H{j,k}=[xj,yj,xn-k,yn-k,xO,yO,R].
按(9)式計(jì)算損失R(j,k)。
4:計(jì)算R最小值所在的位置(Jo,Ko),對應(yīng)著節(jié)點(diǎn)和圓弧方程的最佳逼近:
輸出上述最佳逼近結(jié)果。
上述3個(gè)算法著眼于局部最優(yōu)逼近,且與水平直線段的節(jié)點(diǎn)坐標(biāo)都在輪廓線數(shù)據(jù)集中,這還不是合理的最優(yōu)結(jié)果。需要對3個(gè)算法所得結(jié)果進(jìn)行整體微調(diào)。
首先,9條水平直線段方程應(yīng)該是一致的。
根據(jù)上述算法所得水平節(jié)點(diǎn),得到9條水平直線段的樣本數(shù)據(jù)(xik,yik),k=1,2,…,K。由最小二乘法得水平直線段的最優(yōu)逼近方程為
然后,各斜線段和圓弧與水平直線的交點(diǎn)即為真實(shí)節(jié)點(diǎn)的最優(yōu)逼近點(diǎn)。
最后,計(jì)算輪廓線的各參數(shù)。
8條折線段的節(jié)點(diǎn)坐標(biāo)及斜線段的方程見表2。
表2 8條折線段的節(jié)點(diǎn)坐標(biāo)及斜線段的方程
輪廓線中第一個(gè)折線段的節(jié)點(diǎn)結(jié)果可視化如圖13和圖14所示。在圖14中,因?yàn)樗惴ň雀?,擬合數(shù)據(jù)與原始數(shù)據(jù)高度重合。圖16和圖18也是如此。
圖13 總誤差平方和曲線
圖14 最優(yōu)逼近效果圖
3個(gè)斜弧組合曲線的切點(diǎn)及圓弧的最佳逼近如表3所示。
表3 3個(gè)斜弧組合曲線的切點(diǎn)及圓弧的最佳逼近
輪廓線中第一個(gè)斜弧組合曲線最優(yōu)逼近結(jié)果的可視化如圖15和圖16所示。
圖15 總誤差平方和曲線
圖16 最優(yōu)逼近效果圖
4個(gè)直弧組合曲線的節(jié)點(diǎn)及圓弧的最佳逼近如表4所示。
表4 4個(gè)直弧組合曲線的節(jié)點(diǎn)及圓弧的最佳逼近
輪廓線中第一個(gè)直弧組合曲線最優(yōu)逼近結(jié)果的可視化如圖17和圖18所示。
圖17 總誤差平方和曲面
圖18 最優(yōu)逼近效果圖
水平直線段方程為y=-1.773 808 631。其上各節(jié)點(diǎn)的最優(yōu)逼近點(diǎn)的橫坐標(biāo)如表5所示。
表5 16個(gè)節(jié)點(diǎn)的橫坐標(biāo)
按校正數(shù)據(jù)作出輪廓線曲線,如圖19所示。此時(shí)曲線無論怎么放大都不會再有奇異性。
圖19 校正數(shù)據(jù)繪制的輪廓線
前文第2節(jié)主要是對輪廓線失真數(shù)據(jù)的一個(gè)校正,同時(shí)計(jì)算了部分參數(shù)。其他參數(shù)可依據(jù)校正數(shù)據(jù)依次計(jì)算,結(jié)論如表6至表10所示。
表6 9條水平直線段的長度
表7 8條斜線段
表8 7個(gè)圓弧
表9 人字形的參數(shù)
表10 斜弧組合曲線的參數(shù)
通過公開數(shù)據(jù)集對第2節(jié)所描述的3個(gè)算法進(jìn)行實(shí)驗(yàn),算法有效性如下:
算法1應(yīng)用線性回歸求解節(jié)點(diǎn)優(yōu)化模型,擬合優(yōu)度平均達(dá)到0.999 453 91,其平均相對誤差為 0.043 718%,即通過算法所得最優(yōu)逼近數(shù)據(jù)逼近真實(shí)數(shù)據(jù)的程度達(dá)99.945 391%,平均相對誤差不足0.05%。
算法2和算法3應(yīng)用非線性回歸方法求解輪廓線參數(shù)優(yōu)化模型,平均相對誤差分別為0.125 313%和0.091 298%,平均相對誤差不及線性回歸優(yōu)良,但都僅在0.1%上下。
圖14、圖16和圖18分別直觀展示了算法1、算法2和算法3的最優(yōu)逼近效果,給出了原始數(shù)據(jù)和最優(yōu)逼近數(shù)據(jù)的比較,二者幾乎完全重合??梢?,本文提出的輪廓線參數(shù)計(jì)算的最優(yōu)逼近算法是有效的。
實(shí)驗(yàn)結(jié)果表明,本文提出的輪廓線數(shù)據(jù)校準(zhǔn)和參數(shù)計(jì)算算法能有效實(shí)現(xiàn)直線段、斜線段以及圓弧等工件輪廓線中常見的二維幾何尺寸的自動標(biāo)注。
本文設(shè)計(jì)的數(shù)據(jù)校準(zhǔn)和參數(shù)計(jì)算算法,首先應(yīng)用線性回歸或非線性回歸進(jìn)行局部最優(yōu)逼近,然后對局部最優(yōu)逼近結(jié)果進(jìn)行整體優(yōu)化微調(diào),獲得輪廓線參數(shù)的全局最優(yōu)逼近解。與現(xiàn)有結(jié)果相比,本文所得結(jié)果保證了輪廓線的光滑性。
最優(yōu)逼近算法容易推廣至輪廓線基本圖形中含有非圓弧類型[11]曲線的參數(shù)計(jì)算問題,并能應(yīng)用于輪廓線異常點(diǎn)的識別[12]。含有非圓弧類型輪廓線參數(shù)的標(biāo)注以及工件發(fā)生偏轉(zhuǎn)時(shí)輪廓線數(shù)據(jù)校準(zhǔn)和參數(shù)計(jì)算等問題將是后續(xù)研究的內(nèi)容。