广东湘恒智能科技有限公司
主营产品: 西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
SIEMENS西门子广东省授权中国总一级代理商
观看SIEMENS西门子广东省授权中国总一级代理商视频:
步进电机的速度控制


项目需求

在制作一个使用全向轮的机器人底盘,对于全向轮,电机的精度是影响效果的重要因素。所以使用了步进电机,使用步进电机的优点是可以不使用编码器,开环控制即可达到高精度的效果。


调整占空比或者调整周期


众所周知,PWM有两个重要参数,周期与占空比。

步进电机的运动方式是,每收到一个脉冲,就旋转指定的角度。因此影响电机速度的唯一参数就是PWM的频率。以下附图两张来说明调整占空比与调整周期的区别。


周期固定,调整占空比



上图中有4个PWM,它们的周期是一样的,不同之处是拥有从80%至20%的占空比。可以看出,无论占空比为多少,在1s内,它们产生的高电平的数量是一样的,即无论占空比为多少,PWM的频率都一致。因此也就无法调整步进电机的速度。因为步进电机的速度仅与PWM的频率有关。


占空比固定,调整周期



上图中有4个PWM,它们的占空比都固定为50%,却拥有不同的周期。可以看出,即使占空比固定,只要动态调整周期,PWM就能在相同时间内产生数量不同的脉冲。因此,固定占空比,动态调整PWM周期,即可达到控制步进电机速度的效果。


基于STM32的实现


在STM32F1中,定时器具有PWM模式,可以用来产生PWM。相关文章:STM32中PWM的配置与应用详解。但是,STM32的PWM模式,只要确定了时基单元(即确定了PWM周期),改变输出比较寄存器,仅可改变PWM的占空比。

若需要改变PWM周期,需不停地改变定时器的时基单元。但时基单元与硬件相关,不适合频繁变更。因此,步进电机的调速,不适合使用STM32下定时器的PWM模式来控制。

在多方查找资料后,确定了一种利用输出比较jingque控制PWM周期的方式。


利用输出比较产生频率可变的PWM


利用输出比较产生频率可变的PWM,原理简单介绍如下:

首先配置定时器时基单元,确定脉冲最小长度单位CK。

然后开启定时器的输出比较,设置模式为翻转模式,并开启输出比较中断。

将定时器内计数器CNT当前值,加上脉冲长度X(单位为CK),写入输出比较寄存器。

在X个CK后,将会触发输出比较中断。同时电平翻转。

在中断中再次将当前计数器CNT的值,加上脉冲长度X,写入输出比较寄存器。

在X个CK后,将会触发输出比较中断。同时电平翻转。

在中断中再次将当前计数器CNT的值,加上脉冲长度X,写入输出比较寄存器。

如此往复……

以此即可得到一个占空比为50%,周期为2X个CK的PWM。



展开全文
相关产品
拨打电话 微信咨询 发送询价