1 引言
作为一种数字伺服执行元件,步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。为了实现步进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专用驱动芯片实现步进电机的速度和位置定位控制。
2 圆弧插补改进算法
逐点比较插补算法因其算法简单、易实现且最大误差不超过一个脉冲当量,在步进电机的位置控制中应用的相当广泛[1]。圆弧插补中,为了确定一条圆弧的轨迹,可采用:给出圆心坐标、起点坐标和终点坐标;给出半径、起点和终点坐标;给出圆弧的三点坐标等。在算法实现时这些参数若要存放在单片机内部资源有限的数据存储器(RAM)中,如果要经过复杂的运算才能确定一段圆弧www.cechina.cn,不但给微处理器带来负担,而且要经过多步运算,往往会影响到算法的精确度。因此选取一种简单且精确度高的插补算法是非常必要的。本文提出了一种改进算法:在圆弧插补中,无论圆弧在任何位置,是顺圆或是逆圆,都以此圆弧的圆心作为原点来确定其他坐标。因此只须给出圆弧的起点坐标和圆弧角度就可以确定该圆弧。如果一个轴坐标用4个字节存储(如12.36),而角度用2
本系统要求输入的角度精确到1度,输入坐标的分辨率是0.01,单片机C语言的浮点运算能精确到0.000001,按照上面的公式算出的终点坐标,虽存在误差,但这个误差小于1%,能够满足所要求的精确度。
3 步进电机的变频调速
虽然步进电机具有快速启停能力强、精度高、转速容易控制的特点,但是在实际运行过程中由于启动和停止控制不当,步进电机仍会出现启动时抖动和停止时过冲的现象,从面影响系统的控制精度。尤其是步进电机工作在频繁启动和停止时,这种现象就更为明显[2]。为此本文提出了一种基于单片机控制的步进电机加减速离散控制方法。加减速曲线如图2 所示,纵坐标是频率 f,单位为脉冲/秒或步/秒。横坐标时间 t,单位为秒。步进电机以 f0 启动后加速至 t1 时刻达到最高运行频率 f,然后匀速运行,至 t2 时刻开始减速,在 t5 时刻电机停转,总的步数为 N。其中电机从静止加速至最高运行频率和从最高运行频率至停止至是步进电机控制的关键,通常采用匀加速和匀减速方式。
采用单片机对步进电机进行加减速控制www.cechina.cn,实际上就是改变输出脉冲的时间间隔,可采用软件和硬件两种方法。软件方法依靠延时程序来改变脉冲输出的频率,其中延时的长短是动态的,该方法因为要不停地产生控制脉冲,占用了大量的CPU时间;硬件方法是依靠单片机内部的定时器来实现的,在每次进入定时中断后,改变定时常数(定时器装载值),从而升速时使脉冲频率逐渐增大,减速时使脉冲频率逐渐减小。这种方法占用CPU时间较少CONTROL ENGINEERING China版权所有,是一种效率比较高的步进电机调速方法。考虑到单片机资源(字长)和编程的方便,不需要每步都计算定时器装载值。如图3所示,采用离散方法将加减速曲线离散化。离散化后速度是分台阶上升的,而且每上升一个台阶都要在该台阶保持一段时间,以克服由于步进电机转子转动惯量所引起的速度滞后。只有当实际运行速度达到预设值后才能急速加速CONTROL ENGINEERING China版权所有,实际上也是局部速度误差的自动纠正。
4 系统软硬件协同设计
对于51系列单片机的软件开发,传统的方法是在PC机上采用Keil等开发工具进行程序设计、编译、调试,待程序调试通过之后生成目标文件下载至单片机硬件电路再进行硬件调试[3]。这种方法只有硬件电路完成之后才能进行系统功能测试CONTROL ENGINEERING China版权所有,若此时发现硬件电路存在设计问题且必须进行修改时就会显著影响系统开发的成本和周期。为此,本文采用了系统软硬件协同仿真的开发方法,使得硬件电路实现前的功能测试成为可能。同时硬件电路的软件化仿真为硬件电路的设计与实现提供了有力的保障。其中在Keil uVision2集成开发环境下,实现步进电机控制系统的程序设计、编译、调试,并最终生成目标文件 *.hex,而由英国Proteus Labcenter electronics公司所提供的EDA工具Proteus则利用该目标文件 *.hex 实现对步进电机控制系统硬件电路功能的测试。
如图4所示,单片机AT89C55司职步进电机控制器,通过运行在Keil uVision2 环境下所开发的程序来控制两个步进电机驱动芯片L298,从而实现对AXIS_X / AXIS_Y两轴步进电机的联动控制。L298驱动芯片的步进脉冲输入信号来自AT89C55 P0端口,使能信号ENABLE A与ENABLE B并联接到AT89C5