1.概念
不管是做自动化设备还是机器人运动学,都离不开对电机的控制,根据实际场景有各种各样的运动控制算法,而直线运动就是其中一种控制方式,今天就跟大家分享一个直线插补运动算法的原理,而代码的实现,则采用STM32单片机;
插补的概念源自数值分析数学中插值的意思,它是一类在离散的已知数据点范围内构造新数据点的方法,这类方法可以用在机器人运动关节上,也大量应用在自动化数控设备上,
比如在数控机床加工过程中,在理论上刀具的运动轨迹应该十分精准的沿着被加工工件的轮廓,同时满足对加工对象的精度要求。 但是真正加工的工件轮廓可能是各种形状,有一些简单的直线段和圆弧,还有一些复杂曲线。直接生成复杂曲线的运动轨迹会耗费大量的计算资源, 因此在实际应用中通常使用简单的线型去拟合复杂曲线,同时采用一系列微小的直线段去逼近直线和圆弧线型,以满足加工精度的要求,
比如直线段只提供起点和终点在加工系统中的坐标,圆弧则会提供圆心、起点和终点的坐标, 以及圆弧的方向。一般数控机床的刀具运动轨迹是由X、Y两个方向的运动合成的,本身并不能非常严格的按照理论曲线运动,只知道这么一些线段参数无法精准的完成加工任务, 需要一种方法能把已知点中间所有微小直线段的坐标点全都计算出来,从而形成符合精度要求的刀具运动轨迹,这种计算方法就叫插补;
插补算法法所要解决的就是根据加工速度的要求,在给定的数据点坐标之间,连续计算出若干中间点的坐标值。 而这些中间点的坐标值以一定的精度逼近理论的轨迹。由于计算每个中间点所消耗的时间直接影响数控系统的控制速度,坐标值的计算精度又影响数控系统的控制精度, 所以插补算法是整个数控系统的控制核心。
2.插补算法介绍
插补属于一类方法,根据不同的条件可以有很多种实现方法,由于我们是使用步进电机作为控制源,所以根据脉冲信号输出方式,在这里介绍一种脉冲增量插补法;
所谓的脉冲增量,就是用一个个脉冲输出的方式,驱动电机实现运动,每次一个脉冲信号,X轴或者Y轴就是移动一个脉冲量,比较适合大多数普通电机控制,通过几个简单的加减法就可以实现,缺点就是运动速度,会因为每次计算时间受到一定的限制,优点就是非常适合以步进电机为驱动装置的开环控制系统中;
而脉冲增量插补算法,又分为很多不同的实现方式,在这里跟大家介绍三种常见的
2.1.逐点比较法:逐点比较法最开始被称为区域判别法,又称代数运算法或醉步式近似法。是一种逐点计算、判别偏差并修正逼近理论轨迹的方法。 逐点比较法的基本思想就是在刀具按理论轨迹运动加工工件轮廓的时候,不断比较刀具与工件轮廓之间的相对位置, 并根据比较结果决定下一步的进给方向,使刀具向减小误差的方向移动。
2.2.数字积分法:数字积分法又称数字微分分析法DDA,简称积分器。这种算法是在数字积分器的基础上建立起来的一种插补算法, 可以较为方便的实现一次、二次曲线的插补。具有运算速度快、脉