董立巖, 張 亮, 田 耕, 辛曉華, 李永麗, 孫 鵬, 尹相杰
(1. 吉林大學 計算機科學與技術學院, 長春 130012; 2. 東北師范大學 計算機科學與信息技術學院, 長春 130117)
在數(shù)控加工過程中, 數(shù)控系統(tǒng)的實際控制對象是刀具中心, 數(shù)控系統(tǒng)通過直接控制刀具中心的運動軌跡, 間接地實現(xiàn)對實際零件的輪廓加工。由于刀具半徑的存在, 刀具的運動軌跡并不等同于所需加工零件的實際輪廓[1,2]。因此, 編程人員需根據(jù)零件輪廓并結(jié)合刀具半徑重新計算編程軌跡, 這種計算過程稱為刀具補償[3]。如果數(shù)控機床具備刀具自動補償?shù)墓δ? 編程人員只需按照工件的輪廓軌跡編制數(shù)控程序, 將補償值輸入CNC系統(tǒng), 數(shù)控系統(tǒng)即可自動進行刀具補償計算和調(diào)整刀具運動軌跡, 加工合格的零件, 既不容易產(chǎn)生錯誤, 又能提高編程效率。
筆者提出一種通過判斷相鄰兩曲線轉(zhuǎn)接方式實現(xiàn)半徑補償?shù)乃惴? 實驗證明該算法適用于轉(zhuǎn)接方式[4,5]為直線和直線、 直線和圓弧、 圓弧和直線以及圓弧和圓弧相鄰的所有半徑補償方式。
刀具半徑補償分為左補償和右補償[6](見圖1), 沿著刀具進給的方向看, 刀具在加工工件輪廓的左邊叫做左補償, 用G41指令實現(xiàn); 沿著刀具進給的方向看, 刀具在加工工件輪廓的右邊叫做右補償, 用G42指令實現(xiàn); 另外, 半徑補償取消用G40指令實現(xiàn)。
圖1 半徑補償分類
圖2 轉(zhuǎn)接方式
在實際加工過程中, 大多數(shù)工件輪廓線是由圓弧和直線組成, 所以在刀具補償中, 相鄰兩段編程軌跡在轉(zhuǎn)接處有如下4種轉(zhuǎn)接方式(見圖2): 1) 直線轉(zhuǎn)接直線; 2) 直線轉(zhuǎn)接圓弧; 3) 圓弧轉(zhuǎn)接直線; 4) 圓弧轉(zhuǎn)接圓弧。其指令如下:
N1 G54 G90 G00 X0 Y0 Z0 M03 S500
N2 G01 Z-10 F1.0
N3 G41 G01 X10 Y0 D01
N4 G01 X40
N5 G01 X60 Y-30
N6 G02 X40 Y-50 R20
N7 G01 X0 Y-50
N8 G02 X0 Y-10 R20
N9 G03 X10 Y0 R10
N10 G40 G01 X0 Y0 Z0
N11 M30
以工件加工輪廓ABCDEFA為例,A′B′C′D′E′F′A″為帶半徑補償?shù)能壽E, 沿著刀具進給的方向看, 刀具在加工工件輪廓的左邊, 半徑補償類型左補償, 補償從A點開始, 經(jīng)B、C、D、E、F回到A點, 半徑補償取消; 輪廓中軌跡轉(zhuǎn)接方式: 直線AB轉(zhuǎn)接直線BC、 直線BC轉(zhuǎn)接順時針圓弧CD、 順時針圓弧CD轉(zhuǎn)接直線DE、 直線DE轉(zhuǎn)接順時針圓弧EF、 順時針圓弧EF轉(zhuǎn)接逆時針圓弧FA。
算法的基本思想是在原有編程軌跡基礎上結(jié)合刀具半徑補償值r重新計算編程軌跡。具體過程如下: 半徑補償建立[7], 順序讀取數(shù)控指令及其后繼行指令, 通過相鄰行的指令類型獲得編程軌跡的轉(zhuǎn)接方式, 根據(jù)指令索引號,分別設所取前后兩條指令軌跡為曲線i和曲線i+1, 補償后軌跡為曲線i′與曲線(i+1)′。若曲線i為直線, 則曲線i′與曲線i平行且距離為r; 若曲線i為圓弧, 則曲線i′與曲線i為半徑R+r或R-r和R的同心圓。同理可求得曲線(i+1)′。聯(lián)立曲線方程, 求得曲線i′與曲線(i+1)′的交點存至當前指令, 并通過曲線(i+1)′求得潛在終點。如果曲線i′與曲線(i+1)′不存在交點, 則需要插入一條過渡指令, 遍歷指令直至半徑補償撤消[7], 將潛在終點作為半徑補償?shù)慕K點, 所求新軌跡即為帶半徑補償?shù)木幊誊壽E。
輸入: 無半徑補償?shù)臄?shù)控指令集InstructionsSet
輸出: 帶半徑補償?shù)臄?shù)控指令集NewInstructionsSet
Input(InstructionsSet)//輸入數(shù)控指令集
Execute(InstructionsSet)//執(zhí)行數(shù)控指令集
if(InstructionType(i)=G41) then//左補償G41
dor=Read(D), CompensationState=TRUE
else if (InstructionType(i)=G42) then//右補償G41
dor=Read(D)*(-1), CompensationState=TRUE
if(CompensationState)//半徑補償建立
求解補償起點Begin
for each instructioni∈InstructionsSet
if (InstructionType(i+1)!=G40) then do
InstructionRead(i), InstructionRead(i+1);//讀取第i,i+1條指令
InstructionType(i), InstructionType(i+1)→AdapterType
CrossPoint→InstructionWrite(i)//交點寫入指令i
求解潛在終點TempEnd;
else TempEnd→InstructionWrite(i), CompensationState=FALSE
//潛在終點寫入指令i, 半徑補償取消
end for
end if
Output(NewInstructionsSet)//輸出數(shù)控指令集
end Execute//結(jié)束
2.3.1 半徑補償建立
刀具半徑補償均以直線插補開始, 補償起點Begin求法如圖3所示。
圖3 半徑補償建立
G41:
(1)
G42:
(2)
由式(1)和式(2)可知, 左補償G41與右補償G42在補償計算過程中只是r相差了一個符號; 讀入指令N3、N4, 判斷補償狀態(tài)為左補償G41。已知點A、B, 由式(1)求出A′(補償起點Begin), 寫回指令N4, 半徑補償建立。
2.3.2 基于轉(zhuǎn)接方式判斷刀補過程
數(shù)控加工過程中, 隨著前后兩段編程軌跡線形的不同, 相應的刀具中心軌跡有不同的轉(zhuǎn)接形式[8-10]。CNC系統(tǒng)共有4種轉(zhuǎn)接形式。
1) 直線轉(zhuǎn)接直線。以加工圖2工件為例, 直線AB轉(zhuǎn)接直線BC。讀入指令N4、N5, 判斷轉(zhuǎn)接方式為直線轉(zhuǎn)接直線。已知點A、B、C、A′(補償起點Begin), 利用式(1)求得潛在終點C′, 利用點A、B可求出A′B′的斜率k1。又知A′, 可求出直線A′B′方程y=k1x+b1。同理求出B′C′方程y=k2x+b2, 聯(lián)立方程即可解出交點B′寫回指令N4。
2) 直線轉(zhuǎn)接圓弧。以加工圖2工件為例, 直線BC轉(zhuǎn)接順時針圓弧CD。讀入指令N5、N6, 判斷轉(zhuǎn)接方式為直線轉(zhuǎn)接圓弧。已知點B、B′、C、D、R(插補半徑)、r(補償半徑), 利用點B、C可求出A′B′的斜率k1。又知B′, 可求出直線A′B′方程y=k1x+b1。利用C、D、R、r以及圓弧的插補方向求出圓弧C′D′方程(x-x0)2+(y-y0)2=(R+r)2, 聯(lián)立方程即可解出交點C′, 寫回指令N5。
圓弧插補方式下潛在終點求法。
潛在終點求法如圖4所示。
G41:E′點:XE′=Xo+(R+r)cosαYE′=Yo+(R+r)sinα
(3)
G42:E″點:XE″=Xo+(R-r)cosαYE″=Yo+(R-r)sinα
(4)
圖4 圓弧潛在終點求解
由式(3)和式(4)知左補償G41與右補償G42在補償計算過程中只是r相差了一個符號, 由式(3)求出潛在終點D′。
3) 圓弧轉(zhuǎn)接直線。以加工圖2工件為例, 順時針圓弧CD轉(zhuǎn)接直線DE。讀入指令N6、N7, 判斷轉(zhuǎn)接方式為圓弧轉(zhuǎn)接直線。已知點C、C′、D、E、R(插補半徑)、r(補償半徑), 利用C、D、R、r以及圓弧的插補方向求出圓弧C′D′方程(x-x0)2+(y-y0)2=(R+r)2, 利用點D、E可求出D′E′的斜率k1。又由式(3)求出潛在終點E′, 可求出直線D′E′方程y=k1x+b1。聯(lián)立方程即可解出交點D′, 寫回指令N6。
4) 圓弧轉(zhuǎn)接圓弧。以加工圖2工件為例, 順時針圓弧EF轉(zhuǎn)接逆時針圓弧FA。讀入指令N8、N9, 判斷轉(zhuǎn)接方式為圓弧轉(zhuǎn)接圓弧。已知點E、F、A、R(插補半徑)、r(補償半徑), 利用E、F、R、r以及圓弧的插補方向求出圓弧E′F′方程(x-x0)2+(y-y0)2=(R+r)2。同理, 求出圓弧F′A″方程(x-x1)2+(y-y1)2=(R-r)2, 聯(lián)立方程即可解出交點F′, 寫回指令N8, 利用式(3)求出潛在終點A′。
2.3.3 半徑補償撤消
讀入指令N9、N10, 判斷N10指令為G40半徑補償撤消指令, 將潛在終點A″作為半徑補償終點寫回N9, 半徑補償撤消。
按照判斷相鄰兩曲線轉(zhuǎn)接方式的思想編程實現(xiàn)半徑補償功能, 對圖2中的工件進行數(shù)控編程實驗, 選擇直徑為6 cm的端銑刀, 半徑補償r為3 cm, 加工數(shù)據(jù)如表1所示。
半徑補償前后的加工效果如圖5所示。在未使用半徑補償?shù)那闆r下, 由于刀具半徑的存在, 工件明顯過切。該算法通過利用相鄰曲線間的轉(zhuǎn)接方式, 巧妙避開了縮短型、 插入型、 伸長型[3]等補償判斷的繁瑣, 實驗結(jié)果表明, 具有誤差小, 求解高效等優(yōu)點。另外當相鄰兩曲線沒有交點時即方程組無解時, 插入一條半徑為r的半圓弧過渡指令即可。
a 半徑補償前 b半徑補償后
實際加工過程中, 半徑補償不僅與刀具的真實半徑有關, 還與刀具的磨損有關, 在實際加工過程需要根據(jù)刀具真實半徑與磨損值設置半徑補償值。筆者實現(xiàn)了編程軌跡為直線圓弧組合方式的補償, 若編程軌跡出現(xiàn)橢圓、 雙曲線等復雜曲線, 該算法思想同樣適用, 只需做簡單改進。
參考文獻:
[1] 張臣. 球頭銑刀刀具磨損建模與誤差補償 [J]. 機械工程學報, 2008, 44(2): 207-212, 218.
ZHANG Chen. Modeling and Wear-Induced Error Compensation of Ball-End Milling Cutter Wear [J]. Chinese Journal of Mechanical Engineering, 2008, 44(2): 207-212, 218.
[2]張書誠. 基于PC的開放式數(shù)控系統(tǒng)研究 [D]. 合肥: 合肥工業(yè)大學機械與汽車工程學院, 2008.
ZHANG Shu-cheng. Research on the Open NC Systems Based on PC [D]. Hefei: School of Mechanical and Automotive Engineering, Hefei University of Technology, 2008.
[3]李旭宇. 數(shù)控刀具新型半徑補償算法的研究與實現(xiàn) [D]. 廣州: 華南理工大學自動化科學與工程學院, 2010.
LI Xu-yu. Research and Implementation of a Novel Algorithm for Tool Compensation [D]. Guangzhou: College of Antomation Science and Engineering, South China University of Technology, 2010.
[4]盧軍霞. 刀具半徑補償算法的研究與實現(xiàn) [J]. 機床與液壓, 2010, 38(12): 9-10.
LU Jun-xia. Research and Implementation of Cutting Tool Radius Compensation Algorithm [J]. Machine Tool and Hydraulics, 2010, 38(12): 9-10.
[5]劉德平. CNC系統(tǒng)刀具半徑補償功能的實現(xiàn) [J]. 組合機床與自動化加工技術, 2002(2): 18-20.
LIU De-ping. Realization of Cutter Radius Compensation in CNC System [J]. Modular Machine Tool & Automatic Manufacturing Technique, 2002(2): 18-20.
[6]潘冬. FANUC數(shù)控系統(tǒng)刀具半徑補償?shù)膽?[J]. 裝備制造技術, 2009(4): 137-141.
PAN Dong. Application of Radius Compensation on FANUC NC Systems [J]. Equipment Manufacturing Technology, 2009(4): 137-141.
[7]朱志紅. 刀具半徑補償算法研究 [J]. 華中理工大學學報, 1993, 21(2): 99-104.
ZHU Zhi-hong. Research of Cutting Tool Radius Compensation Algorithm [J]. Journal of Huazhong University of Science and Technology, 1993, 21(2): 99-104.
[8]趙亞軍. 刀具半徑補償在數(shù)控仿真中的應用 [J]. 機械研究與應用, 2007, 20(6): 44-46.
ZHAO Ya-jun. Application of Tool Radius Compensation in Simulation of Numerical Control [J]. Mechanical Research and Application, 2007, 20(6): 44-46.
[9]張麗麗. 刀具半徑補償轉(zhuǎn)接類型的判斷方法 [J]. 數(shù)字技術與應用, 2012(9): 189.
ZHANG Li-li. Judgment Method on Transfer Type of Tool Radius Compensation [J]. Digital Technology and Application, 2012(9): 189.
[10]胡柳, 趙玉剛, 李海洋, 等. 刀具半徑補償轉(zhuǎn)接類型的判斷方法 [J]. 山東理工大學學報: 自然科學版, 2011, 25(1): 84-87.
HU Liu, ZHAO Yu-gang, LI Hai-yang, et al. Judgment Method on Transfer Type of Tool Radius Compensation [J]. Journal of Shandong University of Technology: Natural Science Edition, 2011, 25(1): 84-87.