熊 毅 王 哲 唐建生 石社軒 陸 茵 蘇 君 高志華
(河南工業職業技術學院,河南南陽 473009)
數控加工程序編制完成后,需對加工程序進行正確性檢驗[1]。如果程序中存在錯誤,可能導致工件過切或者欠切、干涉和碰撞等問題。數控程序正確性已經成為影響生產率的重要因素之一,所以,對數控加工程序進行正確性檢驗是必不可少的步驟。
數控加工仿真是CAD/CAM系統的一項關鍵技術[2]。通過建模軟件和仿真,在計算機屏幕上按照車、銑、鉆、銼等加工方法把全部加工軌跡描述出來,使工程師能預先看到制造全過程,及時發現生產過程中的不足,并使制造成本保持在最低限度。
國內外許多學者對數控加工仿真進行了深入的研究,重點集中在實物建模和圖形顯示兩個方面[2]。實物的幾何建模,即利用一定的數據表達方法,將數控加工中的毛坯、機床、刀具、夾具等實物,在計算機中進行準確描述;圖形顯示,即將實物的數據模型在計算機中采用渲染著色、光照等環境模擬的手段,讓實物模型可視化。
數控加工仿真涉及造型技術,經歷了基于線框圖形的幾何仿真、基于直接實體造型的數控仿真以及基于離散空間的數控仿真[3]。同時,數控仿真正從幾何仿真走向物理仿真的研究,開發了基于數值分析和模擬來預測工件、刀具物理屬性的原形軟件,取得了許多研究成果。如:日本的Sony公司研制的FREDAM系統可對球頭銑刀加工自由曲面進行三維仿真,并進行干涉、碰撞檢查;英國Delcam公司的產品PowerMILL,動態仿真五軸加工過程機床各軸、各機構運動關系。
國內在仿真方面也取得了一些成果。如1994年清華大學和華中理工大學在國家高技術發展計劃(863)CIM主題支持下研制了由NC代碼驅動加工過程的仿真器HMPS;哈爾濱工業大學也在國防科工委“八五”預研項目柔性制造系統(FMS)關鍵技術研究計劃支持下,研制了數控加工過程三維動態圖形仿真器NCMPS。
經過多年的探索,學者們一致認為,數控加工仿真的關鍵技術主要有NC代碼解釋、圖形建模、仿真動畫和碰撞檢測等技術。
在CNC系統中,由于計算機無法直接根據數控程序進行加工,必須通過解釋器的轉換,將數控源程序轉化為計算機可以執行的中間結果,然后數控系統進行加工或者仿真。因此數控系統中的NC代碼解釋模塊是CNC系統的核心模塊[4]。數控編程是數控機床用于實際加工的先決條件,程序編寫的好壞直接影響到數控機床的加工質量和加工效率,因此,快速、準確地編制程序就成為數控機床及仿真系統發展和應用的一個重要環節[5]。
NC代碼解釋器的主要功能是以程序段為單位處理用戶程序,將其中的輪廓信息(如起點、終點、直線或圓?。?、加工速度和輔助功能信息,翻譯成計算機處理的格式,存放在指定的內存專用區域[6]。解釋器通常由語法分析器、詞法分析器以及加工信息儲存表組成,它的各組成部分功能如圖1所示。

詞法分析任務是對數控程序段進行初級錯誤檢查。語法分析是在詞法分析的基礎上,根據數控指令的規則對數控代碼進行逐行檢查,檢查出一些較高級的語法錯誤。最后制定數據結構來存儲NC代碼加工相應的信息。
語法分析時,掃描輸入字符串的各個字符,并且從中識別出一系列具有獨立意義的基本語法單位——標識[7]。先用正則式對程序中各個標識進行詞性描述,并指出在識別單詞時所應進行的詞義處理,然后應用詞法分析工具構造程序以對上述信息進行加工。
在文獻[8]中,作者利用C++語言實現,把數控程序編譯結果分為兩種類型:一類用于控制命令,通常是M、F、S、T等功能字和相應的功能值編譯結果,用動態數組Carray類記錄命令類型和命令功能值;另一類是描述軌跡的數據,通常是插補指令和行對應的坐標值編譯結果,用鏈表來保存插補坐標及信息。在對某段NC代碼解釋前,要將存儲該加工代碼信息的結構體中的各狀態量和數據量進行初始化[9]。
在文獻[10]中,通過引入Regex技術作為詞法、語法和語義分析的工具,使用所謂委托調用插補函數的方式,在Visual Studio 2005平臺上實現了一種面向開放式數控系統NC代碼解釋器。在文獻[11]中,作者采用了模塊化結構,模塊之間通過共享數據結構信息進行交互,采用函數指針數組和關鍵字分組表兩種方法,解決了關鍵字擴充和NC代碼功能轉移的問題,使該解釋器具有良好的擴充性和通用性,易于進行二次開發。在文獻[12]中,作者引入編譯技術,使用編譯工具IEX與YACC構造解釋器的詞法分析與語法分析模塊,并引入動態鏈接庫技術開發專用的G指令函數動態鏈接庫,從而使得所開發的NC代碼解釋器具有開放性。在文獻[13]中,作者給出了一種面向嵌入式差分插補數控系統平臺的NC代碼解釋器,定義了曲線插補的計數方向,并使用有效算法計算了插補計數長度。針對差分插補計算所需要的特殊數據格式,采用掃描策略,在完成NC代碼詞法和語法檢查的基礎上,初始化差分插補代碼的其他參數,最終將標準NC代碼(ISO3896)格式轉化為滿足差分插補需要的數據結構。
綜上所述,在NC代碼解釋中,其關鍵技術是目標代碼數據結構和解釋算法的構造,需達到簡單、容錯性強、可擴充的目的。
范守文[14]等人提出了一種基于特征的動態滑動算法,用于從零件CAD產生的圖形交換文件中識別基孔類型,提取基孔的形位參數。結合沖壓工藝研發了數控轉塔式沖床NC自動編程系統,可由工件CAD產生的DXF格式或IGES格式的圖形交換文件,自動生成工件的NC加工程序。王述洋[15]以 AutoCAD R14為開發平臺,綜合運用ObjectARX SDK、Visual C++6.0及CNC技術,開發出一種適用于CNC木工鏤銑、CNC線切割和CNC激光平面軌跡加工的集CAD/CNC APT/虛擬加工功能于一體的集成技術。該技術可直接將二維AutoCAD圖形快速自動轉換成二維CNC加工程序,并可進行虛擬加工實驗,解決了實際二維平面圖形加工CAD/CAM集成及其一體化的瓶頸問題。金宇松[16]等人利用UG提供的基本功能及其二次開發工具,開發出一套NC自動編程工具,實現了CAPP與NC編程的一體化。劉軍[17]等人根據當前加工位置的基本特征,生成對應的加工指令及S、F、T指令;根據對當前加工部位的幾何形狀的描述,生成坐標指令,其中的基本加工特征是由加工方式和工件信息描述體系中的特征模型和輔助模型所決定的。
數控加工的幾何仿真首要解決的問題就是數控機床幾何模型的建立。常用的建模技術主要有[18]:線框圖表示法、邊界表示法、掃描表示法、構造實體幾何法和八叉樹表示法。
仿真環境的圖形建模包括建立機床、刀具和毛坯在內的幾何模型[19]。機床是由床身、立柱、主軸和工作臺等部件組成。文獻[18]中采用了三角網格的建模方法,該算法通過利用OpenGL圖形函數,計算工件表面三角片頂點與刀具掃掠面之間的距離以及各三角片頂點高度值,修改自定義的數據結構,從而滿足仿真的要求。三角形網格模型表示法基于如下假設[20-21]:
①只有工件毛坯的上(外)表面才是加工表面;
<1),且各件產品是否為不合格品相互獨立.
②平行于刀軸的一條直線與工件毛坯上(外)表面的交點有且只有一個;
③工件毛坯的上(外)表面是通過每一個點的不同高度來表達加工工件的表面形狀。
在文獻[19]中,首先在三維CAD軟件中完成數控機床各零部件造型,然后將其導出生成標準的三維數據格式STL文件。在VB程序中讀取STL文件生成三維模型,然后利用OpenGL進行渲染;而刀具、夾具和毛坯通過OpenGL直接進行編程生成,通過OpenGL中的視圖變換函數調整其大小及位置。王吉林[22]采用UG作為造型軟件,通過它輸出DXF文件,利用OpenGL讀入DXF數據,重新繪制這些三維實體模型,最后用VC++編程來實現真實感圖形。盛亮[23]等人提出組斜環法實現動態管、錐類實體螺紋的構造,即用一組斜圓環式螺紋槽實體同圓柱體求交,斜圓環的間隔取為螺距的大小,螺紋槽實體由螺紋刀截面沿每一個斜圓環掃掠生成,如圖2。

在數控銑削仿真中,廣泛用到Z-MAP方法[24-25]。王鵬遠[26]等人在傳統的Z-MAP方法的基礎上改進了Z-MAP方法。算法思想如下:(1)在按照一定的離散精度將工件模型的底平面離散為一系列的網格后,以各網格點為起點、工件模型頂面為終點可以得到一系列的有向線段;(2)將所有的Z向線段與工件模型上表面的交點按照一定的規則以三角形的形式連接,構成的三角形網格面即可被視為工件模型的近似表示。
機床、刀具等靜態的幾何體的建模相對簡單,而工件的建模比較復雜。一方面,工件本身結構形狀復雜,另一方面,仿真過程中工件不斷被切削,形狀動態變化。綜合上述介紹,工件等復雜形體的建模概括為兩大類:第一類基于離散技術實現建模,這種技術易于實現,但其表面精度較低;第二類基于表面的網格剖分,這種技術描述形體表面較為精確,且有利于有限元分析,方便進行物理仿真建模,但其數據結構比較復雜。
經典的數控仿真方法是通過定時器每隔一時刻遍歷一次毛坯鏈表,判斷每一個節點是否被切削以及進行節點數據修改,最后重新顯示畫面。該過程實際是毛坯數據不斷更新與顯示的過程。
蒲志新[27]等人采用OpenGL雙緩沖區實現動畫仿真,避免了程序在運行時產生閃爍,從而使動畫看上去更加連續。動畫時使用光照以增加仿真真實感。雙緩存動畫技術就是多頁面切換技術,又稱為“頁面共振”技術。在主顯示頁顯示的同時,下一幅圖形可放置在工作頁面上,然后再把工作頁切換成主顯示頁。如此反復進行,每次用新圖形代替舊圖形,從而形成動畫效果。圖形顯示模塊主要負責刀具、夾具和主軸的繪制工作,而數據處理則負責插補運算和刀具切削軸的計算,實現了數據和顯示分離,具有較好的模塊性。
文獻[19]中采用基于單位高度小圓柱體的ZMAP算法。在仿真過程中,毛坯被細分化成單位高度的小圓柱薄片,并將形成每個薄片的數據結構存儲到鏈表中。通過NC程序的編譯,讀入刀具運動的坐標信息,通過確定工件上要加工部分的起點和終點,就可以計算出對應薄片在鏈表中的序號,也就得出了起始加工處的薄片序號和終點處的薄片序號。當NC程序編譯模塊計算出刀具下一步的插補位置時,就可以進行刀具與加工工件毛坯之間的布爾運算,根據運算結果更新對應薄片在數據鏈表中的信息。
文獻[28]中,車削過程仿真采用三步完成:取刀具,實現刀具運動,刀具實現工件上材料的切除。刀具的運動通過逐點比較法插補實現,材料切除是將被切下的部分涂成與背景一樣的顏色時實現的,因此這種方法只能用于二維仿真,不能用于銑削仿真。
駱勇駿[29]等人采用了播放式的仿真方法。該方法具有以下三個特點:①把刀具加工毛坯的動態顯示過程看成是一個播放的過程,每幅畫面都看成一幀;②大部分的數據分析處理工作應在仿真前完成;③在仿真過程中,計算機僅完成圖像顯示、定時器累計和執行簡單判斷語句的工作。文獻[22]中利用OpenGL提供的顯示表技術提高了顯示效率。
無論采用何種仿真算法,其算法必須和幾何建模方法一致,方便實時修改模型數據結構以實現仿真動畫。
碰撞檢測是加工過程仿真的重要內容,它對避免在真實加工中發生碰撞,造成工件報廢和設備損壞,甚至威脅到操作者的人身安全具有重要意義。近年來,許多專家學者對平面碰撞問題進行了深入的研究,提出了許多最優算法,例如:覃中平、張煥國提出了時間復雜度為O(logm+logn)的最優算法[30]。David Braff采用將凹多邊形分解為凸多邊形的方法來求解碰撞問題[31]等。R.K.Culley從時空的角度給出了發生碰撞的定義:即在某一個時刻 t,如果空間中位于 L1,L2,...,Ln的 n 個物體 S1,S2,...,Sn中,存在一對或多對物體同時占據某塊空間,那么就認為發生了碰撞[32]。
動態碰撞檢測在歷史上主要有兩類技術:第1類技術是一種基于在給定軌跡上反復利用靜態干涉檢測被稱為“單步檢測”的方法;第2類技術是基于產生稱之為“掃描實體”物體的技術。在現在的計算機圖形硬件條件下,單步檢測方法更適合于實時計算機圖形顯示。掃描體方法沒有單步檢測方法所具有的決定碰撞時間的靈活性,而且用掃描體來進行碰撞檢測,需要利用一個獨立的步驟來產生掃描實體。
Hahn采用層次包圍盒技術來加速多面體場景的碰撞檢測[33]。Moore則提出了兩個有效的碰撞檢測算法[34]。其一是用來處理三角剖分過的物體表面。由于任一物體表面均可表示成一系列三角面片,因而該碰撞檢測算法具有普遍性。該算法的缺點是,當景物為一復雜的雕塑曲面時,三角剖分可能產生大量的三角片,這會大大影響算法的效率。而另一算法則用來處理多面體環境的碰撞檢測。
胡忠泉[35]等人結合車削仿真加工的特點,把三維實體間的碰撞檢測簡化為二維多邊形之間的碰撞檢測,即將兩物體間的檢測變成平面內多邊形間的重疊性檢測。只要生成部件實體模型的多邊形之間沒有重疊現象,則兩個實體之間就不會存在碰撞干涉;反之則一定存在碰撞干涉。王占禮[36]等人采用基于固定時間段的碰撞檢測方法,在每隔Δt時間段,刀具從L1點移到L2點,構造刀尖頂點L2與工件軸線形成的加工平面,分別與夾具體、工件體和刀具體相交,構成三個切割平面,即夾具切面、工件切面和刀具切面。根據碰撞分類,選擇判斷刀具切面與工件切面或夾具切面是否相交,推斷碰撞是否發生。
盡管目前數控加工仿真的研究取得了一定成果,但總體技術與理想還有很大的差距,需要在今后進一步研究。今后的發展趨勢主要表現在:
(1)CAD/CAM/CAE/CAPP的集成化程度將不斷提高,從幾何仿真到幾何+物理仿真將是今后的發展趨勢??紤]切削參數、切削力及其他物理因素影響工件在加工過程中的受力、變形等,有限元分析將為物理仿真提供理論基礎;
(2)仿真系統的智能化程度將不斷提高。結合并行處理、人工智能、知識庫和專家系統等技術,開發具有高智能的數控仿真系統;
(3)仿真系統的網絡化。能夠與上層的計算機進行數據交換與共享,與CAD/CAM/PDM/ERP等系統進行無縫集成,能夠支持基于網絡的各種遠程數控服務,包括遠程在線編程、遠程數控加工仿真、遠程加工監測等;
(4)仿真系統功能的完整性。包括基本的機床操作、程序編制、NC程序驗證、刀具庫、工件庫、工件虛擬裝夾、工件質量檢測、機床通訊和二次開發接口等;
(5)檢驗仿真效果的優劣——仿真的評價體系的研究,是一種評估手段對仿真效果進行檢驗,這也是目前預感亟需研究解決的問題。
[1]楊胡坤.多坐標數控仿真技術研究[D].大慶:大慶石油學院,2005.
[2]戴寧.基于實體布爾運算的數控車削仿真系統高級技術的研究與實現[D].南京:南京航空航天大學,2003.
[3]馬騁.數控車床加工仿真系統設計[D].濟南:山東大學,2007.
[4]寥德崗.開放式數控系統的研究及其發展現狀[J].機械,1999(3):13-15.
[5]劉軍,高曉莉,馬燕如,等.軸類零件NC自動編程及加工仿真系統[J].組合機床與自動化加工技術,2007(5):82-83.
[6]張承瑞,單誠.數控G代碼解釋器的設計與實現[J].山東大學學報:工學版,2002,20(6):566 -568.
[7]南雁.基于虛擬數控加工的NC代碼翻譯[D].西安:西北工業大學,2005.
[8]任松濤,秦現生,白晶.NC代碼解釋器的開發[J].中國制造業信息化,2007,36(5):54 -57.
[9]甘明,袁正萍,林桂清.基于WinCE嵌入式數控系統NC代碼解釋器的設計[J].組合機床與自動化加工技術,2009(11):72-74.
[10]張慶,姚錫凡.一種開放式數控系統NC代碼解釋器設計與實現[J].組合機床與自動化加工技術,2010(2):59-61,65.
[11]王尚斌,李家霽,王品,等.虛擬數控加工中NC代碼解釋技術的研究與實現[J].組合機床與自動化加工技術,2009(2):77-80.
[12]伍抗逆,李斌,陳吉紅.面向開放式數控系統平臺的 NC代碼解釋器開發[J].中國機械工程,2006,17(2):168 -171.
[13]單東日,高立營,陳向東,等.面向差分插補數控系統平臺的NC代碼解釋器開發[J].制造技術與機床,2008(12):81-84.
[14]范守文,黃大貴.數控轉塔式沖床NC自動編程研究[J].電子科技大學學報,1997,26(5):515 -518.
[15]王述洋.線切割與鏤銑圖形的CNC自動編程及虛擬加工技術研究[J].林業機械與木工設備,2001,29(12):11 -15.
[16]金宇松,李蓓智,王慶霞.基于典型工藝的NC自動編程工具[J].組合機床與自動化加工技術,2004(8):1-2,5.
[17]劉軍,高曉莉,馬燕如,等.軸類零件NC自動編程及加工仿真系統[J].組合機床與自動化加工技術,2007(5):82 -83,87.
[18]馬立新.基于虛擬環境的數控仿真系統的開發[D].保定:華北電力大學,2007.
[19]馬銀戌,嚴忠.基于VB和OpenGL的數控車削仿真系統研究[J].機械工程師,2008(8):43-44.
[20]張化楠,葉伯生,陽道善.數控銑床加工真實感仿真的實現[J].組合機床與自動化技術,2001(10):5-7.
[21]Jaler V,Lar R W H,Green M.Real- time multi- resolution modeling for complex virtual environments[M].In:Proc VRST96,Hongkong,1996,109 -118.
[22]王吉林.數控機床虛擬仿真軟件的設計與實現[J].煤炭技術,2010,29(5):28 -30.
[23]盛亮,廖文和.實體數控車削仿真關鍵技術的研究[J].中國機械工程,2003,14(18):1580 -1583.
[24]Lemeshewsky G P.Muhispeetral multisensor image fusion using wavelet transiorms[J].Proc SPIE,1999,3716:214.
[25]Zhang Z,Blum R S.A categorization of muhiscaledecompositon-based image fusion schemes with a performance study for a digital camera application[J].Proc of IEEE,1999,87(8):l315.
[26]王鵬遠,韓麗.三軸數控銑削仿真系統關鍵技術的研究與實現[J].鄭州輕工業學院學報:自然科學版,2009,24(6):90 -92,103.
[27]蒲志新,古艷豐,李贏.基于OpenGL數控車削仿真的軟件實現[J].機床電器,2004(2):14 -16.
[28]曹文杰,胡德計,徐燕申.基于面向對象原理實現數控車削仿真[J].機電一體化,2001(1):50 -52.
[29]駱勇駿,葉邦彥.基于數控加工工藝驗證的仿真方法研究[J].組合機床與自動化加工技術,2009(8):99-104.
[30]覃中平,張煥國.確定凸多邊形平移時最初碰撞部位的最優算法[J].計算機學報,1992,15(3):171-177.
[31]David Baraff.Interactive simulation of solid rigid bodies[J].IEEE Computer Graphics&Applications,1995,15(5):63 - 75.
[32]Cullev R K,Kempf K G.A collision detection algorithm based on velocty and distance boun d[C].IEEE International Conference on Robotics and Automations Proceeding,1986.
[33]Hahn J K.Realistic animation of rigid bodies[J].Computer Graphics,1988,22(4):299 -308.
[34]Moore M,Wilhelms J.Collision detection and response for computer animation[J].Computer Graphics,1988,22(4):289 -298.
[35]胡忠泉,王龍山,王義強,等.三維車削仿真的碰撞檢測[J].吉林大學學報:工學版,2006,36(3):95 -98.
[36]王占禮,杜爽,王堯.虛擬制造中的數控車削仿真加工[J].電子機械工程,2006,22(2):47 -49,63.