薛 剛 顧凱端 杜 雄
(上海機床廠有限公司 上海 200093)
干涉檢查主要是判斷不同物體在空間是否占有相同區(qū)域的問題[1],主要分為二維干涉檢查和三維干涉檢查兩類。三維干涉檢查是數(shù)控仿真技術(shù)的基礎(chǔ),對此國內(nèi)外展開了大量的研究,目前干涉檢查主要包括以下方法[2]:
(1)離散樣本檢測法 對運動物體通過選定一個時間間隔得到一個時間序列,求出各運動物體在時間間隔中的位置和方向,采取靜態(tài)物體干涉檢查算法判斷是否發(fā)生干涉。該方法需要解決的主要難題是如何選取合適的時間間隔,如果時間間隔取得過長可能會出現(xiàn)中間結(jié)果無法判斷的問題;如果時間間隔取得過短就會造成計算的復(fù)雜性,導(dǎo)致計算效率降低。
(2)回掃空間法 運動物體在空間中掃略形成的空間體,通過回掃空間體相交區(qū)域進一步得出運動物體之間的干涉碰撞情況。該方法即使判斷出物體在運動過程產(chǎn)生干涉,很難得到準確的干涉時刻和位置。
(3)相交檢測法 將運動物體各幾何要素包括點、邊、面的運動軌跡表現(xiàn)成時間函數(shù)的方式,推導(dǎo)出滿足干涉條件下的方程組,通過對這些方程組的求解,可以得到運動物體發(fā)生干涉的時間和位置信息。該方法存在的主要問題是方程組的求解復(fù)雜,而且容易產(chǎn)生丟解的情況。
對于臥式復(fù)合磨削中心來說,干涉檢查是機床加工前執(zhí)行數(shù)控代碼的一次預(yù)檢查過程,可避免實際加工過程中砂輪與頭尾架以及工件發(fā)生的干涉而引起的安全事故。基于此目的,本文基于回掃空間法和相交檢測法提出一套干涉檢查算法,并利用刀柄工件進行算法的功能檢驗。
臥式復(fù)合磨削中心的頭尾架前后頂尖軸線、砂輪刀具所在的磨頭主軸軸線以及砂輪修整器的主軸軸線等與加工成形運動有關(guān)的軸線位于一個平面內(nèi),依靠砂輪架轉(zhuǎn)塔B軸的回轉(zhuǎn)切換實現(xiàn)各種型面的磨削加工。相對于多軸數(shù)控加工中心具有的復(fù)雜加工軌跡路線來說,臥式復(fù)合磨削中心的干涉檢查就顯得比較簡單。
由于臥式復(fù)合磨削中心的幾個砂輪刀具磨頭一般安裝在砂輪架轉(zhuǎn)塔體殼的外側(cè)且在防護罩中外露,在非切削過程的B軸回轉(zhuǎn)運動和切削過程的進給運動中砂輪容易與頭尾架和工件發(fā)生干涉,如果在砂輪刀具上選取一些特征點,通過判斷砂輪特征點和頭尾架、待加工工件的位置關(guān)系就可完成臥式復(fù)合磨削中心加工的干涉初步檢查。由于砂輪刀具的特征點位置特殊,其干涉檢查問題并不需要復(fù)雜的三維幾何體參與,經(jīng)探索干涉檢查可采用簡單的二維平面干涉檢查來解決。對于典型的帶有外圓砂輪、端面外圓砂輪和內(nèi)圓砂輪的臥式復(fù)合磨削中心[3],其二維干涉檢查特征點如圖1所示,包括頭尾架等靠近砂輪側(cè)的邊界線。
圖1 臥式復(fù)合磨削中心二維干涉檢查特征點示意圖
由于干涉檢查算法不止局限對砂輪與頭尾架和工件之間的干涉碰撞檢查,而且還可以對加工輸入的參數(shù)進行檢查,包括待加工工件信息、砂輪配置信息、數(shù)控加工相關(guān)信息,以此判斷輸入?yún)?shù)的正確性。在參數(shù)輸入正確的情況下導(dǎo)入數(shù)控加工信息,在算法內(nèi)部對是否干涉進行判斷,從而輸出結(jié)果判斷哪幾行數(shù)控代碼可能發(fā)生干涉問題,提醒操作人員注意,指導(dǎo)實際生產(chǎn),基于該思路設(shè)計的干涉檢查算法總體流程框圖如圖2所示。
圖2 干涉檢查算法流程圖
加工過程中,砂輪的回轉(zhuǎn)變換、工作臺的運動以及砂輪架導(dǎo)軌的進給運動,都會造成砂輪、工件以及頭尾架特征點的變動,這些變動皆可采用坐標變換以矩陣方式實現(xiàn)。對于二維干涉檢查算法,主要是在二維坐標平面內(nèi)采用坐標平移和旋轉(zhuǎn)變換。
根據(jù)坐標變換原理,齊次坐標點(x,y,1)T經(jīng)位移(a,b)平移后到達(x′,y′,1)T的坐標變換關(guān)系為:
齊次坐標點(x,y,1)T在原點繞 Z軸轉(zhuǎn)動角度θ后到達(x′,y′,1)T的坐標變換關(guān)系為:
如果不是在坐標原點而是在指定點進行的旋轉(zhuǎn)變換,可以采用變換的組合進行解決,即先將指定點坐標平移到坐標原點再進行旋轉(zhuǎn),最后又將旋轉(zhuǎn)后的坐標平移回指定點,變換過程可參考文獻[4],此處不再贅述。
按照臥式復(fù)合磨削中心二維簡圖用矩形來代表頭尾架以及工件外形包絡(luò)線開發(fā)的檢查算法雖然簡單,但其實用價值不高,局限性太大,尤其對于形狀各異、結(jié)構(gòu)較為復(fù)雜的待加工工件走不通。
實際加工過程中,不能依靠簡單幾何圖形變換之后的相互關(guān)系比較,經(jīng)探索得到一種較為簡潔的干涉檢查判斷依據(jù),其基本的數(shù)學原理如下:
(1)如果點位于所需判斷的區(qū)域外,沿該點向某方向做一條射線,則這條射線與區(qū)域的相交點個數(shù)必然為偶數(shù)(沒有交點,視為交點數(shù)為零)。
(2)如果點位于所需判斷的區(qū)域內(nèi),沿該點向某方向做一條射線,則這條射線與區(qū)域的相交點個數(shù)必然為奇數(shù)。
(3)如果點位于所需判斷的區(qū)域邊界上,需要報警,表明發(fā)生了重合。
如圖3所示,A點位于所需判斷的復(fù)雜區(qū)域外,由A點出發(fā)的射線和區(qū)域的交點個數(shù)為4,是偶數(shù);B點位于所需判斷的復(fù)雜區(qū)域內(nèi),由B點出發(fā)的射線和區(qū)域的交點個數(shù)為1,是奇數(shù)。
圖3 點和復(fù)雜區(qū)域關(guān)系圖
通過判斷交點個數(shù)就可以判斷是否和區(qū)域發(fā)生干涉。為了減少判斷次數(shù),可以先判斷該點是否落在這個復(fù)雜區(qū)域所外接的矩形區(qū)域內(nèi),即判斷該點的橫縱坐標和所在區(qū)域內(nèi)點的極限坐標值點的大小。如果坐標值位于外接的矩形內(nèi)就需進一步進行干涉檢查;如果不在外接矩形區(qū)域內(nèi),就開始下一個坐標點的判斷,直到所有點判斷完畢,則判斷結(jié)束,具體算法流程圖如圖4所示。
圖4 點位置判斷流程圖
通過對特征點是否在指定區(qū)域的判斷可得出干涉檢查結(jié)果,如果砂輪特征點在頭尾架或者工件所在區(qū)域內(nèi),那么砂輪和頭尾架或者工件就發(fā)生干涉,反之則不發(fā)生干涉。
對于用砂輪特征點坐標來判斷砂輪和頭尾架或者待加工工件之間的干涉檢查,如果只對靜態(tài)結(jié)果進行的判斷,只能說明在該區(qū)域沒有發(fā)生干涉,如果工作過程中發(fā)生干涉是無法判斷的。
為了解決這種情況采用了插值的思想,已知起始坐標點位置和已知所走過的路線軌跡,可以在起始點和終點位置之間按一定的間隔采集所走過點的坐標,將這些坐標分別和待檢查區(qū)域進行干涉檢查,如果點取得足夠密集那么相當于把點連成了線,這樣就可以避免在加工過程中產(chǎn)生干涉卻檢查不出來的情況,如圖5所示。插值的大小可根據(jù)其它機床實際加工的經(jīng)驗綜合得到。
圖5 中間結(jié)果干涉示意
干涉檢查是基于坐標點相對位置的判斷算法。對于指定機床,頭尾架特征點坐標可以方便獲得,然而對不同的加工工件,特征點坐標不同,需要用戶輸入的工件信息也不同。然而對一些加工工件外形較為復(fù)雜,需要輸入的點坐標過多,其實用性不強。為解決工件輸入的問題,根據(jù)磨削加工的特點,加工工件多數(shù)為軸對稱幾何體,可以只輸入一半特征點坐標,將工作量減少一半,磨削過程中忽略非加工面和非重要特征面,如退刀槽、小孔等,可以簡化輸入信息。
以如圖6所示的刀柄為例說明工件信息的導(dǎo)入。靠近頭架端為輸入工件信息的起始位置,Z坐標從0開始輸入,提取上述工件的特征點信息,得到一共11個特征點坐標,如表1所示。在實際應(yīng)用層面還可以通過導(dǎo)入用戶的工件信息,直接生成工件輪廓特征點坐標,這部分內(nèi)容有待后續(xù)開發(fā)。
圖6 刀柄三維圖
表1 刀柄工件特征點坐標
為了保障算法在絕對坐標和相對坐標下編程算法的通用性,對數(shù)控代碼進行解析,干涉檢查采用相對位移的驅(qū)動輸入形式。根據(jù)數(shù)控代碼解析出的相對位移值、當前所選砂輪和當前砂輪加工角度即可進行干涉檢查判斷。表2所示的是運動信息解析的參數(shù)和參量,通過直接調(diào)用上位機解析出的數(shù)控代碼信息就可實現(xiàn)這部分功能。
表2 運動信息解析的參數(shù)和參量
表2中,當工作臺由頭架方向朝尾架方向移動時,定義ΔZ為正,當砂輪靠近工作臺時,定義ΔX為正。定義砂輪正常加工圓柱表面時角度θ =0°;當加工位置繞B軸順時針旋轉(zhuǎn)為正,逆時針旋轉(zhuǎn)為負。定義選擇砂輪1時是外圓砂輪,選擇砂輪2時是端面外圓砂輪,選擇砂輪3時是內(nèi)圓砂輪。通過該解碼規(guī)則將加工位移信息依次儲存,通過干涉檢查算法調(diào)用每段加工信息,判斷對應(yīng)代碼是否發(fā)生干涉。
首先利用C++編程語言開發(fā)如圖7所示的底層參數(shù)輸入界面,底層參數(shù)信息包含了機床配置信息,頭尾架形狀和安裝位置信息等。
圖7 底層參數(shù)輸入界面
機床配置信息改變可以在這個界面進行修改,如果不改變就采用默認值,這樣在更換機床型號之后不用改動底層代碼,算法適用范圍更廣。
之后開發(fā)圖8所示的干涉檢查輸出界面,可以通過該界面完成頭架位置的調(diào)整,砂輪型號的更換,砂輪架回轉(zhuǎn)點位置的調(diào)整等,以及加載工件信息。干涉檢查對輸入?yún)?shù)的判斷是否合適,對砂輪是否干涉,在哪條指令和何處發(fā)生干涉給出提示,為機床正常加工提供保障。
圖8 干涉檢查輸出界面
這里以圖6、表1的刀柄工件為例進行驗證,調(diào)整砂輪架位置使外圓砂輪運動到頭架外側(cè)并與頭架發(fā)生干涉,此時圖9所示的軟件界面先是輸出刀柄輪廓圖,后是提示外圓砂輪和頭架有干涉產(chǎn)生,干涉檢查結(jié)果和預(yù)設(shè)的一致。
圖9 干涉結(jié)果顯示
基于臥式復(fù)合磨削中心,提出利用特征點位置坐標進行二維干涉檢查的坐標變換算法,利用C++開發(fā)了界面,以刀柄工件在典型的帶三個砂輪的砂輪架轉(zhuǎn)塔上完成了加工前干涉預(yù)檢查,避免了工件超加工范圍和B軸回轉(zhuǎn)不合理等問題。