江 磊,張越新凱,梁 彬,丁國富
(西南交通大學(xué),成都 610031)
數(shù)控加工仿真技術(shù)依賴于多種先進技術(shù)的交叉集成,通過計算機技術(shù)與虛擬現(xiàn)實技術(shù)建立加工仿真環(huán)境,結(jié)合數(shù)控技術(shù)與運動算法實現(xiàn)仿真機床的運動控制。由于數(shù)控加工仿真技術(shù)可實現(xiàn)機床加工狀態(tài)的預(yù)先分析與工藝優(yōu)化,并且五軸數(shù)控加工由于刀具位姿和機床運動的動態(tài)可變,因此五軸數(shù)控機床加工仿真技術(shù)的應(yīng)用需求愈加迫切。
數(shù)控加工仿真技術(shù)包括三維仿真引擎、模型切削算法以及機床運動位姿計算等。針對三維仿真引擎,現(xiàn)有的研究主要圍繞于Dexel表達(dá)法[1–2]、離散矢量求交法[3]、三角面片離散法[4]等仿真引擎算法展開,并成功搭建了圖形學(xué)仿真環(huán)境。圍繞模型切削算法,目前的研究主要針對布爾運算[5]、四叉樹表達(dá)法[6]、八叉樹表達(dá)法[7]等,實現(xiàn)了對模型體的高精度切削仿真。而在機床運動位姿計算方面,Bohez[8]、彭健鈞[9]、肖通[10]等對五軸數(shù)控機床刀具運動仿真算法進行了研究,采用刀具掃描體的方式表達(dá)刀具運動軌跡,但未能對刀具仿真運動軌跡進行精確表達(dá)。
綜上所述,數(shù)控加工仿真技術(shù)在三維仿真引擎與模型切削算法方面已形成較為完整的技術(shù)體系,但在機床運動位姿計算上還存在精度不足,如未考慮數(shù)控系統(tǒng)指令模式、加減速控制以及機床幾何誤差等約束條件。針對上述問題,本文基于五軸機床拓?fù)浣Y(jié)構(gòu),重點考慮仿真空間中對于刀具運動軌跡密化計算與時間標(biāo)記計算,并引入五軸數(shù)控機床運動軸幾何誤差參數(shù),研究機床仿真模型實際位姿變換矩陣,保證機床仿真運動過程的準(zhǔn)確性。
五軸數(shù)控機床仿真運動位姿計算方法主要用于對機床仿真運動過程的精確控制,其實現(xiàn)需要借助于對機床仿真拓?fù)浣Y(jié)構(gòu)定義、刀具位姿仿真密化計算與機床部件運動位姿計算。計算流程如圖1所示。
圖1 五軸數(shù)控機床仿真運動位姿計算流程Fig.1 Calculation flow of simulation movement position and attitude of five-axis CNC machine tool
(1)五軸數(shù)控機床仿真拓?fù)浣Y(jié)構(gòu)定義。
五軸數(shù)控機床運動結(jié)構(gòu)可視為3個平動進給軸與2個轉(zhuǎn)動進給軸的串聯(lián)運動形式,共同實現(xiàn)刀具相對工件的位姿變化。為了實現(xiàn)仿真機床建模,將機床運動軸定義為運動節(jié)點和與之固聯(lián)的幾何模型,以及依附于其節(jié)點坐標(biāo)系、模型坐標(biāo)系、編程坐標(biāo)系等。
(2)基于數(shù)控系統(tǒng)的刀具位姿仿真密化。
為了實現(xiàn)基于NC程序驅(qū)動的加工仿真過程,需要按照機床數(shù)控系統(tǒng)規(guī)則,從NC程序中提取機床運動數(shù)據(jù)。但是,目前NC程序段中的運動數(shù)據(jù)均為低密度的離散數(shù)據(jù),若直接使用不僅將導(dǎo)致無法形成連續(xù)的仿真運動過程,而且運動軌跡與真實機床運動過程存在較大的偏差。因此,需要將機床運動數(shù)據(jù)轉(zhuǎn)換為刀具位姿數(shù)據(jù),并進行仿真密化計算、時間標(biāo)記計算與轉(zhuǎn)動軸轉(zhuǎn)角計算,從而獲得較為平滑的機床模型運動數(shù)據(jù)。
(3)基于仿真坐標(biāo)系的機床模型運動位姿計算。
以平滑后的機床模型運動數(shù)據(jù)與機床拓?fù)浣Y(jié)構(gòu)為基礎(chǔ),推導(dǎo)機床仿真運動傳遞關(guān)系,獲得機床模型理論位姿計算方法,結(jié)合機床實際運動軸幾何誤差項,獲得機床模型實際位姿計算方法。
數(shù)控機床運動系統(tǒng)是由夾具、工作臺、床身、各進給軸、刀具等組成的具有精密運動控制的復(fù)雜機械系統(tǒng)[11]。由剛體的多體運動學(xué)理論可知,五軸數(shù)控機床的每個運動部件均可簡化為對應(yīng)的拓?fù)涔?jié)點[12]。拓?fù)涔?jié)點分為運動型與功能型(即主軸、刀具、夾具、毛坯、工件、床身等)兩種,其中運動型拓?fù)涔?jié)點可進一步分為平動型(即機床X、Y、Z平動軸)與轉(zhuǎn)動型(即機床A、B、C轉(zhuǎn)動軸)。在進行機床仿真運動位姿計算時,為了描述機床運動的層級傳遞關(guān)系,定義機床床身節(jié)點層次為0級,其余節(jié)點按聯(lián)接關(guān)系依次進行層次編號,直到刀具和毛坯節(jié)點結(jié)束,形成機床床身到工件和機床床身到刀具的兩條單向運動鏈。以拓?fù)浣Y(jié)構(gòu)為WYXZCAT的五軸數(shù)控機床為例,其拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 五軸數(shù)控機床拓?fù)浣Y(jié)構(gòu)(以WYXZCAT為例)Fig.2 Topology structure of five-axis CNC machine tool (take WYXZCAT as an example)
機床模型為數(shù)控機床部件在仿真空間中的幾何映射[13],仿真機床通常使用三維模型導(dǎo)入(如stl、igs等格式的三維模型文件)或者參數(shù)化建模的方式構(gòu)建。雖然實際上機床結(jié)構(gòu)復(fù)雜,但是很多機床部件(如液壓部件、機床外殼等)并沒有直接參與加工仿真中的工件切除,可在不丟失仿真功能精度的條件下對機床模型進行簡化。因此,可將數(shù)控機床仿真模型簡化為運動軸模型、主軸模型、刀具模型、毛坯模型以及工作臺模型等,模型實例如圖3(a)所示。模型的位姿依附于對應(yīng)的拓?fù)涔?jié)點,并隨節(jié)點位姿變化而變化??梢酝ㄟ^機床模型外表面的幾何特征參數(shù)對加工過程進行碰撞干涉檢測,模型表面特征如圖3(b)所示。
圖3 機床模型實例Fig.3 Example of machine tool model
按照右手直角笛卡爾坐標(biāo)系的定義規(guī)則,定義下列坐標(biāo)系,并通過坐標(biāo)系的原點和坐標(biāo)軸矢量表達(dá)其空間位姿關(guān)系。
(1)仿真坐標(biāo)系定義。
為了在仿真空間中準(zhǔn)確統(tǒng)一地描述機床運動,定義固定在仿真空間內(nèi)的仿真坐標(biāo)系SCS,定義點OSCS為其坐標(biāo)系原點,矢量VX_SCS、VY_SCS、VZ_SCS表達(dá)其坐標(biāo)軸方向。仿真坐標(biāo)系位姿參數(shù)數(shù)據(jù)如表1所示。
表1 仿真坐標(biāo)系位姿數(shù)據(jù)Table 1 Simulated coordinate system position and attitude data
(2)編程坐標(biāo)系定義。
為了實現(xiàn)在NC驅(qū)動下的機床仿真運動與實際運動的一致性,滿足機床加工工藝要求,定義編程坐標(biāo)系PCS,其也為刀具位姿仿真密化計算的坐標(biāo)基準(zhǔn)。定義點OPCS為其坐標(biāo)系原點,矢量VX_PCS、VY_PCS、VZ_PCS表達(dá)其坐標(biāo)軸方向。編程坐標(biāo)系位姿參數(shù)數(shù)據(jù)如表2所示。
表2 編程坐標(biāo)系位姿數(shù)據(jù)(基于仿真坐標(biāo)系)Table 2 Programmatic coordinate system position and attitude data (based on a simulated coordinate system)
(3)節(jié)點坐標(biāo)系定義。
為了準(zhǔn)確描述拓?fù)涔?jié)點的坐標(biāo)和方向,在節(jié)點上固聯(lián)對應(yīng)的節(jié)點坐標(biāo)系NCS。以平動軸節(jié)點X為例,定義點OX_NCS為其坐標(biāo)系原點,矢量VX_X_NCS、VX_Y_NCS、VX_Z_NCS表 達(dá)其坐標(biāo)軸方向。平動軸節(jié)點X坐標(biāo)系位姿參數(shù)數(shù)據(jù)如表3所示。其他節(jié)點坐標(biāo)系定義與之類似,不再贅述。
表3 平動軸X節(jié)點坐標(biāo)系位姿數(shù)據(jù)(基于仿真坐標(biāo)系)Table 3 Position and attitude data of translation axis X node coordinate system (based on a simulated coordinate system)
(4)模型坐標(biāo)系定義。
為了準(zhǔn)確描述機床各模型的坐標(biāo)和方向,在模型上固聯(lián)對應(yīng)的模型坐標(biāo)系UCS。在同一節(jié)點下可包含多個模型,需對其進行編號。以平動軸節(jié)點X下的第n個模型為例,定義點OX_n_UCS為其坐標(biāo)系原點,矢量VX_X_n_UCS、VY_X_n_UCS、VZ_X_n_UCS表達(dá)其坐標(biāo)軸方向。平動軸節(jié)點第n個模型的模型坐標(biāo)系位姿參數(shù)數(shù)據(jù)如表4所示。其他模型坐標(biāo)系定義與之類似,不再贅述。
表4 平動軸X節(jié)點模型坐標(biāo)系位姿數(shù)據(jù)(基于仿真坐標(biāo)系)Table 4 Position and attitude data of translation axis X node model coordinate system(based on a simulated coordinate system)
不同數(shù)控系統(tǒng)的刀位軌跡插補算法存在差異,并且同一數(shù)控系統(tǒng)也存在不同插補模式。以西門子840D五軸數(shù)控系統(tǒng)為例,其G01指令存在線性插補ORIAXES、大圓插補ORIVECT、錐面插補ORICONCW 3種模式。為了確保機床仿真運動的準(zhǔn)確性,需在NC程序離散的位姿數(shù)據(jù)基礎(chǔ)上,對不同數(shù)控運動指令的刀具位姿進行密化。本文以G01指令的大圓插補模式為例,說明刀具軌跡仿真密化的計算流程。
刀具位姿仿真密化計算分為NC程序解析、密化次數(shù)計算、刀具軌跡仿真密化位姿計算增減內(nèi)容、刀具軌跡仿真密化時間標(biāo)記計算與機床轉(zhuǎn)動軸轉(zhuǎn)角計算5個步驟,其流程如圖4所示。
圖4 刀具位姿仿真密化計算流程Fig.4 Tool position and attitude simulation densification calculation process
(1)NC程序解析。
根據(jù)西門子840D數(shù)控系統(tǒng)定義,NC程序的指令包括各種功能字符與運動數(shù)據(jù)。由于仿真密化計算僅對NC程序中的運動數(shù)據(jù)進行處理,故需對運動數(shù)據(jù)進行提取,稱該過程為NC程序解析。
(2)密化次數(shù)計算。
定義刀位點間的密化間距λ和刀軸間的密化轉(zhuǎn)角φ。將密化位姿計算精度值作為輸入項,對密化間距λ和密化轉(zhuǎn)角φ進行等分,將兩者等分次數(shù)進行比較,更大值即為密化次數(shù)q。
(3)刀具軌跡仿真密化位姿計算。
通過機床多體運動學(xué)計算方式,將NC運動數(shù)據(jù)轉(zhuǎn)變?yōu)榈遁S矢量數(shù)據(jù),并在此基礎(chǔ)上進行刀位坐標(biāo)和刀軸矢量的密化計算,得到密化后的刀具位姿數(shù)據(jù)。
(4)刀具軌跡仿真密化時間標(biāo)記計算。
通過S型加減速控制對密化后的刀具位姿數(shù)據(jù)進行運動規(guī)劃,建立密化后運動數(shù)據(jù)與運動時間的關(guān)系,獲得刀具軌跡仿真密化時間標(biāo)記。
(5)機床轉(zhuǎn)動軸轉(zhuǎn)角計算。
將密化后的刀軸矢量通過機床多體運動學(xué)逆運算,得到密化后的刀軸矢量對應(yīng)的機床轉(zhuǎn)動軸轉(zhuǎn)角。
在完成NC程序解析和密化次數(shù)計算的基礎(chǔ)上,結(jié)合大圓插補ORIVECT所具備的扇形刀具軌跡特征,完成對刀軸矢量與刀尖點坐標(biāo)的密化計算。
(1)刀軸矢量轉(zhuǎn)換。
設(shè)NC程序解析得到的第m行程序的轉(zhuǎn)角數(shù)據(jù)為Cm、Am,則該行程序轉(zhuǎn)角數(shù)據(jù)的目標(biāo)刀軸矢量為
(2)刀軸矢量與坐標(biāo)密化計算。
根據(jù)第m行與第m–1行刀軸矢量VPCS_m、VPCS_m–1及密化次數(shù)q,可得到刀具位姿仿真密化過程中的刀軸矢量遞增角度為
根據(jù)遞增角度θ進行刀軸矢量密化計算,可得第m行NC程序運動數(shù)據(jù)的第t段刀軸矢量密化結(jié)果為
設(shè)NC程序解析得到的第m行與第m–1行程序的刀尖點數(shù)據(jù)為(Xm,Ym,Zm)與(Xm–1,Ym–1,Zm–1),得到密化后的第t段刀尖點坐標(biāo)為
不同的數(shù)控系統(tǒng)對于刀具軌跡控制,不僅包括刀具位姿控制,而且還包括刀具進給加減速控制。為了準(zhǔn)確對刀具軌跡運動過程進行仿真,將根據(jù)數(shù)控系統(tǒng)的加減速控制策略,在刀具密化位姿計算的結(jié)果上完成對應(yīng)的時間標(biāo)記計算。S型加減速控制是一種數(shù)控系統(tǒng)比較常見的控制策略[14],本文以常用的S型加減速為例說明具體的計算過程。
將S型加減速簡化為變加速段、勻速段、變減速段3個階段。根據(jù)第m行NC程序起止刀具位姿數(shù)據(jù),其在3個階段的位移量與運動速度關(guān)系可表達(dá)為
式中,SPCS_m為第m行起止點的距離;SPCS_m_1、SPCS_m_2、SPCS_m_3為第m行密化后的變加速段、勻速段、變減速段的位移量;F為指令進給速度;vPCS_s為程序起始速度;vPCS_e為程序終止速度;TPCS_m_1、TPCS_m_2、TPCS_m_3為 第m行密化后的變加速段、勻速段、變減速段的運動時間。
進一步可得第m行密化后的刀具位姿在3個階段所對應(yīng)的整體運動時間為
式中,aPCS為仿真運動加速度。
定義刀具每段密化位姿在第m行的時間標(biāo)記tPCS_m_t,根據(jù)刀具密化位姿在不同的加減速階段,可得
為準(zhǔn)確描述機床仿真運動,采用齊次坐標(biāo)變換矩陣計算各節(jié)點相對初始狀態(tài)的位姿變化量,其中平動軸節(jié)點運動變換矩陣如式(8)~(10)所示。
式中,SXPCS_m_t、SYPCS_m_t、SZPCS_m_t為第m行第t段密化后平動軸運動量;M為平移運動。轉(zhuǎn)動軸節(jié)點運動變換矩陣如式(11)~(13)所示。
式中,APCS_m_t、BPCS_m_t、CPCS_m_t為第m行第t段密化后轉(zhuǎn)動軸運動量;R為旋轉(zhuǎn)運動。
根據(jù)節(jié)點的拓?fù)鋵蛹墸柚?jié)點運動變換矩陣表達(dá)各拓?fù)浣Y(jié)構(gòu)節(jié)點的位姿傳遞關(guān)系,可得機床模型理論位姿計算的運動變換矩陣,如表5所示。
為了進一步提高仿真機床運動與實際機床運動的一致性,在仿真機床模型理論位姿計算的基礎(chǔ)上,引入實際機床幾何誤差項。參考五軸數(shù)控機床幾何誤差項的詳細(xì)描述[15–17],定義機床運動型節(jié)點的誤差矩陣分別TM(X)_e、TM(Y)_e、TM(Z)_e、TR(A)_e、TR(B)_e和TR(C)_e,根據(jù)機床模型理論位姿計算矩陣,可得仿真機床模型的實際位姿計算變換矩陣如表5所示。
表5 機床模型理論位姿和實際位姿計算變換矩陣(以機床拓?fù)浣Y(jié)構(gòu)WYXZCAT為例)Table 5 Transformation matrix for calculating theoretical and actual position and attitude of machine tool model (take WYXZCAT as an example for machine tool topology)
本文以拓?fù)浣Y(jié)構(gòu)為WYXZCAT的大型龍門式五軸數(shù)控機床為例進行仿真驗證。為了簡化節(jié)點建模過程,各節(jié)點坐標(biāo)系坐標(biāo)軸矢量均與仿真坐標(biāo)系相同,如表6所示。
表6 調(diào)整后的機床節(jié)點坐標(biāo)系位姿參數(shù)(基于仿真坐標(biāo)系)Table 6 Adjusted position and attitude parameters of machine tool node coordinate system(based on simulation coordinate system)
為了簡化模型建模過程,實例中的各節(jié)點只附屬1個模型。根據(jù)機床的具體結(jié)構(gòu)關(guān)系,對各模型坐標(biāo)系進行了調(diào)整。調(diào)整后的機床模型位姿參數(shù)如表7所示。模型位姿調(diào)整實例如圖5所示。
圖5 模型坐標(biāo)系位姿調(diào)整前后對比Fig.5 Position and attitude adjustment example of model coordinate system
表7 調(diào)整后的機床模型坐標(biāo)系位姿數(shù)據(jù)Table 7 Adjusted position and attitude data of machine tool model coordinate system
對某NC程序進行解析,程序部分示例如圖6所示。
圖6 NC程序示例(部分)Fig.6 NC program example (part)
提取NC程序中未密化的仿真運動數(shù)據(jù),進行刀軸矢量轉(zhuǎn)換與密化次數(shù)計算,獲得密化次數(shù)q為100次,進行刀具軌跡位姿仿真密化計算,密化結(jié)果如圖7所示。
圖7 密化后刀具位姿數(shù)據(jù)(部分)Fig.7 Tool position and attitude data after densification (part)
設(shè)定進給速度F為1000 mm/min,程序起始速度vPCS_s與程序終止速度vPCS_e為0,仿真運動加速度aPCS為500 mm/s2,并進行仿真密化時間標(biāo)記計算與轉(zhuǎn)動軸轉(zhuǎn)角計算,其計算結(jié)果如圖8所示。
圖8 密化后運動數(shù)據(jù)(部分)Fig.8 Motion position and attitude after densification (part)
基于密化后的機床仿真運動數(shù)據(jù),結(jié)合表5中機床模型理論位姿計算方法,得到機床模型理論位姿數(shù)據(jù)如表8所示。
表8 機床模型理論位姿數(shù)據(jù)(NC程序第7行局部密化段)Table 8 Theoretical position and attitude data of machine tool model (local densification section in line 7 of NC program)
依據(jù)所測量的五軸數(shù)控機床運動軸幾何誤差數(shù)據(jù),結(jié)合機床模型實際位姿變換矩陣,可得到機床模型實際位姿數(shù)據(jù),如表9所示。
表9 機床模型實際位姿數(shù)據(jù)(NC程序第7行局部密化段)Table 9 Actual position and attitude data of machine tool model (local densification section in line 7 of NC program)
根據(jù)機床模型實際位姿數(shù)據(jù),可得到機床仿真運動過程,如圖9所示。
本文研究了基于五軸數(shù)控機床仿真拓?fù)浣Y(jié)構(gòu)定義、刀具位姿仿真密化計算、刀具軌跡仿真密化時間標(biāo)記計算與考慮五軸數(shù)控機床幾何誤差的機床模型位姿計算,得到了如下結(jié)論。
(1)針對五軸數(shù)控機床仿真拓?fù)浣Y(jié)構(gòu)定義了節(jié)點、機床模型與機床仿真坐標(biāo)系,并對機床仿真運動位姿表達(dá)的相關(guān)參數(shù)進行了定義。
(2)針對刀具位姿仿真密化的計算方法,對數(shù)控系統(tǒng)指令模式、密化次數(shù)、矢量轉(zhuǎn)換、刀軸矢量密化、刀位坐標(biāo)密化的計算方式進行了闡述,保證了數(shù)控系統(tǒng)指令執(zhí)行與機床仿真運動的一致性。
(3)針對刀具軌跡仿真密化時間標(biāo)記的計算方法,采用簡化后的S型曲線加減速算法,對密化后的刀具位姿數(shù)據(jù)進行速度控制,通過建立時間標(biāo)記,實現(xiàn)對機床仿真運動時間的精確控制。
(4)對機床模型的理論位姿計算方法進行闡述,在機床模型仿真運動過程中引入機床幾何誤差項,保證機床仿真運動與實際機床運動的誤差一致性。