从最基础的 IO口模拟脉冲控制步进电机旋转,到步进电机的梯形、S 型加减速以及 PID 速度环位置环控制等,这些都是控制单个步进电机的方法,在众多的步进电机应用中,更多的是双轴甚至多轴的联动控制。

插补运动

概念

  • 插补这个概念最初源自于数值分析数学中的插值,它是一类在离散的已知数据点范围内构造新数据点的方法。现在这类方法被广泛应用在数控系统和各种相关行业中,所以接下来关于插补的

  • 介绍讲解将会直接引用数控系统对其的定义,包括可能出现的一些数控系统的名词。

  • 数控机床的加工过程中,在理论上刀具的运动轨迹应该十分精准的沿着被加工工件的轮廓,同时满足对加工对象的精度要求。但是真正加工的工件轮廓可能是各种形状,有一些简单的直线段和圆弧,还有一些复杂曲线。直接生成复杂曲线的运动轨迹会耗费大量的计算资源,因此在实际应用中通常使用简单的线型去拟合复杂曲线,同时采用一系列微小的直线段去逼近直线和圆弧线型,以满足加工精度的要求。

  • 在数控机床的加工程序中,一般仅提供描述线性所必须的参数,比如直线段只提供起点和终点在加工系统中的坐标,圆弧则会提供圆心、起点和终点的坐标,以及圆弧的方向。一般数控机床的刀具运动轨迹是由 X、Y 两个方向的运动合成的,本身并不能非常严格的按照理论曲线运动,只知道这么一些线段参数无法精准的完成加工任务,需要一种方法能把已知点中间所有微小直线段的坐标点全都计算出来,从而形成符合精度要求的刀具运动轨迹,这种计算方法就叫插补(interpolation),也称为“数据点的密化”。插补算法法所要解决的就是根据加工速度的要求,在给定的数据点坐标之间,连续计算出若干中间点的坐标值。而这些中间点的坐标值以一定的精度逼近理论的轨迹。由于计算每个中间点所消耗的时间直接影响数控系统的控制速度,坐标值的计算精度又影响数控系统的控制精度,所以插补算法是整个数控系统的控制核心。

插补:机床数控系统依照一定方法确定刀具运动轨迹的过程。也可以说,已知曲线上的某些数据,数控装置根据输入的零件程序的信息,将程序段所描述的曲线的起点、终点之间的空间进行数据密化,从而形成要求的轮廓轨迹,这种“数据密化”机能就称为“插补”。

在数控机床中,刀具不能严格地按照要求加工的曲线运动,只能用折线轨迹逼近所要加工的曲线。 机床数控系统依照一定方法确定刀具运动轨迹的过程。 也可以说,已知曲线上的某些数据,按照某种算法计算已知点之间的中间点的方法,也称为“数据点的密化”

常见的插补方式有:直线插补、圆弧插补、抛物线插补、样条线插补等。

例如:直线插补(Llne Interpolation):是车床上常用的一种插补方式,通常用于走斜线或直线轨迹,在此方式中,两点间的插补沿着直线的点群来逼近。在实际应用中一个零件的轮廓可以是多样的,有直线、圆弧,也有可能是任意曲线、样条线等,而数控机床的刀具往往是不能以曲线的实际轮廓去走刀的,而是近似地以若干条很小的直线去走刀逼近,走刀的方向一般是 x 和y 方向。

常见插补方法

插补应该是一类计算方法,而不只是某一种。目前,根据不同的条件给出的插补方法实现有很多种,在这里我们简单的介绍几种常用的插补方法。根据输出信号的方式不同,插补算法大致可以分为脉冲增量插补和数字增量插补两大类。

  • A.脉冲增量插补。也称作基准脉冲插补,这类插补算法的特点是每次插补运算只产生一个行程增量,用一个个脉冲的方式输出到电机以驱动机床刀具或工作台运动。每发出一个脉冲,刀具或工作台向 X 或 Y 轴方向移动一个脉冲当量。脉冲增量插补的实现方法相对比较简单,通常只需加法、乘法和移位即可完成插补。这类算法一般适合中等精度和中等速度的数控系统中,插补误差不超过一个脉冲当量,不过输出脉冲的速率主要受插补计算的时间限制。
  • B.数字采样插补。这类插补算法的特点是把插补运算分成了粗插补和精插补两个部分。第一步先粗插补,把给定曲线分割成若干等长的首尾相接的微小直线段,直线段的长度与插补周期有关,求得每个微小直线段起点终点的增量坐标。粗插补生成的直线段对于系统精度来说还是比较大,所以还需要第二部分,第二部分是精插补,这一部分实际上是把粗插补部分生成的直线段再做插补,相当于对直线使用脉冲增量插补。

上述两类插补算法中,数字采样插补输出的信号不是一个脉冲当量,而是与各坐标轴位置增量相对应的几个数字量,并且需要数控系统的反馈回路跟踪轨迹误差,然后根据误差修正下一次计算结果,所以这类算法基本上都用在以伺服电机为驱动装置的闭环数控系统。脉冲增量插补算法就非常适合以步进电机为驱动装置的开环数控系统,脉冲增量插补在计算过程中不断向 X、Y 各个坐标轴发出进给脉冲,以驱动坐标轴所在的步进电机运动。目前已经有很多属于脉冲增量插补算法的具体算法被用到实际的生产应用中,在这里我们简单介绍几种比较常见的。

  • 逐点比较法。逐点比较法最开始被称为区域判别法,又称代数运算法或醉步式近似法。是一种逐点计算、判别偏差并修正逼近理论轨迹的方法。逐点比较法的基本思想就是在刀具按理论轨迹运动加工工件轮廓的时候,不断比较刀具与工件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小误差的方向移动。
  • 数字积分法。数字积分法又称数字微分分析法 DDA(Digital Differential Analyzer),简称积分器。这种算法是在数字积分器的基础上建立起来的一种插补算法,可以较为方便的实现一次、二次曲线的插补。具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。
  • Bresenham 算法。这种算法本来是计算机图形学里的一种用来快速画直线段和圆的绘图算法,由于算法非常成熟并且十分高效,目前也逐渐被引入到数控系统中,通常作为直线插补算法或者多轴联动算法使用。例如著名的开源 3D 打印机固件 Marlin,其内部就应用了Bresenham 算法。

在普通的开环数控系统中,逐点比较法和数字积分法应用最为广泛,其中逐点比较法计算简单直观容易理解,并且输出为步进式的脉冲信号,尤其适合步进电机驱动的开环数控系统。

逐点比较法直线插补原理

逐点比较法能逐点计算和比较加工偏差,以控制刀具的下一步进给。逐点比较法是以阶梯折现来逼近直线段和圆弧等曲线。每完成一次进给都需要以下 4 个步骤:

  • 偏差判别:判断当前加工点和理论加工图形之间的相对位置,决定下一步 X、Y 轴的运动方向;
  • 坐标进给:根据得到的偏差,控制指定坐标轴进给(移动)一步,逼近理论图形,减小误差;
  • 偏差计算:计算新的加工点与理论加工图像间的偏差大小,作为下一步判别的依据;
  • 终点判别:判断是否到达加工终点,如果到达终点则停止插补,如过没有到达终点,则回

到第一个步骤,不断重复整个过程,直到到达轨迹终点。逐点比较法可以插补直线和圆弧,并且都存在上述 4 个步骤,在这一章中我们先来讲解逐点比较法如何实现直线插补,圆弧插补放到下一章。为了降低复杂度,我们首先讲解在坐标轴第一象限的直线的插补原理。

偏差判别

假设现在有一条如下图所示的第一象限直线 OE,取 O 点为坐标原点,直线终点为 E 点且坐标已知,图中有一动点 P 为加工点。

  • 根据上图信息使用直线的两点式方程可得直线 OE 的OE 的方程

  • 设 Fi 为加工动点 P 与直线 OE 间的偏差,将 Fi 和点 P 坐标代入上式

从上面等式中可以分析出,Fi 的符号能够反映动点 P 和直线 OE 的位置偏差情况

  • 若 Fi= 0,表示动点 P 在直线 OE 内
  • 若 Fi> 0,表示动点 P 在直线 OE 的上方
  • 若 Fi< 0,表示动点 P 在直线 OE 的下方

综上,这个等式便是逐点比较法直线插补的偏差判别方程

坐标进给

逐点比较法的坐标进给有两个原则:一是减小加工动点相对于理论轨迹的位置偏差,二是进给方向总是平行与某个坐标轴。根据这个原则以及上个步骤偏差判别的信息,可以得出直线插补的坐标进给方法:

  • 当 Fi= 0 时,动点 P 在直线内,可向 +X 方向进给一步,也可向 +Y 方向进给一步,通常规定向 +X 方向进给;
  • 当 Fi> 0 时,动点 P 在直线上方,应该向 +X 方向进给一步;
  • 当 Fi< 0 时,动点 P 在直线下方,应该向 +Y 方向进给一步;

开始坐标进给前,刀具总是位于直线轨迹的起点处,此时 Fi= 0,整个坐标进给的轨迹效果可以用一张图演示出来。

当然,图中只做为直线插补中刀具运动轨迹的演示,实际应用中的运动轨迹并不会像图里这么夸张,进给一步的长度是一个脉冲当量,以保证加工精度。

偏差计算

在坐标进给之后得到新的动点坐标值,此时需要计算新的动点和理论轨迹之间的偏差值。从前面的讨论中我们知道了偏差值 Fi 的计算公式,可以通过公式直接求出 Fi。虽然现在的各种控制器基本可以轻松的做乘法运算,但是为了追求更高的运行效率,我们把当前的偏差计算公式做一点小小的优化,将其变为递推公式,即设法找到相邻两个加工动点偏差值间的关系。

假设当 Fi> 0 时,加工动点向 +X 方向进给一步,生成一个新的动点 Pi+1,坐标是 (Xi+1, Yi+1),则新动点的偏差值 Fi+1 计算公式为:

  • 又因为动点 Pi+1 的坐标可由 P 点表示

  • 所以将由 P 点表示的 Pi+1 坐标代入 Fi+1 式中

最后得出的这个公式便是逐点比较法的第一象限直线插补偏差计算的递推公式,从式中可以看出,偏差 Fi+1 的计算只跟上一步进给的偏差 Fi 和终点坐标值有关,且只有加法运算,比原始公式更简单快速。

  • 同理可得,当 Fi< 0,加工动点向 +Y 方向进给一步后的新偏差值递推公式

终点判别

常用的终点判别方法有三种,终点坐标法、投影法和总步长法。

  • 终点坐标法。在启动插补之前,先定义 X、Y 两个方向的步长计数器,分别记录终点坐标在 X、Y 两个方向上的值。开始插补后当 X、Y 方向每进给一步,就在相应的计数器中减1,直到两个计数器的值都减为 0 时,刀具抵达终点,停止插补。

  • 投影法。在插补前,先比较出终点坐标的 X、Y 值中较大的一个,然后以较大的数值作为计数器的值,当对应的轴有进给时,计数器减 1,直到计数器为 0。相当于终点坐标向值较大的轴做投影,所以叫投影法。

  • 总步长法,即插补前,将终点坐标的 X、Y 值求和,得到一个总步长计数器,开始插补后,无论哪个轴进给一步,总步长计数器都减 1,直到计数器等于 0,停止插补。

以上三种终点判别的方法,全部使用坐标的绝对值进行计算。

任意象限直线插补的原理

前面讲解的都是以第一象限为例,实际上为了完成任意直线插补还需要考虑运动方向在4 个象限内的情况,原理与第一象限同理,所以理解起来较为简单。

这里以第二象限为例,此时的坐标点 X 轴方向都是小于 0,与原本第一象限+X 相反,所以此时步进电机运动方向需要反向,Y 轴都为正,电机运动方向无需改变,这就可以插补出第二象限的直线了,第三、四象限同理,只要与第一象限坐标符号相反,所对应的轴的步进电机就往反方向运动,否则同向。总结下表:

直线插补的原理部分基本就是这样子了。