0 引言
步进电机具有快速启停,精确度高等特点,由于步进电机在速度和位置上的控制优势,使得由步进电机控制的切割机床等生产机床能够更加准确和便捷的完成任务,本课题利用单片机控制步进电动机加减速,也就是改变脉冲的时间间隔,通过单片机从而控制步进电机,可以有软件和硬件两种方法:软件是通过改变程序的方法进而改变输出脉冲的频率,但是这种方法在电动机控制中要不停地产生控制脉冲占用了大量的CPU 时间,使单片机无法同时进行其他工作 ;硬件方法是利用控制器的内部的定时器来完成的,在进入定时中断后改变定时常数,从而升速时使脉冲频率逐渐增大,减速时使脉冲频率逐渐减小,这种方法占用CPU时间较少,是目前我们使用较多的调速方法。
1 切割系统硬件组成
整个模型系统框图如图1 所示。
切割控制系统结构框图如图1 所示,是由光电编码器模块、单片机控制模块、步进电机驱动模块、伺服机构和自由摆本体等几大部分构成的一个系统。在整个系统中,通过光电编码传感器的反馈获得末端被控机械的角位移,控制驱动模块实时读取光电编码器反馈的数据,进而确定控制方式(电机如何转动、转动速度、加速度等),同时控制模块通过处理器内部的控制算法实现该控制决策,产生相应的控制信息,使电机转动,完成要处理的被控制对象的运动。
1.1 单片机控制系统
本系统设计中采用89C51 单片机作为处理器,89C51 单片机把组成计算机的各种功能部件:中央处理器CPU、I/O 接口电路、RAM、ROM、定时器/ 计数器以及串行通讯接口等部件组成,并将这些部件都集成在一个芯片内,构成一个完整的微型计算机。单片机是整个系统的核心,主要用于处理光电编码器采集和传输回来的数据,它通过处理器内部的控制算法把光电编码器反馈回来的信息用于控制步进电机的转速与转向。
1.2 步进电机随动系统
对于步进电机来说,如果要获得较快的加减速过程,即要求在每一个频率对应输出最大转矩。通过电机频矩特性曲线可以得到每个频率下的最大输出力矩。在起动过程中,由于受最大输出力矩的限制,因此会影响起动距离和起动时间。由于本运动平面范围很小,同时求探测点以一定的初速度作曲线运动,对x 轴方向负载电动机的起动提出了要求:在达到设定的初始速度时,要求起动距离尽可能短。因此采用传统的启动方式,达不到本课题的目的,在本课题中,采用了一种新式的启动方式。
1.3 传感器模块
设计中选择光电编码器作为传感器模块,它是一种将输出轴上的机械几何位移量通过光电转换转换成数字量或脉冲的一种传感器。这是目前测量角位移应用最广泛的一种传感器,光电编码器是由光电检测装置和光栅盘组成的一种传感器。光栅盘是在给定直径的圆盘上平均地开通若干个长方形孔。由于光电码盘与电动机同轴,当电动机运动时,光栅盘与电动机保持同步转动,经检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。那么,光电编码器就可以非常精准的测量出自由摆的摆角,再由单片机实时控制电机转速,从而达到随时精准的控制效果。
2 步进电机控制软件设计
对于步进电机的速度控制系统,从起点到终点的运行速度是有一定要求的。如果要运行的速度没有超过步进电机的极限起动频率,那么电机能够按要求直接起动,运行至设定点后可通过停止脉冲串控制电机停止。但在通常情况下,当要求的步进电机运行速度比较高时,而电机的极限启动频率又比较低,这时系统在开始启动时即以运行速度直接启动,由于该启动速度超过极限启动频率从而使步进电机不能正常启动,从而会产生失步,甚至是不能启动的情况。整个系统运行时,如果达到设定点时立即控制停止发生脉冲串,令步进电机立即停止,由于系统惯性,使得步进电机不能够立即停止,从而会产生一种过冲现象。因此,要对步进电机在运行的过程中和启动时采用加速和减速过程,即采用升频启动和降频停止技术。
当启动步进电机时,要使步进电机逐步达到稳定的工作频率,当停止步进电机时,使步进电机的运行频率逐步减低直至停止。但如果升降频率比较缓慢,步进电机虽然不能出现过冲和失步的现象,但却降低了整个系统的工作效率。因此,对步进电机的频率控制有2 个基本要求:第一、要给出电机固定的总步数,第二是要尽量减短走步的总时间。为了达到以上二个要求,在软件编译方面要做大量的工作。为了确定电机固定的总步数,要设置一种能随时检验总步数是否达到给定值的方法,电动机每换相一次,都要校核一次。在步进电机运行前,可将给定的总步数存放在RAM 区的某些单元中,电动机启动后,软件按换相次数递减这些存储单元中的数值,同时检测单元中的数值直至该数值为零,此时说明电机已走完预先给定的总步数,应停止脉冲发生,停止电机运转。
可以通过软件来实现对步进电机加减速的控制,分为加速阶段、匀速阶段、减速阶段三个阶段。采用微处理器对步进电机进行加减速控制实际上就是改变输出脉冲的频率,升速时脉冲频率逐渐加快,减速时脉冲频率逐渐变慢。较为理想的启动曲线应是按指数规律启动,但实际应用中经常采用按直线拟合的方法,即采用恒加速算法,易操作,效果较好。
本设计采用的是对步距角进行8 细分。每发出一个脉冲,电机走一步,转过的角度为1.8° /8,即0.225°,电机转一圈需要1600 个脉冲。步进电机的方向由ARM 的一个IO 口控制,并且利用两个发光二极管来表示其正反转。电机方向控制分3 种方式:左转、右转和自锁。当偏差≤ 0.003,即角度变化不到0.225°,步进不到一步时,控制步进电机处于自锁状态;当偏差>0.003 时,电机右转;当偏差<0.003 时,电机左转。
控制程序流程图如下图2所示:
3 测试结果分析
步进电机失步是一个常见的问题。实验中电机在三种情况下容易出现失步的问题。一是起步阶段,二是高速运转阶段,三是负载发生变化的时候。
电机在启动过程中为防止失步和堵转,脉冲频率有个不断增大的过程,该过程一般需要200~400ms 的时间,期间较易出现失步现象,一定要确保极限启动频率不小于响应频率最大值,也即频率变化过程中的最大频率一定要小于或等于极限频率。因此,可以在编译的程序中预先设置一个上限频率,使得电机的最大频率始终小于或等于该频率,保证电机启动过程中减少出现失步的可能。
当步进电机在最高速或者接近最高速运行的时候,也会容易出现失步的现象。而这一现象的产生最常见的原因是电源的电压降低从而导致的,因为摆杆的最大运动过程中的角度为60 度,步进电机最大转动步数小于300,所以可适当降低电机的运行速度。
实验过程中采用电机的最大运行频率为2KHz,设置匀速运转的频率为1KHz.
当末端负载有变化的时候,电机输出的转矩也会知道,从而使电机运行阻力产生变化,可能会出现失步现象。我们可以利用进一步将驱动细分的方法,减少因负载出现变化而引起的失步现象,本课题中采用8细分的方式。