張宇航 孫玉文 徐金亭
1.大連理工大學(xué)機(jī)械工程學(xué)院,大連,1160242.大連理工大學(xué)汽車工程學(xué)院,大連,116024
航空發(fā)動(dòng)機(jī)機(jī)匣是先進(jìn)航空發(fā)動(dòng)機(jī)的關(guān)鍵核心部件,其內(nèi)部承載著發(fā)動(dòng)機(jī)渦輪葉片等關(guān)鍵部件,外部連接著各種復(fù)雜的航空發(fā)動(dòng)機(jī)附件系統(tǒng),機(jī)匣周向分布著島嶼、凸臺(tái)、筋肋、腔槽等復(fù)雜特征,特征間的相對(duì)關(guān)系復(fù)雜,數(shù)控編程難度大。數(shù)控編程過程中需人工設(shè)置大量參數(shù)和創(chuàng)建大量輔助幾何,導(dǎo)致數(shù)控編程工藝人員存在大量重復(fù)工作,效率低[1]。特征識(shí)別可以快速提取特征的幾何參數(shù)信息,從而將設(shè)計(jì)信息轉(zhuǎn)化為制造工藝信息。自1970年以來一直有學(xué)者致力于特征識(shí)別的研究[2],主要是基于圖的特征識(shí)別方法和基于深度學(xué)習(xí)的特征識(shí)別方法。
基于圖的特征識(shí)別方法目前研究最多,JOSHI等[3]首次提出屬性鄰接圖(attribute adjacency graph, AAG)的概念,通過去除所有被凸邊包圍的節(jié)點(diǎn),將AAG分解為子圖,通過圖匹配算法,實(shí)現(xiàn)孤立特征的識(shí)別。謝飛等[4]提出了加權(quán)屬性鄰接圖,利用改進(jìn)的子圖同構(gòu)算法和特征判定規(guī)則實(shí)現(xiàn)簡單相交特征的識(shí)別。SUNIL等[5]提出對(duì)圖進(jìn)行二次分解的識(shí)別方法,從而分離出特征子圖。張生芳等[6]通過獲取模型柵格高度點(diǎn)云數(shù)據(jù),結(jié)合高度中值對(duì)特征矩陣進(jìn)行二值化,實(shí)現(xiàn)了角盒類零件型腔特征的識(shí)別,通過對(duì)底面和壁面的關(guān)聯(lián)屬性進(jìn)行剪枝,從而加快圖匹配算法。子圖匹配算法和圖匹配算法都存在識(shí)別速度慢且需要大量的特征庫的問題。劉曉軍等[7]基于主加工面,通過分析特征的特點(diǎn),實(shí)現(xiàn)了板腔類零件加工特征的識(shí)別。魯泳等[8]通過在屬性鄰接圖中增加多種屬性,依賴刀軸方向和面的類型選擇種子面,然后基于種子面進(jìn)行擴(kuò)展,實(shí)現(xiàn)飛機(jī)結(jié)構(gòu)件加工特征的識(shí)別?;诜N子面建立特征分解算法存在對(duì)部分相交特征考慮不全的問題。GAO等[9]提出了建立虛連接的生成算法,并根據(jù)特征痕跡得到最小條件子圖,通過預(yù)定義特征和啟發(fā)式規(guī)則實(shí)現(xiàn)特征識(shí)別,解決了相交特征導(dǎo)致的圖拓?fù)潢P(guān)系消失的問題,但是存在多余的虛連接。付鵬等[10]提出了基于邊環(huán)屬性鄰接圖的特征識(shí)別方法,通過多環(huán)判定和混合環(huán)判定,建立基面鏈表,以邊環(huán)為基礎(chǔ)進(jìn)行屬性鄰接圖的分解,通過判斷基面的相對(duì)位置判定相交特征凹凸性。
以上方法能夠?qū)唵蜗嘟惶卣鬟M(jìn)行識(shí)別,但對(duì)于復(fù)雜相交特征識(shí)別還存在一定的問題。近些年來有許多學(xué)者通過深度學(xué)習(xí)對(duì)加工特征進(jìn)行識(shí)別。ZHANG等[11]通過將零件分解為體素,通過分水嶺算法實(shí)現(xiàn)相交特征分割,建立了三維卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)特征識(shí)別。SHI等[12]在獲得零件的六個(gè)方向的視圖后,通過目標(biāo)檢測算法得到單個(gè)方向上的特征的邊界框,然后對(duì)六個(gè)方向上的邊界框進(jìn)行合并得到最終的特征識(shí)別結(jié)果。ZHANG等[13]對(duì)零件每一個(gè)面進(jìn)行采點(diǎn),獲取面的位置坐標(biāo)和法向量作為輸入?yún)?shù),通過實(shí)例分割、語義分割、底面識(shí)別三個(gè)模塊實(shí)現(xiàn)相交特征的識(shí)別。受樣本數(shù)量、特征分割方法和輸入?yún)?shù)完整性的限制,基于神經(jīng)網(wǎng)絡(luò)的方法對(duì)實(shí)際模型的應(yīng)用存在一定的問題。
航空發(fā)動(dòng)機(jī)機(jī)匣零件上存在大量的相交特征和曲面特征,導(dǎo)致傳統(tǒng)的方法無法對(duì)其進(jìn)行有效識(shí)別。本文提出了一種融合啟發(fā)式與規(guī)則的混合式特征分割算法實(shí)現(xiàn)對(duì)機(jī)匣零件的加工特征的識(shí)別。
實(shí)體模型常用的表示方法為邊界表示法(boundary representation, B-rep),這種表示方法在Parasolid內(nèi)核中將實(shí)體由下層到上層劃分為點(diǎn)、邊、翼、環(huán)、面、殼、體七層拓?fù)鋵?shí)體。JOSHI等[3]首次在此基礎(chǔ)上提出屬性鄰接圖的概念,根據(jù)邊界表示,模型中面作為圖中的節(jié)點(diǎn)V,面之間的相交邊作為節(jié)點(diǎn)間的連接的邊E,形成一張無向圖。為了進(jìn)行特征識(shí)別,還需要將面和邊的幾何特性和連接關(guān)系作為節(jié)點(diǎn)V和邊E的屬性信息P,屬性鄰接圖表示為G={V,E,P}。
在零件的屬性鄰接圖中,邊的凹凸性是實(shí)現(xiàn)特征識(shí)別的關(guān)鍵信息之一,邊的凹凸性的判斷方法[14]如圖1所示,對(duì)于兩個(gè)相交面F1和F2,在交邊E上選擇一點(diǎn)P的切平面作截面,獲得兩面的夾角α,當(dāng)α>180°時(shí)邊E為凸邊,當(dāng)α<180°時(shí)邊E為凹邊,當(dāng)α=180°時(shí)E為過渡邊。邊凹凸性的具體計(jì)算為:獲得面F1和面F2在交線點(diǎn)上的法線方向N1和N2,以及點(diǎn)P在邊E上的切線方向Ne,Ne在面F1上滿足右手螺旋定則,通過計(jì)算N2×Ne與N1之間的夾角α1,當(dāng)α1取值為(0°,90°)時(shí),邊E為凸邊,當(dāng)α1取值為(90°,180°)時(shí),邊E為凹邊,當(dāng)α1=90°時(shí),邊E為過渡邊。對(duì)于曲面構(gòu)成的過渡邊,建立交邊上P點(diǎn)的法平面,獲得與曲面的交線。通過判斷交線在點(diǎn)P處的凹凸性,若存在一條交線在點(diǎn)P處為凹,則判斷為凹過渡邊,否則為凸過渡邊。
(a)凸邊 (b)凹邊
由于過渡特征能夠減小應(yīng)力集中,同時(shí)可以使零件外形更加美觀,因此在發(fā)動(dòng)機(jī)機(jī)匣零件中存在大量的過渡特征,但是大量的過渡特征會(huì)增加特征的拓?fù)鋵哟?使特征識(shí)別變得異常困難。對(duì)過渡特征進(jìn)行識(shí)別和抑制可以簡化特征識(shí)別算法并提高特征識(shí)別的準(zhǔn)確率。機(jī)匣零件中使用的過渡特征多為圓角和倒角特征。
圓角特征識(shí)別方法為:首先提取存在兩條以上過渡邊的曲面,判斷面在U/V方向上的曲率半徑是否變化以及曲率半徑是否超過圓角閾值,從而實(shí)現(xiàn)U向圓角和V向圓角的判斷。若查找存在平行邊且邊所在的凹凸角大小相同、凹凸角的取值范圍在(180°,270°)的平面,即可通過判斷倒角大小是否滿足閾值條件來識(shí)別對(duì)稱倒角。過渡特征識(shí)別完成后,將圓角的過渡邊和倒角凹凸角相同的平行邊連接的面相互之間建立連接,從而移除過渡面,得到簡化屬性鄰接圖(simplified attribute adjacency graph, SAAG)。過渡特征識(shí)別結(jié)果如圖2所示。
圖2 過渡特征識(shí)別結(jié)果
發(fā)動(dòng)機(jī)機(jī)匣零件中存在大量的孔特征和內(nèi)型面特征。由于孔特征結(jié)構(gòu)中的孔面較為特殊,因此容易建立孔特征的識(shí)別算法[15-16],且孔特征識(shí)別后不易對(duì)其他特征識(shí)別產(chǎn)生影響。通過面的類型可以提前識(shí)別出所有的孔特征和內(nèi)型面特征。識(shí)別方法為:首先找到面的類型為圓柱面和圓錐面的凹特征面,然后判斷特征面的回轉(zhuǎn)角度是否大于180°,將回轉(zhuǎn)角度大于180°的面作為孔特征面,然后將與孔特征凹連接且連接邊的類型為曲線的特征面作為孔特征底面。所有孔特征識(shí)別結(jié)束后,標(biāo)記特征面,同時(shí)將不存在底面的孔特征識(shí)別為通孔,將存在底面的孔識(shí)別為盲孔。通過將底面作為連接條件,判斷一個(gè)孔特征的孔面是否與另一孔特征的底面相連,若兩個(gè)孔特征的特征面之間存在連接關(guān)系且孔面軸線相同,則將兩個(gè)孔合并,同時(shí)將特征類型改為階梯孔特征。對(duì)于孔面直徑大于一定值的孔特征,將特征類型設(shè)定為內(nèi)型面特征。孔特征識(shí)別結(jié)果如圖3所示。
(a)內(nèi)型面特征
對(duì)于存在種子面的加工特征,特征的種子面通常為主要的加工面,需要滿足可加工性條件,即特征面可以通過刀具垂直加工,因此將面的可加工性作為種子面選擇的依據(jù)之一,從而得到正確的特征種子面。面的可加工性的判斷方法為:通過在面上五點(diǎn)采樣,對(duì)面上采樣點(diǎn)沿法線方向作射線判斷是否會(huì)和其他面產(chǎn)生干涉,對(duì)于不存在可加工點(diǎn)的面,在特征分解后不將其作為種子面。判斷面上一點(diǎn)是否會(huì)與其他面產(chǎn)生干涉的方法為:通過沿面一點(diǎn),沿著法線方向作射線,判斷是否會(huì)和其他面產(chǎn)生交點(diǎn),將首個(gè)交點(diǎn)位置的距離與加工安全距離進(jìn)行對(duì)比從而得到面的可加工性。面的可加工性在特征種子面的選取中具有非常關(guān)鍵的作用,特征種子面選擇的正確性直接影響特征識(shí)別結(jié)果以及特征合并的效果,面的可加工性如圖4所示,紅色的面定義為不可加工面。
圖4 面的可加工性
若完整的屬性鄰接圖包含的節(jié)點(diǎn)數(shù)量過多,會(huì)導(dǎo)致特征識(shí)別算法的時(shí)間復(fù)雜度太大,為了提高特征識(shí)別算法的效率,常用的方法是通過凸分解[17]獲得最小屬性鄰接圖(minimum attributed adjacency graph, MAAG)。凸分解通過斷開屬性鄰接圖中的凸邊,將其分解為多個(gè)子圖。但是相交特征的存在會(huì)導(dǎo)致兩個(gè)特征共用一個(gè)相同的面,使得凸分解得到的子圖存在多個(gè)相交特征,為了分離相交特征,需要判斷特征面互相之間是否可以共同構(gòu)成一個(gè)特征。凹特征的特征面通?;ハ嘀g相對(duì)可見,因此引入可見性作為凹特征添加特征面的條件??梢娦缘呐袛喾椒?通過五點(diǎn)采樣判斷面之間的可見性,對(duì)于不為凹連接的面,計(jì)算面上點(diǎn)到另一面上點(diǎn)的方向與當(dāng)前點(diǎn)在面上的法線方向的夾角θ,θ小于90°則判斷為可見,兩個(gè)面互相之間都滿足可見性條件時(shí)兩個(gè)面判斷為可見,如圖5所示,面F1與F2、F3、F4、F5都不可見。
圖5 面之間的可見性分析
首先對(duì)已經(jīng)去除過渡特征的SAAG進(jìn)行凸分解,得到最小屬性鄰接圖MAAG。然后從最小屬性鄰接圖選擇凹連接數(shù)量最多的可加工面作為相交特征識(shí)別初始面Fs,將與初始面Fs相連的面作為特征分解的起始面,所有的起始面構(gòu)成起始面集(initial face set, IFS),IFS={Fs1,Fs2,…,Fsn}。接著根據(jù)起始面集合中面的類型和相互之間凹凸連接關(guān)系,從起始面集中選取一組面作為擴(kuò)散的起始面。最后根據(jù)凸擴(kuò)散和凹擴(kuò)散的不同約束條件添加特征面,從而得到獨(dú)立的凸特征和凹特征。特征分解的整體流程如圖6所示。
圖6 啟發(fā)式特征分解流程圖
凸特征分解是首先從IFS中查找曲率半徑不超過預(yù)設(shè)值的凸面,或者互相之間為凸連接關(guān)系的面,構(gòu)成凸特征面集合(convex feature face set, CVFS),將與其相連的凹面作為凸特征底面。然后通過凸邊擴(kuò)散的啟發(fā)式搜索條件在MAAG中搜索特征面。凸邊擴(kuò)散的啟發(fā)式搜索條件為:特征面滿足與CVFS中的一個(gè)或多個(gè)面凸連接,并且與至少一個(gè)底面凹連接且不與任意底面凸連接。擴(kuò)散結(jié)束后,將該特征面集作為凸特征的起始面集。接著查找特征頂面,特征頂面為可加工面,并且滿足與特征面只為凸連接,以及不與底面凸連接。確定特征頂面后,添加滿足條件的特征面和特征底面。若未找到凸特征頂面,則判斷CVFS是否存在凸角連接,凸角定義為存在三個(gè)面之間互相凸連接,當(dāng)都不滿足時(shí),不將其識(shí)別為凸特征,構(gòu)成凸角的特征如圖7所示,面F1、F2、F3構(gòu)成凸角。最后選擇可加工的特征面作為種子面,將與特征面凸連接數(shù)量最多、面的面積最大作為凸特征種子面選擇的條件,得到凸特征的種子面。
圖7 特征中凸角
凹特征分解是首先從IFS中提取出互相為凹連接且相互可見的面,構(gòu)成凹特征面集(concave feature face set, CCFS)。然后通過凹邊擴(kuò)散的啟發(fā)式搜索條件在MAAG中搜索特征面,凹邊擴(kuò)散的啟發(fā)式搜索條件為:將與特征面凹連接的面添加到臨時(shí)面集(temporary face set, TFS)中,判斷其與CCFS中的面是否滿足可見性條件,并且計(jì)算面之間中心點(diǎn)的距離,然后判斷TFS中的面是否互相可見,不可見面之間優(yōu)先選擇不為凸特征的面、未定義的面以及到CCFG距離最近的面。擴(kuò)散結(jié)束后,選擇可加工的特征面作為種子面,將與特征面凹連接數(shù)量最多、面的面積最大作為凹特征種子面選擇的條件,得到凹特征的種子面。添加與種子面凹連接且與其他特征面存在連接的面。部分特征(如通道)可能不存在種子面。
起始面集IFS中可能還會(huì)存在不與其他面連接的面,首先提取出其中一個(gè)未識(shí)別的面為擴(kuò)散起始面,通過將IFS中與其可見的凹特征面添加到一個(gè)凹特征面集CCFS中,然后在MAAG中根據(jù)之前凹邊擴(kuò)散的啟發(fā)式搜索條件進(jìn)行擴(kuò)散,擴(kuò)散結(jié)束后選擇種子面,從而得到孤立的凹特征。重復(fù)以上步驟,直到得到所有的孤立特征。
由于相交特征的存在,會(huì)導(dǎo)致部分特征被分解為多個(gè)特征的問題。因此將種子面作為驅(qū)動(dòng)條件對(duì)特征進(jìn)行合并。對(duì)于凸特征,首先判斷種子面是否相同,然后檢測特征面之間是否存在連接,存在連接關(guān)系則將兩個(gè)凸特征合并。對(duì)于存在種子面的凹特征,判斷兩個(gè)凹特征的種子面是否可以合并為一個(gè)面,并且特征面之間相互可見,并且種子面之間的最近距離滿足閾值條件,則將兩個(gè)凹特征合并。對(duì)于不存在種子面的凹特征,判斷兩個(gè)特征的特征面是否存在連接,存在則將兩個(gè)特征合并。對(duì)于圖8所示的零件,通過特征合并可以將四個(gè)獨(dú)立的特征合并為一個(gè)特征,從而保證特征識(shí)別結(jié)果的準(zhǔn)確性。
圖8 特征合并實(shí)例
通過特征分割和特征合并得到了獨(dú)立的特征,雖然圖同構(gòu)算法可以對(duì)獨(dú)立特征進(jìn)行識(shí)別,但是由于實(shí)際零件特征面多變,因此需要大量的特征庫,圖同構(gòu)算法的識(shí)別速度較慢,并且存在特征拓?fù)浣Y(jié)構(gòu)相同而導(dǎo)致特征識(shí)別的準(zhǔn)確率下降的問題。由于在特征分割后,已經(jīng)根據(jù)特征的拓?fù)湫畔⒑蛶缀涡畔⒋_定了特征的種子面,故通過對(duì)相同特征面進(jìn)行合并,以種子面作為參考提取出特征的拓?fù)浜蛶缀螀?shù),可以更快速地對(duì)特征進(jìn)行識(shí)別。由機(jī)匣零件提取的特征參數(shù)信息如表1所示。
表1 特征參數(shù)定義
特征分割后將特征分為凸特征和凹特征兩大類,在特征參數(shù)的基礎(chǔ)上,對(duì)不同特征的拓?fù)浣Y(jié)構(gòu)和種子面幾何尺寸進(jìn)行判斷,通過建立特征識(shí)別規(guī)則,將凸特征識(shí)別為凸臺(tái)和筋板,凹特征識(shí)別為型腔(普通型腔和開口型腔)、臺(tái)階(通臺(tái)階和盲臺(tái)階)、凹槽、通道(普通通道和開口通道)。特征識(shí)別規(guī)則如下:
(1)判斷是凹特征還是凸特征,凸特征轉(zhuǎn)步驟(2),凹特征轉(zhuǎn)步驟(3);
(2)判斷凸特征起始面集是否都成為或都不成為凹特征面,是則判斷為凸臺(tái)特征,否則判斷為筋板特征。
(3)判斷凹特征是否存在種子面,不存在則轉(zhuǎn)步驟(4),存在則轉(zhuǎn)步驟(5);
(4)判斷特征面是否成環(huán),成環(huán)則為通道特征,不成環(huán)則為開口通道特征;
(5)判斷特征面構(gòu)成鏈的數(shù)量,數(shù)量為1轉(zhuǎn)步驟(6),數(shù)量為2轉(zhuǎn)步驟(7),大于2轉(zhuǎn)步驟(8);
(6)判斷特征面是否成環(huán),成環(huán)則判斷為型腔特征,不成環(huán)則轉(zhuǎn)步驟(9);
(7)判斷特征面是否都和種子面相連,不是則轉(zhuǎn)步驟(10),否則轉(zhuǎn)步驟(11);
(8)對(duì)特征面構(gòu)成鏈的數(shù)量大于2的統(tǒng)一判斷為開口型腔特征;
(9)判斷特征面數(shù)量,數(shù)量大于2則判斷為開口型腔,等于1則判斷為通臺(tái)階特征,否則轉(zhuǎn)步驟(12);
(10)判斷特征面是否存在連接環(huán),存在則判斷為開口型腔特征,否則判斷為開口通道特征;
(11)判斷種子面面積除以最長邊的平方是否大于閾值,大于則判斷為筋板特征,否則判斷為凹槽特征;
(12)判斷種子面非內(nèi)環(huán)凸邊數(shù)量,大于2則判斷為通臺(tái)階特征,否則判斷為盲臺(tái)階特征。
將當(dāng)前提出的方法通過VS2015在Siemens NX11上進(jìn)行實(shí)現(xiàn),并對(duì)航空發(fā)動(dòng)機(jī)機(jī)匣零件進(jìn)行識(shí)別驗(yàn)證,通過航空結(jié)構(gòu)件驗(yàn)證該算法的擴(kuò)展性,零件模型如圖9所示。對(duì)測試機(jī)匣B進(jìn)行測試,部分特征識(shí)別結(jié)果如圖10所示,該零件識(shí)別的特征包括凸臺(tái)、筋板、凹槽、臺(tái)階、型腔、開口型腔和內(nèi)型面等,其中部分特征的特征參數(shù)如表2所示,特征參數(shù)順序與表1特征參數(shù)定義中的特征序號(hào)相對(duì)應(yīng)。
表2 特征參數(shù)與識(shí)別結(jié)果
(a)航空結(jié)構(gòu)件
(a)凸臺(tái) (b)型腔
對(duì)不同的零件進(jìn)行測試,得到特征識(shí)別的零件信息和識(shí)別準(zhǔn)確度如表3所示。該算法可以將相交特征有效分離,并且準(zhǔn)確識(shí)別特征類型,在保證機(jī)匣零件特征識(shí)別準(zhǔn)確性的同時(shí)可以對(duì)結(jié)構(gòu)件中相同的特征進(jìn)行有效識(shí)別。算法識(shí)別準(zhǔn)確率達(dá)到98.83%,但是模型建模過程中存在部分缺陷面,導(dǎo)致識(shí)別結(jié)果中存在以缺陷面為種子面而產(chǎn)生的多余特征。特征識(shí)別耗時(shí)如表4所示,測試顯卡為RTX3050Ti,CPU為AMD Ryzen 7 5800H。單個(gè)面的平均耗時(shí)為5.57 ms。該算法能夠?qū)崿F(xiàn)發(fā)動(dòng)機(jī)機(jī)匣等復(fù)雜零件的加工特征快速識(shí)別,識(shí)別耗時(shí)主要花費(fèi)在零件拓?fù)湫畔@取和特征合并過程中,隨著特征數(shù)量的增加,特征合并花費(fèi)時(shí)間的占比增大。
表3 測試零件信息及特征識(shí)別結(jié)果
表4 特征識(shí)別各階段耗時(shí)
本文提出了一種新的啟發(fā)式特征分割方法用于實(shí)現(xiàn)航空發(fā)動(dòng)機(jī)機(jī)匣中曲面特征和復(fù)雜相交特征的識(shí)別。測試結(jié)果表明,識(shí)別準(zhǔn)確率達(dá)到98.83%,解決了傳統(tǒng)算法難以對(duì)相交特征和曲面特征識(shí)別的問題,能夠?qū)崿F(xiàn)快速準(zhǔn)確識(shí)別機(jī)匣零件的加工特征。
本文提出的特征參數(shù)主要面向航空發(fā)動(dòng)機(jī)機(jī)匣零件上的加工特征,但是特征識(shí)別結(jié)果依賴于提取的特征參數(shù),因此如何根據(jù)特征提取出更多有效的特征參數(shù)將會(huì)是下一步研究重點(diǎn)。