羅建偉 ,李濟順,b
(河南科技大學(xué) a.機電工程學(xué)院;b.河南省機械設(shè)計及傳動系統(tǒng)重點實驗室,河南洛陽 471003)
精密和超精密加工技術(shù)是機械制造業(yè)最重要的組成部分之一,其不僅直接影響尖端技術(shù)和國防工業(yè)的發(fā)展,而且還影響著機械產(chǎn)品的精度和表面質(zhì)量以及產(chǎn)品的使用性能[1],而精密加工的精度主要是靠測量精度來保證,因此對工件的測量提出了更高精度要求。
圓柱度誤差是指零件的三維、立體空間的形狀誤差,它反映的是實際圓柱輪廓表面對其理想圓柱面的變動量,其測量過程比圓度誤差的測量要復(fù)雜得多。目前,圓柱度誤差的測量大多是在圓度儀上進行,實現(xiàn)圓柱度的精密測量最主要的方法是采用誤差分離技術(shù)[2],亦即:通過分離工件的多個截面的圓度誤差并重構(gòu)出實際被測圓柱輪廓,得出工件的圓柱度誤差值。
本文基于圓柱度誤差分離技術(shù),針對現(xiàn)有的圓度測量儀,設(shè)計了適用于圓柱度精密測量的測量系統(tǒng)。
利用圓度儀測量圓柱度時,將被測圓柱體工件沿垂直軸線分成數(shù)個等距截面放在回轉(zhuǎn)臺上,回轉(zhuǎn)臺帶動工件一起轉(zhuǎn)動;3個傳感器安裝在導(dǎo)軌支架上,并可沿導(dǎo)軌做上下的間歇移動,逐個測量等距截面,獲取含有混合誤差的原始信號(測量原理圖如圖1所示)。測量傳感器拾取的原始信號中不僅包含有被測工件的各個截面的圓度誤差、母線的直線度誤差,而且還含混入了導(dǎo)軌的直行運動誤差及回轉(zhuǎn)臺的回轉(zhuǎn)運動誤差。將上述誤差相分離,并依據(jù)最小二乘圓心進行重構(gòu)出實際圓柱面輪廓,然后采用國標規(guī)定的誤差評定方法得到被測圓柱面的圓柱度誤差。
圖1 三點法圓柱度誤差測量原理圖
圓柱度測量系統(tǒng)的整體結(jié)構(gòu)主要有 3部分構(gòu)成:機械測量主體、數(shù)據(jù)采集板及數(shù)據(jù)處理系統(tǒng)[3]。機械測量主體采用河南省機械設(shè)計及傳動系統(tǒng)重點實驗室的圓度儀。數(shù)據(jù)采集板與 PC機之間為RS232C串口連接,與圓柱度儀之間則靠I/O、A/D、D/A等關(guān)聯(lián),實現(xiàn)誤差信號的放大、濾波及模數(shù)轉(zhuǎn)換等功能。數(shù)據(jù)處理系統(tǒng)采用VC++作為開發(fā)平臺并調(diào)用OpenGL的相關(guān)函數(shù),實現(xiàn)了誤差分離、評定、結(jié)果數(shù)據(jù)顯示、圖形輸出等功能。
根據(jù)圓柱度的測量原理設(shè)計了以AT89C52 MCU為核心,以完成高精度的數(shù)據(jù)采集為目的的單片機系統(tǒng)。主要由MCUAT89C52、A/D芯片ADS1211、D/A芯片MAX531、I/O擴展芯片PCF8574、電源輸入及其DC-DC模塊、RS232接口以及看門狗X 25045、外擴RAM等幾部分組成,其系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。
單片機AT89C52含有定時/計數(shù)器T2,可利用T2的加減計數(shù)功能[4]。T2有兩個輸入端,T2(P1.0)為脈沖輸入端, T2EX(P1.1)為加減計數(shù)控制端。利用90°相差的信號可以實現(xiàn)加減計數(shù)。24位高精度A/D芯片ADS1211采用了低噪聲的輸入放大器,可以在轉(zhuǎn)換速度為10 Hz時獲得 23位的有效分辨率,借助于其內(nèi)部獨特的調(diào)制器加速操作模式,在轉(zhuǎn)換速度為1 kHz時仍可達到 20位的有效分辨率[5]。MAX232是MAXIM公司的一種RS-232接口芯片,利用MAX232實現(xiàn)AT89C52單片機與PC機的RS-232三線制串行通訊。
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
軟件系統(tǒng)是由數(shù)據(jù)采集、上下位機串行通信以及 PC機數(shù)據(jù)處理等功能模塊構(gòu)成。
數(shù)據(jù)采集模塊處于軟件系統(tǒng)的底層,并且固化到數(shù)據(jù)采集板的 MCU中。
系統(tǒng)運行時,數(shù)據(jù)采集模塊首先接收PC機傳輸?shù)母黜梾?shù)(采樣點數(shù)、通道數(shù)、采樣增益等)進行系統(tǒng)初始化;然后等待采樣開始信號來到時,采集板上的 AT89C52外部中斷INT1引腳響應(yīng)芯片ADS1211申請,開始采樣;在本系統(tǒng)中使用了3點誤差分離技術(shù),因而將采樣通道數(shù)設(shè)置為 3路,在采樣過程實行輪采的工作方式,保證每路都能正確合理的得到數(shù)據(jù);將采樣數(shù)據(jù)暫存于數(shù)據(jù)采集板上的外擴RAM中,等該截面采樣結(jié)束發(fā)送數(shù)據(jù)到PC機;最后,將傳感器移動到下一截面進行采樣。
傳感器的位置變動由圓度儀上的電機來控制,速度的大小由數(shù)據(jù)采集板的 D/A輸出電壓決定, D/A芯片采用MAX531。MAX531輸出的電壓可正可負,故電機可正轉(zhuǎn)亦可反轉(zhuǎn),使得傳感器可上可下運動,達到逐個截面測量的目的。
數(shù)據(jù)采集板與上位機的通信采用芯片 MAX232,利用它可以實現(xiàn)RS232三線制串行通訊。
串行通信協(xié)議[6]是上位機與下位機的共同通信約定,用以確保雙方正確的聯(lián)系。本系統(tǒng)的通信協(xié)議規(guī)定如下:單片機接收數(shù)據(jù)采用中斷方式,接收前先接收開始字符,告知單片機開始接收一幀,隨后接收數(shù)據(jù),數(shù)據(jù)接收后接收校驗和,最后接收結(jié)束字符。單片機將接收的數(shù)據(jù)幀進行解析進行相應(yīng)的操作,如果是連接命令,則將接收到數(shù)據(jù)幀回送給上位機;如果是采樣命令,則進入采樣的主程序,進行數(shù)據(jù)采集。返回給上位機是采樣得來的數(shù)據(jù),數(shù)據(jù)發(fā)送采樣查詢方式。
編寫上位機通信程序時,利用VC++提供的完備的Win32通訊 API[7]應(yīng)用程序接口函數(shù)與硬件接口,實現(xiàn)與單片機的通信。通信函數(shù)是中斷驅(qū)動的:發(fā)送數(shù)據(jù)時,先將其放入緩存區(qū),串口準備好后,就將其發(fā)送出去;傳來的數(shù)據(jù)迅速申請中斷,使Windows接收它并將其存入緩沖區(qū),以供讀取。
數(shù)據(jù)處理模塊主要是對采集到數(shù)據(jù)進行誤差分離,圓柱形貌的重構(gòu),誤差的評定以及數(shù)據(jù)、圖形的輸出等。
為獲取截面圓的圓度誤差序列,計算過程使用VC++和Matcom的數(shù)學(xué)庫[8]編寫程序來實現(xiàn),這樣便于大量數(shù)據(jù)的處理和矩陣的運算。得到圓度誤差序列,可進一步求出截面圓度誤差、最小二乘圓心以及純回轉(zhuǎn)運動誤差,最后求出被測量點在直角坐標系上的坐標值以及各截面的半徑差,其基本數(shù)據(jù)處理流程如圖3所示。
圖3 數(shù)據(jù)處理流程圖
得到了上面所提到的基本要素就可以利用OpenGL實現(xiàn)圓柱體的重構(gòu)。OpenGL是由許多繪制函數(shù)、顏色函數(shù)、光線函數(shù)和照相機函數(shù)等操作組成的函數(shù)庫,這些函數(shù)都是為了繪制出三維空間圖形而設(shè)計的?;贠penGL的良好的圖形繪制命令[9],程序就可以將截面圓上點的坐標,利用線段連接在一起就可以給出圓柱形貌的網(wǎng)格顯示方式,不過為了使圓柱的顯示更加逼真,通過利用NURBS曲面插值法,繪制出圓柱曲面。u向k階,ν向l階的NURBS曲面的函數(shù)形式[10]為:
其中:ωi,j為控制頂點的權(quán)因子;Pi,j為控制頂點網(wǎng)格;Ni,k(u)和Nj,l(ν)分別為u向k階,ν向l階B樣條基函數(shù)。
繪制NURBS曲面,必須根據(jù)圓柱上的數(shù)據(jù)點反求控制頂點網(wǎng)格,即需對曲面進行插值,考慮到圓柱上數(shù)據(jù)的特點,將權(quán)因子取為 1,采用三維空間插值。
要反算NURBS曲面控制點,需要進行兩次NURBS曲線控制點的反算,即曲面反算歸結(jié)為曲線反算。圓柱NURBS曲面插值的基本過程可以表述為:根據(jù)數(shù)據(jù)點構(gòu)造u向和ν向上的節(jié)點矢量,由節(jié)點矢量上相關(guān)的節(jié)點集計算 B樣條基函數(shù),最后,由兩次曲線反算控制頂點網(wǎng)格的方程組,聯(lián)立邊界條件,使方程個數(shù)與欲求頂點數(shù)相等,通過解方程組得到控制頂點。
將控制頂點存儲到三維浮點型數(shù)組中,就可以利用OpenGL繪圖函數(shù)繪制曲面。
繪制NURBS曲面的函數(shù)是:
將控制點的網(wǎng)格數(shù)組和節(jié)點數(shù)據(jù)、階數(shù)等參數(shù)代入即可進行三維顯示,可以得到渲染之后顯示的重構(gòu)圓柱體效果圖,如圖4所示。
圓柱體繪制后,可利用鼠標消息響應(yīng)函數(shù)實現(xiàn)觀察角度的調(diào)整以及圓柱體的放大縮小,因此需要實現(xiàn)圓柱的縮放和旋轉(zhuǎn)變換??s放變換可由OpenGL中模型變換函數(shù)glScale()來實現(xiàn),glScale()的3個參數(shù)表示模型分別沿3個軸向縮放的比例因子。旋轉(zhuǎn)變換可由OpenGL中模型變換函數(shù)glRotate()來實現(xiàn),它指定 1個從原點到鼠標左鍵所指向點的坐標(x,y,z)的向量,作為旋轉(zhuǎn)軸的中心軸,可以任意角度的旋轉(zhuǎn)。
在圓度儀上測量已精密磨削的圓柱體(40mm×400mm),選取20個等距截面,每個截面取 128個點;傳感器調(diào)整好位置固定在可沿垂直導(dǎo)軌移動的支架上。測量系統(tǒng)進行信號采集和數(shù)據(jù)的分析處理,得到各截面的圓度誤差、最小二乘圓的圓心坐標、半徑差以及重構(gòu)圓柱體形貌的數(shù)據(jù)等。計算出的圓柱度誤差為:23.545μm,達到了測量要求。
本文利用單片機和PC機的優(yōu)勢,設(shè)計了一套高精度的圓柱度測量系統(tǒng)。該系統(tǒng)采用誤差分離技術(shù)處理數(shù)據(jù)后使得測量結(jié)果更為精確,達到了精密測量的目的;通過OpenGL技術(shù)實現(xiàn)圓柱曲面重構(gòu),不但可以高質(zhì)量的顯示三維圓柱曲面,而且便于全方位地觀察圓柱的外觀形狀。
圖4 重構(gòu)出的圓柱體
[1] 賀大興,盛伯浩.超精密加工技術(shù)的發(fā)展現(xiàn)狀與趨勢[J].新技術(shù)新工藝,2006(5):2-3.
[2] 雷賢卿,李 言,李濟順,等.圓柱度的三點法測量技術(shù)[J].儀器儀表學(xué)報,2007,28(5):944-951.
[3] 朱文娟,徐春廣,周世圓.深孔內(nèi)輪廓尺寸光學(xué)測量系統(tǒng)[J].機械工程學(xué)報,2006,42(5):201-204.
[4] 宋清昆,蔣繼成.基于AT89C 52單片機CAN總線節(jié)點的設(shè)計[J].自動化技術(shù)與應(yīng)用,2009,28(5):55-58.
[5] 李忠健,姜長泓,馮 剛.ADS1211在熱量表中實現(xiàn)的高精度溫度測量[J].自動化技術(shù)與應(yīng)用,2007,26(6):96-97.
[6] 徐會杰.數(shù)據(jù)采集系統(tǒng)中串行通信協(xié)議的設(shè)計與實現(xiàn)[J].河南科技大學(xué)學(xué)報:自然科學(xué)版,2008,29(5):30-32.
[7] 趙彥鋒,李 鋼.基于Win32 API的多線程串行通信程序設(shè)計[J].現(xiàn)代電子技術(shù),2005,28(19):110-112.
[8] 張 晶.基于MATCOM的VC++與MATLAB混合編程[J].自動化技術(shù)與應(yīng)用,2007,26(5):59-61.
[9] 吳銀霞,陳雷霆,何明耘.OpenGL中基于粒子系統(tǒng)雷達掃描實時模擬[J].計算機應(yīng)用,2009,5(1):258-260.
[10] 王明炎,賈傳熒.船體非均勻有理B樣條曲面造型與OpenGL顯示[J].大連海事大學(xué)學(xué)報,2005,32(1):23-25.