发布时间:2024-11-22
插补这个概念最初源自于数值分析数学中的插值,它是一类
在离散的已知数据点范围内构造新数据点的方法。现在这类方法被广泛应用在数控系统和各种相关行业中。
数控机床的加工过程中,在理论上刀具的运动轨迹应该十分精准的沿着被加工工件的轮廓,同时满足对加工对象的精度要求。但是真正加工的工件轮廓可能是各种形状,有一些简单的直线段和圆弧,还有一些复杂曲线。直接生成复杂曲线的运动轨迹会耗费大量的计算资源, 因此
在实际应用中通常使用简单的线型去拟合复杂曲线,同时采用一系列微小的直线段去逼近直线和圆弧线型,以满足加工精度的要求。在数控机床的加工程序中,一般仅提供描述线性所必须的参数,比如直线段只提供起点和终点在加工系统中的坐标,圆弧则会提供圆心、起点和终点的坐标, 以及圆弧的方向。一般数控机床的刀具运动轨迹是由X、Y两个方向的运动合成的,本身并不能非常严格的按照理论曲线运动,只知道这么一些线段参数无法精准的完成加工任务,
需要一种方法能把已知点中间所有微小直线段的坐标点全都计算出来,从而形成符合精度要求的刀具运动轨迹,这种计算方法就叫插补(interpolation),也称为“数据点的密化”。插补算法法所要
解决的就是根据加工速度的要求,在给定的数据点坐标之间,连续计算出若干中间点的坐标值。而这些中间点的坐标值以一定的精度逼近理论的轨迹。由于计算每个中间点所消耗的时间直接影响数控系统的控制速度,坐标值的计算精度又影响数控系统的控制精度, 所以插补算法是整个数控系统的控制核心。
常见插补方法
严格来说,
插补应该是一类计算方法,而不只是某一种。目前,根据不同的条件给出的插补方法实现有很多种,在这里我们简单的介绍几种常用的插补方法。
根据输出信号的方式不同,插补算法大致可以分为脉冲增量插补和数字增量插补两大类。
脉冲增量插补。也称作基准脉冲插补,这类插补算法的特点是每次插补运算只产生一个行程增量,用一个个脉冲的方式输出到电机以驱动机床刀具或工作台运动。每发出一个脉冲,刀具或工作台向X或Y轴方向移动一个脉冲当量。脉冲增量插补的实现方法相对比较简单,通常只需加法、乘法和移位即可完成插补。这类算法一般适合中等精度和中等速度的数控系统中,插补误差不超过一个脉冲当量,不过输出脉冲的速率主要受插补计算的时间限制。
数字采样插补。这类插补算法的特点是把插补运算分成了粗插补和精插补两个部分。第一步先
粗插补,把给定曲线分割成若干等长的首尾相接的微小直线段, 直线段的长度与插补周期有关,求得每个微小直线段起点终点的增量坐标。粗插补生成的直线段对于系统精度来说还是比较大,所以还需要第二部分, 第二部分是
精插补,这一部分实际上是
把粗插补部分生成的直线段再做插补,相当于对直线使用脉冲增量插补。
上述两类插补算法中,数字采样插补输出的信号不是一个脉冲当量,而是与各坐标轴位置增量相对应的几个数字量,并且需要数控系统的反馈回路跟踪轨迹误差, 然后根据误差修正下一次计算结果,所以这类算法基本上都用在以伺服电机为驱动装置的闭环数控系统。
脉冲增量插补算法就非常适合以步进电机为驱动装置的开环数控系统, 脉冲增量插补在计算过程中不断向X、Y各个坐标轴发出进给脉冲,以驱动坐标轴所在的步进电机运动。目前已经有很多属于脉冲增量插补算法的具体算法被用到实际的生产应用中,在这里我们简单介绍几种比较常见的。
逐点比较法。逐点比较法最开始被称为区域判别法,又称代数运算法或醉步式近似法。是一种逐点计算、判别偏差并修正逼近理论轨迹的方法。逐点比较法的基本思想就是在刀具按理论轨迹运动加工工件轮廓的时候,不断比较刀具与工件轮廓之间的相对位置, 并根据比较结果决定下一步的进给方向,使刀具向减小误差的方向移动。
数字积分法。数字积分法又称数字微分分析法DDA(Digital Differential Analyzer),简称积分器。这种算法是在数字积分器的基础上建立起来的一种插补算法, 可以较为方便的实现一次、二次曲线的插补。具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。
Bresenham算法。这种算法本来是计算机图形学里的一种用来快速画直线段和圆的绘图算法,由于算法非常成熟并且十分高效,目前也逐渐被引入到数控系统中, 通常作为直线插补算法或者多轴联动算法使用。例如zhuming的开源3D打印机固件Marlin,其内部就应用了Bresenham算法。
在普通的开环数控系统中,逐点比较法和数字积分法应用最为广泛,其中逐点比较法计算简单直观容易理解,并且输出为步进式的脉冲信号,尤其适合步进电机驱动的开环数控系统。