王福元 徐家文
1.南京航空航天大學(xué),南京,210016 2.鹽城工學(xué)院,鹽城,224051
虛擬機(jī)床是數(shù)字化制造技術(shù)中一項(xiàng)重要技術(shù)內(nèi)容,它的最終目標(biāo)是為產(chǎn)品的制造建立一個(gè)虛擬加工環(huán)境,用于仿真和評(píng)估加工過(guò)程對(duì)產(chǎn)品質(zhì)量的影響。虛擬機(jī)床是隨著虛擬制造技術(shù)的發(fā)展而提出的一個(gè)新的研究領(lǐng)域,它作為數(shù)字化制造系統(tǒng)中的一個(gè)載體,其作用是真實(shí)地模擬機(jī)床切削加工情況,產(chǎn)生刀具的真實(shí)運(yùn)動(dòng)軌跡,形成工件的加工表面,完成碰撞、干涉檢驗(yàn)等功能。應(yīng)用的主要領(lǐng)域有加工過(guò)程模擬、數(shù)控加工編程、加工測(cè)量等。目前,國(guó)內(nèi)外對(duì)虛擬機(jī)床的研究主要集中在虛擬機(jī)床的結(jié)構(gòu)描述、加工模型建立、加工精度等方面[1-3]。虛擬機(jī)床結(jié)構(gòu)描述是對(duì)實(shí)際機(jī)床加工系統(tǒng)進(jìn)行客觀功能的描述并對(duì)其各種功能進(jìn)行綜合并模型化,其研究還處在對(duì)機(jī)床結(jié)構(gòu)模型的理論研究階段。虛擬機(jī)床加工模型包括切削力、切削加工參數(shù)等諸多因素,由于影響因素較多,到目前為止還沒(méi)有一個(gè)得到大家廣泛認(rèn)可的加工模型。目前,國(guó)內(nèi)對(duì)于虛擬數(shù)控機(jī)床的研究還處于起步階段,其研究成果[4-6]離實(shí)用還有一定的距離。本文從實(shí)用角度出發(fā),采用約束與尺寸驅(qū)動(dòng)[7-8]等方法建立了虛擬數(shù)控機(jī)床模型并進(jìn)行應(yīng)用,為復(fù)雜零件的數(shù)控加工提供加工模擬、編程、程序驗(yàn)證、加工干涉檢查、精度檢驗(yàn)等方法。
虛擬機(jī)床由機(jī)床裝配模型、刀具庫(kù)、夾具庫(kù)、控制系統(tǒng)等組成,如圖1所示。機(jī)床裝配模型是機(jī)床功能實(shí)現(xiàn)的載體,加工模擬、運(yùn)動(dòng)等功能都需要通過(guò)機(jī)床的裝配模型呈現(xiàn),刀具庫(kù)為機(jī)床的切削加工提供刀具,夾具庫(kù)為加工提供所需的夾具。機(jī)床裝配模型、工件、刀具、夾具等組成了一個(gè)虛擬加工環(huán)境。
圖1 虛擬數(shù)控機(jī)床組成
虛擬機(jī)床控制界面為虛擬機(jī)床的控制提供人機(jī)接口。機(jī)床運(yùn)動(dòng)控制、加工模擬、工藝數(shù)據(jù)提取、運(yùn)動(dòng)軌跡計(jì)算等操作通過(guò)控制界面實(shí)現(xiàn)。虛擬邏輯控制器作為機(jī)床的邏輯控制單元,其功能與實(shí)際機(jī)床的電氣控制系統(tǒng)相同。虛擬CNC控制器相當(dāng)于實(shí)際機(jī)床的數(shù)控系統(tǒng),它接受運(yùn)動(dòng)軌跡計(jì)算模塊的數(shù)據(jù)輸出,為虛擬機(jī)床的運(yùn)動(dòng)提供插補(bǔ)運(yùn)算,分配機(jī)床運(yùn)動(dòng)軸的位移量。工藝數(shù)據(jù)提取模塊從工件的表面提取加工表面的型面數(shù)據(jù),傳遞給運(yùn)動(dòng)軌跡計(jì)算模塊。主控系統(tǒng)是虛擬數(shù)控機(jī)床的核心,處理虛擬機(jī)床的一切事務(wù),接受控制界面的操作指令,對(duì)任務(wù)進(jìn)行分解,把任務(wù)分配給其他處理單元,同時(shí)接受其他模塊的輸入信號(hào)。
機(jī)床裝配模型的拓?fù)浣Y(jié)構(gòu)反映了機(jī)床各個(gè)部件之間的相互關(guān)系。一般來(lái)說(shuō),機(jī)床由主軸部件、工作臺(tái)部件、機(jī)床床身等部件構(gòu)成。為了簡(jiǎn)化裝配模型結(jié)構(gòu),裝配模型中可以主要考慮機(jī)床運(yùn)動(dòng)部件,省略機(jī)床的次要部件,例如中間傳動(dòng)零件、支撐零件、連接零件等。圖2所示為某機(jī)床的拓?fù)浣Y(jié)構(gòu),其工作臺(tái)由兩個(gè)直線移動(dòng)軸、回轉(zhuǎn)工作臺(tái)及底座等組成,主軸部件則由立柱、Z軸等組成。
該機(jī)床模型的拓?fù)浣Y(jié)構(gòu)采用樹(shù)形結(jié)構(gòu)表示,其中實(shí)例用來(lái)表示部件在裝配模型中的位置關(guān)系,標(biāo)識(shí)用來(lái)識(shí)別機(jī)床裝配模型在數(shù)據(jù)庫(kù)中存儲(chǔ)的一個(gè)個(gè)對(duì)象,根據(jù)作用不同又把它分為對(duì)象標(biāo)識(shí)、事例標(biāo)識(shí)、實(shí)例標(biāo)識(shí)、部件標(biāo)識(shí)等,相互之間可以查詢。有了標(biāo)識(shí)就可以對(duì)裝配模型遍歷,獲取控制對(duì)象的標(biāo)識(shí),根據(jù)控制要求對(duì)其進(jìn)行控制。
圖2 機(jī)床裝配模型的拓?fù)浣Y(jié)構(gòu)
在實(shí)物機(jī)床中,機(jī)床部件相互之間利用定位元件定位、連接件相連,實(shí)現(xiàn)位置約束。在虛擬環(huán)境中,機(jī)床之間的拓?fù)?、運(yùn)動(dòng)關(guān)系采用約束來(lái)實(shí)現(xiàn)。機(jī)床模型中運(yùn)動(dòng)關(guān)系的建立以各運(yùn)動(dòng)軸為中心,首先設(shè)置機(jī)床的各運(yùn)動(dòng)軸,然后在各運(yùn)動(dòng)軸與之相關(guān)聯(lián)的部件之間建立約束關(guān)系。在圖2所示的機(jī)床中,Y軸滑臺(tái)裝配在X軸滑臺(tái)上,跟隨X軸滑臺(tái)一起移動(dòng),C1軸回轉(zhuǎn)工作臺(tái)安裝在Y軸滑臺(tái)上,跟隨Y軸滑臺(tái)一起運(yùn)動(dòng),那么就需要在X軸滑臺(tái)、Y軸滑臺(tái)、C1軸回轉(zhuǎn)臺(tái)之間建立約束關(guān)系,如孔中心對(duì)齊、面貼合、平行、垂直等,當(dāng)約束關(guān)系建立之后,在裝配模型中只要控制 X、Y、Z、C1軸運(yùn)動(dòng)即可,其余與之相關(guān)聯(lián)的部件通過(guò)約束關(guān)系完成相應(yīng)的運(yùn)動(dòng)。
為了操縱裝配模型中的部件運(yùn)動(dòng),需建立一個(gè)與裝配幾何模型相一致的虛擬裝配數(shù)據(jù)模型,利用該數(shù)據(jù)模型把裝配模型的相關(guān)信息加載到數(shù)據(jù)模型中,實(shí)現(xiàn)位姿矩陣的變換運(yùn)算、數(shù)據(jù)存儲(chǔ)。我們建立的虛擬裝配數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)如下:
Typedef struct MC_Assembly
{
MC_Component *head_comp; //部件節(jié)點(diǎn)
MC_Movement *move; //運(yùn)動(dòng)節(jié)點(diǎn)
}
Typedef struct MC_Component
{
int instance_tag; //實(shí)例標(biāo)識(shí)
int occurence_tag; //事例標(biāo)識(shí)
char workpiece_name[130]; //部件名稱
char instance_name[80]; //實(shí)例名稱
Pos_Matrix ini_pos; //部件的位姿矩陣
double origin[3]; //零件的原點(diǎn)坐標(biāo)
double csys_matrix[9]; //部件坐標(biāo)系
struct MC_Component*children; //子部件
struct MC_Component*next;//同級(jí)相鄰部件
struct MC_Component*parent;//父部件
………………
}MC_Component;
在裝配數(shù)據(jù)模型 MC_Assembl中,MC_Component為部件節(jié)點(diǎn),它承載了部件的靜態(tài)特性,如部件名稱屬性、在裝配空間中的位置屬性、與其他相鄰部件關(guān)系屬性等,MC_Movement則承載部件的動(dòng)態(tài)特性。
通常機(jī)床的運(yùn)動(dòng)包括直線移動(dòng)、旋轉(zhuǎn)運(yùn)動(dòng)。若要對(duì)機(jī)床部件進(jìn)行驅(qū)動(dòng),必須確定運(yùn)動(dòng)部件在裝配空間的位置關(guān)系。為了表示部件在裝配空間的位置,需要用兩個(gè)坐標(biāo)系,即裝配空間坐標(biāo)系OXYZ與部件本身坐標(biāo)系OwXcYcZc,它在空間的位姿表示如圖3所示。部件在裝配空間運(yùn)動(dòng)可以描述為部件在裝配空間內(nèi)的移動(dòng)和部件繞自身坐標(biāo)系的轉(zhuǎn)動(dòng)。裝配模型組件運(yùn)動(dòng)還需要獲取移動(dòng)組件的標(biāo)識(shí)與它的位姿矩陣。位姿矩陣是用來(lái)描述裝配部件在裝配模型空間的位置與姿態(tài)的,它包括X 、Y 、Z軸的i、j、k分量以及部件自身坐標(biāo)系在裝配空間中的X、Y、Z分量。
圖3 裝配模型中的部件位姿
在以上建立的裝配模型空間中,運(yùn)動(dòng)部件的位姿矩陣表示為
式中,Torign為部件在裝配模型空間中的位置矩陣;Tcsys為部件在自身坐標(biāo)系中的位姿矩陣;Tpos為部件在裝配空間中的位姿矩陣。
根據(jù)以上矩陣就可以對(duì)部件進(jìn)行運(yùn)動(dòng)變換。
矩陣變換是實(shí)現(xiàn)各運(yùn)動(dòng)軸移動(dòng)或旋轉(zhuǎn)的基礎(chǔ),該矩陣根據(jù)組件的直線位移量或旋轉(zhuǎn)角度組合得到,該變換矩陣所需的參數(shù)矩陣為
T=[xdisydiszdisα β γ]
式中,xdis、ydis、zdis分別為部件在 X、Y 、Z 方向上的移動(dòng)分量;α、β、γ分別為部件繞X 、Y 、Z 軸旋轉(zhuǎn)的角度。
則組合得到的運(yùn)動(dòng)部件變換矩陣為
利用變換矩陣Ttrans對(duì)組件的原位姿矩陣Tpos進(jìn)行變換,變換過(guò)程為
通過(guò)以上變換便得到新的位姿態(tài)矩陣,利用新的位姿矩陣更新部件的原位姿矩陣,具體采用定位函數(shù)對(duì)部件進(jìn)行重新定位,使部件在裝配模型空間中移動(dòng)到新的位置。在具體實(shí)現(xiàn)時(shí),還需要編寫(xiě)矩陣的轉(zhuǎn)置、相乘、組合等矩陣基本運(yùn)算函數(shù)。
虛擬數(shù)控機(jī)床中各運(yùn)動(dòng)軸的運(yùn)動(dòng)采用尺寸驅(qū)動(dòng)方法實(shí)現(xiàn)。在數(shù)控機(jī)床中,由CNC系統(tǒng)完成加工路徑的插補(bǔ)運(yùn)算,分配各運(yùn)動(dòng)軸運(yùn)動(dòng)的脈沖數(shù),再通過(guò)驅(qū)動(dòng)器、步進(jìn)電機(jī)或伺服電機(jī)、傳動(dòng)機(jī)構(gòu)對(duì)工作臺(tái)、主軸進(jìn)行驅(qū)動(dòng),利用傳感器對(duì)實(shí)際位移量進(jìn)行反饋。虛擬數(shù)控機(jī)床中各運(yùn)動(dòng)軸驅(qū)動(dòng)與實(shí)物機(jī)床運(yùn)動(dòng)軸驅(qū)動(dòng)相似,同樣需要插補(bǔ)運(yùn)算,為各運(yùn)動(dòng)軸分配運(yùn)動(dòng)位移量,再通過(guò)矩陣變換技術(shù)對(duì)運(yùn)動(dòng)軸驅(qū)動(dòng),運(yùn)動(dòng)部件的驅(qū)動(dòng)過(guò)程如圖4所示。
圖4 運(yùn)動(dòng)部件尺寸驅(qū)動(dòng)過(guò)程
虛擬數(shù)控插補(bǔ)運(yùn)算類似于數(shù)控系統(tǒng)中軟件插補(bǔ)方法,在單位時(shí)間內(nèi)對(duì)加工路徑進(jìn)行插補(bǔ)運(yùn)算。虛擬 CNC插補(bǔ)模塊完成對(duì)加工路徑的插補(bǔ)運(yùn)算,輸出各個(gè)運(yùn)動(dòng)軸的脈沖序列。為了獲得與實(shí)際加工同樣的加工效果,采用定時(shí)模塊對(duì)脈沖輸出進(jìn)行分配,獲得脈沖序列,再通過(guò)矩陣變換、重新定位過(guò)程實(shí)現(xiàn)運(yùn)動(dòng)軸驅(qū)動(dòng)。
加工模擬不僅要模擬工件、刀具的運(yùn)動(dòng),還要模擬加工后的工件表面形狀與表面質(zhì)量。為了真實(shí)地模擬出加工后的表面,在運(yùn)動(dòng)過(guò)程中使工件與刀具連續(xù)做切割運(yùn)動(dòng),并移除工件與刀具相交部分,形成加工表面,加工模擬的實(shí)現(xiàn)過(guò)程如圖5所示。
圖5 加工模擬的實(shí)現(xiàn)過(guò)程
在UG裝配模型空間中,兩個(gè)幾何實(shí)體之間的邏輯運(yùn)算只能進(jìn)行一次,而加工仿真需要進(jìn)行若干次相交運(yùn)算才能形成工件的表面。為解決以上問(wèn)題,采用WAVE技術(shù)實(shí)現(xiàn),其步驟為:首先對(duì)裝配樹(shù)進(jìn)行遍歷獲取工件與陰極的標(biāo)識(shí),然后把工件設(shè)置為工作部件,查詢它的原型標(biāo)識(shí),再對(duì)原型標(biāo)識(shí)進(jìn)行遍歷,查找到與之進(jìn)行相交運(yùn)算的刀具實(shí)體標(biāo)識(shí),用同樣的方法得到工件的實(shí)體標(biāo)識(shí)。在獲取陰極與工件的實(shí)體標(biāo)識(shí)后,再經(jīng)過(guò)建立變換矩陣,建立鏈接實(shí)體,查詢鏈接實(shí)體特征,隱藏鏈接實(shí)體,斷開(kāi)鏈接實(shí)體等步驟,最后作兩個(gè)實(shí)體的相交運(yùn)算。在以上實(shí)現(xiàn)的過(guò)程中,必須正確運(yùn)用二次開(kāi)發(fā)函數(shù),對(duì)函數(shù)的功能、參數(shù)、返回值做出正確判斷,相交運(yùn)算才能夠?qū)崿F(xiàn)。
我們利用上述技術(shù)建立了五坐標(biāo)數(shù)控電解加工機(jī)床的裝配模型,如圖6所示。本裝配模型是在UG NX軟件裝配環(huán)境中建立的,機(jī)床由工作臺(tái)、床身、主軸等部件組成,運(yùn)動(dòng)軸包括 X、Y、Z、C w、C t 5個(gè)運(yùn)動(dòng)軸。
圖6 五坐標(biāo)虛擬數(shù)控電解加工機(jī)床裝配模型
整體葉輪加工是一個(gè)世界性的難題,在上述虛擬數(shù)控機(jī)床技術(shù)基礎(chǔ)上建立電解加工機(jī)床模型,利用它完成整體葉輪葉片加工仿真、加工路徑規(guī)劃、數(shù)控加工程序編程、加工干涉檢查等工作,為整體葉輪的加工提供數(shù)字化制造技術(shù)。該整體葉輪葉片電解加工采用數(shù)控展成法實(shí)現(xiàn),電解加工與切削加工不同之處在于電解加工中陰極(刀具)不需要做旋轉(zhuǎn)運(yùn)動(dòng),其他運(yùn)動(dòng)與數(shù)控切削加工相同。利用葉片專用模塊計(jì)算葉片加工的運(yùn)動(dòng)路徑,通過(guò)虛擬CNC模塊生成各運(yùn)動(dòng)軸的運(yùn)動(dòng)分量,其加工運(yùn)動(dòng)由虛擬機(jī)床的X、Y、Z、C w四軸運(yùn)動(dòng)合成,利用該虛擬五坐標(biāo)數(shù)控機(jī)床加工的葉片如圖7所示。
圖7 整體葉輪葉片虛擬加工結(jié)果
通過(guò)在虛擬數(shù)控機(jī)床中的加工模擬,對(duì)加工路徑進(jìn)行規(guī)劃,對(duì)運(yùn)動(dòng)過(guò)程中的運(yùn)動(dòng)干涉進(jìn)行檢查,最后通過(guò)數(shù)控后處理程序生成機(jī)床的數(shù)控加工程序。利用上述模擬結(jié)果及生成的數(shù)控加工程序加工的葉片形狀如圖8所示。
圖8 整體葉輪葉片加工試驗(yàn)結(jié)果
由加工結(jié)果可知,實(shí)際電解加工的結(jié)果與葉片模擬結(jié)果相一致。本虛擬數(shù)控機(jī)床采用的運(yùn)動(dòng)軸驅(qū)動(dòng)、動(dòng)態(tài)去除材料、運(yùn)動(dòng)軸位移實(shí)時(shí)分配等技術(shù)可用于其他領(lǐng)域的數(shù)控加工仿真技術(shù)中,可以解決零件制造中的技術(shù)難題,特別是復(fù)雜零件的數(shù)控加工,其應(yīng)用前景較好。
(1)建立了由機(jī)械部件、控制系統(tǒng)、人機(jī)接口等模塊組成的虛擬數(shù)控機(jī)床模型;采用裝配約束與尺寸驅(qū)動(dòng)技術(shù)實(shí)現(xiàn)了對(duì)機(jī)床各運(yùn)動(dòng)軸的驅(qū)動(dòng)。
(2)利用WAVE技術(shù)在裝配空間與建??臻g之間進(jìn)行對(duì)象鏈接、復(fù)制,相交運(yùn)算;采用軟件插補(bǔ)技術(shù)進(jìn)行運(yùn)動(dòng)軸移動(dòng)量分配,實(shí)現(xiàn)加工的動(dòng)態(tài)模擬,虛擬加工過(guò)程與實(shí)際加工過(guò)程相同,加工后的表面質(zhì)量與實(shí)際加工結(jié)果一致。
(3)建立了五坐標(biāo)虛擬數(shù)控機(jī)床模型,并將其應(yīng)用于整體葉輪葉片的數(shù)控電解加工,成功地解決了葉片加工中的加工模擬、加工路徑計(jì)算、加工自動(dòng)編程、運(yùn)動(dòng)干涉檢查等工作,該模型具有操作方便、過(guò)程直觀等優(yōu)點(diǎn),能提高工作效率,其應(yīng)用對(duì)實(shí)際加工具有指導(dǎo)意義。
[1] 楊海成.基于虛擬樣機(jī)的系統(tǒng)仿真技術(shù)[J].中國(guó)機(jī)械工程,1998,9(11):66-67.
[2] Waurzyniak P.CAD/CAM Software Advances[J].Manufacturing Engineering,2006,137(5):91-97.
[3] Schultz D F.Enhancing Multiple-axis Software[J].Cutting Tool Engineering,2008,60(7):36-38.
[4] 高峰,要艷紅,李艷,等.基于ObjectARX的車銑復(fù)合數(shù)控機(jī)床虛擬加工仿真研究[J].系統(tǒng)仿真學(xué)報(bào),2008,20(12):3183-3187.
[5] 徐新勝,方水良,李強(qiáng),等.裝配產(chǎn)品的變型設(shè)計(jì)研究[J].浙江大學(xué)學(xué)報(bào),2006,40(9):1652-1656.
[6] 武殿梁,羊潤(rùn)黨,馬登哲,等.虛擬裝配環(huán)境中的裝配模型表達(dá)技術(shù)研究[J].計(jì)算機(jī)集成制造系統(tǒng)CIMS,2004,10(11):1364-1369.
[7] 路懿.用CAD約束和尺寸驅(qū)動(dòng)技術(shù)分析平面機(jī)構(gòu)的運(yùn)動(dòng)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2002,14(10):972-976.
[8] 李群,陳五一,王瑞秋.基于UG二次開(kāi)發(fā)的葉輪刀位軌跡生成[J].計(jì)算機(jī)集成制造系統(tǒng),2007,13(3):548-552.