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