关于步进电机的使用研究

文章来源:锐特步进电机 时间:2019-12-21 09:54:01 浏览:

  最近用到步进电机,程序也自己弄,所以有些细节问题都要搞清楚,今天简单总结一下。

  目前的步进电机大多直接采用驱动器进行驱动,这样在控制上就相对简便一些,一般最少只需提供方向与脉冲信号就可以驱动电机转动,以我使用的THB6128为例电路很简单,就不说了,主要介绍一下关于电机驱动上的一些问题。

  1.细分

  步进电机有一个参数叫步距角,就是转动一步所走过的角度,以1.8°为例,就是说走一步转动1.8°,那转动一周则需要200步,在没有细分概念的情况下,提供一个脉冲电机可以走一步,200个脉冲可以转一圈

  细分是通过驱动器精确控制输出相电流,改变电机的步距角,可以理解为将步距角分解,迈小步向前走,2细分代表走一步转动0.9°,10细分代表走一步转动0.18°,以此类推,如果10细分的话那转动一圈则需要2000个脉冲,那为什么需要细分呢?

  看这个图

  

 

  在没有细分时,一个脉冲驱动电机走过的路线可以认为是AC,二细分之后,一个脉冲驱动电机走过的路线则是AB,同样的角度二细分则需要两个脉冲才可以达到C点,在细分数足够大时,可以看出其路线是越来越逼近圆的,也可以认为电机的转动越来越平滑,对,细分就是为了达到这个效果

  当然细分也要看场合使用,细分越大,达到既定速度的时间也就越长,一般对于低转速场合可以使用大一点的细分,减少震动,使运行平滑稳定,高转速时则可以适当减少细分,尽快达到最高转速,这里可以引出一个问题,我们知道步进电机的转速是靠外部脉冲的频率设定的,那如果一开始就给一个高频脉冲电机是会卡死堵转的,这是因为步进电机的转动实际上靠的是不断改变外部线圈(定子)的磁场,依靠同性相吸来带动转子的转动,当启动频率过高时,转子还没到下一个位置就已经接收到下一个磁场,导致转子没有足够的力摆脱当前磁场,始终固定在一个位置

  如下图,以两项电机为例,运动轨迹a-b-c-d。

  

 

  2、衰减模式

  步进电机的驱动器实际上内部也是靠一个H桥型的MOS来控制输出波形的,衰减模式可以在切换相位时控制MOS导通关断切换速度来控制放电速度,一般可以分为三种,快衰减、慢衰减、混合衰减,电机高速转动时选择快衰减,可以尽快改变相电流,达到更高的速度,不然可能会出现卡死、震动大的问题,低速时选择慢衰减,可以增大力矩,混合衰减就是先快衰减后慢衰减,具体时间分配看芯片。

  3、力矩

  通俗点说就是电机转动的“劲儿”大小,通常影响力矩的有以下几个方面

  (1) 转速

  转速越大,力矩越小,步进电机的规格书中,都会有一个曲线,力矩随着转速的提高会不断下降,原因就是在转动时会产生反向电动势,转速越高,反向电动势就越大,而电机对外的有效力矩是克服反向电动势与摩擦阻力之后的力,所以说会越来越小

  

 

  (2) 驱动电流

  步进电机都会有一个额定电流,在额定电流以下也可工作,只是各方面性能不会达到最优,一般驱动器都会有设定驱动输出电流的设置,选择适配电机的设定可以增大力矩。

  (3) 驱动电压

  步进电机在转动时,会产生反向电动势,驱动电压要在抵消这一部分电动势之后再去驱动电机转动,所以合理范围内更高的电压可以提供给电机实际使用的电能就越多。

  4、软件设计

  驱动上大家都知道只要给脉冲电机就能转,但是如果转速稍微高一点的应用上,如果直接给固定频率的脉冲,启动和停止时都会咯噔咯噔的不平滑,转速再高一些的应用有可能会直接卡死,最开始自己写的程序最高也就一分钟500转同样的电机用别的驱动器就能达到一分钟1500转,这个就是加减速的不合理,目前比较合理的驱动方式是应用S曲线计算频率输出,启动阶段,加速度低,缓慢启动,中间过程加速度最大,临近最大速度时,加速度降低,平稳运行,减速过程反之。

  

 

  网上这方面的资源较多,但是对实际的程序参数的解释不是很接地气儿,这里我结合自己的实际操作与理解大概介绍一下

  

 

  落实到程序里,只介绍加速过程:

  for(a=0; a

  {

  melo = flexible * (a-len/2) / (len/2);

  deno = 1.0 / (1 + expf(-melo));

  fre = (fre_max-fre_min) * deno + fre_min;

  period = (unsigned short)(72000000 / fre);

  }

  这里面的

  (1)Len表示将S曲线频率增长过程中划分的点数,值越大,计算的次数越多,划分越细致,每次频率增加的越少,更平稳,但是会延长加速时间,一般设定三四千,公式中的num一般取值为len/2

  (2)fre_max为公式中的Fmax,表示设定的最大频率值,这个与实际输出频率不是对应的,需要根据你系统的时钟调试确定,值越大,电机达到的速度越大,但是需要跟着改动其他参数,来更改加速效果,否则容易卡死

  (3)fre_min为公式中的Fmin,表示设定的最小频率值,也就是刚起步的频率值,尽可能的大一些,可以减少加速时间

  (4)flexible为公式中的Flex,表示S曲线中加速过程的斜率,值越大,曲线越陡峭,加速过程越快,取值1-6,大了电机容易卡死,小了加速时间长,调试确定

  (5)expf这是指数函数,程序里需要调用math.h

  (6)fre是当前计算的频率值,如果传入程序的PWM或定时器输出,还需要根据系统时钟转换一下,程序中72M则是系统时钟

TAG 步进电机
更多信息请关注 深圳锐特步进电机 http://www.szruitech.com/
上一篇:步进电机的工作状态分为哪几种   下一篇:介绍一种实用的步进电机驱动电路

自动化领域,锐特机电为您选择合适的步进电机产品