"S"型曲线加减速在42步进电机位置和速度交叉控制应用
兴趣使然,兴趣使然…哈哈,花了一个多星期研究了一下S型曲线在步进电机的加速减速中应用,以及简单的结合了一下位置控制和速度控制交叉着对电机进行控制,同时也花了两天时间把上位机也捣腾出来。有需要源码的请在评论区留下邮箱。
- 硬件介绍
(1)驱动器型号:使用了“普菲德”公司的TB6600驱动器,价格便宜拿来玩玩还是可以的(不是打广告,哈哈);
(2)使用了普通的“42”步进电机;
(3)单片机用的是STM32F103C8T6。
唔,感觉还是放下一图片吧,哈哈

- “S”型加速理论解析
(1)一个物体从起点运动到终点,要经历加速,匀速,减速的过程,把整个过程中速度随时间变化关系画出来,就是速度曲线.
S型加减速就是指速度曲线中加减速阶段的曲线呈现一个英文字母’S’型.
S型加减速相对于梯形加减速更加平稳,对电机和传动系统的冲击更小.
S型加减速的曲线并没有限定是什么曲线,所以可以是指数曲线,可以是正弦曲线.这里分析的S型加减速是基于加速度匀速变化的曲线.
S型加减速的优点就是启动和停止都很平滑,不会有很大的冲击,但缺点就是启动和停止的时间比较长

上图就是S型加速曲线和对应的加速度曲线示意图在加速过程中,前半部分由于加速度是匀速递增的,这段曲线我们称为加加速段曲线(后面称它为IncAccel),后半部分是加速度匀速递减的,称为减加速段(DeAccel).
加加速段是加速度关于时间的斜率为正的直线,减加速则是加速度关于时间的斜率为负的直线.加速度从0开始变化,到了最大值开始减小,最后为0,由于加速度的斜率是相同的,所以加加速度和减加速度所用的时间是一样.这两段曲线是关于加速度最大值的对应的速度中心对称的.
我们的目标就是根据定的条件:Vt,V0,t计算出控制步进电机的每一步的速度。
(2)IncAccel:
加速度从零变化到最大值。有 a=Jt;(J是加加速度,即速度的变化率,加速度a对时间的导数,为常数),而dv = adt;对加速度积分就可以得到速度

所以有:

只要知道加加速度即可得到IncAccel的速度变化,当a变化到最大值的时候有V=Vm,可得:

这样就得到了速度关于时间的变化公式(V-t)而这一段的步数可以对速度求积分得到;

最终的速度公式:

只要t变化的足够小,那么速度的变化就越平滑,得到的速度曲线就会越接近目标曲线。

根据以上的分析,只要给定一个合适的t值以及合适的加速次数,那就可以得到一个平滑的曲线。 - 程序实现
在步进电机的控制中,改变频率即是对步进电机速度的改变。所以V0 =Frde(最小频率),我们从0速度开始,即Frde(最小频率) = 0;由于我定时器分频1000,所以定时器驱动频率为72KHz.设定我们要到达的目标速度Vt对应的频率为Fred(最大) = 12000;在这里我的加速点设置为1600。
(1)综合上面的分析,加速曲

本文详细介绍了如何利用S型曲线实现42步进电机的平滑加减速控制,包括S型加速理论解析、程序实现和控制逻辑制定。作者通过STM32F103C8T6单片机,采用TB6600驱动器控制步进电机,实现了从速度到位置的交叉控制,并提供了源码。上位机交互界面展示了加速和减速过程,证实了S型曲线加减速的平滑效果。

10万+

被折叠的 条评论
为什么被折叠?



