基于数控铣床的半径补偿算法
2013-10-15董立岩辛晓华李永丽尹相杰
董立岩, 张 亮, 田 耕, 辛晓华, 李永丽, 孙 鹏, 尹相杰
(1. 吉林大学 计算机科学与技术学院, 长春 130012; 2. 东北师范大学 计算机科学与信息技术学院, 长春 130117)
0 引 言
在数控加工过程中, 数控系统的实际控制对象是刀具中心, 数控系统通过直接控制刀具中心的运动轨迹, 间接地实现对实际零件的轮廓加工。由于刀具半径的存在, 刀具的运动轨迹并不等同于所需加工零件的实际轮廓[1,2]。因此, 编程人员需根据零件轮廓并结合刀具半径重新计算编程轨迹, 这种计算过程称为刀具补偿[3]。如果数控机床具备刀具自动补偿的功能, 编程人员只需按照工件的轮廓轨迹编制数控程序, 将补偿值输入CNC系统, 数控系统即可自动进行刀具补偿计算和调整刀具运动轨迹, 加工合格的零件, 既不容易产生错误, 又能提高编程效率。
笔者提出一种通过判断相邻两曲线转接方式实现半径补偿的算法, 实验证明该算法适用于转接方式[4,5]为直线和直线、 直线和圆弧、 圆弧和直线以及圆弧和圆弧相邻的所有半径补偿方式。
1 相关理论基础
1.1 刀具半径补偿分类
刀具半径补偿分为左补偿和右补偿[6](见图1), 沿着刀具进给的方向看, 刀具在加工工件轮廓的左边叫做左补偿, 用G41指令实现; 沿着刀具进给的方向看, 刀具在加工工件轮廓的右边叫做右补偿, 用G42指令实现; 另外, 半径补偿取消用G40指令实现。
图1 半径补偿分类
1.2 编程轨迹转接方式
图2 转接方式
在实际加工过程中, 大多数工件轮廓线是由圆弧和直线组成, 所以在刀具补偿中, 相邻两段编程轨迹在转接处有如下4种转接方式(见图2): 1) 直线转接直线; 2) 直线转接圆弧; 3) 圆弧转接直线; 4) 圆弧转接圆弧。其指令如下:
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″为带半径补偿的轨迹, 沿着刀具进给的方向看, 刀具在加工工件轮廓的左边, 半径补偿类型左补偿, 补偿从A点开始, 经B、C、D、E、F回到A点, 半径补偿取消; 轮廓中轨迹转接方式: 直线AB转接直线BC、 直线BC转接顺时针圆弧CD、 顺时针圆弧CD转接直线DE、 直线DE转接顺时针圆弧EF、 顺时针圆弧EF转接逆时针圆弧FA。
2 刀具半径补偿的算法设计与分析
2.1 算法思想
算法的基本思想是在原有编程轨迹基础上结合刀具半径补偿值r重新计算编程轨迹。具体过程如下: 半径补偿建立[7], 顺序读取数控指令及其后继行指令, 通过相邻行的指令类型获得编程轨迹的转接方式, 根据指令索引号,分别设所取前后两条指令轨迹为曲线i和曲线i+1, 补偿后轨迹为曲线i′与曲线(i+1)′。若曲线i为直线, 则曲线i′与曲线i平行且距离为r; 若曲线i为圆弧, 则曲线i′与曲线i为半径R+r或R-r和R的同心圆。同理可求得曲线(i+1)′。联立曲线方程, 求得曲线i′与曲线(i+1)′的交点存至当前指令, 并通过曲线(i+1)′求得潜在终点。如果曲线i′与曲线(i+1)′不存在交点, 则需要插入一条过渡指令, 遍历指令直至半径补偿撤消[7], 将潜在终点作为半径补偿的终点, 所求新轨迹即为带半径补偿的编程轨迹。
2.2 算法描述
输入: 无半径补偿的数控指令集InstructionsSet
输出: 带半径补偿的数控指令集NewInstructionsSet
Input(InstructionsSet)//输入数控指令集
Execute(InstructionsSet)//执行数控指令集
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)//输出数控指令集
end Execute//结束
2.3 算法详细实现
2.3.1 半径补偿建立
刀具半径补偿均以直线插补开始, 补偿起点Begin求法如图3所示。
图3 半径补偿建立
G41:
(1)
G42:
(2)
由式(1)和式(2)可知, 左补偿G41与右补偿G42在补偿计算过程中只是r相差了一个符号; 读入指令N3、N4, 判断补偿状态为左补偿G41。已知点A、B, 由式(1)求出A′(补偿起点Begin), 写回指令N4, 半径补偿建立。
2.3.2 基于转接方式判断刀补过程
数控加工过程中, 随着前后两段编程轨迹线形的不同, 相应的刀具中心轨迹有不同的转接形式[8-10]。CNC系统共有4种转接形式。
1) 直线转接直线。以加工图2工件为例, 直线AB转接直线BC。读入指令N4、N5, 判断转接方式为直线转接直线。已知点A、B、C、A′(补偿起点Begin), 利用式(1)求得潜在终点C′, 利用点A、B可求出A′B′的斜率k1。又知A′, 可求出直线A′B′方程y=k1x+b1。同理求出B′C′方程y=k2x+b2, 联立方程即可解出交点B′写回指令N4。
2) 直线转接圆弧。以加工图2工件为例, 直线BC转接顺时针圆弧CD。读入指令N5、N6, 判断转接方式为直线转接圆弧。已知点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, 联立方程即可解出交点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) 圆弧转接直线。以加工图2工件为例, 顺时针圆弧CD转接直线DE。读入指令N6、N7, 判断转接方式为圆弧转接直线。已知点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。联立方程即可解出交点D′, 写回指令N6。
4) 圆弧转接圆弧。以加工图2工件为例, 顺时针圆弧EF转接逆时针圆弧FA。读入指令N8、N9, 判断转接方式为圆弧转接圆弧。已知点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, 联立方程即可解出交点F′, 写回指令N8, 利用式(3)求出潜在终点A′。
2.3.3 半径补偿撤消
读入指令N9、N10, 判断N10指令为G40半径补偿撤消指令, 将潜在终点A″作为半径补偿终点写回N9, 半径补偿撤消。
3 实验结果与分析
按照判断相邻两曲线转接方式的思想编程实现半径补偿功能, 对图2中的工件进行数控编程实验, 选择直径为6 cm的端铣刀, 半径补偿r为3 cm, 加工数据如表1所示。
半径补偿前后的加工效果如图5所示。在未使用半径补偿的情况下, 由于刀具半径的存在, 工件明显过切。该算法通过利用相邻曲线间的转接方式, 巧妙避开了缩短型、 插入型、 伸长型[3]等补偿判断的繁琐, 实验结果表明, 具有误差小, 求解高效等优点。另外当相邻两曲线没有交点时即方程组无解时, 插入一条半径为r的半圆弧过渡指令即可。
a 半径补偿前 b半径补偿后
6 结 语
实际加工过程中, 半径补偿不仅与刀具的真实半径有关, 还与刀具的磨损有关, 在实际加工过程需要根据刀具真实半径与磨损值设置半径补偿值。笔者实现了编程轨迹为直线圆弧组合方式的补偿, 若编程轨迹出现椭圆、 双曲线等复杂曲线, 该算法思想同样适用, 只需做简单改进。
参考文献:
[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的开放式数控系统研究 [D]. 合肥: 合肥工业大学机械与汽车工程学院, 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]李旭宇. 数控刀具新型半径补偿算法的研究与实现 [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]卢军霞. 刀具半径补偿算法的研究与实现 [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系统刀具半径补偿功能的实现 [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数控系统刀具半径补偿的应用 [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]赵亚军. 刀具半径补偿在数控仿真中的应用 [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]张丽丽. 刀具半径补偿转接类型的判断方法 [J]. 数字技术与应用, 2012(9): 189.
ZHANG Li-li. Judgment Method on Transfer Type of Tool Radius Compensation [J]. Digital Technology and Application, 2012(9): 189.
[10]胡柳, 赵玉刚, 李海洋, 等. 刀具半径补偿转接类型的判断方法 [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.