周陽華,宋威震,何 勇
(東華大學 機械工程學院,上海 201620)
目前非圓齒輪最常用的加工方法是數(shù)控滾齒加工和插齒加工,國內(nèi)外研究人員在這方面已經(jīng)進行了多年的研究,通過建立非圓齒輪滾齒聯(lián)動數(shù)學模型[1,2]和插齒聯(lián)動數(shù)學模型[3~5],研究不同的插補算法,可以得到不同的加工方案[6,7],但從得到的包絡軌跡中提取非圓齒輪齒廓線一直以來都是非圓齒輪數(shù)控加工領域的一大難點,但齒廓線的提取卻是包絡法非圓齒輪設計中至關(guān)重要的一步,所以必須解決這一問題。
研究人員在這方面進行了多年的研究,李建剛、吳序堂[8,9]等提出了一種數(shù)值算法將非圓齒輪齒廓的計算過程轉(zhuǎn)化成了求非圓齒輪節(jié)曲線的法向等距線和插齒刀齒廓的交點過程;武傳宇等[10]通過對仿真刀具加工中齒廓形成過程的分析,提出了一種基于齒廓特征點的齒廓描述方法;方明輝、李革等[11]闡述了精確計算一對外凸節(jié)曲線非圓齒輪副齒廓數(shù)據(jù)的數(shù)值算法;黃鵬、李革等[12]提出基于節(jié)點切線平行線的非圓齒輪齒廓特征點求法;史勇、王生澤[13]提出了一種簡便高效的齒廓數(shù)值獲取方法;李波濤等[14]根據(jù)Jarvis方法和非圓齒輪齒廓特征,提出了一種基于Jarvis March的非圓齒輪齒廓數(shù)值算法。
以上方法固然可行,但都是基于數(shù)值算法,比較復雜,計算量極大,對計算機的性能提出了很高的要求,運算時間少則幾十分鐘多則數(shù)小時而且不易掌握;林梅彬[16]提出了一種非圓齒輪齒廓離散點快速提取方法,給本文一定啟發(fā)。
本文采用圖像處理的方法解決非圓齒輪齒廓數(shù)據(jù)點的提取問題,即首先將得到的包絡軌跡線中的數(shù)據(jù)點全部轉(zhuǎn)化成圖像處理中的像素點,然后通過提取像素點來得到非圓齒輪齒廓線,最后通過放大倍數(shù)還原為原始的齒廓數(shù)據(jù)點。
刀具沿非圓齒輪節(jié)曲線做純滾動一周時就可以得到完整的包絡軌跡:
其中X1O1Y1為毛坯固定坐標系,X2O2Y2為刀具運動坐標系:
式(1)和式(2)中r1為插齒刀節(jié)圓半徑,r為橢圓極徑,a為長半軸,e為橢圓偏心率,n為橢圓的階數(shù),在插齒刀初始位置時,極角φ為0。
由圖中幾何關(guān)系可知:
式中:x,y和x1,y1分別為為極徑和刀具中心在毛坯固定坐標系X1O1Y1中對應的坐標值。
最終得到包絡軌跡線的坐標值:
式中,x2,y2是刀具在X2O2Y2刀具運動坐標系中的坐標,X,Y為最終軌跡坐標。
圖1 非圓齒輪加工聯(lián)動數(shù)學模型
由以上原理可以獲得非圓齒輪的包絡軌跡圖,圖2(a)是一個z=30,m=5,e=0.05的三階橢圓齒輪,圖2(b)是一個z=40,m=5,e=0.05的四階橢圓齒輪的包絡軌跡圖像:
圖2 非圓齒輪包絡圖像
通過聯(lián)動數(shù)學模型的建立及虛擬加工可獲得仿真圖像,得到圖像后根據(jù)需要達到的精度要求設置每個單位長度像素點的數(shù)量(下文將對精度做出具體分析),然后通過MATLAB讀取圖片,進行二值化處理,二值化后的圖像如圖3所示,經(jīng)過二值化處理后整張圖片就是由0和1這兩種元素構(gòu)成,白色部分全為1,黑色部分全為0,如圖4為邊界放大圖。
圖3 二值化圖像
圖4 局部放大邊界像素點圖
此邊界跟蹤算法包含三個基本步驟:
首先確定二值化圖像中像素點矩陣的大小rows×columns,再找出這個像素點矩陣最中心的像素點(rows/2,columns/2)注意對這兩個值進行取整,然后由中心點開始向下遍歷判斷找到第一個數(shù)值為0的黑色像素點記為(x0,y0),這就是邊界跟蹤的起始點。
即從起始邊界點開始正確跟蹤到下一個邊界像素點,直到提取出目標的全部邊界像素點:以(x0,y0)為中心時,其周圍共有8個與其相連的像素點,坐標如圖5所示。
圖5 起始像素點和周圍像素點的坐標關(guān)系圖
然后從中點位置(x0,y0)出發(fā),按下圖方式依次判斷周圍各點數(shù)值,找到第一個數(shù)值為0的點時停止,將這個點的坐標記為(x1,y1),圖6為第一次搜索像素點的方向:
圖6 第一次搜索像素點的方向
按以上操作得到了(x1,y1)坐標,黑點(x1,y1)與中心黑點(x0,y0)的位置關(guān)系共有8種情況,可以分為以下四大類:
第一類(x1,y1)位于(x0,y0)右側(cè),即x1>x0,圖7為第一類點與中心點的位置關(guān)系圖:
圖7 第一類點與中心點的位置關(guān)系
第二類(x1,y1)位于(x0,y0)左側(cè),即x1<x0,圖8為第二類點與中心點的位置關(guān)系圖:
圖8 第二類點與中心點的位置關(guān)系
第三類(x1,y1)(x0,y0)在同一豎線上,且位于(x0,y0)下方,即x1=x0,且y1<y0,圖9為第三類點與中心點的位置關(guān)系圖:
圖9 第三類點與中心點的位置關(guān)系
第四類(x1,y1)(x0,y0)在同一豎線上,且位于(x0,y0)上方,即x1=x0,且y1>y0,圖10為第四類點與中心點的位置關(guān)系圖:
圖10 第四類點與中心點的位置關(guān)系
再根據(jù)(x1,y1)位于(x0,y0)的四種不同位置關(guān)系分別進行圖11中四種不同的搜尋方式:
如果x1>x0,即第一類位置關(guān)系,將(x1,y1)記錄下來,然后將(x1,y1)坐標值分別賦值給(x0,y0),再按照圖11(a)中“上右”的搜索方式繼續(xù)搜索下一個(x1,y1);
同理,第二類點使用圖11(b)中“下左”的搜索方式;第三類點使用圖11(c)中“右下”的搜索方式;第四類點使用圖11(d)中“左上”的搜索方式。
圖11 四種不同的搜尋方式
循環(huán)執(zhí)行3.2節(jié)操作,直到再一次搜尋到最初的起始點結(jié)束循環(huán),說明整個邊界像素點跟蹤完畢。圖12為邊界跟蹤算法流程圖:
圖12 邊界跟蹤算法流程圖
實例:通過聯(lián)動模型得到一個m=5,z=40,n=4,e=0.05的橢圓齒輪包絡圖,然后通過上面方法就能提取到完整的齒廓線如圖13所示。
圖13 包絡軌跡及提取廓線圖
且將圖像中的數(shù)據(jù)點導入到三維軟件可以直接實現(xiàn)三維建模,也可以用于線切割加工該非圓齒輪:
圖14 導入三維軟件的數(shù)據(jù)及得到的模型
由于本方法提取的是圖像中的像素點,而橫縱軸上像素點的數(shù)目都是整數(shù),如果直接將提取到的像素的位置作為橫縱坐標輸出,本質(zhì)上是將圖像進行了放大,而且圖像輸出時設置的像素點越多圖像放大的倍數(shù)就越大,所以第一步要確定圖像相對于原圖像放大的倍數(shù),將圖像還原成原標準尺寸數(shù)據(jù)。
假設上圖15是導出的圖像,圖像的實際長度為l1,實際寬度為l2,長度方向有n1個像素點,寬度方向有n2個像素點,(X,Y)為像素點位置坐標,設所提取像素點的實際坐標為(x,y),可以得到如下關(guān)系式:
圖15 圖片實際尺寸與像素點坐標關(guān)系圖
故將提取到的輪廓像素點經(jīng)過式(6)進行轉(zhuǎn)換就可以得到齒廓的實際廓線數(shù)據(jù)點。
這種廓線提取方法其實不僅限于提取非圓齒輪齒廓曲線,對于任何中空的邊界連續(xù)的圖像都可以進行數(shù)據(jù)點的提取,這里使用一個案例對這種圖像處理法的精度進行分析:
如圖16(a)所示是一個邊長為30mm的正方形中心挖去了一個半徑為10mm的圓,圖16(b)是通過上述廓線提取方法得到的圓的內(nèi)側(cè)邊界廓線,圖17是通過改變輸出圖像的單位長度像素點數(shù)量,再分別計算出所提取的數(shù)據(jù)點到圓心的距離,圖中橫坐標均為提取到的數(shù)據(jù)點數(shù)目,縱坐標均為數(shù)據(jù)點到圓心的實際距離(即計算的半徑值):
圖16 案例原圖及提取到的邊界廓線
圖17 單位長度像素點數(shù)量與半徑的關(guān)系
由圖17中的數(shù)據(jù)可以提煉得到表1:
表1 設置不同像素點時圖片的變化及數(shù)據(jù)精度
由表1可以得到如下結(jié)論:
單位長度設置的像素點的數(shù)目越多,提取到的像素點數(shù)目就會越多,數(shù)據(jù)點的波動范圍就會越小,得到的數(shù)據(jù)點越接近真實值,理論上只要無限增加像素點的數(shù)目得到的數(shù)據(jù)點就會越接近真實值,但是設置像素點的數(shù)目越多導出的圖片也會越大,會增加圖片讀取和廓線提取的時間,所以并不是像素點設置得越多越好,只要能達到相應的建?;蚣庸ぶ圃炀纫蠹纯?。
本文通過非圓齒輪加工聯(lián)動數(shù)學模型,獲得非圓齒輪包絡圖,對得到的圖像進行二值化處理,然后使用邊界跟蹤算法對非圓齒輪邊界像素點進行提取,再將像素點根據(jù)放大倍數(shù)關(guān)系轉(zhuǎn)化為齒廓數(shù)據(jù)點,并對所得數(shù)據(jù)點的精度進行討論,可知:
1)這種方法無需借助復雜的齒廓嚙合方程,即可以不用復雜的數(shù)值運算就可以完成非圓齒輪廓線的求解,可應用與各種復雜非圓齒輪廓線的提取;
2)通過對方法的精度進行分析可知,這種方法獲取的數(shù)據(jù)點可以滿足制造、三維建模等精度要求;
3)該方法運算速度快、穩(wěn)定性好可作為CAD/CAM軟件開發(fā)的底層原理。