
2.2.2 插补技术
运动系统的轮廓控制是根据已知运动轨迹的起点坐标、终点坐标、曲线类型和走向,由运动控制系统实时计算各中间点的坐标。这个中间点坐标的插入和补充的技术称为插补技术。
插补技术是运动控制器中的一种算法。它是在一条已知起点和终点的曲线之间进行数据密集化的算法。按数学模型,可分为一次(直线)插补、二次(圆弧、抛物线、椭圆、双曲线、二次样条)插补和高次(样条)插补等。按插补方法,可分为脉冲增量插补和数字增量插补。
脉冲增量插补是控制单个脉冲输出规律的插补方法。每输出一个脉冲,移动部件相应移动一定距离(称为脉冲当量)。因此,它也称为行程标量插补。常用的有逐点比较法、数字积分法等。
数字增量插补是在规定时间(称为插补时间)内,计算各坐标方向的增量等数据,伺服系统在下一插补时间内走完插补计算给出的行程。它也称为时间标量插补。
直线插补的原理简单,控制误差容易,通常用曲率圆弧近似估计误差,以计算符合精度要求的插补直线段参数变量。但直线插补生成的逼近曲线不是一阶连续的,在期望精度高的场合生成的插补点数过多,造成数据存储和传输的困难。
圆弧插补可在一定程度上弥补直线插补的不足,可生成一阶几何连续的逼近曲线,生成的插补圆弧段数量较少。但插补圆弧控制误差的计算复杂,难以解析求解出目标曲线与逼近曲线之间距离,需用数值分析方法求解出满足精度要求的插补圆弧参数。
目前,插补一般用软件实现。常用的插补是直线插补和圆弧插补。直线插补算法简单,误差容易控制,通常采用曲率圆弧近似估计误差的方法计算符合精度要求的插补直线段参数变量。但直线插补生成的逼近曲线不连续,精度要求高时插补点数多,因此,数据存储和传输负担大。圆弧插补可生成一阶几何连续的逼近曲线,生成的插补圆弧段数少,但计算圆弧插补的误差计算较复杂,难以解析求解出目标曲线和逼近曲线之间的距离。
1.直线插补
图2-7所示方法是逐点比较的直线插补法。

图2-7 直线插补原理
在起点Ps(xs,ys)和终点Pe(xe,ye)之间连接直线PsPe,确定直线上某插补点P的坐标(x,y)。其中,x∈(x0,x1)。直线插补计算公式如下:

通常,直线插补步骤分为三步。
(1)偏差函数构造
一般采用相对位置表示偏差函数。根据相似关系,有

用相对坐标表示,对起点有Ps(xs,ys)=(0,0),终点有Pe(xe,ye)。则某点的斜率等于终点处的斜率,表示该点在直线插补的直线上。如果某点(xi,yi)的斜率大于终点处的斜率,表示该点在插补直线的上面,反之,如果某点的斜率小于终点处的斜率,表示该点在插补直线的下面。因此,构造偏差函数Fi如下:

● 如果Fi=0表示插补点在插补的直线上。
● 如果Fi>0表示插补点在插补直线上面。
● 如果Fi<0表示插补点在插补直线下面。
(2)偏差函数递推计算
它是从当前点向下一点运动时,如何计算下一点位置的算法。
● 如果Fi≥0,规定向x+方向前进一步。计算公式如下:

● 如果Fi<0,规定向y+方向前进一步。计算公式如下:

(3)终点判别
有三种方法进行终点判别:插补总步数;分别判别各子坐标插补步数;仅判别插补步数多的那一个坐标轴。
2.圆弧插补
图2-8所示的方法是逐点比较的圆弧插补法。圆弧插补针对多轴运动,其实质是用弦进给代替弧进给。它分为顺(时针)圆弧插补和逆(时针)圆弧插补。

图2-8 圆弧插补原理
以第一象限逆时针圆弧为例,圆弧的圆心在原点,圆弧半径R,起点Ps(xs,ys),对圆弧上任一加工点P(xi,yi),它与圆心的距离RP满足

如果插补点P正好在圆弧上,则有

与直线插补类似,圆弧插补步骤也分为三步。
(1)偏差函数构造
构造偏差函数Fi如下:

(2)偏差函数递推计算
对逆圆弧插补,偏差函数递推计算如下:
● 如果Fi≥0,规定向x-方向前进一步。计算公式为

● 如果Fi<0,规定向y+方向前进一步。即计算公式如下:

对顺圆弧插补,偏差函数递推计算如下:
● 如果Fi≥0,规定向y-方向前进一步。计算公式为

● 如果Fi<0,规定向x+方向前进一步。计算公式为

(3)终点判别
圆弧插补的终点判别有两种方法:
● 判别插补总步数。插补总步数计算公式为

● 分别判别各坐标轴的插补步数,计算公式为

3.样条插补
常用的样条曲线是三次B样条曲线和三次非均匀有理B样条曲线(NURBS曲线)。
样条曲线是用多项式曲线段连接而成的曲线。每段曲线边界处满足特定的连续条件,其形状由一组控制点决定。
样条曲线可精确地表示解析曲线和自由曲线,数控技术中,为加工复杂的流线型覆盖件,例如,飞机机翼和成形模具等需要高精度的数控加工。采用传统曲面数控加工技术不仅处理数据量大,而且加工效率不高。因此,1991年国际标准化组织规定数控系统数据标准作为工业产品模型数据交换标准,成为定义工业产品几何形状的唯一数学方法。按数控系统数据标准ISO 14649,样条曲线插补是将符合三维几何模型加工信息直接作为数控系统输入,即直接对参数曲线进行插补。
(1)B样条函数
B样条即基本样条(Basic spline)。1946年由舍恩贝格(Schoenberg)提出,并在1972年由德布尔和考克斯(deBoor-Cox)分别独立给出B样条计算的标准算法。理论上常采用截尾幂函数的差商定义B样条曲线,实际应用则常采用B样条的递推定义。
B样条曲线采用控制顶点来定义曲线。曲线方程可描述为

式中,Pi(i=0,1,…,n)是控制多边形的顶点;Ni,k(u)(i=0,1,…,n)是k阶(k-1次)B样条基函数。其中,每一个k次规范B样条基函数称为规范B样条,或简称B样条。由于它由非递减节点矢量u的序列T:u0≤u1≤…≤un+k所决定的k阶分段多项式,因此,称为k-1次多项式样条。
根据德布尔-考克斯的递推公式,曲线方程可写为

式中,规定。Ni,k(u)的下标i表示序号,k表示次数。
(2)三次非均匀有理B样条函数
三次非均匀有理B样条(Non-Uniform Rational B-Spline,NURBS)函数描述为

式中,wi(i=0,1,…,n)是权因子,分别与控制顶点di(i=0,1,…,n)相联系,Ni,k(t)是节点矢量u=[u0,u1,…,un+k+1]按递推公式确定的k次规范B样条基函数。P3、P2、P1和P0是分子系数矢量;Q3、Q2、Q1和Q0是分母系数。B样条基函数的递推公式见式(2-26)和式(2-27)。
上述计算公式中各项系数矢量和系数随插补点位置的改变而不同,因此,样条曲线插补是变系数三次曲线插补。
PLCopen运动控制规范提供了直线插补和圆弧插补功能块。例如,MC_MoveLinearAbsolute、MC_MoveCircularAbsolute等。一些制造商还可提供规定的多项式插补功能块。