一、基本概述
数控技术一般以标准的格式对程序段进行描述,例如程序段“N15 G02 Xlo Y25 120 JOF125 LF”就规定了一个以(10,25)为起点,在X-Y平面上以150mm/min的进给速度顺时针加工一个半径为20mm的整圆的过程。程序段只提供了有限的提示性信息(例如起点、终点和插补方式等),数控装置需要在加工过程中,根据这些提示并运用一定的算法,自动地在有限坐标点之间生成一系列的中间点坐标数据,并使刀具及时地沿着这些实时发生的坐标数据运动,这个边计算边执行的逼近过程就称为插补(interpolation)。上述程序段中的准备功能G02就指定了该程序段的执行要采用顺时针方向的圆弧插补。
插补是一个实时进行的数据密化的过程,不论是何种插补算法,运算原理基本相同,其作用都是根据给定的信息进行数字计算,不断计算出参与运动的各坐标轴的进给指令,然后分别驱动各自相应的执行部件产生协调运动,以使被控机械部件按理想的路线与速度移动,由此,轨迹插补与坐标轴位置伺服控制是运动控制系统的两个主要环节。
插补运算是轨迹控制中最重要的计算任务,而插补计算又必须是实时的,即必须在有限的时间内完成计算任务。因此除了要保证插补计算的精度外,还要求算法简单,一般采用迭代算法,这样可避免三角函数计算,同时减少乘除及开方运算,它的运算速度直接影响运动系统的控制速度,而插补计算精度又影响整个运动系统的精度,人们一直在努力探求计算速度快同时计算精度又高的插补方法。
目前普遍应用的插补算法分为两大类:一是脉冲增量插补,另一是数据采样插补。下面主要介绍运动轨迹的插补原理,分别就这两大类中的一种典型的具体方法来描绘出插补的完整过程,包括插补方法及终点判别。
二、插补原理
插补最常见的两种方式是直线插补和圆弧插补。插补运动至少需要两个轴参与,进行插补运动时,将规划轴映射到相应的机台坐标系中,运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。
插补运动指令会存入运动缓冲区,再依次从运动缓冲区中取出指令执行,直到插补运动全部执行完。
1. 直线插补原理
直线插补方式中,两点间的插补沿着直线的点群来逼近。首先假设在实际轮廓起始点处沿X方向走一小段(给一个脉冲当量轴走一段固定距离),发现终点在实际轮廓的下方,则下一条线段沿Y方向走一小段,此时如果线段终点还在实际轮廓下方,则继续沿Y方向走一小段,直到在实际轮廓上方以后,再向X方向走一小段,依此类推,直到到达轮廓终点为止。这样实际轮廓是由一段段的折线拼接而成,虽然是折线,但每一段插补线段在精度允许范围内非常小,那么此段折线还是可以近似看做一条直线段,这就是直线插补。
正运动控制器采用硬件插补,插补精度在一个脉冲内,所以轨迹放大依然平滑。假设轴需要在在XY平面上从点(X0,Y0)运动到点(X1,Y1),其直线插补的加工过程如下图所示。
给轴发送一个脉冲运动的距离由电机的特性决定,不同的轴单个脉冲运动距离有所不同。
2. 圆弧插补原理
圆弧插补与直线插补类似,给出两端点间的插补数字信息,以一定的算法计算出逼近实际圆弧的点群,控制轴沿这些点运动,加工出圆弧曲线。圆弧插补可以是平面圆弧(至少两个轴),还可以是空间圆弧(至少三个轴)。假设轴需要在XY平面第一象限走一段逆圆弧,圆心为起点,其圆弧插补的加工过程如下图所示。
控制器的空间圆弧插补功能是根据当前点和圆弧指令参数设置的终点和中间点(或圆心),由三个点确定圆弧,并实现空间圆弧插补运动,坐标为三维坐标,至少需要三个轴分别沿X轴、Y轴和Z轴运动。
三、插补运动参数计算
1. 二轴直线插补
轴0和轴1两轴参与直线插补运动,如下图,二轴直线插补运动从平面的A点运动到B点,XY轴同时启动,并同时到达终点,设置轴0的运动距离为 \(\Delta{X}\) ,轴1的运动距离为 \(\Delta{Y}\) ,主轴是BASE的第一个轴(此时主轴为轴0),插补运动参数采用主轴的参数。
若插补主轴运动速度为 \(S\) (主轴轴0的设置速度),各个轴的实际速度为主轴的分速度,不等于 \(S\),此时:
- 插补运动的距离:\(X=\sqrt{\Delta{X}^2+\Delta{Y}^2}\)
- 轴0实际平均速度:\(S0=S×\Delta{X}/X\)
- 轴1实际平均速度:\(S1=S×\Delta{Y}/X\)
2. 三轴直线插补
轴0、轴1和轴2三轴参与直线插补运动,如下图所示,3轴直线插补运动从A点运动到B点,XYZ轴同时启动,并同时到达终点,设置轴0的运动距离为 \(\Delta{X}\) ,轴1的运动距离为 \(\Delta{Y}\) ,轴2的运动距离为 \(\Delta{Z}\) 。
若插补主轴轴0的运动速度为S,各个轴的实际速度为主轴的分速度,不等于S,此时:
- 插补运动距离: \(X=\sqrt{\Delta{X}^2+\Delta{Y}^2+\Delta{Z}^2}\)
- 轴0实际速度:\(S0=S×\Delta{X}/X\)
- 轴1实际速度:\(S1=S×\Delta{Y}/X\)
- 轴2实际速度:\(S2=S×\Delta{Z}/X\)
四、插补运动相关指令
1.插补运动指令分类
在相对运动指令的基础上加上不同的后缀之后,便具有不同的特点。
1)相对运动指令:插补运动的距离参数为与当前插补起点的相对距离。例如MOVE,MOVECIRC。
2)绝对运动指令:插补运动的距离参数为相对于原点的绝对距离,在相对运动指令后方加上ABS后缀。例如MOVEABS,MOVECIRCABS。
3)SP运动指令:带SP的指令运动速度采用FORCE_SPEED、ENDMOVE_SPEED、STARMOVE_SPEED参数运动,不带SP的运动指令,如上面两类,指令运动速度采用SPEED参数,SP运动指令在相对运动指令或绝对运动指令后方加上SP后缀。例如MOVESP,MOVEABSSP。
三类运动的区别采用下方例子展开说明。