趙國輝, 王彤宇
(長春理工大學(xué) 機(jī)電工程學(xué)院,吉林 長春 130022)
裝配序列規(guī)劃是裝配規(guī)劃的核心,國外學(xué)者在這方面進(jìn)行了廣泛研究,文獻(xiàn)[1]奠定了計(jì)算機(jī)輔助裝配順序規(guī)劃研究的基礎(chǔ)。他們主要集中研究裝配順序的可行性以及幾何可行性。在此基礎(chǔ)上,文獻(xiàn)[2]提出了將裝配轉(zhuǎn)化為拆卸問題,再以割集法求解裝配序列。割集法系統(tǒng)性強(qiáng),但組合爆炸缺陷在很大程度上限制了其應(yīng)用。因此,文獻(xiàn)[3]提出了基于子裝配體提取的裝配序列規(guī)劃方法,即可得到合理拆卸順序進(jìn)而求出裝配順序。文獻(xiàn)[4]從幾何方面考慮零件是否可以沿一定方向移動(dòng),若不能,則先移去其外側(cè)零件來獲取裝配序列。文獻(xiàn)[5]在文獻(xiàn)[4]的基礎(chǔ)上,又考慮了零件的特性,引入了關(guān)于螺栓、螺帽等緊固件的啟發(fā)式規(guī)則。上述這些方法充分利用了幾何配合信息,有的也用到了裝配經(jīng)驗(yàn)知識,但是對裝配經(jīng)驗(yàn)知識利用還很薄弱,有待加以進(jìn)一步提高規(guī)劃效率。在國內(nèi)一些專家學(xué)者針對裝配序列規(guī)劃的復(fù)雜性將人工智能應(yīng)用在裝配序列規(guī)劃中,例如,重慶大學(xué)的廖小云將遺傳算法應(yīng)用到裝配順序自動(dòng)規(guī)劃中,西北工業(yè)大學(xué)的王輝將裝配語義建模的方法引入到裝配工藝規(guī)劃中,浙江大學(xué)人工智能研究所的季忠齊等人將裝配序列規(guī)劃中成熟的割集法和人工智能中啟發(fā)式搜索算法相結(jié)合,使裝配序列規(guī)劃具有很高的智能性。
文中提出使用利用STEP CAD格式文件從計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)輸出設(shè)計(jì)信息,并輸入設(shè)計(jì)信息給裝配次序計(jì)劃的方法。
產(chǎn)品模型數(shù)據(jù)交換標(biāo)準(zhǔn)STEP(Standard for the Exchange of Product model data)是國際標(biāo)準(zhǔn)化組織ISO為在CAX/PDM中表示和交換工業(yè)產(chǎn)品數(shù)據(jù)而建立的標(biāo)準(zhǔn)。
STEP Part21(實(shí)際的文件格式)定義了一個(gè)STEP文件的格式和結(jié)構(gòu)。另外,機(jī)械零件的格式和包含在文件中的裝配數(shù)據(jù)必須遵守AP203號應(yīng)用協(xié)議。
STEP Part22(SDAI,STEP數(shù)據(jù)存儲(chǔ)界面標(biāo)準(zhǔn))是一個(gè)抽象的說明書,它定義了API的功能(Application Programming Interface,即應(yīng)用程序界面)[6-7]。
數(shù)據(jù)儲(chǔ)存界面標(biāo)準(zhǔn)SDAI(Standard Data Access Interface)為了讀取STEP-file數(shù)據(jù)提供一個(gè)API (Application Programming Interface),STEP-file數(shù)據(jù)是由STEP建模語言(EXPRESS)編寫的。SDAI定義了一個(gè)基于語義學(xué)的抽象界面,它是依靠編程語言的,使用SDAI到某種編程語言的聯(lián)編(language binding)來解決這個(gè)問題。JSDAI是一個(gè)綁定到SDAI規(guī)格完整的Java編程語言的API。
在輸入Java包裹到應(yīng)用程序中以后,實(shí)際上可直接從STEP第21部分文件讀取幾何數(shù)據(jù),無需將STEP文件轉(zhuǎn)化成另一個(gè)數(shù)據(jù)文件格式。
為從STEP文件提取局部坐標(biāo),需要JSDAI的 “jsdai.lang”包 裹 中 的 4 類:SdaiSession,SdaiReposito-ry,SdaiModel和EntityExtent。
SdaiSession類是被用來開始和結(jié)束任意JSDAI活動(dòng)。SdaiSession類可以初始化和終結(jié)SDAI的活動(dòng),在程序和一個(gè)STEP Part21文件之間完成數(shù)據(jù)轉(zhuǎn)換處理工作,并動(dòng)態(tài)地建立新的存儲(chǔ)庫(“JSDAI V 2.3:Core API,”2003)。
SdaiRepository類是圖表案例、SdaiModel和應(yīng)用程序案例永久性存儲(chǔ)器的一個(gè)物理容器(“JSDAI V 2.3:Core APl,”2003)。
SdaiModel類是被用來對屬于同一表達(dá)圖表的分組實(shí)體實(shí)例。每一個(gè)SdaiModel基于一個(gè)EXPRESS圖表,稱為基礎(chǔ)圖表。
EntityExtent類將一個(gè)SdaiModel中所有的實(shí)體案例都?xì)w類到文件夾中。
從“topological_representation_item”EntityExtent事例文件夾中獲得的一個(gè)零件的所有拓?fù)湫畔⒑妥鴺?biāo),包含在文件中作為實(shí)體類型和圖表類型的B-rep(Boundary representation邊界表示)的所有要素。應(yīng)用STEP的203條約指定B-rep為一個(gè)已設(shè)計(jì)產(chǎn)品的實(shí)體模型數(shù)據(jù)格式。通過讀和執(zhí)行事例的索引和每個(gè)事例的組件索引,可以從STEP Part21文件提取零件的樹型B-rep數(shù)據(jù)結(jié)構(gòu)。
在此項(xiàng)研究所開發(fā)的程序中,零件的B-rep數(shù)據(jù)結(jié)構(gòu)的3個(gè)列陣被用于存放幾何個(gè)體。在B-rep數(shù)據(jù)結(jié)構(gòu)中個(gè)體之間的幾何關(guān)系如圖1所示。
圖1 B-rep數(shù)據(jù)結(jié)構(gòu)中實(shí)體之間的幾何關(guān)系
在圖1中,面-軸的實(shí)體表示所有零件的面,并保存在一個(gè)一維列陣?yán)?。面孔-邊平面上的個(gè)體表示所有零件的邊,并保存在一個(gè)二維列陣?yán)?。面-邊-頂點(diǎn)空間的實(shí)體表示所有零件的頂點(diǎn),并保存在一個(gè)三維列陣?yán)?。?3表示零件第二個(gè)面上的第三條邊,而且邊23被保存在二維陣列中。頂點(diǎn)02n表示零件第零個(gè)面上第二條邊上的第n個(gè)頂點(diǎn),而且頂點(diǎn)02n是三維列陣中的其中之一。
在STEP格式文件零件的樹型B-rep結(jié)構(gòu)中,每個(gè)邊被重復(fù)兩次(屬于2個(gè)面),每個(gè)端點(diǎn)被重復(fù)6次(屬于3個(gè)面,并且在每個(gè)面中端點(diǎn)屬于2個(gè)邊)。所以,在二維數(shù)組中每個(gè)元素被記錄2次,三維數(shù)組中每個(gè)元素則被記錄6次。
因?yàn)樵谧詣?dòng)化的裝配作業(yè)中多數(shù)機(jī)械組件是沿主軸被裝配的,所以提出的裝配計(jì)劃考慮零件之間的干涉關(guān)系必須在6個(gè)主軸方向上(+x,-x,+y,-y,+z和-z)。在裝配期間,使用幾何3D對2D投射的方法,沿6個(gè)主軸方向,確定零件之間的干涉關(guān)系。如果兩個(gè)零件的投射沿一個(gè)特定軸方向重疊,當(dāng)其中一個(gè)零件朝該特定方向移動(dòng)或通過另一個(gè)零件時(shí),兩個(gè)零件也許發(fā)生碰撞[8]。3D零件的2D投影是在給出的投影平面的一個(gè)指定方向上,能從3D零件頂點(diǎn)坐標(biāo)上被確定投影方向和投影面的幾何輪廓。從2D零件的投影圖上,能夠確定裝配操作中零件之間的干涉關(guān)系。
定義6個(gè)n×n的無干涉矩陣(Fk),其表示在6個(gè)主軸方向上一個(gè)裝配模型的n個(gè)零件之間干涉關(guān)系。當(dāng)沿著k方向從無窮遠(yuǎn)處到裝配位置時(shí),如果組件Pi與零件Pj發(fā)生干涉,F(xiàn)k.i.j(第i行與第j列交叉點(diǎn)的元素)是0,否則Fk.i.j是1。例如,假設(shè)+y方向上的3個(gè)零件裝配結(jié)構(gòu)的無干涉矩陣如圖2所示。
圖2 +y方向上無干涉矩陣
因?yàn)榫仃囋谾+y,2,1=0和F+y,1,2=1,當(dāng)零件2在+y方向進(jìn)行裝配時(shí),如果零件1已經(jīng)被裝配完了,零件2將會(huì)與零件1發(fā)生干涉。另一方面,當(dāng)零件1在+y方向進(jìn)行裝配時(shí),如果零件2已經(jīng)完成了裝配,那么零件1將不會(huì)與零件2發(fā)生干涉。
為了測試所提出的裝配計(jì)劃而使用的一個(gè)個(gè)例研究,如圖3所示。
圖3 一個(gè)帶有通孔的裝配模型
模型包括4個(gè)零件。零件1有3個(gè)通孔,裝配期間零件2、零件3和零件4被插入到這3個(gè)通孔中。零件2與零件3和零件4相比,必須是在一個(gè)不同的裝配方向上被插入進(jìn)去的。因此,至少需要一次裝配方向再定位才能完整地裝配該模型。模型使用SolidWorks建立的,并以STEP格式保存。
自動(dòng)化的裝配計(jì)劃進(jìn)程的流程圖如圖4所示。
圖4 裝配計(jì)劃流程圖
變換零件坐標(biāo)到裝配坐標(biāo)空間如圖5所示。
圖5 變換零件坐標(biāo)到裝配坐標(biāo)空間
由圖5(a)可見,在輸入模型的STEP文件到裝配計(jì)劃以后,每個(gè)零件的原始坐標(biāo)被提取了。由圖5(b)可見,在提取原始(零件坐標(biāo)空間)坐標(biāo)和每個(gè)零件的變換信息以后,裝配計(jì)劃計(jì)算了在裝配中每個(gè)零件的新坐標(biāo) (裝配坐標(biāo)空間)。
從裝配模型的STEP文件提取的變換信息被用于變換零件坐標(biāo)系從零件坐標(biāo)系到裝配坐標(biāo)系,如圖6所示。
圖6 轉(zhuǎn)換所有零件的信息
計(jì)算出所有零件的坐標(biāo)之后,對裝配坐標(biāo)系使用投影的方法,裝配計(jì)劃確定了裝配操作期間所有零件的干涉關(guān)系。對指定的測試案例,裝配計(jì)劃自動(dòng)地創(chuàng)建了以下6個(gè)無干涉矩陣:
得到6個(gè)無干涉矩陣之后,對于指定的裝配模型使用基于遺傳算法的裝配計(jì)劃方法,裝配計(jì)劃自動(dòng)尋找一個(gè)它的優(yōu)選或近優(yōu)選的裝配序列。并輸出了生成的序列:
裝配序列(2,1,4,3),裝配方向(±z,±z,-y,-y);
裝配序列(2,1,3,4),裝配方向(±z,±z,-y,-y);
裝配序列(1,2,3,4),裝配方向(±z,±z,-y,-y);
裝配序列(1,3,4,2),裝配方向(-y,-y,-y,±z)。
對于輸入裝配模型,沿著輸出序列中每一個(gè)零件允許的裝配方向,裝配計(jì)劃自動(dòng)地發(fā)現(xiàn)幾何上要求裝配方向再定位次數(shù)是一個(gè)極小或接近最小的數(shù)字的可行的裝配序列。裝配計(jì)劃也允許用戶設(shè)置查尋和查尋終止標(biāo)準(zhǔn)。例如,群體的大小,允許運(yùn)行時(shí)間的最大值,在最后的世代之內(nèi)必需的最大適宜值,對于最后的世代必需的平均最后適宜值,或者最后的世代應(yīng)該包含的唯一的裝配序列。
文中的核心內(nèi)容是從STEP CAD文件自動(dòng)提取設(shè)計(jì)信息,翻譯設(shè)計(jì)信息成幾何匯編限制信息,將設(shè)計(jì)信息轉(zhuǎn)化成幾何裝配約束信息,用一個(gè)裝配序列規(guī)劃來生成一個(gè)帶有最少的裝配再定位數(shù)字的可行性裝配序列,并且核實(shí)計(jì)劃者建議使用的裝配次序。此項(xiàng)研究大大提高了裝配序列規(guī)劃的效率和精確性,做到了CAD設(shè)計(jì)和裝配序列規(guī)劃高效率地自動(dòng)化集成。
[1]Bourjanlt,Sanderson,Homemde,et al.Contribution to a methoclolgical approach of automated assembly[M].Paris:InAutomation Methocology in Manufacturing Insdustry,1985:12-46.
[2]Sukhan Lee,Chunsik Yi.Tolerance analysis for assembly planning[A].Proceedings of the Fourth International Conference on Computer Integrated Manufacturing and Automation Technology.Troy,NYUSA,1994:306-311.
[3]Frommherz B,Homberger J.Automatic generation of precedence graphs[M].Switzerland:Proc.Int.Symposium on Industrial Robts,Lausanne,1988:453-466.
[4]Zha X F,Lim S Y,F(xiàn)ok S C.Integrated knowledgebased assembly sequence planning[J].International Journal of Advanced Manufacturing Technology,1998,14(1):50-64.
[5]Zha X F,Du H.A PDES/STEP-based model and system for concurrent integrated design and assembly planning[J].Computer-Aided Design,2002,14(8):1087-1110.
[6]趙付青.STEP標(biāo)準(zhǔn)實(shí)現(xiàn)方法的研究與應(yīng)用[J].工程圖學(xué)學(xué)報(bào),2002(4):1-8.
[7]時(shí)峰,盧炎麟.基于SDAI的STEP應(yīng)用協(xié)議的信息提取與建模[J].計(jì)算機(jī)應(yīng)用與工程,2003(23):127-128.
[8]廈云飛,趙偉.基于模擬退火遺傳算法的凸多面體間碰撞檢測算法研究[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2008,29(1):82-85.