吳 媛,楊富超
(河南機(jī)電高等專科學(xué)校1.計(jì)算機(jī)科學(xué)與技術(shù)系;2.機(jī)電工程系,河南 新鄉(xiāng) 453000)
隨著我國電力工業(yè)的快速發(fā)展,汽輪機(jī)等發(fā)電設(shè)備的需求不斷增加,葉片作為汽輪機(jī)等發(fā)電裝備的主要工作部件,不僅數(shù)量多,而且長期工作在高溫、高壓、濕蒸汽大氣流循環(huán)的惡劣環(huán)境下,其葉片加工表面質(zhì)量的好壞直接影響到汽輪機(jī)葉片表面的腐蝕以及應(yīng)變情況。因葉片型面屬于空間自由曲面,造型復(fù)雜,描述參數(shù)眾多,葉片的形狀誤差直接影響著汽輪機(jī)的能量轉(zhuǎn)換效率。因此針對形狀為空間自由曲面的葉片型面的檢測較為困難[1]。葉片型面檢測難點(diǎn)具體表現(xiàn)為:(1)測量精度要求高,通常要達(dá)到10um甚至1um;(2)測量效率要求高,葉片是批量生產(chǎn)零件,數(shù)目成千上萬,要求提高測量速度,實(shí)現(xiàn)批量測量等。高精度的檢測必須有高精度的檢測系統(tǒng)來實(shí)現(xiàn),國內(nèi)針對葉片測量的專用測量系統(tǒng)不多且精度不高,大部分處在實(shí)驗(yàn)室階段,應(yīng)用到測量現(xiàn)場的更少;國外針對葉片測量的裝置精度較高,但價(jià)格昂貴且核心技術(shù)封鎖。設(shè)計(jì)適合高精度、高效率的葉片型面檢測系統(tǒng)是實(shí)現(xiàn)葉片型面檢測的關(guān)鍵技術(shù)點(diǎn)之一。
本文基于模塊化設(shè)計(jì),利用面向?qū)ο笏枷?,結(jié)合 OpenGL強(qiáng)大的三維圖形處理能力[2][3],開發(fā)葉片型面測量系統(tǒng)仿真軟件,實(shí)現(xiàn)測量系統(tǒng)的運(yùn)動控制、數(shù)據(jù)采集與處理、檢測結(jié)果三維顯示等功能。
汽輪機(jī)葉片型面測量仿真系統(tǒng)的硬件系統(tǒng)主要包括機(jī)械系統(tǒng)與控制系統(tǒng)兩個(gè)方面。其中高精度的機(jī)械系統(tǒng)主要由X軸、Y軸、Z軸、R軸和工作臺面等組成;控制系統(tǒng)主要由運(yùn)動控制卡、接口板、驅(qū)動器、步進(jìn)電機(jī)等組成。軟件以硬件為基礎(chǔ),面向葉片的測量過程,具有以下特點(diǎn):(1)葉片型號眾多,制造不同階段的檢測參數(shù)不同;(2)測量結(jié)果因用戶需求而異;(3)需要專用的參數(shù)提取算法;(4)幫助信息需多樣化等。模塊化設(shè)計(jì)提高了軟件的開發(fā)效率和擴(kuò)展性,根據(jù)葉片型面測量需求,軟件主要有六個(gè)模塊(圖1):應(yīng)用程序框架,測量控制模塊,輸入輸出模塊,數(shù)據(jù)預(yù)處理模塊,參數(shù)提取、評價(jià)模塊,圖形顯示模塊。應(yīng)用程序框架是軟件系統(tǒng)的主控模塊,負(fù)責(zé)各個(gè)功能模塊的協(xié)調(diào),文檔視圖的組織以及用戶的交互等。
圖1 軟件系統(tǒng)主要模塊
數(shù)據(jù)測量模塊完成測量過程中各軸的運(yùn)動以及數(shù)據(jù)采集,包括反饋系統(tǒng)的調(diào)用,保證各軸的運(yùn)動精度如圖2。其中主要包括運(yùn)動系統(tǒng)的閉環(huán)反饋控制,型面測量、基準(zhǔn)測量,路徑規(guī)劃模塊的實(shí)現(xiàn)等。運(yùn)動控制模塊通過運(yùn)動控制卡控制運(yùn)動電氣系統(tǒng),實(shí)現(xiàn)機(jī)械系統(tǒng)準(zhǔn)確的定位。其中還有系統(tǒng)標(biāo)定的控制、測量誤差的補(bǔ)償?shù)取P兔鏈y量主要是利用激光測頭進(jìn)行葉片型面指定位置的數(shù)據(jù)采集。基準(zhǔn)測量主要控制接觸式電感測頭實(shí)現(xiàn)葉片型面設(shè)計(jì)加工基準(zhǔn)的測量。路徑規(guī)劃模塊實(shí)現(xiàn)運(yùn)動系統(tǒng)精確地按照軟件算法規(guī)劃實(shí)現(xiàn)的路徑點(diǎn)進(jìn)行運(yùn)動,運(yùn)動過程中能控制系統(tǒng)的干涉。
圖2 測量控制模塊
輸入輸出模塊負(fù)責(zé)文件的輸入、輸出操作,如圖3。輸入的文件類型有葉片信息、理論葉片型面數(shù)據(jù)等,同時(shí)還包括各文件數(shù)據(jù)之間的轉(zhuǎn)換等。數(shù)據(jù)輸出是對測量后以及經(jīng)過處理的葉片型面數(shù)據(jù)進(jìn)行輸出,還有各個(gè)測量數(shù)據(jù)評價(jià)的結(jié)果等。同時(shí)還要保證數(shù)據(jù)格式與各通用元件的接口問題,對數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換后輸出IGES格式文件以及STL格式文件等。各種文件的輸入輸出都由相應(yīng)的文件處理子模塊完成。
圖3 輸入輸出模塊
數(shù)據(jù)預(yù)處理模塊是針對葉片型面測量完成的數(shù)據(jù),進(jìn)行數(shù)據(jù)預(yù)處理,如圖4所示。主要有數(shù)據(jù)濾波、數(shù)據(jù)修補(bǔ)、坐標(biāo)平移模塊。數(shù)據(jù)濾波包括高斯濾波、平滑濾波、中值濾波模式,實(shí)現(xiàn)去除壞點(diǎn)和數(shù)據(jù)平滑。針對不同數(shù)據(jù)特征,采用相應(yīng)的濾波方式達(dá)到最佳處理效果。數(shù)據(jù)修補(bǔ)模塊主要是針對數(shù)據(jù)缺失部分進(jìn)行修復(fù),保證測量數(shù)據(jù)的完整與精確性。為了以后增加數(shù)據(jù)處理算法,這里預(yù)留模塊接口,以利于程序的擴(kuò)展。
圖4 數(shù)據(jù)預(yù)處理模塊
如圖5所示,主要是實(shí)現(xiàn)葉片型面參數(shù)的提取與評價(jià),其中提取參數(shù)主要包括葉片截面線弦長、葉厚、前后緣半徑等;測量結(jié)果評價(jià)是對參數(shù)結(jié)果進(jìn)行與理論設(shè)計(jì)參數(shù)進(jìn)行對比考察葉片是否合格。此模塊同樣預(yù)留擴(kuò)展接口,針對各種葉片參數(shù)提取與評價(jià)需不斷完善、更新。預(yù)留模塊接口也體現(xiàn)了模塊化設(shè)計(jì)的優(yōu)勢。
圖5 參數(shù)提取評價(jià)模塊
圖形顯示模塊實(shí)現(xiàn)整個(gè)系統(tǒng)的數(shù)據(jù)顯示,是整個(gè)測量系統(tǒng)圖形處理的環(huán)境支撐,如圖6所示,包括接口模塊,場景操作模塊,實(shí)體顯示模塊,顯示控制模塊四部分。顯示接口模塊指OpenGL與軟件編程環(huán)境的連接,實(shí)現(xiàn)葉片型面測量系統(tǒng)良好的人機(jī)交互等圖形界面。場景操作模塊包括OpenGL圖形顯示環(huán)境的各種參數(shù)設(shè)置功能,如調(diào)整繪圖窗口,設(shè)置前后景、視圖顯示模式,圖形觀測等。實(shí)體顯示模塊實(shí)現(xiàn)點(diǎn)、線及曲面顯示。顯示控制模塊主要實(shí)現(xiàn)各種圖形操作管理,對用戶進(jìn)行的圖形操作進(jìn)行響應(yīng)等。
圖6 圖形顯示模塊
研究的葉片測量型面為自由曲線、曲面,基于OpenGL可以更好地顯示測量、評價(jià)結(jié)果的三維圖形,同時(shí)使測量操作、參數(shù)提取更簡便且直觀、界面更友好。
OpenGL(Open Graphics Library,開放性圖形庫)是SGI(Silicon Graphics Incorporation)公司開發(fā)的、功能強(qiáng)大的三維計(jì)算機(jī)圖形軟件接口。OpenGL作為一個(gè)性能優(yōu)越的圖形應(yīng)用程序設(shè)計(jì)界面(API),具有廣泛的可移植性,它獨(dú)立于硬件系統(tǒng)、操作系統(tǒng)和窗口系統(tǒng)[4]。OpenGL事實(shí)上已經(jīng)成為高性能的圖形和交互視景處理的工業(yè)標(biāo)準(zhǔn),許多大型的三維軟件,如SoftImage3D、3DStudio Max、Pro/Engineer、UGII、SolidWorks、SolidEdge等,都是以O(shè)penGL作為圖形顯示基礎(chǔ)。一個(gè)完整的OpenGL圖形處理系統(tǒng)結(jié)構(gòu)如圖7所示,有:圖形硬件層,操作系統(tǒng)層,窗口系統(tǒng)層,OpenGL層,應(yīng)用軟件層。OpenGL由幾百個(gè)函數(shù)組成,用于實(shí)現(xiàn)圖形硬件提供的各種功能。
圖7 OpenGL運(yùn)行平臺和結(jié)構(gòu)
由于OpenGL的應(yīng)用與平臺無關(guān),在VC++6.0開發(fā)環(huán)境下應(yīng)用OpenGL需要進(jìn)行OpenGL應(yīng)用的接口改造與函數(shù)重構(gòu)等。本文基于MFC應(yīng)用OpenGL主要進(jìn)行:
1)添加OpenGL庫并增加OpenGL頭文件
2)修改窗口設(shè)置為OpenGL能夠支持的風(fēng)格
3)修改或重構(gòu)繪圖相關(guān)函數(shù)。
軟件系統(tǒng)主要實(shí)現(xiàn)汽輪機(jī)葉片及葉片類零件的型面檢測,所有仿真系統(tǒng)開發(fā)都以型面測量為目的。軟件工作過程示意圖如圖8。
圖8 軟件工作過程示意圖
1)系統(tǒng)初始化。主要是設(shè)置測量儀硬件參數(shù),如儀器零點(diǎn)、當(dāng)前位置參數(shù)、測頭狀態(tài)等,為測量下一步進(jìn)行準(zhǔn)備所需信息等;同時(shí)根據(jù)測量目的不同設(shè)置測量參數(shù),如讀入待測葉片的理論數(shù)據(jù),設(shè)置測量路徑等。
2)測量儀參數(shù)校核。為了保證測得數(shù)據(jù)的準(zhǔn)確性,一般隔規(guī)定的時(shí)間,對儀器誤差進(jìn)行修正與補(bǔ)償。包括幾何誤差校核、測頭校核和回轉(zhuǎn)軸校核等。
3)基準(zhǔn)測量。針對所要測量葉片的裝卡方式,對設(shè)計(jì)基準(zhǔn)進(jìn)行檢測。這里采用接觸式測頭進(jìn)行。測量數(shù)據(jù)保存以進(jìn)行下一步工件坐標(biāo)系的建立。
4)工件坐標(biāo)系。利用葉片基準(zhǔn)測量的結(jié)果,經(jīng)過坐標(biāo)變換把測量儀坐標(biāo)的檢測的儀器坐標(biāo)系轉(zhuǎn)換到葉片工件本身坐標(biāo)系,使測量結(jié)果與工件坐標(biāo)系一致。軟件根據(jù)葉片的基準(zhǔn)(葉根或葉冠)位置及基準(zhǔn)裝卡位置進(jìn)行坐標(biāo)系轉(zhuǎn)換。
5)葉片數(shù)據(jù)測量。根據(jù)葉片型面測量的特點(diǎn)主要是指葉片型線數(shù)據(jù)的測量,根據(jù)型線的高度定位葉身不同截線。一般測量截面線根據(jù)理論截面選定,在反求測量模式下需要根據(jù)設(shè)定檢測參數(shù)測量,對測量數(shù)據(jù)按照需要格式進(jìn)行保存。
6)數(shù)據(jù)預(yù)處理和誤差分析。針對檢測要求對測量數(shù)據(jù)進(jìn)行處理,濾波、修復(fù)等。誤差分析即是將實(shí)測葉片數(shù)據(jù)與讀入的理論數(shù)據(jù)比較得到各個(gè)誤差項(xiàng)。
7)結(jié)果輸出。將葉片測量結(jié)果等輸出,打印、顯示、保存為文件等。
在葉片型面測量流程中,校核測量儀參數(shù)、建立工件坐標(biāo)系以及測量葉片數(shù)據(jù)的過程都需要驅(qū)動硬件;另外各步驟執(zhí)行的結(jié)果要進(jìn)行實(shí)時(shí)圖形顯示,以便于用戶觀察和操作。
基于Windows平臺利用Visual C++編程工具[5]、OpenGL強(qiáng)大的圖形處理功能完成葉片型面測量軟件。測量仿真系統(tǒng)主界面如圖9。
圖9 葉片型面測量仿真軟件系統(tǒng)主界面
如圖10所示,設(shè)置四個(gè)軸運(yùn)動的加速度和速度值。通過設(shè)置運(yùn)動量(step),可實(shí)現(xiàn)四個(gè)軸分別在正負(fù)方向的運(yùn)動。
圖10 運(yùn)動控制及參數(shù)設(shè)置界面
如圖11所示,實(shí)現(xiàn)葉片基準(zhǔn)的測量,根據(jù)基準(zhǔn)測量結(jié)果實(shí)現(xiàn)工件坐標(biāo)系的建立。
圖11 基準(zhǔn)測量與工件坐標(biāo)系建立
根據(jù)葉片型面數(shù)據(jù)可進(jìn)行數(shù)據(jù)的預(yù)處理工作,坐標(biāo)平移、數(shù)據(jù)濾波及數(shù)據(jù)修補(bǔ)等。如圖12所示,數(shù)據(jù)進(jìn)行坐標(biāo)平移界面。
圖12 數(shù)據(jù)坐標(biāo)平移
如圖13所示,數(shù)據(jù)平滑濾波界面,在對原始測量數(shù)據(jù)進(jìn)行平滑濾波的基礎(chǔ)上,可以進(jìn)行點(diǎn)云數(shù)據(jù)的修補(bǔ)。
圖13 點(diǎn)云數(shù)據(jù)平滑濾波
如圖14所示,測量截面線數(shù)據(jù)修補(bǔ)界面。
圖14 點(diǎn)云數(shù)據(jù)修補(bǔ)
為實(shí)現(xiàn)準(zhǔn)確高效的汽輪機(jī)葉片型面測量,在葉片型面測量系統(tǒng)硬件的基礎(chǔ)上,利用Visual C++編程工具,結(jié)合OpenGL強(qiáng)大的圖形處理功能,基于Windows平臺自行設(shè)計(jì)并實(shí)現(xiàn)了汽輪機(jī)葉片型面測量仿真軟件系統(tǒng)。對軟件系統(tǒng)的模塊劃分、模塊的層次結(jié)構(gòu)及各模塊的主要功能進(jìn)行了說明,并給出了軟件主要模塊的運(yùn)行實(shí)例。
[1]陳非凡,強(qiáng)錫富.汽輪機(jī)葉片葉型測量綜述[J].航空計(jì)測技術(shù),1995,15(3):3-4.
[2]王清輝,王彪.Visual C++CAD應(yīng)用程序開發(fā)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.
[3]Davis Chapman.學(xué)用 Visual C++6.0[M].駱長樂,譯.北京:清華大學(xué)出版社,1999.
[4]許承東.計(jì)算機(jī)圖形技術(shù)(第2版)[M].北京:北京大學(xué)出版社,2011.
[5]喬林,費(fèi)廣正.OpenGL程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2000.