摘要:本节介绍解决标准T型加减速过程中的两个缺陷,其一是使得初速度任意设置;其二是降低Cn递推计算量,提升速度上限
一. 加速+减速过程计算
1.1计算不存在匀速过程
根据基本运动定理:
- w m a x = w 0 + a 0 ∗ t n 0 … … ① w_{max} =w_{0}+a_{0} *t_{n0} ……① wmax=w0+a0∗tn0……①
- w m a x = w 2 + a 2 ∗ t n 2 … … ② w_{max}=w_{2}+a_{2} *t_{n2} ……② wmax=w2+a2∗tn2……②
- a n g l e 0 = w 0 ∗ t n 0 + 1 2 a 0 ∗ t n 0 2 … … ③ angle_{0}=w_{0}*t_{n0}+\frac{1}{2} a_{0} *t_{n0}^{2} ……③ angle0=w0∗tn0+21a0∗tn02……③
- a n g l e 2 = w 2 ∗ t n 2 + 1 2 a 2 ∗ t n 2 2 … … ④ angle_{2}=w_{2}*t_{n2}+\frac{1}{2} a_{2} *t_{n2}^{2} ……④ angle2=w2∗tn2+21a2∗tn22……④
- a n g l e = a n g l e 0 + a n g l e 2 … … ⑤ angle=angle_{0}+angle_{2}……⑤ angle=angle0+angle2……⑤
由①~⑤得:
w m a x 2 = 2 a 0 a 2 a 0 + a 2 a n g l e + a 2 w 0 2 + a 0 w 2 2 a 0 + a 2 … … ⑥ w_{max}^{2} =\frac{2a_{0}a_{2}}{a_{0}+a_{2}} angle+\frac{a_{2}w_{0}^{2}+a_{0}w_{2}^{2}}{a_{0}+a_{2}} ……⑥ wmax2=a0+a22a0a2angle+a0+a2a2w02+a0w22……⑥
a n g l e 0 = w m a x 2 − w 0 2 2 a 0 … … ⑦ angle_{0} =\frac{w_{max}^{2}-w_{0}^{2} }{2a_{0}} ……⑦ angle0=2a0wmax2−w02……⑦
w_max:角速度(°/s)
w0:起始角速度(°/s)
a0:加速度(°/s^2)
tn0:加速时间(s)
angle0:加速角度(°)
a2:减速度(°/s^2)
tn2:减速时间(s)
w2:终止角速度(°/s)
angle2:减速角度(°)
angle:总角度(°)
二. 判断匀速阶段是否存在
2.1 假设存在匀速阶段,运动图像如下
2.2 假设不存在匀速阶段,运动图像如下
如下六个变量由用户设定:(配套程序角速度单位均换算为RPM)
angle:转动角度(°)
a0:加速度(°/s^2)
a0:减速度(°/s^2)
w0:起始角速度(°/s)
w2:终止角速度(°/s)
w:角速度上限(°/s)
2.3 比较w_max 与w可以判断是否存在匀速过程 ,为避免开方运算,比较二者平方大小
如果w_max^2 > w^2则存在匀速阶段
- 加速角速 a n g l e 0 = w 2 − w 0 2 2 a 0 加速角速angle_{0} =\frac{w^{2}-w_{0}^{2} }{2a_{0}} 加速角速angle0=2a0w2−w02
- 减速角速 a n g l e 2 = w 2 − w 2 2 2 a 2 减速角速angle_{2} =\frac{w^{2}-w_{2}^{2} }{2a_{2}} 减速角速angle2=2a2w2−w22
- 匀速角度 a n g l e 1 = a n g l e − a n g l e 0 − a n g l e 2 匀速角度angle_{1}=angle-angle_{0}-angle_{2} 匀速角度angle1=angle−angle0−angle2
将转动角度换算为电机步数: - 加速步数 a n g l e 0 s t e p = w 2 − w 0 2 2 a 0 ∗ 5 X 9 = 5 X ∗ ( w 2 − w 0 2 ) 18 a 0 加速步数angle_{0step}=\frac{w^{2}-w_{0}^{2} }{2a_{0}}*\frac{5X }{9}=\frac{5X*(w^{2}-w_{0}^{2}) }{18a_{0}} 加速步数angle0step=2a0w2−w02∗95X=18a05X∗(w2−w02)
- 加速步数 a n g l e 2 s t e p = w 2 − w 2 2 2 a 2 ∗ 5 X 9 = 5 X ∗ ( w 2 − w 2 2 ) 18 a 2 加速步数angle_{2step}=\frac{w^{2}-w_{2}^{2} }{2a_{2}}*\frac{5X }{9}=\frac{5X*(w^{2}-w_{2}^{2}) }{18a_{2}} 加速步数angle2step=2a2w2−w22∗95X=18a25X∗(w2−w22)
- 匀速步数 a n g l e 1 s t e p = a n g l e s t e p − a n g l e 0 s t e p − a n g l e 2 s t e p 匀速步数angle_{1step}=angle_{step}-angle_{0step}-angle_{2step} 匀速步数angle1step=anglestep−angle0step−angle2step
如果w_max^2 ≤ w^2则不存在匀速阶段
-
加速角速 a n g l e 0 = w m a x 2 − w 0 2 2 a 0 加速角速angle_{0} =\frac{w_{max}^{2}-w_{0}^{2} }{2a_{0}} 加速角速angle0=2a0wmax2−w02
-
减速角度 a n g l e 2 = a n g l e − a n g l e 0 减速角度angle_{2}=angle-angle_{0} 减速角度angle2=angle−angle0
将转动角度换算为电机步数: -
加速步数 a n g l e 0 s t e p = w m a x 2 − w 0 2 2 a 0 ∗ 5 X 9 = 5 X ∗ ( w m a x 2 − w 0 2 ) 18 a 0 加速步数angle_{0step}=\frac{w_{max}^{2}-w_{0}^{2} }{2a_{0}}*\frac{5X }{9}=\frac{5X*(w_{max}^{2}-w_{0}^{2}) }{18a_{0}} 加速步数angle0step=2a0wmax2−w02∗95X=18a05X∗(wmax2−w02)
-
减速步数 a n g l e 1 s t e p = a n g l e s t e p − a n g l e 0 s t e p 减速步数angle_{1step}=angle_{step}-angle_{0step} 减速步数angle1step=anglestep−angle0step
其中 a n g l e s t e p = 5 X a n g l e 9 其中angle_{step}=\frac{5Xangle }{9} 其中anglestep=95Xangle
二、定时器初值Cn递推计算简化
2.1加速阶段示意图如下,横坐标为步数,纵坐标为定时器初值C0对应的速度为W0, C1对应的速度为W1。在保证起始速度与终止速度情况下,将C0与C1的差值△C均匀的分配到步进电机的每一步上,可以形成一条直线,其示意图如下
其方程为:
C n = k 0 ∗ n + C 0 ( n = 0 、 1 、 2 … … ) C_{n} =k_{0} *n+C_{0} (n=0、1、2……) Cn=k0∗n+C0(n=0、1、2……)
k 0 = C 1 − C 0 s t e p 0 k_{0}=\frac{C_{1}-C_{0}}{step_{0}} k0=step0C1−C0
定时器初值的递推公式即为:
C n + 1 = C n + k 0 C_{n+1}=C_{n}+k_{0} Cn+1=Cn+k0
相比常规T型加减速4n-1/4n+1的递推公式,计算量仅为加法运算,适合51系列的低速单片机运用
2.2减速阶段示意图如下
其计算过程同理
C n = − k 2 ∗ n + C 1 ( n = 0 、 1 、 2 … … ) C_{n} =-k_{2} *n+C_{1} (n=0、1、2……) Cn=−k2∗n+C1(n=0、1、2……)
k 2 = C 1 − C 2 s t e p 2 k_{2}=\frac{C_{1}-C_{2}}{step_{2}} k2=step2C1−C2
定时器初值的递推公式即为:
C n + 1 = C n − k 0 C_{n+1}=C_{n}-k_{0} Cn+1=Cn−k0
三、误差分析
简化后的算法显然不满足标准直线加减速方程,其实际加减速过程类似于指数曲线,如下图蓝色曲线所示
四、程序流程如下
五、测试
扩展2:
① 优化版T型加减速
② 烧录hex文件后,单片机上电,步进电机经历优化版T型加减速过程,总共转动1800°
扩展3:(实测视频见文末百度网盘)
① 优化版T型加减速
② 增加4个按键,控制电机启动、转角、加速度、减速度、起始速度、终止速度、速度上限
③ 增加数码管,显示信息
扩展4:(实测视频见文末百度网盘)
① 优化版T型加减速
② 增加4个按键,控制电机启动、转角、加速度、减速度、起始速度、终止速度、速度上限
③ 增加1602LCD,显示信息
五、附件
Hex测试程序+测试视频请见百度网盘
链接: https://pan.baidu.com/s/1j70qb8vVxGnXTfHf4T4qhg
提取码: fnre
Keil源码请见某宝,搜索:【皮皮黄步进电机】
↓↓↓点击下方【目录】,查看本系列全部文章