摘要:本节介绍步进电机S曲线加减速方法,包含了一般形式S曲线方程的推导,以其适配51单片机+TB6600驱动器S曲线运动数据的生成。本节所述S曲线均为标准Sigmod曲线的简称,与其他算法所述的7段式S曲线或者5段式S曲线相比,二者本质属于不同的算法
步进电机加减速通常的处理方式有S曲线加减速、T型加减速、指数曲线加减速、正余弦曲线加减速等,最具代表性的为前两种,下面详细介绍这两种控制方法

一、 S曲线方程
1.1 S曲线基本形式
y = 1 1 + e − x y=\frac{1}{1+e^{-x} } y=1+e−x1

1.2 S曲线经过平移、缩放后,可以使其经过任意不同两点(X1,Y1),(X2,Y2)且中心对称,示意图及方程如下
y = K 1 + e − ( x − A ) N ( N ≠ 0 , K ≠ 0 ) y=\frac{K}{1+e^{\frac{-(x-A)}{N} } } (N≠0,K≠0) y=1+eN−(x−A)K(N=0,K=0)
N:X轴方向比例变换系数
K:Y轴方向比例变换系数
A:X轴方向平移系数
B:Y轴方向平移系数
N由用户自行设定,作为调节S曲线平滑度参数

二、步进电机S曲线加减速
将X轴作为时间轴,Y轴作为速度轴,S曲线经过(0,w0),(tn,w1)两点,如果w0<w1,即为S曲线加速图像,如果w0>w1即为减速图像,下面以加速为例进行介绍

根据位移公式可以得到如下两个方程
a n g l e n = n ∗ s t e p X … … ① angle_{n} =n*\frac{step}{X} ……① anglen=n∗Xstep……①
a n g l e n = ∫ 0 t n f ( t ) d t … … ② angle_{n} =\int_{0}^{tn}f(t)\mathrm{d}t ……② anglen=∫0tnf(t)dt……②
f(t):中心对称的S曲线方程
angle_n: 第n步转过的角度
step:步距角
X: 驱动器细分值
其中S曲线的f(t)方程较为复杂,不容易求得原函数,直接积分较为困难,故采用数值积分的方式求得tn(n=1、2、3……n),相邻两步之间的时间差值△tn= tn- t(n-1)即为步进电机两步之间的时间间隔,也是单片机的定时器的定时时间,即实现Sigmod曲线加减速。其具体计算过程为纯数值计算领域的内容,此处不展开讲述,关键词条:辛普森积分
三、生成器介绍
加速过程、减速过程数组生成如下


四、测试
烧录hex文件后,单片机上电,步进电机在起步90°内,速度从30RPM增加到500RPM,随后持续匀速转动

五、功能扩展
扩展1:
① 增加S曲线减速过程,程序上电后,电机按照S曲线加速-匀速-S曲线减速过程,转动720°

扩展2:(测试程序见文末百度网盘)
① 增加4个按键,控制电机启动、方向、角度加、角度减
② 增加数码管,显示信息
扩展3:(测试程序见文末百度网盘)
① 增加4个按键,控制电机启动、方向、角度加、角度减
② 增加1602LCD,显示信息
五.总结
该S曲线算法优点是加减速过程十分平滑,产生的冲击较小,缺点是加减速过程固定,适用于大角度转动且加减速可以固化的场景,例如:丝杠滑台运输物料等场景,对于在使用过程中需要反复调整加减速的场景不适用
六、附件
测试程序请见百度网盘
链接: https://pan.baidu.com/s/1x5mNxRnd5qC6sW7sZ-6Dyg
提取码: nhx6
↓↓↓点击下方【目录】,查看本系列全部文章
