專利名稱::具有nurbs插補功能的五坐標數(shù)控機床運動控制器的制作方法
技術領域:
:本發(fā)明涉及一種數(shù)控機床的運動控制器,特別是一種具有NURBS插補功能的五坐標數(shù)控機床軟件化運動控制器,屬于數(shù)控機床軟件
技術領域:
。
背景技術:
:五軸聯(lián)動數(shù)控機床是機床數(shù)控
技術領域:
制高點的重要標志,在國民經(jīng)濟發(fā)展和國防建設等方面具有特別重要的現(xiàn)實意義。目前,葉輪、葉片、船用螺旋槳、重型發(fā)電機轉子、汽輪機轉子、大型柴油機曲軸等復雜零部件的加工普遍采用五軸聯(lián)動數(shù)控機床的線性插補功能完成。然而該加工方式存在的數(shù)控代碼文件龐大、加工效率低和加工質量差等缺點,嚴重影響了五軸聯(lián)動數(shù)控機床潛力的發(fā)揮。五坐標樣條曲線插補技術成為機床數(shù)控領域的研究熱點。Langeron等人提出了一種采用非均勻B樣條曲線表達刀具路徑和刀具方位的數(shù)控代碼指令格式。陳良驥等人提出雙NURBS插補指令格式。Fleisig等人提出了采用五次多項式樣條插值刀具路徑,采用貝齊爾曲線插值刀具方位點的曲線插補方法。以上曲線插補方法較好的解決了線性插補存在的問題,但仍有以下不足以上文章只涉及數(shù)控機床的插補算法,未涉及控制器的研制過程;Langeron及陳良驥等人提出的插補方法中輸入控制器的樣條曲線為機床坐標系下加工信息,數(shù)控程序依賴于數(shù)控機床的形式,當加工條件變化時,NC程序需重新編制;Fleisig等人采用型值點直接插值方法,控制器中的信息量將成倍增加,NC程序量嚴重受限;位置曲線和方位曲線參數(shù)取同的方法只適用于兩曲線長度相當?shù)膱龊?,當長度差別較大時將出現(xiàn)大的加工誤差。SIEMENS、FANUC和DMG等數(shù)控機床制造商在其高端數(shù)控系統(tǒng)中推出了曲線插補功能,并在實際應用中取得了良好的加工效果。然而,這些曲線插補功能的實現(xiàn)方法未有公開的介紹。具有曲線插補功能的數(shù)控機床價格昂貴,并且其購買條件受到諸多限制。所以我們著手進行了具有NURBS插補功能的五坐標數(shù)'控機床軟件化運動控制器的研發(fā)。
發(fā)明內容本發(fā)明的目的是為了解決現(xiàn)有數(shù)控機床運動控制器存在開放性差、靈活性差,導致控制器不易功能擴充及修改,無法滿足可配置型運動控制器的要求;以及采用型值點直接插值方法使控制器中的信息量成倍增加,造成NC程序量嚴重受限等問題。為此,本發(fā)明提供了一種具有NURBS插補功能的五坐標數(shù)控機床運動控制器。本發(fā)明為解決上述技術問題采取的技術方案是本發(fā)明所述運動控制器為運行在PC機Windows操作系統(tǒng)上的應用程序系統(tǒng),所述運動控制器讀取五坐標數(shù)控程序后產生的機床各軸運動指令通過SERCOS接口傳遞給伺服系統(tǒng)實現(xiàn)五坐標數(shù)控機床的數(shù)控加工;所述運動控制器包括以下單元:人機接口模塊、任務協(xié)調模塊、任務生成模塊、軸組模塊、軸模塊、逆運動變換模塊、控制規(guī)律模塊和離散邏輯控制模塊,其中人機接口模塊,用于負責操作者與控制器之間的交互,還用于(主要)完成在數(shù)控系統(tǒng)運行前和運行中數(shù)控系統(tǒng)參數(shù)的修改和設定;任務協(xié)調模塊,用于進行任務分配以及負責所述運動控制器內各模塊的協(xié)調與調度;任務生成模塊,用于解析零件加工程序文件(NC程序),提取加工程序中的各種信息并生成包含運動信息的運動段指令和邏輯控制指令,還用于對運動指令進行刀具補償,還用于生成方位曲線和協(xié)調樣條曲線;軸組模塊,用于完成插補任務,對譯碼得到的運動指令按照進給速度要求進行細分,得到單個插補周期內的進給量,并輸出給各個軸模塊;軸模塊,用于接收來自軸組模塊的指令,同時讀取外部的反饋信息,根據(jù)用戶需求選擇性地調用伺服控制規(guī)律完成位置控制或速度控制等功能,并將控制信息發(fā)送給逆運動變換模塊;逆運動變換模塊,用于對工件坐標系下表示刀具位置的位置矢量點及表示刀軸方位的刀位矢量點進行逆機床的運動學變換,求取插補周期結束時刻機床各運動軸的位置信息,并將控制信息發(fā)送給外部執(zhí)行單元;控制規(guī)律模塊,用于負責伺服控制規(guī)律的計算,提供多種控制策略(如PID控制規(guī)律、模糊控制規(guī)律和神經(jīng)網(wǎng)絡等);離散邏輯控制模塊,用于負責對外部輸入和內部狀態(tài)變量進行布爾運算得到相應輸出和內部狀態(tài)變量,并對外部輸入輸出設備進行控制;上述各模塊單元對外提供可操作、可執(zhí)行接口以及向用戶提供程序接口;任務生成模塊生成協(xié)調樣條曲線的具體過程為根據(jù)插補過程中位置曲線兩點間弧長與方位曲線兩點間角度存在一一對應的關系,位置曲線上參數(shù)",與參數(shù)"2間所夾弧的長度s采用式1計算""2)=〖V(A"))2+(/("))2+(("))2(1)方位曲線i方位矢量a和方位矢量^間的夾角a采用式2計算義=arccos(仏'《2)(2)采用式3所示多項式樣條建立位置曲線弧長S和方位曲線矢量間的夾角;i的映射關系,以獲得機床線性軸與旋轉軸間的協(xié)調運動關系Cs;^^3(s—s/好,4《w(3)、6式中M,為樣條系數(shù)列;任務生成模塊生成方位曲線的具體過程為:設存儲在"NURBS"結構體的"machA"和"machC"數(shù)組中的角度值分別為H,…,W和^。,c,,…,c^,則對應的方位矢量《,(^0,l,…,")可以通過公式4求得sina,..cosc,.sina,.sine,cosa,(4)加工過程中為了獲得連續(xù)變化的機床旋轉軸角度,需要構造一條通過所有方位矢量的方位曲線與位置曲線相對應;選取非均勻B樣條曲線作為方位矢量的插值曲線;選取兩方位矢量間的夾角作為方位曲線的節(jié)點矢量,兩矢量^與《"間的夾角通過公式5求取A,.=arccos(^.仏+1),/=O,l,.","一l(5)方位曲線的控制頂點采用計算機輔助幾何設計CAGD中的B樣條曲線反算方法獲得;當方位曲線的節(jié)點矢量和控制頂點確定以后,相應的方位曲線唯一確定;所述軸組模塊完成插補任務的具體過程為當雙端隊列SingleStep_deqUe中的信息通過共享內存?zhèn)鬟f給軸組模塊,并且控制器接收到autorun指令時,軸組模塊進行實時插補運算設輸入控制器的位置樣條曲線為/K"),方位樣條曲線為《(A),任務生成器模塊單元生成的協(xié)調樣條曲線為義CS);以第A+1個插補周期的插補點求取為例說明曲線的實時插補運算過程;假定進給速度設定為^,所述運動控制器的插補周期設定為r,則有所以(6)<formula>formulaseeoriginaldocumentpage12</formula>(7)將參數(shù)w對^進行二階Taylor展開,得其截斷高階余項的計算公式:<formula>formulaseeoriginaldocumentpage12</formula>這里&="(")為第*個插補周期,^=W時刻參數(shù)W的值;從而|傘(")||(9)II""L叫設和分別為參數(shù)%和對應的位置樣條曲線上的插補點,r為該兩點對應的曲率圓弧半徑,丄為兩點間弦長;其中f為弓高誤差;兩插補點間的弦長通過下式求取丄=|/^+1)1("*)|(10)弓高誤差的求取表達式為~-一2-(爭2(11)從而可以求出滿足弓高誤差要求的插補最大弦長為-4xp:2孩2r-《)(12)將公式10求得的插補點間弦長與公式12求得的插補最大弦長進行比較,如果丄超出最大弦長丄exp的范圍,則將丄exp作為插補弦長對P("w)進行修正,否則按照公式9求得的%+1進行曲線插補;這樣,在曲率半徑比較大的區(qū)域,機床將按照給定的進給速度進行切削加工,當進入曲率半徑小的區(qū)域時,通過降低切削速度使得控制器配置過程中指定的插補誤差得到保證;采用公式1求取參數(shù)"W對應的位置曲線弧長,并將其帶入?yún)f(xié)調樣條曲線方程,可以求得方位曲線對應的角度參數(shù)^+1;將參數(shù)人+1帶入方位曲線方程可以求得第^+l個插補周期的方位矢量點。本發(fā)明的有益效果是采用本發(fā)明的NURBS插補方法進行數(shù)控加工時,在NC程序大量減少的同時,加工誤差較線性插補誤差大幅減小(如圖8所示)。本發(fā)明采用模塊化的體系結'構,滿足可配置型運動控制器的要求,增強數(shù)控系統(tǒng)的開放性,每個模塊為功能獨立的組件單元,控制器的功能擴充及修改可針對具體模塊施行。此外,通過更換有限模塊單元,可使控制器方便、靈活地適應不同的機床形式。本發(fā)明最小量運行運動控制中的實時性任務,滿足了數(shù)控系統(tǒng)硬實時性要求。本發(fā)明的NURBS插補功能中立于機床運動學,可用于任意形式五坐標機床的運動控制。通過建立位置曲線和方位曲線間的參數(shù)映射,使機床平動軸與轉動軸f司的運動規(guī)劃符合實際加工要求。實際加工實驗驗證了控制器的性能及插補方法的正確性。本發(fā)明中選取兩方位矢量間的夾角作為方位曲線的節(jié)點矢量,該'選取方法充分考慮了機床旋轉軸插補的實質,更加合理。各模塊單元對外提供可操作和可執(zhí)行接口,實現(xiàn)了功能應用與技術實現(xiàn)的分離,增強了模塊單元的可重用性。各模塊單元向用戶提供程序接口,便于集成先進加工經(jīng)驗及開發(fā)特定應用的模塊單元。所述運動控制器為運行在PC機Windows操作系統(tǒng)上的應用程序系統(tǒng),控制器產生的機床各軸運動指令通過SERCOS(數(shù)控系統(tǒng)和數(shù)字伺服通訊的唯一國際標準)接口傳遞給伺服系統(tǒng)。同時,加工過程中的檢測量及監(jiān)控量也通過該接口傳輸回控制器,由控制器進行處理。本發(fā)明參考美國OMAC協(xié)議標準。附圖.說明圖l是本發(fā)明的整體結構框圖;圖2是準備機能指令圖(G05.6);圖3是插補過程中的弓高誤差圖;圖4是自由型曲面圖;圖5是安裝有本發(fā)明的數(shù)控機床照片;圖6是用于對圖4所示自由曲面進行數(shù)控加工的NC程序截圖(將進給速度指令設定為3600mra/min,插補周期設定為0.0025s);圖7a為位置樣條進給速度曲線圖,7b為方位樣條進給速度曲線圖;圖8是對圖4所示自由曲面分別采用五坐標線性插補加工方法和本發(fā)明所述的NURBS插補方法進行數(shù)控加工的誤差曲線比較圖;圖9是采用本發(fā)明對圖4所示自由型曲面加工時的加工過程中圖片;圖10是采用本發(fā)明對圖4所示自由型曲面加工時的加工結果圖.片。具體實施例方式具體實施方式一結合圖13所示,說明本實施方式本實施方式所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器的結構為:所述運動控制器為運行在?(:機\^111(1(^8操作系統(tǒng)上的應用程序系統(tǒng),所述運動控制器讀取五坐標數(shù)控程序后產生的機床各軸運動指令通過SERCOS接口傳遞給伺服系統(tǒng)實現(xiàn)五坐標數(shù)控機床的數(shù)控加工;所述運動控制器包括以.下單元人機接口模塊1、任務協(xié)調模塊2、任務生成模塊3、軸組模塊4、軸模塊5、逆運動變換模塊6、控審li規(guī)律模塊7和離散邏輯控制模塊8,其中人機接口模塊l,用于負責操作者與控制器之間的交互,還用于(主要)完成在數(shù)控系統(tǒng)運行前和運行中數(shù)控系統(tǒng)參數(shù)的修改和設定;任務協(xié)調模塊2,用于進行任務分配以及負責所述運動控制器內各模塊的協(xié)調與調度;任務生成模塊3,用于解析零件加工程序文件(NC程序),提取加工程序中的各種信息并生成包含運動信息的運動段指令和邏輯控制指令,還用于對運動指令進行刀具補償,還用于生成方位曲線和協(xié)調樣條曲線;軸組模塊4,用于完成插補任務,對譯碼得到的運動指令按照進給速度要求進行細分,得到單個插補周期內的進給量,并輸出給各個軸模塊;軸模塊5,用于接收來自軸組模塊的指令,同時讀取外部的反饋信息,根據(jù)用戶需求選擇性地調用伺服控制規(guī)律完成位置控制或速度控制等功能,并將控制信息發(fā)送給逆運動變換模塊6;逆運動變換模塊6,用于對工件坐標系下表示刀具位置的位置矢量點及表示刀軸方位的刀位矢量點進行逆機床的運動學變換,求取插補周期結束時刻機床各運動軸的位置信息,并將控制信息發(fā)送給外部執(zhí)行單元;控制規(guī)律模塊7,用于負責伺服控制規(guī)律的計算,提供多種控制策略(如PID控制規(guī)律、模糊控制規(guī)律和神經(jīng)網(wǎng)絡等);離散邏輯控制模塊8,用于負責對外部輸入和內部狀態(tài)變量進行布爾運算得到相應輸出和內部狀態(tài)變量,并對外部輸入輸出設備進行控制;上述各模塊單元對外提供可操作、可執(zhí)行接口以及向用戶提供程序接口。本實施方式所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器的NURBS插補的指令格式為-對零部件進行數(shù)控加工時,需要生成定義刀具相對工件表面運動的刀具路徑。三坐標數(shù)控加工的刀具軌跡由一系列的笛卡爾矢量表達。每個矢量(位置矢量)表達一個加工位置。對五坐標刀具路徑而言,需同時指定刀具的姿態(tài)(刀位矢量)。因而,五坐標的刀具路徑由位置矢量序列和刀位矢量序列構成的矢量集表達。用CAM系統(tǒng)進行五坐標數(shù)控程序編制時,根據(jù)所選取的刀具路徑生成方法、初始給定的刀傾角和刀轉角進行路徑規(guī)劃,根據(jù)干涉判別方法進行修正,可以分別計算出刀具刀心點位置矢量和刀軸方位矢量。將求得的一系列位置矢量進行NURBS曲線擬合并求取加工過程中的刀轉角,根據(jù)擬合曲線信息和刀轉角信息生成符合圖3所示NURBS插補指令格式的NC加工程序。如圖2所示,G05.6為準備機能指令,控制器讀入其后的樣條曲線信息進行插補運算。X、Y、Z等代碼指定位置樣條曲線的控制頂點,K代碼指定其節(jié)點矢量;R指定控制點處的權重值;F代碼為進給速度指令;A、C等代碼指定數(shù)控機床的旋轉軸角度值。不同于一般的商品化機床,輸入控制器的NURBS曲線信息其所在坐標系為工件坐標系,當機床形式發(fā)生變化時,保持NC程序文件不變,只需選取相應的逆運動學變換模塊單元并定制機床參數(shù)即可構建適應新的機床形式的運動控制器。本實施方式所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器的數(shù)控程序信息提取及參數(shù)映射建立過程為1、數(shù)控程序信息提取NC程序輸入數(shù)控機床控制器后,控制器的任務生成器模塊單元將提取NC程序中的信息并開辟存儲空間對信息進行存儲;任務生成器模塊單元中開發(fā)的用于加工信息存儲的數(shù)據(jù)結構(0++語言編寫)如下所示typedefenum{LINE,CSCURVE,NURBS}〃定義運動段類型typedefstructNURBS一struc"doubletraverse_rate,start—rate,end—rate;〃速度信息double*tparx,*tpary,*tparz;〃方位矢量intP;Z/位置樣條的階次double*nodevt;//位置樣條節(jié)點矢量double*conlpt,*con2pt,*con3pt;〃位置樣條控制頂點double*rval;〃控制頂點對應權重double*tnodevt;//方位樣條節(jié)點矢量double*tconlpt,*tcon2pt,*teon3pt;〃方位樣條控制頂點double*SepAngle;〃方位矢量夾角double*ArcLength;//節(jié)點對應點間的弧長double*coordvt;〃協(xié)調樣條節(jié)點矢量double*coordlpt,*coord2pt,*coord3pt;〃協(xié)調樣條的控制頂點double*machA,*machC;〃旋轉軸角度}NURBS;typedefstructsingleStep2_struct{SINGLESTEP—TYPEsingleStep—type;m—structm—struct;spslinespsline一struct;spsplinespspline—struct;NURBSNURBS一structj}singleStep2;位置曲線信息、方位曲線信息和協(xié)調樣條曲線信息存入雙端隊列SingleStep_deque中,待譯碼工作完成以后通過共享內存?zhèn)鬟f給軸組模塊單元進行數(shù)據(jù)點的密化(插補)工作。2、協(xié)調樣條建立五坐標數(shù)控插補過程中,如何求取不同插補時刻機床的旋轉軸角度值是五坐標插補技術的一個重要問題。將位置曲線及方位曲線參數(shù)取同的做法只適用于位置曲線和方位曲線長度相當,且曲線曲率變化均勻的場合。當兩曲線長度存在較大差別或曲線曲率變化規(guī)律相似度較差時,插補求得的機床角度值將存在較大的誤差。插補過程中位置曲線兩點間弧長(以曲線起始點作為參考點)與方位曲線兩點間角度(以曲線起始點作為參考點)存在一一對應的關系。位鞏曲線上參數(shù)",與參數(shù)"J司所夾弧的長度s采用式1計算S("pt/2)=〖2扭"))2+(/("))2十(?("))2(i)方位曲線上^位矢量a和方位矢量《2間的夾角義采用式2計算A二arccos(仏.《2)(2)本發(fā)明中NURBS插補控制方法采用式3所示多項式樣條建立位置曲線弧長s和方位曲線矢量間的夾角義的映射關系,以獲得機床線性軸與旋轉軸間的協(xié)調運動關系;眷Sl^烈A^、"力、"6^6+~6(3)式中AO為樣條系數(shù)列;3、方位樣條曲線的建立假定存儲在NURBS結構體的"machA"和"machC"數(shù)組中的角度值分別為H,"p…,W和(c。,c,,…,cJ,則對應的方位矢量仏0、0,1,…,")可以通過公式4求smq.cosc,.sina,..sine,cos《(4)加工過程中為了獲得連續(xù)變化的機床旋轉軸角度,需要構造一條通過所有方位矢量的曲線與位置曲線相對應。選取非均勻B樣條曲線作為方位矢量的插值曲線。在他人的研究中普遍采用兩方位矢量間的弦長作為插值曲線的節(jié)點矢量。本專利中的控制器選取兩方位矢量間的夾角作為方位曲線的節(jié)點矢量,該選取方法充分考慮了機床旋轉軸插補的實質,更加合理。兩矢量《,與《,+1間的夾角通過公式5求取。&:arccos(n》,/=0,1,...,"-1(5)方位曲線的控制頂點采用計算機輔助幾何設計(CAGD)中的B樣條曲線反算方法獲得。當方位曲線的節(jié)點矢量和控制頂點確定以后,相應的方位曲線唯一確定。本實施方式所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器的曲線實時插補運算具體過程為當雙端隊列singleStep—deque中的信息通過共享內存?zhèn)鬟f給軸組模塊,并且控制器接收到autorun指令時,軸組模塊進行實時插補運算。假設輸入控制器的位置樣條曲線為P("),方位樣條曲線為《(義),任務生成器模塊單元生成的協(xié)調樣條曲線為義C5);以第^+l個插補周期的插補點求取為例說明曲線的實時插補運算過程假定進給速度設定為r,控制器的插補周期設定為r,則有(6)所以:(7)將參數(shù)"對f進行二階Taylor展開,得其截斷高階余項的計算公式:r2j2mi(8)這里^為第)fc個插補周期,=*r時刻參數(shù)"的值(從而(9)假定和分別為參數(shù)%和對應的位置樣條曲線上的插補點,r為該兩點對應的曲率圓弧半徑,i為兩點間弦長;其對應關系如圖3所示;其中《為弓高誤差;兩插補點間的弦長通過下式求取丄+K")-(10)弓高誤差的求取表達式為""-^2-(*)2(11)從而可以求出滿足弓高誤差要求的插補最大弦長為丄呻二2V"2r-《)(12)將公式10求得的插補點間弦長與公式12求得的插補最大弦長進行比較,如果i超出最大弦長Axp的范圍,則將Z,作為插補弦長對/K",+,)進行修正,否則按照公式9求得的"w進行曲線插補。這樣,在曲率半徑比較大的區(qū)域,機床將按照給定的進給速度進行切削加工,當進入曲率半徑小的區(qū)域時,通過降低切削速度使得控制器配置過程中指定的插補誤差得到保證。采用公式1求取參數(shù)",+,對應的位置曲線弧長(以曲線起始點作為參考點),并將其帶入?yún)f(xié)調樣條曲線方程,可以求得方位曲線對應的角度參數(shù)A+,;將參數(shù)^帶入方位曲線方程可以求得第*+1個插補周期的方位矢量點&+1。本實施方式所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器的插補點的逆運動學變換的具體過程為機床控制器接收的NC文件中的曲線信息為工件坐標系下的加工信息,因而,經(jīng)軸組模塊實時插補運算所得的數(shù)據(jù)點位于工件坐標系下。這些數(shù)據(jù)還不能輸出給驅動器控制機床運動;逆運動學變換模塊對插補所得數(shù)據(jù)點執(zhí)行逆機床的運動學變換操作,將該數(shù)據(jù)點坐標映射至數(shù)控機床的機床坐標系;下面以帶回轉工作臺的X,Y,Z,A,C型五軸聯(lián)動數(shù)控機床(帶有三個平動軸和兩個轉動軸)為例,說明插補點的逆機床的運動學變換過程假設求取的第"l個插補周期的插補點為位置矢量/K^,^[^^,a+,a+,],方位矢量9(D-[C附",,"",];工件坐標系原點與機床坐標系原點間的距離為^(^為可定制參數(shù));假定和映射至機床坐標系后,所得機床各軸的運動坐標值為jtyzJc,C卿'COW'COW,COOT^COOTj=arctan(13)C—=900+arctanC^270。+arctanC—=90°—arctan附jm』卩"i"1,/t+120,mt+^0(14)平動軸運動坐標值按下述方程求取:乙.一cosC咖.sinL—0——0_(15)開發(fā)了對應各種形式五軸聯(lián)動數(shù)控機床的逆機床運動學變換模塊單元,機床使用者可以根據(jù)自己機床的形式選取相應的逆運動學變換模塊單元,定制機床參數(shù),最后按照控制器的架構配置出自己需要的具有NURBS插補功能的運動控制器。具體實施方式二本實施方式所述人機接口模塊l、任務協(xié)調模塊2和任務生成模塊3執(zhí)行非實時性任務,為所述運動控制器的非實時模塊,采用組件對象模型(ComponentObjectModel,COM)技術開發(fā)。其它與具體實施方式一相同。具體實施方式三本實施方式所述軸組模塊4、軸模塊5、逆運動變換模塊6、控制規(guī)律模塊7和離散邏輯控制模塊8執(zhí)行實時性任務,為所述運動控制器的實時模塊,釆用實時動態(tài)鏈接庫(Real-TimeDynamicLinkLibrary,RTDLL)技術開發(fā)。其它與具體實施方式一或二相同。實驗驗證將該NURBS插補運動控制器配置到齊齊哈爾第二機床廠與本研究所(哈爾濱工業(yè)大學機電工程學院機械制造及自動化系數(shù)控技術研究所)聯(lián)合研制的帶回轉工作臺的X,Y,Z,A,C型五軸聯(lián)動數(shù)控機床XKV715上(如圖5),并對圖4所示的自由型曲面進行了加工實驗。由圖7a和7b可知當以指定速度恒速進給時,位置樣條曲線進給速度波動在0.06mm/s范圍內,不超過設定速度的0.1%。方位樣條曲線進給速度由協(xié)調曲線獲得,旋轉軸進給速度不恒定,但是與線性插補對比可知,其速度波動大幅減小,進給速度平滑。對圖4所示自由曲面分別采用五坐標線性插補加工方法和本文的NURBS插補方法進行數(shù)控加工。采用線性插補加工時,其插補路徑由146段線性單元構成。分別采集插補過程中的弓高誤差繪制弓高誤差曲線,誤差曲線如圖8所示。顯然,采用本發(fā)明所述NURBS插補方法進行數(shù)控加工時,在NC程序大量減少的同時,加工誤差較線性插補誤差大幅減小。采用本發(fā)明的具有NURBS插補功能的數(shù)控機床運動控制器對圖4所示自由型曲面加工時,加工過程中圖片和加工結果圖片分別如圖9和圖10所示。權利要求1、一種具有NURBS插補功能的五坐標數(shù)控機床運動控制器,所述運動控制器為運行在PC機Windows操作系統(tǒng)上的應用程序系統(tǒng),所述運動控制器讀取五坐標數(shù)控程序后產生的機床各軸運動指令通過SERCOS接口傳遞給伺服系統(tǒng)實現(xiàn)五坐標數(shù)控機床的數(shù)控加工;其特征在于所述運動控制器包括以下單元人機接口模塊(1)、任務協(xié)調模塊(2)、任務生成模塊(3)、軸組模塊(4)、軸模塊(5)、逆運動變換模塊(6)、控制規(guī)律模塊(7)和離散邏輯控制模塊(8),其中人機接口模塊(1),用于負責操作者與控制器之間的交互,還用于完成在數(shù)控系統(tǒng)運行前和運行中數(shù)控系統(tǒng)參數(shù)的修改和設定;任務協(xié)調模塊(2),用于進行任務分配以及負責所述運動控制器內各模塊的協(xié)調與調度;任務生成模塊(3),用于解析零件加工程序文件,提取加工程序中的各種信息并生成包含運動信息的運動段指令和邏輯控制指令,還用于對運動指令進行刀具補償,還用于生成方位曲線和協(xié)調樣條曲線;軸組模塊(4),用于完成插補任務,對譯碼得到的運動指令按照進給速度要求進行細分,得到單個插補周期內的進給量,并輸出給各個軸模塊;軸模塊(5),用于接收來自軸組模塊的指令,同時讀取外部的反饋信息,根據(jù)用戶需求選擇性地調用伺服控制規(guī)律完成位置控制或速度控制等功能,并將控制信息發(fā)送給逆運動變換模塊(6);逆運動變換模塊(6),用于對工件坐標系下表示刀具位置的位置矢量點及表示刀軸方位的刀位矢量點進行逆機床的運動學變換,求取插補周期結束時刻機床各運動軸的位置信息,并將控制信息發(fā)送給外部執(zhí)行單元;控制規(guī)律模塊(7),用于負責伺服控制規(guī)律的計算,提供多種控制策略;離散邏輯控制模塊(8),用于負責對外部輸入和內部狀態(tài)變量進行布爾運算得到相應輸出和內部狀態(tài)變量,并對外部輸入輸出設備進行控制;上述各模塊單元對外提供可操作、可執(zhí)行接口以及向用戶提供程序接口;任務生成模塊(3)生成協(xié)調樣條曲線的具體過程為根據(jù)插補過程中位置曲線兩點間弧長與方位曲線兩點間角度存在一一對應的關系,位置曲線上參數(shù)u1與參數(shù)u2間所夾弧的長度s采用式1計算<mathsid="math0001"num="0001"><math><![CDATA[<mrow><mi>S</mi><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>,</mo><msub><mi>u</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><msubsup><mo>∫</mo><msub><mi>u</mi><mn>1</mn></msub><msub><mi>u</mi><mn>2</mn></msub></msubsup><msqrt><msup><mrow><mo>(</mo><msup><mi>x</mi><mo>′</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msup><mi>y</mi><mo>′</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msup><mi>z</mi><mo>′</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math></maths>方位曲線上方位矢量q1和方位矢量q2間的夾角λ采用式2計算λ=arccos(q1·q2)(2)采用式3所示多項式樣條建立位置曲線弧長S和方位曲線矢量間的夾角λ的映射關系,以獲得機床線性軸與旋轉軸間的協(xié)調運動關系<mathsid="math0002"num="0002"><math><![CDATA[<mrow><mi>λ</mi><mrow><mo>(</mo><mi>S</mi><mo>)</mo></mrow><mo>=</mo><mfrac><msup><mrow><mo>(</mo><msub><mi>S</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><mi>S</mi><mo>)</mo></mrow><mn>3</mn></msup><mrow><mn>6</mn><msub><mi>h</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mfrac><msub><mi>M</mi><mi>j</mi></msub><mo>+</mo><mfrac><msup><mrow><mo>(</mo><mi>S</mi><mo>-</mo><msub><mi>S</mi><mi>j</mi></msub><mo>)</mo></mrow><mn>3</mn></msup><mrow><mn>6</mn><msub><mi>h</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mfrac><msub><mi>M</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>λ</mi><mi>j</mi></msub><mfrac><msub><msup><mi>h</mi><mn>2</mn></msup><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mn>6</mn></mfrac><msub><mi>M</mi><mi>j</mi></msub><mfrac><msub><msup><mi>h</mi><mn>2</mn></msup><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mn>6</mn></mfrac><msub><mi>M</mi><mi>j</mi></msub></mrow>]]></math></maths><mathsid="math0003"num="0003"><math><![CDATA[<mrow><mo>+</mo><mfrac><mrow><mi>S</mi><mo>-</mo><msub><mi>S</mi><mi>j</mi></msub></mrow><msub><mi>h</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub></mfrac><mrow><mo>(</mo><msub><mi>λ</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>λ</mi><mi>j</mi></msub><mfrac><msub><msup><mi>h</mi><mn>2</mn></msup><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mn>6</mn></mfrac><mrow><mo>(</mo><msub><mi>M</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>M</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mi>j</mi><mo>=</mo><mn>0,1</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><mi>n</mi><mo>+</mo><mn>6</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math></maths>式中hj=Sj-Sj-1;Mj為樣條系數(shù)列;任務生成模塊(3)生成方位曲線的具體過程為設存儲在“NURBS”結構體的“machA”和“machC”數(shù)組中的角度值分別為{a0,a1,…,an}和{c0,c1,…,cn},則對應的方位矢量qi(i=0,1,…,n)可以通過公式4求得<mathsid="math0004"num="0004"><math><![CDATA[<mrow><msub><mi>q</mi><mi>i</mi></msub><mo>=</mo><mfencedopen='['close=']'><mtable><mtr><mtd><mi>sin</mi><msub><mi>a</mi><mi>i</mi></msub><mo>·</mo><mi>cos</mi><msub><mi>c</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mrow><mi>sin</mi><mi>a</mi></mrow><mi>i</mi></msub><mo>·</mo><msub><mrow><mi>sin</mi><mi>c</mi></mrow><mi>i</mi></msub></mtd></mtr><mtr><mtd><mi>cos</mi><msub><mi>a</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math></maths>加工過程中為了獲得連續(xù)變化的機床旋轉軸角度,需要構造一條通過所有方位矢量的方位曲線與位置曲線相對應;選取非均勻B樣條曲線作為方位矢量的插值曲線;選取兩方位矢量間的夾角作為方位曲線的節(jié)點矢量,兩矢量qi與qi+1間的夾角通過公式5求取λi=arccos(qi·qi+1),i=0,1,…,n-1(5)方位曲線的控制頂點采用計算機輔助幾何設計CAGD中的B樣條曲線反算方法獲得;當方位曲線的節(jié)點矢量和控制頂點確定以后,相應的方位曲線唯一確定;所述軸組模塊(4)完成插補任務的具體過程為當雙端隊列singleStep_deque中的信息通過共享內存?zhèn)鬟f給軸組模塊,并且控制器接收到autorun指令時,軸組模塊進行實時插補運算設輸入控制器的位置樣條曲線為p(u),方位樣條曲線為q(λ),任務生成器模塊單元生成的協(xié)調樣條曲線為λ(S);以第k+1個插補周期的插補點求取為例說明曲線的實時插補運算過程;假定進給速度設定為V,所述運動控制器的插補周期設定為T,則有<mathsid="math0005"num="0005"><math><![CDATA[<mrow><mi>V</mi><mo>=</mo><mo>|</mo><mo>|</mo><mfrac><mrow><mi>dp</mi><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow></mrow><mi>dt</mi></mfrac><mo>|</mo><mo>|</mo><mo>=</mo><mo>|</mo><mo>|</mo><msup><mi>p</mi><mo>′</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mo>·</mo><mfrac><mi>du</mi><mi>dt</mi></mfrac><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math></maths>所以<mathsid="math0006"num="0006"><math><![CDATA[<mrow><mfrac><mi>du</mi><mi>dt</mi></mfrac><mo>=</mo><mfrac><mi>V</mi><mrow><mo>|</mo><mo>|</mo><msup><mi>p</mi><mo>′</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math></maths>將參數(shù)u對t進行二階Taylor展開,得其截斷高階余項的計算公式<mathsid="math0007"num="0007"><math><![CDATA[<mrow><msub><mi>u</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>u</mi><mi>k</mi></msub><mo>+</mo><mi>T</mi><mfrac><mi>du</mi><mi>dt</mi></mfrac><msub><mo>|</mo><mrow><mi>t</mi><mo>=</mo><mi>kT</mi></mrow></msub><mo>+</mo><mfrac><msup><mi>T</mi><mn>2</mn></msup><mn>2</mn></mfrac><mo>·</mo><mfrac><mrow><msup><mi>d</mi><mn>2</mn></msup><mi>u</mi></mrow><msup><mi>dt</mi><mn>2</mn></msup></mfrac><msub><mo>|</mo><mrow><mi>t</mi><mo>=</mo><mi>kT</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math></maths>這里uk=u(tk)為第k個插補周期,tk=kT時刻參數(shù)u的值;從而<mathsid="math0008"num="0008"><math><![CDATA[<mrow><msub><mi>u</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>u</mi><mi>k</mi></msub><mo>+</mo><mfrac><mrow><mi>V</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>·</mo><msub><mi>T</mi><mi>s</mi></msub></mrow><msub><mrow><mo>|</mo><mo>|</mo><mfrac><mrow><mi>dp</mi><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow></mrow><mi>du</mi></mfrac><mo>|</mo><mo>|</mo></mrow><mrow><mi>u</mi><mo>=</mo><msub><mi>u</mi><mi>k</mi></msub></mrow></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math></maths>設p(uk)和p(uk+1)分別為參數(shù)uk和uk+1對應的位置樣條曲線上的插補點,r為該兩點對應的曲率圓弧半徑,L為兩點間弦長;其中ξ為弓高誤差;兩插補點間的弦長通過下式求取L=||p(uk+1)-p(uk)||(10)弓高誤差的求取表達式為<mathsid="math0009"num="0009"><math><![CDATA[<mrow><mi>ξ</mi><mo>=</mo><mi>r</mi><mo>-</mo><msqrt><msup><mi>r</mi><mn>2</mn></msup><mo>-</mo><msup><mrow><mo>(</mo><mfrac><mi>L</mi><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math></maths>從而可以求出滿足弓高誤差要求的插補最大弦長為<mathsid="math0010"num="0010"><math><![CDATA[<mrow><msub><mi>L</mi><mi>exp</mi></msub><mo>=</mo><mn>2</mn><msqrt><mi>ξ</mi><mrow><mo>(</mo><mn>2</mn><mi>r</mi><mo>-</mo><mi>ξ</mi><mo>)</mo></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow></mrow>]]></math></maths>將公式10求得的插補點間弦長與公式12求得的插補最大弦長進行比較,如果L超出最大弦長Lexp的范圍,則將Lexp作為插補弦長對p(uk+1)進行修正,否則按照公式9求得的uk+1進行曲線插補;采用公式1求取參數(shù)uk+1對應的位置曲線弧長,并將其帶入?yún)f(xié)調樣條曲線方程,可以求得方位曲線對應的角度參數(shù)λk+1;將參數(shù)λk+1帶入方位曲線方程可以求得第k+1個插補周期的方位矢量點。2、根據(jù)權利要求1所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器,其特征在于逆運動變換模塊(6)進行進行逆機床的運動學變換的具體過程為機床控制器接收的NC文件中的曲線信息為工件坐標系下的加工信息,因而,經(jīng)軸組模塊實時插補運算所得的數(shù)據(jù)點位于工件坐標系下,這些數(shù)據(jù)還不能直接輸出給所述運動控制器控制機床運動;逆運動變換模塊對插補所得數(shù)據(jù)點執(zhí)行逆機床的運動學變換操作,將該數(shù)據(jù)點坐標映射至數(shù)控機床的機床坐標系;基于帶回轉工作臺的X,Y,Z,A,C型五軸聯(lián)動數(shù)控機床來說明插補點的逆機床的運動學變換過程設求取的第"l個插補周期的插補點為位置矢量PO[^,^,^],方位矢量《(U-[L,附",,"",];工件坐標系原點與機床坐標系原點間的距離為假定P("",)和9(^+1)映射至機床坐標系后,所得機床各軸的運動坐標值為<formula>formulaseeoriginaldocumentpage6</formula>轉動軸運動坐標值按下述方程求取:<formula>formulaseeoriginaldocumentpage6</formula>平動軸運動坐標值按下述方程求取:<formula>formulaseeoriginaldocumentpage6</formula>3、根據(jù)權利要求1所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器,其特征在于所述人機接口模塊(1)、任務協(xié)調模塊(2)和任務生成模塊(3)執(zhí)行非實時性任務,為所述運動控制器的非實時模塊,采用組件對象模型ComponentObjectModel技術開發(fā)。4、根據(jù)權利要求1、2或3所述的具有NURBS插補功能的五坐標數(shù)控機床運動控制器,其特征在于軸組模塊(4)、軸模塊(5)、逆運動變換模塊(6)、控制規(guī)律模塊(7)和離散邏輯控制模塊(8)執(zhí)行實時性任務,為所述運動控制器的實時模塊,采用實時動態(tài)鏈接庫Real-TimeDynamicLinkLibrary技術開發(fā)。全文摘要具有NURBS插補功能的五坐標數(shù)控機床運動控制器,它涉及一種數(shù)控機床的運動控制器。本發(fā)明的目的是為了解決現(xiàn)有數(shù)控機床運動控制器存在開放性差、靈活性差,導致控制器不易功能擴充及修改,無法滿足可配置型運動控制器的要求;以及采用型值點直接插值方法使控制器中的信息量成倍增加,造成NC程序量嚴重受限等問題。所述運動控制器包括人機接口模塊、任務協(xié)調模塊、任務生成模塊、軸組模塊、軸模塊、逆運動變換模塊、控制規(guī)律模塊和離散邏輯控制模塊。采用本發(fā)明的NURBS插補方法進行數(shù)控加工時,在NC程序大量減少的同時,加工誤差較線性插補誤差大幅減小。采用模塊化的體系結構,滿足可配置型運動控制器的要求,增強數(shù)控系統(tǒng)的開放性,控制器的功能擴充及修改可針對具體模塊施行。文檔編號G05B19/41GK101615024SQ20091007257公開日2009年12月30日申請日期2009年7月23日優(yōu)先權日2009年7月23日發(fā)明者源劉,富宏亞,王永章,華路,韓德東,韓振宇申請人:哈爾濱工業(yè)大學