張建,孟冬,劉禹
(中國船舶集團(tuán)第七一三研究所,鄭州 450000)
進(jìn)入21世紀(jì)以來,制造業(yè)在國民經(jīng)濟(jì)中占據(jù)越來越重要的地位,制造業(yè)是立國之本、強(qiáng)國之基。制造業(yè)的出路在于技術(shù)創(chuàng)新,國家現(xiàn)在提出:要用舉國之力大力發(fā)展“卡脖子”技術(shù)問題。我國的制造業(yè)已經(jīng)由傳統(tǒng)制造業(yè)全面邁入數(shù)字化、自動化時(shí)代。在當(dāng)代制造業(yè)中,處于基礎(chǔ)性地位的應(yīng)屬數(shù)控技術(shù)[1]。數(shù)控技術(shù)是一種先進(jìn)制造技術(shù),數(shù)控編程和數(shù)控仿真是數(shù)控加工過程中兩個(gè)重要的環(huán)節(jié)[2]。數(shù)控機(jī)床逐步由兩軸向三軸、五軸發(fā)展,機(jī)床類型逐步由車床、銑床,向加工中心、五軸聯(lián)動機(jī)床、車銑復(fù)合機(jī)床升級。對于多軸機(jī)床,由于存在空間刀軸旋轉(zhuǎn)情況,需要先通過空間坐標(biāo)計(jì)算,編寫后置處理程序文件,通過后置處理文件,才能將刀路文件轉(zhuǎn)化為機(jī)床識別的數(shù)控加工程序,這是所有多軸機(jī)床都需要做的前期準(zhǔn)備工作;后處理是數(shù)控加工中一個(gè)重要環(huán)節(jié),其主要任務(wù)是將CAM軟件生成的加工刀位軌跡源文件轉(zhuǎn)成特定機(jī)床可接受的數(shù)控代碼(NC)文件[3]。數(shù)控加工程序編制完成后,需要進(jìn)行仿真驗(yàn)證。多軸數(shù)控加工程序相對復(fù)雜,如何保證數(shù)控加工程序的正確性,消除數(shù)控機(jī)床的安全隱患,成為制造企業(yè)面臨的現(xiàn)實(shí)問題[4]。編寫多軸機(jī)床后置處理文件并進(jìn)行多軸機(jī)床數(shù)控加工程序仿真,需要采用數(shù)學(xué)和線性代數(shù)等知識進(jìn)行計(jì)算。本文以某車銑復(fù)合多軸機(jī)床為例,進(jìn)行五軸后置處理及仿真技術(shù)算法研究。
數(shù)控機(jī)床的運(yùn)動是通過數(shù)控程序來驅(qū)動的,數(shù)控程序是數(shù)控機(jī)床能識別的一系列數(shù)字或符號指令。數(shù)控程序的編制分為手工編程和自動編程。初期數(shù)控程序都是手工進(jìn)行編制,手工編程方法是根據(jù)零件的圖樣和工藝路線,參照機(jī)床操作系統(tǒng)的類型,直接編寫的加工程序。手工編程只能編制簡單、二維、三軸的加工程序,對于復(fù)雜的多軸、三維立體加工程序只能在計(jì)算機(jī)上采用編程軟件進(jìn)行編程,也就是自動編程。自動編程時(shí),首先使用建模軟件建立被加工零件的三維立體模型,然后使用加工軟件采用合適的工藝路線,編制零件的加工走刀軌跡,由加工軟件生成刀具路徑軌跡文件,這個(gè)文件叫刀具位置源文件,即CLSF文件(cutter location source file),CLSF文件是不能夠被機(jī)床的數(shù)控操作系統(tǒng)直接識別的,需要使用轉(zhuǎn)換器將CLSF文件編譯成數(shù)控機(jī)床能夠使用的數(shù)控程序,這就是后置處理。簡單的三軸程序直接進(jìn)行后置處理即可,復(fù)雜的多軸程序需要編程者根據(jù)使用的機(jī)床結(jié)構(gòu)類型,先進(jìn)行空間角度計(jì)算和坐標(biāo)位置變換計(jì)算,得出專用公式,然后采用合適的編程語言,將該公式寫入后置處理轉(zhuǎn)換器文件中,最后再使用該文件進(jìn)行后置處理。
眾所周知,空間有6個(gè)自由度,所以,空間坐標(biāo)系有6個(gè)坐標(biāo)軸:3個(gè)線性軸(X軸、Y軸、Z軸)和3個(gè)旋轉(zhuǎn)軸(繞X軸旋轉(zhuǎn)的A軸,繞Y軸旋轉(zhuǎn)的B軸,繞Z軸旋轉(zhuǎn)的C軸)。
數(shù)控機(jī)床按坐標(biāo)系中坐標(biāo)軸的數(shù)量,分為兩軸機(jī)床、三軸機(jī)床和多軸機(jī)床(四軸及四軸以上)。按加工方式數(shù)控機(jī)床分為數(shù)控車床、數(shù)控銑床、加工中心、五軸加工中心、車銑復(fù)合機(jī)床等。
對于兩軸或三軸數(shù)控機(jī)床,只有X軸、Y軸、Z軸的線性移動,沒有旋轉(zhuǎn)軸,刀軸矢量是固定不變的,用軟件編程時(shí)的刀心軌跡和實(shí)際機(jī)床運(yùn)動時(shí)的刀心軌跡一樣,不需要進(jìn)行坐標(biāo)轉(zhuǎn)換計(jì)算。
五軸機(jī)床主要采用X、Y、Z、A、B、C中任意5個(gè)坐標(biāo)的線性插補(bǔ)運(yùn)動[5],即五軸機(jī)床有3個(gè)線性軸(X軸、Y軸、Z軸)和2個(gè)旋轉(zhuǎn)軸(繞X軸和Y軸旋轉(zhuǎn)的A軸和B軸,或者繞Y軸和Z軸旋轉(zhuǎn)的B軸和C軸,或者繞X軸和Z軸旋轉(zhuǎn)的A軸和C軸)。由于有旋轉(zhuǎn)軸,當(dāng)工件發(fā)生旋轉(zhuǎn)或刀具產(chǎn)生擺動時(shí),工件上被加工點(diǎn)位置,即刀心位置,在旋轉(zhuǎn)前和旋轉(zhuǎn)后在機(jī)床坐標(biāo)系下的位置是不一樣的。機(jī)床的結(jié)構(gòu)不同,刀具的旋轉(zhuǎn)中心點(diǎn)也就不同,刀具和主軸的總擺長也不同。刀軸矢量在旋轉(zhuǎn)前和旋轉(zhuǎn)后也發(fā)生了變化,機(jī)床的結(jié)構(gòu)不同,實(shí)際的旋轉(zhuǎn)軸也不同,刀具矢量的算法也不同。這屬于三維空間坐標(biāo)系變換問題,需要根據(jù)機(jī)床的實(shí)際結(jié)構(gòu)及尺寸,計(jì)算出刀具的旋轉(zhuǎn)角度及旋轉(zhuǎn)前后這兩個(gè)位置的線性坐標(biāo)差值,從而推導(dǎo)出特定五軸機(jī)床的特定公式,采用合適的編程語言,將該公式寫入后置處理轉(zhuǎn)換器文件中,當(dāng)進(jìn)行編程和仿真時(shí),通過編程軟件設(shè)計(jì)好刀具軌跡路徑,調(diào)用編寫好的后置處理器文件,生成數(shù)控加工程序,與機(jī)床的控制系統(tǒng)相匹配。同樣,根據(jù)計(jì)算結(jié)果,在進(jìn)行五軸機(jī)床加工仿真時(shí),做相應(yīng)的數(shù)控機(jī)床數(shù)學(xué)模型結(jié)構(gòu)配置和運(yùn)動模型動態(tài)配置。
進(jìn)行五軸后處理之前,應(yīng)了解機(jī)床的種類型式[6]。不同結(jié)構(gòu)的五軸數(shù)控機(jī)床,坐標(biāo)系變換算法是不一樣的。本文就以某車銑復(fù)合機(jī)床為例,闡述五軸機(jī)床后置處理及仿真技術(shù)的算法。
圖1為某車銑復(fù)合機(jī)床的結(jié)構(gòu)示意圖。
圖1 某車銑復(fù)合機(jī)床控制軸示意圖
該車銑復(fù)合機(jī)床屬于多軸機(jī)床,共有9個(gè)坐標(biāo)軸,上刀塔包含3個(gè)線性軸X1、Y、Z1和1個(gè)旋轉(zhuǎn)軸B,下刀塔包含2個(gè)線性軸X2、Z2,主軸包含一個(gè)旋轉(zhuǎn)軸C1,副主軸包含一個(gè)線性軸Z3及一個(gè)旋轉(zhuǎn)軸C2。根據(jù)機(jī)床結(jié)構(gòu),主軸及上刀塔為通道1,副主軸與下刀塔為通道2。當(dāng)聯(lián)動加工時(shí)屬于五軸聯(lián)動機(jī)床(X1、Y、Z1三個(gè)線性軸,刀具軸擺動的B軸,工件回轉(zhuǎn)的C1軸)。
加工時(shí)參與聯(lián)動的模塊(機(jī)床、工件、刀具等)既要線性平移,又要空間旋轉(zhuǎn),因此,需要計(jì)算回轉(zhuǎn)軸的角度及刀心點(diǎn)在機(jī)床加工轉(zhuǎn)動后的實(shí)際坐標(biāo)值,這就需要考慮機(jī)床擺長、工件回轉(zhuǎn)中心點(diǎn)、刀具長度補(bǔ)償?shù)葐栴}。編程時(shí)使用CAM軟件生成刀具位置源文件(CLSF文件),刀位源文件中刀位的給出形式為刀心坐標(biāo)和刀軸矢量[7],通過后置處理,將它們轉(zhuǎn)換為機(jī)床的運(yùn)動坐標(biāo),包括各軸的旋轉(zhuǎn)角度和旋轉(zhuǎn)后的實(shí)際坐標(biāo)值。同樣,在仿真軟件中也需要相似的計(jì)算,包括回轉(zhuǎn)角度的計(jì)算,以及機(jī)床仿真轉(zhuǎn)動后的實(shí)際坐標(biāo)值計(jì)算。
使用計(jì)算機(jī)編程軟件(CAM軟件)編程時(shí),CAM軟件生成的刀具位置源文件(CLSF文件)基本都是類APT語言,如下:
GOTO/-115.902,254.042,185.934,-0.518,0.303,0.799
可以將該語句解釋為:GOTO/X,Y,Z,I,J,K。
X、Y、Z表示刀心在工件坐標(biāo)系的坐標(biāo)值,需要轉(zhuǎn)換成旋轉(zhuǎn)后的坐標(biāo)值;I、J、K為刀軸矢量在X、Y、Z坐標(biāo)軸的分量(機(jī)床坐標(biāo)系和工件坐標(biāo)系的方向一致),這就需要將I、J、K換算成B、C的角度。具體算法如下:
該車銑復(fù)合機(jī)床的C角度是通過工件的旋轉(zhuǎn)來完成的,C軸的旋轉(zhuǎn)范圍是0°~360°,而B角度是通過刀具的擺動來完成的,B軸的旋轉(zhuǎn)范圍是0°~180°;而國際標(biāo)準(zhǔn)規(guī)定,機(jī)床的運(yùn)動指的是刀具相對于工件的運(yùn)動。
如圖2所示,為了方便計(jì)算,先將刀軸矢量OP平移到坐標(biāo)系的原點(diǎn),由于繞Z坐標(biāo)軸旋轉(zhuǎn)C角度,所以需要將刀軸矢量OP投影到XY平面,即OP1,又由于繞Y軸旋轉(zhuǎn)B角度,所以需要將刀軸的投影矢量OP1旋轉(zhuǎn)到XZ平面,得到矢量OP2。矢量OP在X、Y、Z軸向的分量分別為:i、j、k。因此得出:
圖2 旋轉(zhuǎn)軸B、C的角度計(jì)算
特殊情況:當(dāng)i=0,j≥0時(shí),C=90°;當(dāng)i=0,j≤0時(shí),C=270°。
根據(jù)該車銑復(fù)合機(jī)床的結(jié)構(gòu)特點(diǎn),計(jì)算坐標(biāo)值時(shí)分為兩條路線:一條路線是工件的旋轉(zhuǎn)。計(jì)算原理是:將工件坐標(biāo)系的原點(diǎn)平移到C軸的回轉(zhuǎn)中心→繞C軸旋轉(zhuǎn)C角度→平移回工件坐標(biāo)系的原點(diǎn)。另一條路線是刀具的旋轉(zhuǎn)。計(jì)算原理是:將刀具繞PIVOT回轉(zhuǎn)中心旋轉(zhuǎn)B角度,計(jì)算出刀尖在工件坐標(biāo)系的坐標(biāo)。最后將兩條路線所得到的坐標(biāo)值相加。
設(shè)刀心在工件坐標(biāo)系的值分別為X0、Y0、Z0。工件坐標(biāo)系原點(diǎn)與C軸回轉(zhuǎn)中心的距離分別為dx、dy、dz;刀具的長度為H1;PIVOT的長度為H2。
為了簡化該車銑復(fù)合機(jī)床五軸聯(lián)動的算法,先要解決一般四軸機(jī)床的通用算法問題。
1)繞Z軸旋轉(zhuǎn)的坐標(biāo)變換。
如圖3所示,工件加工 點(diǎn) 從P1(X1,Y1)點(diǎn) 圍繞Z軸轉(zhuǎn)了C角度轉(zhuǎn)到P2(X2,Y2)點(diǎn),可以得出:
圖3 繞Z軸旋轉(zhuǎn)的坐標(biāo)值計(jì)算
用四階矩陣可以表示為
2)繞X軸旋轉(zhuǎn)的坐標(biāo)變換。
3)繞Y軸旋轉(zhuǎn)的坐標(biāo)變換。
該車銑復(fù)合五軸聯(lián)動的后置處理算法如下:
1)將工件坐標(biāo)系的原點(diǎn)平移到C軸的回轉(zhuǎn)中心,變換矩陣為:
2)繞C軸旋轉(zhuǎn)C角度,變換矩陣為
3)平移回到工件坐標(biāo)系的原點(diǎn),變換矩陣為
則:
4)將刀具繞PIVOT回轉(zhuǎn)中心旋轉(zhuǎn)B角度,計(jì)算出刀尖在工件坐標(biāo)系的坐標(biāo):
這樣最終坐標(biāo)變換為
以上就是某車銑復(fù)合五軸聯(lián)動加工時(shí)的后置處理和仿真算法。
在數(shù)控加工程序編制完成后,要在電腦上進(jìn)行模擬仿真,以確保程序的正確性,防止出現(xiàn)工件過切、刀具加工參數(shù)不合理、加工干涉、機(jī)床碰撞等錯(cuò)誤。同時(shí),通過加工程序仿真,可以及時(shí)了解加工時(shí)間,進(jìn)一步為制訂生產(chǎn)計(jì)劃、提高生產(chǎn)效率提供依據(jù)。
在進(jìn)行加工程序仿真之前,要了解機(jī)床的結(jié)構(gòu)及運(yùn)動特征,了解機(jī)床的控制系統(tǒng),然后建立機(jī)床的數(shù)學(xué)模型和運(yùn)動學(xué)模型。需要仿真時(shí),添加刀具(含刀具的長度和半徑補(bǔ)償)、毛坯、設(shè)置工件坐標(biāo)系,調(diào)入加工程序,進(jìn)行仿真。
下面就以某車銑復(fù)合機(jī)床為例,簡單說明仿真技術(shù)處理。
參考圖1所示某車銑復(fù)合機(jī)床控制軸示意圖進(jìn)行配置。該機(jī)床即有線性平移,又有空間旋轉(zhuǎn)。了解該機(jī)床的結(jié)構(gòu)型式及各部件的所屬關(guān)系,建立與之匹配的虛擬數(shù)學(xué)結(jié)構(gòu)模型。其數(shù)學(xué)模型首先是床身Base,床身上共有4條主線:一是車削第一旋轉(zhuǎn)主軸C1→夾具Fixture1→毛坯Stock1;二是銑削軸Z1→Y→X1→旋轉(zhuǎn)軸B→銑削主軸Spindle→銑削刀具Tool 1;三是下刀塔軸Z2→X2→下刀塔Turret→刀塔中的刀具Tool 2;四是車削軸Z3→車削第二旋轉(zhuǎn)主軸C2→夾具Fixture2→毛坯Stock2。具體配置明細(xì)如圖4所示。
圖4 某車銑復(fù)合機(jī)床的數(shù)學(xué)模型
數(shù)控機(jī)床的數(shù)學(xué)模型配置只是給出了機(jī)床的邏輯關(guān)系,完整的虛擬仿真機(jī)床還需要進(jìn)行數(shù)控機(jī)床運(yùn)動模型的動態(tài)配置。數(shù)控機(jī)床的運(yùn)動模型配置包含機(jī)床的三維立體幾何模型構(gòu)建和運(yùn)動狀態(tài)配置。
數(shù)控機(jī)床的三維立體幾何模型構(gòu)建是指通過測量或查閱廠家機(jī)床結(jié)構(gòu)圖樣,得到機(jī)床的實(shí)際結(jié)構(gòu)和幾何尺寸,然后利用三維造型軟件,構(gòu)建機(jī)床的三維立體模型。
數(shù)控機(jī)床的運(yùn)動狀態(tài)配置是指根據(jù)機(jī)床的運(yùn)動狀態(tài)屬性來配置模擬機(jī)床的運(yùn)動邏輯關(guān)系。當(dāng)進(jìn)行多軸聯(lián)動仿真時(shí),參照前述的五軸后置處理算法結(jié)果,通過開發(fā)特定的功能代碼(宏指令),將其封裝在仿真控制器中。由各種宏的排列組合將這種算法邏輯執(zhí)行于多軸指令中。
根據(jù)以上所配置的運(yùn)動學(xué)關(guān)系分別通過導(dǎo)入模型文件為各軸添加模型[8],即將機(jī)床的數(shù)學(xué)模型、三維立體幾何模型、運(yùn)動邏輯關(guān)系結(jié)合起來。
以某車銑復(fù)合機(jī)床為例舉例說明。該車銑復(fù)合機(jī)床的控制系統(tǒng)為SIEMENS 840D類型,圖5所示為該車銑復(fù)合機(jī)床的五軸聯(lián)動指令TRAORI的宏配置示例。
圖5 某車銑復(fù)合仿真控制器TRAORI配置
可以看出,宏編程語言與其他編程技術(shù)的語言有明顯的差異[9]。
其它的宏配置和TRAORI 的宏配置類似,因各種宏配置很多,這里不再一一例舉,根據(jù)需求進(jìn)行配置即可。
數(shù)控加工技術(shù)是科學(xué)技術(shù)飛速發(fā)展的產(chǎn)物[10]。隨著數(shù)控加工技術(shù)的發(fā)展,數(shù)控機(jī)床的結(jié)構(gòu)越來越復(fù)雜,加工方法、加工策略、加工工藝多樣化程度越來越高。對于多軸機(jī)床的后置處理算法和仿真技術(shù)處理,需要針對不同的機(jī)床進(jìn)行計(jì)算,但只要掌握了多軸機(jī)床后置處理算法和多軸仿真技術(shù)的運(yùn)算邏輯,就可以按照一定的基本流程進(jìn)行解算和處理。本文主要是以某車銑復(fù)合機(jī)床為例,提供了解決多軸機(jī)床后置理和仿真技術(shù)算法的一般流程。此算法的流程,為所有多軸機(jī)床的后置處理和加工仿真提供了方式、方法;解決了算法問題,才能實(shí)現(xiàn)產(chǎn)品的數(shù)控加工,具有重要意義。