高精度电机控制设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高精度的步进电机控制系统设计

摘要:为了使电机的走位更为准确,达到精密控制的目的,设计了一种高精度的步进电机驱动方案。该方案基于MCU(C8051F012)+L297/L298(L6203)的经典架构,使用斩波恒流细分的驱动方法,在实际运行中具有良好的升降速曲线。实际运行表明,步进电机运行稳定,且具有步距角小、转矩恒定、功耗低等优点。

步进电机是将电脉冲信号转变为角位移或线位移的控制元件。在额定功率范围内,电机的转速只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机累积误差较小等特点,使得在速度、位置等领域用步进电机来控制变得较为简单。但步进电机并不能像普通的直流电机、交流电机在常规下使用。它必须由双环形脉冲信号发生器、功率驱动电路等组成控制系统驱动后方可使用。在本文中,详细介绍了一种新颖的电机驱动方案,它具有功耗低,精度高,使用灵活等优点。

1 系统原理

对于一个步进电机驱动系统来说,应包括信号发生、信号分配、功率放大等几个模块,下面对其逐一进行分析介绍,驱动系统原理方框图见图1。

1.1 脉冲信号的发生

电机转速是由给入的驱动脉冲信号频率决定的。在本驱动系统当中,脉冲信号由单片机C8051F012产生。C8051F012是Cygnal公司生产的高速MCU,内部集成了多个外设,其中共有4个16位定时器。在本脉冲信号产生模块中,使用了定时器0及定时器1。其中,定时器0用于产生控制转速的脉冲信号,其翻转频率设为 Vref。这样,电机的基本转动频率定为f0 。

1.2 驱动信号的分配

一般情况下,步进电机根据环形分配器决定分配方式,各绕组的电流轮流切换,从而使步进电机的转子步进旋转。电机工作方式只有两种,即整步工作和半步工作,而步距角已由电机的结构确定。由于在本方案中,对于电机步距角要求较高,基本步距已不能满足其要求,故需要对电机进行细分驱动。即在每次输入脉冲切换时,不是将绕组电流全部通入或关断,只改变相应绕组中的额定电流的一部分,则转子相应的每步转动原有步距角的一部分。本方案中,驱动器工作在20细分状态,其步距角只为电机固有步距角的1/20。具体以42BYGH023W 为例,固定步距角为1.8°。;而20细分状态后,电机每次只转动0.09°。细分功能完全是由驱动器靠精确控制电机的相电流所产生的,与电机无关。

在本驱动系统中,步进电机所需的细分脉冲由定时器1产生,脉冲频率为f1,且有

f1=20f0。当信号步进电机采用半步行走模式时,转动精度可达0.045°。

1.3 细分斩波恒流驱动的软、硬件实现

在步进电机驱动系统中,最重要的就是电流驱动及功率放大部分。本系统中,该部分选用的是L297+L298构架,适用于对双极性两相步进电机或单极性四相步进电机的控制。L297主要用来接收C8051F012发出的信号脉冲,从而产生对功率级电路控制信号。L298为双H 桥驱动器,可用来驱动电压为46V、每相电流为2.5 A以下的步进电机。若负载需更大电流驱动,可使用L297+双L6203组合。

L297的主要功能是译码器,它根据接受驱动脉冲信号产生所需的相序。为了获得电动机良好的速度和转矩特性,相序信号是通过两个PWM斩波器对电动机控制,每个斩波器用于双极性步进电动机的其中一相或用于单极性步进电机的每对绕组。

以往驱动步进电机时,加到每相线圈上的是恒定电流,这造成了一定的损失。而在L297芯片内部,集成了斩波脉宽调制电路,即每个斩波器包含有一个比较器、一个触发器和一个外部检测电阻,如图2所示。晶片内部的通用振荡器为两斩波器提供斩波频率脉冲。外部时钟脉冲输入时,电机绕组相电流上升,当采样电阻Rs电压上升到基准电压Vref时,比较器翻转,使触发器复位,功率晶体管关断,电流下降,等待下一个振荡脉冲的到来。故绕组相电流峰值由Vref 整定。这样,根据负载的不同,只要调节Vref的大小,就可以改变线圈平均电流的大小。

由于电源电压并不是一直向绕组供电,而只是一个个的窄脉冲,总的输入能量是各脉冲时间的电压与电流乘积的积分,取自电源的能量大幅度下降,这样驱动系统就具有很高的效率,且降低了发热量。

上面讲了细分斩波恒流驱动的硬件原理,而其软件实现过程是这样的。每过一个细分信号周期,单片机输出到L297端口的Vref 顺次发生变化,使通过线圈的电流逐渐增大或减少,而不是一次通入或切断。具体方法如下:由于是20细分,则先按正弦曲线公式,计算出各点的电压值(Vref =Vin ×sin(nπ/40)(n=0,1,……,19)。该值经处理后存入到

C8051F012的FLASHROM中去,每有一个细分脉冲发生时,程序调用FLASHROM中的数据,并将其通过D/A转换成模拟电压后,经运放放大后,作为的控制电压。而在C8051F012内部集成了两个12位高速D/A转化器,省去了外接D/A的不便。但是,由于Vcc的输入范围为0-5 V,而DA最高输出仅为2.4 V,故而DA转化出的信号尚需运算放大器LM324的进一步放大。

从图3的电流波形图可知,细分后的输出电流变化相当平稳,稳定并提高了电机的输出转矩。细分较不细分,输出转矩对各种电机都有不同程度的提升。而且,细分减小了步距角,大大提高了步距精度,从而提高了电机的分辨率。特别需要指出的是,细分后完全消除了电机的低频振荡。

2 步进电机加减速控制

从理论上说,每给电机驱动器一个脉冲(CP),步进电机就旋转一个步距角(细分时为一个细分步距角),但是实际上,如果脉冲CP信号变化太快,步进电机由于惯性将跟随不上电信号的变化,这时会产生堵转和失步现象,所以步进电机在启动时,必须有升速过程,在停止时必须有降速过程。一般来说升速和降速规律相同,这里以升速为例介绍,(见图4)升速过程由突跳频率加升速曲线组成(降速过程反之)。突跳频率是指步进电机在静止状态时突然施加的脉冲启动频率,此频率不可太大,否则也会产生堵转和失步。升降速曲线一般为指数曲线或经过修正的指数曲线,当然也可采用直线或正弦曲线等。指数曲线在实际软件编程中比较麻烦,这里采用事先算好时间常数存贮在计算机存贮器内,工作过程中直接选取的方法。即先计算出升速过程中,达到运行频率时需要的总步数,然后根据指数曲线,算出在每个频率阶梯上需走的步数,将其存入到FLASHROM中,运行中直接调取。

相关文档
最新文档