(1.東北大學(xué)機(jī)械工程與自動(dòng)化學(xué)院,沈陽 110819; 2.東北大學(xué)航空動(dòng)力裝備振動(dòng)及控制教育部重點(diǎn)實(shí)驗(yàn)室,沈陽 110819)
離心葉輪是航空發(fā)動(dòng)機(jī)壓氣機(jī)的關(guān)鍵零件之一,是一類公認(rèn)復(fù)雜的難加工零件[1]。隨著加工制造業(yè)對(duì)葉輪數(shù)控加工編程的高效性和規(guī)范性要求越來越高,利用現(xiàn)有的UG CAM 軟件進(jìn)行數(shù)控加工編程已經(jīng)不能滿足制造業(yè)的需要。究其根源,有以下3 種原因:一是對(duì)技術(shù)人員的經(jīng)驗(yàn)要求較高;二是CAD模型的加工幾何信息不能自動(dòng)傳遞給CAM模塊,仍需人工手動(dòng)獲取;三是數(shù)控加工編程不規(guī)范,不同的編程人員給出的方案不盡相同。
為此,國(guó)內(nèi)外許多專家學(xué)者都在尋求高效的數(shù)控編程機(jī)制[2],并開發(fā)了許多自動(dòng)編程系統(tǒng)。沈陽航空航天大學(xué)開發(fā)了基于UG 特征識(shí)別的孔槽類零件自動(dòng)編程系統(tǒng)[3]。華中科技大學(xué)基于加工特征開發(fā)了數(shù)控輔助編程系統(tǒng)[4]。南京航空航天大學(xué)開發(fā)了基于機(jī)匣加工特征的航空發(fā)動(dòng)機(jī)結(jié)構(gòu)件數(shù)控自動(dòng)編程系統(tǒng)[5]。航空工業(yè)與南航共同開發(fā)了CATIA 自動(dòng)編程系統(tǒng)[6]。美國(guó)堪薩斯大學(xué)的Hou 等[7]提出基于UG工藝規(guī)劃模塊的快速編程方法,從STEP 文件中提取特征信息,利用UG CAM 生成數(shù)控代碼。
以上研究側(cè)重于從特征識(shí)別方面來提高編程效率,忽視了從創(chuàng)建毛坯、切削參數(shù)的自動(dòng)優(yōu)化設(shè)置等方面來縮短編程時(shí)間。對(duì)此,本文綜合考慮影響編程效率的各方面因素,開發(fā)了一套適用于離心葉輪的自動(dòng)編程原型系統(tǒng),達(dá)到了自動(dòng)編程的目的。
圖1 離心葉輪結(jié)構(gòu)圖Fig.1 Structural diagram of centrifugal impeller
航空發(fā)動(dòng)機(jī)壓氣機(jī)離心葉輪主要有主葉片、分流葉片、輪轂和孔面等結(jié)構(gòu)組成。如圖1所示,主葉片和分流葉片又包含了包覆面、壁面和葉根圓角面。利用UG CAM的mill_muiti_blade模塊編程時(shí),需要編程人員手動(dòng)選擇圖1中序號(hào)為3~9所對(duì)應(yīng)的幾何特征。除此之外,在UG 平面加工和鉆孔的模板中,還必須人工指定孔面、平面、和切削區(qū)域等幾何特征。此過程需要大量的人機(jī)交互,選擇對(duì)象非常繁瑣,極易出錯(cuò)。因此需要設(shè)計(jì)算法讓計(jì)算機(jī)對(duì)其進(jìn)行自動(dòng)識(shí)別。
特征識(shí)別是指從CAD模型中將具有工程意義的幾何形狀自動(dòng)提取的過程[8]。目前國(guó)內(nèi)外相關(guān)學(xué)者普遍采用基于邊界的特征識(shí)別算法[9]。該算法根據(jù)基于屬性鄰接圖和基于規(guī)則分為兩大類[10]。屬性鄰接圖的識(shí)別算法需要定義特征庫,算法比較復(fù)雜,且適用于識(shí)別結(jié)構(gòu)不同的零件。由于壓氣機(jī)離心葉輪類零件結(jié)構(gòu)比較單一和固定,所以本文根據(jù)葉輪的結(jié)構(gòu)特點(diǎn)編寫了基于規(guī)則的特征識(shí)別算法。
在UG NX 中,利用UG 二次開發(fā)函數(shù)UF_BREP_ask_topology()可以獲得模型邊界的拓?fù)湫畔?。通過拓?fù)湫畔⒖梢垣@得三維模型任意面、邊、點(diǎn)的信息。這些信息的獲取是特征識(shí)別的基礎(chǔ)。
編寫的特征識(shí)別算法主要分為兩個(gè)階段:第1個(gè)階段是對(duì)葉輪的平面、孔面、所有主葉片和分流葉片特征及其子特征的識(shí)別;第2個(gè)階段主要是識(shí)別UG加工模塊所需的一組相鄰葉片特征。
圖2 第1階段特征識(shí)別算法流程圖Fig.2 Flow chart of the first stage feature recognition algorithm
第1個(gè)階段算法流程如圖2所示。其算法原理是通過拓?fù)湫畔@取葉輪所有面的NX 標(biāo)識(shí)。循環(huán)遍歷這些面并計(jì)算其面積,調(diào)用二次開發(fā)函數(shù)直接判斷出孔特征和平面特征。由于每組葉片特征及其子特征的面積完全相同,據(jù)此,可以將大小相等的面分成一組,假設(shè)共分成了n 組。計(jì)算每組中的成員個(gè)數(shù),得到成員個(gè)數(shù)的最大值m 即為葉片組數(shù)。首先循環(huán)遍歷判斷成員為m的面與成員為1的面的位置關(guān)系,如果兩者相切,則可以判斷輪轂面和葉根圓角面。然后循環(huán)判斷葉根圓角面與成員為m的面是否相切,可以識(shí)別出葉片壁面。同理,可以完成對(duì)包覆面的識(shí)別。
第2 階段算法流程如圖3所示。其算法原理是計(jì)算任意兩個(gè)包覆面的距離,由于距離最短的兩個(gè)包覆面必定位于一組相鄰的葉片上。據(jù)此可以識(shí)別得到兩個(gè)包覆面,根據(jù)主葉片與分流葉片的包覆面積不同,可以對(duì)兩者進(jìn)行具體區(qū)分。最后通過判斷與包覆相鄰的面可以得到葉片壁面。同理可以識(shí)別出葉根圓角。
圖3 第2階段特征識(shí)別算法流程圖Fig.3 Flow chart of second stage feature recognition algorithm
輔助數(shù)控加工編程工具主要包括特征尺寸的自動(dòng)分析、毛坯的自動(dòng)創(chuàng)建、加工路線自動(dòng)擬定和加工準(zhǔn)備自動(dòng)完成等功能。通過開發(fā)輔助編程工具,可以讓計(jì)算機(jī)代替數(shù)控編程人員完成一些繁瑣的工作,從而大大提高編程效率。
圖4為輔助數(shù)控編程工具的開發(fā)算法流程。其具體流程如下:(1)特征識(shí)別得到任意加工特征的NX 標(biāo)識(shí);(2)根據(jù)特征標(biāo)識(shí)調(diào)用二次開發(fā)函數(shù),并依次測(cè)量出葉輪中心孔直徑、孔深度、流道最小寬度、葉根圓角半徑等尺寸,這些幾何尺寸是選取加工刀具的依據(jù);(3)根據(jù)用戶輸入的毛坯余量大小,通過二次開發(fā)函數(shù)抽出葉輪最大的外形輪廓,利用參數(shù)化建模的方式創(chuàng)建加工毛坯;(4)根據(jù)加工特征的類型自動(dòng)從加工規(guī)則庫中調(diào)用加工模板,然后初步擬定加工路線;(5)根據(jù)自動(dòng)分析得到的尺寸創(chuàng)建刀具組,根據(jù)自動(dòng)創(chuàng)建的毛坯創(chuàng)建加工幾何體組,根據(jù)自動(dòng)擬定的加工路線創(chuàng)建加工方法組和程序組。
圖4 輔助編程工具開發(fā)算法流程圖Fig.4 Development process of assistant programming tools
利用UG NX的CAM模塊進(jìn)行數(shù)控編程時(shí),切削參數(shù)的確定往往需要編程人員依靠經(jīng)驗(yàn)或查詢切削手冊(cè),而且需要工藝人員手動(dòng)輸入到編程模塊的交互界面中。導(dǎo)致編程效率低下,因此有必要開發(fā)切削參數(shù)自動(dòng)優(yōu)化模塊。
本文以主軸轉(zhuǎn)速和進(jìn)給速度為優(yōu)化變量、以刀具約束、機(jī)床約束、加工質(zhì)量約束等為約束條件,建立多目標(biāo)優(yōu)化數(shù)學(xué)模型。優(yōu)化流程如圖5所示。選擇遺傳算法進(jìn)行優(yōu)化,并編寫了優(yōu)化算法程序。分別用MATLAB 遺傳算法工具箱和UG 二次開發(fā)的優(yōu)化模塊對(duì)模型進(jìn)行求解。最后將二者的優(yōu)化結(jié)果與經(jīng)驗(yàn)參數(shù)進(jìn)行對(duì)比評(píng)價(jià)。
實(shí)際的生產(chǎn)中,確立優(yōu)化目標(biāo)函數(shù)的方法有很多[11]。而本文分別以最高生產(chǎn)效率和最低生產(chǎn)成本為目標(biāo)建立優(yōu)化函數(shù),最后利用加權(quán)組合法建立總目標(biāo)函數(shù)。
3.1.1 優(yōu)化目標(biāo)函數(shù)
(1)建立最高生成率目標(biāo)優(yōu)化函數(shù)[12]:
其中,t0為除換刀以外的其他輔助時(shí)間(min);tm為切削時(shí)間(min);tc為每次換刀時(shí)間(min/次);T為刀具耐用度(min)。
(2)建立最低生產(chǎn)成本目標(biāo)優(yōu)化函數(shù)[12]:
其中,cs為單位進(jìn)給量和轉(zhuǎn)速下的生產(chǎn)成本(元);c0為單位時(shí)間生產(chǎn)成本(元);ct為刀具成本(元);a為進(jìn)給量指數(shù);b為主軸轉(zhuǎn)速指數(shù);fz為每齒進(jìn)給量(mm/z);n為主軸轉(zhuǎn)速(r/min)。
圖5 優(yōu)化流程圖Fig.5 Optimized flow chart
(3)建立綜合目標(biāo)優(yōu)化函數(shù):
其中,tmin為最高生產(chǎn)效率但目標(biāo)最優(yōu)解(min);Cmin為最低生產(chǎn)成本單目標(biāo)最優(yōu)解(元)。
3.1.2 優(yōu)化約束條件
在優(yōu)化切削參數(shù)過程中,約束的來源大致可以從機(jī)床參數(shù)、工件表面質(zhì)量、刀具參數(shù)和毛坯材料4個(gè)因素來考慮。
(1)建立機(jī)床主切削力約束[12]。
其中,[F]為機(jī)床允許的最大進(jìn)給切削力(N);KFc為切削力修正系數(shù),與切削條件有關(guān);CF為切削力系數(shù);ap為切削深度(mm);ae為切削寬度(mm);v為切削速度(m/s);Z為銑刀齒數(shù);d0為刀具直徑(mm);xF、yF、uF、qF、wF為切削力系數(shù)。
(2)機(jī)床切削功率約束[12]。
其中,η為機(jī)床的傳遞效率,一般為0.7 左右;Pmax為機(jī)床的最大功率(kW)。
(3)機(jī)床進(jìn)給速度和主軸轉(zhuǎn)速的約束[12]:
其中,vfmax為機(jī)床最大進(jìn)給速度(mm/min);vf為進(jìn)給速度(mm/min);nmax為機(jī)床最高轉(zhuǎn)速(r/min)。
(4)表面粗糙度對(duì)進(jìn)給量的約束[12]。
其中,Ramax為零件加工表面的粗糙度值(μm);r為刀尖圓弧半徑(mm)。
為了驗(yàn)證開發(fā)的遺傳算法優(yōu)化切削參數(shù)模塊的優(yōu)越性,需要通過優(yōu)化實(shí)例得到切削參數(shù),然后與經(jīng)驗(yàn)參數(shù)進(jìn)行對(duì)比評(píng)價(jià)。本課題分別采用MATLAB 遺傳算法工具箱和UG 二次開發(fā)得到的切削參數(shù)優(yōu)化模塊對(duì)多目標(biāo)數(shù)學(xué)模型進(jìn)行優(yōu)化。
通過查詢金屬切削手冊(cè),以使用XA5032型的立式銑床上加工毛坯材料為45 鋼的某零件為例。加工刀具要求使用硬質(zhì)合金端銑刀,工件的切削長(zhǎng)度為640mm,刀具直徑為125mm,齒數(shù)為4,刀尖圓弧半徑為1mm。刀具耐用度為180min。機(jī)床參數(shù)最大切削力15000N;最大功率7.5kW;最大轉(zhuǎn)速1800r/min;最大進(jìn)給速度980mm/min;機(jī)床效率0.75。其他設(shè)定參數(shù)如表1所示。刀具切削力系數(shù)可以查詢切削手冊(cè)[12]獲取,具體值如表2所示。
利用MATLAB 遺傳算法工具箱進(jìn)行優(yōu)化,優(yōu)化結(jié)果如圖6、7所示,函數(shù)最終收斂適應(yīng)值為0.148,機(jī)床主軸轉(zhuǎn)速x1和進(jìn)給速度x2的最優(yōu)解為(396.1,0.169)。
利用UG 二次開發(fā)的優(yōu)化實(shí)例模塊對(duì)多目標(biāo)數(shù)學(xué)模型進(jìn)行優(yōu)化,通過圖8優(yōu)化結(jié)果可以看到,目標(biāo)函數(shù)最終的收斂適應(yīng)值為0.150。其對(duì)應(yīng)的自變量最優(yōu)解為(409.0,0.167)。
從表3的對(duì)比結(jié)果中可以看出,MATLAB 遺傳算法工具箱與二次開發(fā)的切削參數(shù)優(yōu)化模塊的優(yōu)化結(jié)果基本一致,由于前者并未集成在CAM 軟件中,利用其對(duì)不同工序的切削參數(shù)優(yōu)化時(shí),需要技術(shù)人員反復(fù)向MATLAB 中輸入刀具直徑、切削深度等已知參數(shù),并且優(yōu)化后的結(jié)果還需手動(dòng)設(shè)置到CAM模塊中,這些過程比較繁瑣,而后者能夠?qū)崿F(xiàn)對(duì)切削參數(shù)的即時(shí)優(yōu)化和即時(shí)設(shè)置,從而大幅提高編程效率。因此,在兩者優(yōu)化結(jié)果相差不大的情況下,后者具有明顯的效率優(yōu)勢(shì)。
與傳統(tǒng)的切削手冊(cè)給出的經(jīng)驗(yàn)參數(shù)相比,經(jīng)過優(yōu)化后,加工效率提高了11%左右,加工成本降低了9%左右,利用表3的3 組切削參數(shù)對(duì)零件進(jìn)行試切發(fā)現(xiàn),加工后的表面質(zhì)量沒有明顯的變化,從而驗(yàn)證了原型系統(tǒng)優(yōu)化模塊的優(yōu)越性。
圖6 遺傳算法收斂曲線Fig.6 Convergence curve of genetic algorithms
圖7 優(yōu)化變量最優(yōu)解Fig.7 Optimal variable optimal solution
表1 其他設(shè)定參數(shù)Table1 Other setting parameters
表2 切削力系數(shù)Table2 Cutting force coefficient
以C++作為開發(fā)語言,開發(fā)出了航空發(fā)動(dòng)機(jī)葉輪類零件數(shù)控自動(dòng)編程系統(tǒng)的原型系統(tǒng)。原型系統(tǒng)開發(fā)流程如圖9所示。具體步驟為:(1)首先搭建二次開發(fā)應(yīng)用框架,利用開發(fā)向?qū)G NX 軟件與Visual Studio 開發(fā)工具進(jìn)行連接;(2)通過Visual Studio 創(chuàng)建NX Open C++Wizard 向?qū)ы?xiàng)目;(3)在創(chuàng)建的項(xiàng)目中編寫二次開發(fā)程序代碼,程序編寫完成后生成可用于執(zhí)行的dll 文件;(4)根據(jù)NX 自帶的Block UI Styler模塊完成對(duì)話框的設(shè)計(jì);(5)將生成的dll 文件和交互界面dlx文件加載到UG NX的CAM加工模塊;(6)在UG NX中打開軟件,用戶進(jìn)行交互式操作,即可獲得執(zhí)行結(jié)果。
表3 優(yōu)化結(jié)果對(duì)比Table3 Comparison of optimization results
原型系統(tǒng)的功能流程如圖10所示。主要包括3 大模塊,分別為特征識(shí)別模塊、輔助編程模塊和切削參數(shù)優(yōu)化模塊。具體功能模塊包括:加工特征識(shí)別、特征尺寸分析、創(chuàng)建加工毛坯、工藝分析、加工準(zhǔn)備、優(yōu)化切削參數(shù)、生成程序等。
圖8 二次開發(fā)的參數(shù)優(yōu)化模塊優(yōu)化結(jié)果Fig.8 Optimization results of parameter optimization module
圖9 原型系統(tǒng)開發(fā)流程圖Fig.9 Flow chart of prototype system development
具體應(yīng)用實(shí)例如下,打開“特征識(shí)別”折疊組,選擇加工零件,如圖11所示。點(diǎn)擊“識(shí)別加工特征”后的圖標(biāo)按鈕,識(shí)別特征的名稱、數(shù)量、TAG 值將會(huì)顯示在“特征識(shí)別顯示區(qū)域”。勾選“顯示所有特征”前的復(fù)選框按鈕,所有特征將會(huì)以不同的顏色顯示出來。選中某一特征,該特征將會(huì)高亮。
打開“尺寸分析”折疊組,單擊“分析距離和尺寸”按鈕。原型系統(tǒng)會(huì)自動(dòng)測(cè)量特征的尺寸,并將測(cè)量結(jié)果填寫在對(duì)話框中,如圖12所示。
圖10 原型系統(tǒng)功能流程圖Fig.10 Functional flow chart of prototype system
圖11 特征識(shí)別界面Fig.11 Feature recognition interface
打開“創(chuàng)建毛坯”折疊組,在“毛坯余量”中輸入合適的數(shù)值,點(diǎn)擊“創(chuàng)建毛坯”按鈕,毛坯生成結(jié)果如圖13所示。
打開“工藝分析”折疊組(圖14),選擇要達(dá)到的粗糙度值。點(diǎn)擊“生成加工路線”按鈕,加工內(nèi)容、刀具類型和刀具直徑等將會(huì)顯示在“加工路線顯示區(qū)域”,還可對(duì)其進(jìn)行編輯和刪除。打開“加工準(zhǔn)備”折疊組,在對(duì)話框中選擇加工坐標(biāo)系的創(chuàng)建位置,輸入安全平面的距離,輸入幾何組、刀具組、方法組、程序組名稱或保持默認(rèn),可以自動(dòng)完成實(shí)現(xiàn)加工準(zhǔn)備工作。
打開“優(yōu)化參數(shù)”折疊組,在對(duì)話框中輸入機(jī)床參數(shù)、遺傳算法參數(shù)、刀具和毛坯材料。點(diǎn)擊“遺傳算法優(yōu)化切削參數(shù)”按鈕,各個(gè)工序的切削參數(shù)將會(huì)顯示在“優(yōu)化結(jié)果顯示區(qū)域”,如圖15所示。
打開“生成工序”折疊組,點(diǎn)擊“生成工序”按鈕。生成的部分刀軌如圖16所示。
圖12 尺寸分析界面Fig.12 Size analysis interface
圖13 創(chuàng)建毛坯界面Fig.13 Creating blank interface
圖14 工藝分析界面Fig.14 Process analysis interface
為了驗(yàn)證自動(dòng)編程原型系統(tǒng)生成NC 代碼的正確性,本文使用VERICUT 軟件對(duì)其進(jìn)行了數(shù)控仿真。仿真流程如圖17所示。
數(shù)控仿真具體過程如下:首先啟動(dòng)UG的后處理構(gòu)造器,新建后處理文件,機(jī)床結(jié)構(gòu)設(shè)置為“五軸AC 搖籃”,機(jī)床的控制系統(tǒng)選擇“sin840D”。根據(jù)機(jī)床的實(shí)際參數(shù)完成后處理的其他設(shè)置。調(diào)用UG的后處理命令,將刀軌文件轉(zhuǎn)換為NC 代碼。
圖15 優(yōu)化結(jié)果Fig.15 Optimized parameter interface
圖16 生成的部分刀軌Fig.16 Generated part of the cutter rail
圖17 VERICUT數(shù)控仿真流程Fig.17 VERICUT NC simulation process
在VERICUT 中建立虛擬機(jī)床,刀具和毛坯等模型。將后處理得到的NC 導(dǎo)入數(shù)控仿真系統(tǒng),完成仿真所需的其他設(shè)置。
開始機(jī)床仿真,加工過程的部分界面如圖18所示,觀察仿真過程是否發(fā)生干涉和機(jī)床碰撞等現(xiàn)象。
圖19為加工完成后的效果圖。利用VERICUT 自帶的“Analysis”功能,對(duì)加工后零件進(jìn)行分析,結(jié)果表明:自動(dòng)編程系統(tǒng)產(chǎn)生的加工程序安全可靠,無過切和欠切現(xiàn)象發(fā)生,從而證明了原型系統(tǒng)的實(shí)用性。
(1)基于規(guī)則設(shè)計(jì)了特征識(shí)別算法,通過應(yīng)用實(shí)例驗(yàn)證了該算法的優(yōu)越性。與傳統(tǒng)的基于屬性鄰接圖的特征識(shí)別算法相比,該算法的使用范圍雖然有一定的局限性,但不需要建立預(yù)定義特征庫,而且識(shí)別效率也有一定的提高。
(2)開發(fā)出了輔助數(shù)控加工編程工具,實(shí)現(xiàn)了加工特征尺寸的自動(dòng)測(cè)量,加工毛坯的自動(dòng)創(chuàng)建,加工路線的自動(dòng)擬定等。與現(xiàn)有的CAM 軟件相比,自動(dòng)編程效率得到了明顯的提高。
(3)基于C++語言開發(fā)了切削參數(shù)優(yōu)化模塊,實(shí)現(xiàn)對(duì)切削參數(shù)的即時(shí)優(yōu)化和即時(shí)設(shè)置。與傳統(tǒng)的方式相比,提高了數(shù)控加工編程效率,降低了加工成本。
(4)應(yīng)用實(shí)例和數(shù)控仿真表明:原型系統(tǒng)的數(shù)控編程效率比原來提高60%以上,并且輸出數(shù)控程序的質(zhì)量比較安全、可靠。
圖18 加工過程界面Fig.18 Machining process interface
圖19 加工結(jié)果Fig.19 Processing results