摘要:本节介绍步进电机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个按键,控制电机启动、方向、角度加、角度减
② 增加数码管,显示信息
③ 增加光电开关,上电后步进电机自动回零点
扩展4:(实测视频见文末百度网盘)
① 增加4个按键,控制电机启动、方向、角度加、角度减
② 增加1602LCD,显示信息
扩展5:(实测视频见文末百度网盘)
① 增加4个按键,控制电机启动、方向、角度加、角度减
② 增加数码管,显示信息
③ 增加1602LCD,上电后步进电机自动回零点
五.总结
该S曲线算法优点是加减速过程十分平滑,产生的冲击较小,缺点是加减速过程固定,适用于大角度转动且加减速可以固化的场景,例如:丝杠滑台运输物料等场景,对于在使用过程中需要反复调整加减速的场景不适用
六、附件
Hex测试程序+测试视频请见百度网盘
链接: https://pan.baidu.com/s/1-3fxN9FEJl6fnrPyxUyNtg
提取码: 1x29
Keil源码请见某宝,搜索:【皮皮黄步进电机】
↓↓↓点击下方【目录】,查看本系列全部文章