当前位置: 首页 > article >正文

第七节(2)、T型加减速优化处理【51单片机-TB6600驱动器-步进电机教程】

摘要:本节介绍解决标准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+a0tn0……
  • w m a x = w 2 + a 2 ∗ t n 2 … … ② w_{max}=w_{2}+a_{2} *t_{n2} ……② wmax=w2+a2tn2……
  • 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=w0tn0+21a0tn02……
  • 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=w2tn2+21a2tn22……
  • 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=2a0wmax2w02……

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=2a0w2w02
  • 减速角速 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=2a2w2w22
  • 匀速角度 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=angleangle0angle2
    将转动角度换算为电机步数:
  • 加速步数 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=2a0w2w0295X=18a05X(w2w02)
  • 减速步数 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=2a2w2w2295X=18a25X(w2w22)
  • 匀速步数 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=anglestepangle0stepangle2step

如果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=2a0wmax2w02

  • 减速角度 a n g l e 2 = a n g l e − a n g l e 0 减速角度angle_{2}=angle-angle_{0} 减速角度angle2=angleangle0
    将转动角度换算为电机步数:

  • 加速步数 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=2a0wmax2w0295X=18a05X(wmax2w02)

  • 减速步数 a n g l e 2 s t e p = a n g l e s t e p − a n g l e 0 s t e p 减速步数angle_{2step}=angle_{step}-angle_{0step} 减速步数angle2step=anglestepangle0step
    其中 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=k0n+C0(n=012……)
k 0 = C 1 − C 0 s t e p 0 k_{0}=\frac{C_{1}-C_{0}}{step_{0}} k0=step0C1C0
定时器初值的递推公式即为:
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=k2n+C1(n=012……)
k 2 = C 1 − C 2 s t e p 2 k_{2}=\frac{C_{1}-C_{2}}{step_{2}} k2=step2C1C2
定时器初值的递推公式即为:
C n + 1 = C n − k 2 C_{n+1}=C_{n}-k_{2} Cn+1=Cnk2

三、误差分析
简化后的算法显然不满足标准直线加减速方程,其实际加减速过程类似于指数曲线,如下图蓝色曲线所示
在这里插入图片描述四、程序流程如下
在这里插入图片描述

五、测试
扩展2:
① 优化版T型加减速
② 烧录hex文件后,单片机上电,步进电机经历优化版T型加减速过程,总共转动1800°
请添加图片描述

扩展3:(测试程序见文末百度网盘)
① 优化版T型加减速
② 增加4个按键,控制电机启动、转角、加速度、减速度、起始速度、终止速度、速度上限
③ 增加数码管,显示信息

扩展4:(测试程序见文末百度网盘)
① 优化版T型加减速
② 增加4个按键,控制电机启动、转角、加速度、减速度、起始速度、终止速度、速度上限
③ 增加1602LCD,显示信息

五、附件
测试程序请见百度网盘
链接: https://pan.baidu.com/s/12ZsV46nxTg_utqEFb4FA-A
提取码: zu73

↓↓↓点击下方【目录】,查看本系列全部文章


http://www.kler.cn/a/429953.html

相关文章:

  • #渗透测试#网络安全# 一文了解什么是跨域CROS!!!
  • spark——RDD算子集合
  • 计算机网络之---物理层设备
  • leetcode 面试经典 150 题:单词规律
  • YOLOv5改进 | CARAFE提高精度的上采样方法
  • istio-proxy oom问题排查步骤
  • NVR管理平台EasyNVR:EasyNTS上云网关无法启动且报错404如何解决?
  • 区块链钱包开发:全面功能设计方案解析
  • linux之less
  • docker-常用应用部署dockerfile模板
  • 数据库优化、sql优化
  • 奇异值分解推导——把任意n维度矢量,从vi基分量对应映射到ui基分量。所以分解后,V转置是提取矢量中属于V的列的分量。
  • 磁盘阵列服务器和普通服务器的区别
  • 在微信小程序中引入字体样式
  • 杂谈随笔-关于unity开发游戏
  • 如何让Google快速收录你的页面?
  • (0基础保姆教程)-JavaEE开课啦!--13课程(Interception拦截器)-完结
  • 如何使用 Docker Compose 安装 Memos 自托管笔记应用
  • 非MFC工程实现消息映射
  • 最小二乘法原理
  • couchbase 支持的数据格式以及与数据湖的对比
  • 【Appium】AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘
  • nginx不允许静态文件被post请求显示405 not allowed
  • DLL注入(AppInit_DLLs)
  • 24/12/9 算法笔记<强化学习> TD3
  • CSS学习记录07