第七节(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 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=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 0 C_{n+1}=C_{n}-k_{0} Cn+1=Cnk0

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

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

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

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

五、附件
Hex测试程序+测试视频请见百度网盘
链接: https://pan.baidu.com/s/1j70qb8vVxGnXTfHf4T4qhg
提取码: fnre

Keil源码请见某宝,搜索:【皮皮黄步进电机】

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/35496.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

什么是继承性?C++中如何实现继承? 继承的好处和注意事项有哪些?

1) 什么是继承性?C中如何实现继承? 一、继承性的概念 继承性是面向对象编程中的一个重要特性,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。继承的主要目的是实现…

唇形同步视频生成工具:Wav2Lip

一、模型介绍 今天介绍一个唇形同步的工具-Wav2Lip;Wav2Lip是一种用于生成唇形同步(lip-sync)视频的深度学习算法,它能够根据输入的音频流自动为给定的人脸视频添加准确的口型动作。 (Paper) Wav2Lip模型…

ESP32使用TCA9548A IIC多路复用器拓展

ESP32使用TCA9548A IIC多路复用器拓展 本文将讲述如何使用TCA9458A IIC多路复用器扩展IIC总线端口。使用相同的IIC地址控制多个IIC设备,如多个OLED或BME280等 TCA9548介绍 IIC通信协可以实现在同一IIC总线上与多个IIC设备通信,只要所有设备都具有唯一…

BGP路径属性与路由反射器

BGP路径属性 路径属性: 任何一条BGP路由都拥有多个路径属性 当路由器将BGP路由通告给它的对等体时,一并被通告的还有路由所携带的各各路径属性 BGP的路径属性将影响路由优选 路径四个属性分类: 公认必遵:必须包括在每个upda…

C语言期末考试——重点考点

目录 1.C语言的结构 2.三种循环结构 3.逻辑真假判断 4. printf函数 5. 强制类型转化 6. 多分支选择结构 7. 标识符的定义 8. 三目运算符 1.C语言的结构 选择结构、顺序结构、循环结构 2.三种循环结构 for、while、do-while 3.逻辑真假判断 C语言用0表示false,用非0(不…

ci/cd配置任务超时时间

有两个地方决定了任务超时时间: 1. 2.gitlab-runner

JUC:Synchronized和锁升级

1. 面试题 谈谈你对Synchronized的理解Sychronized的锁升级你聊聊Synchronized实现原理,monitor对象什么时候生成的?知道monitor的monitorenter和monitorexit这两个是怎么保证同步的嘛?或者说这两个操作计算机底层是如何执行的偏向锁和轻量级…

梯度下降法以及 Python 实现

文章目录 1. 引言2. 梯度法3. 例子4. 代码实现5. 讨论 — 学习率 η \eta η5.1 当 η \eta η 设置过大5.2 当 η \eta η 设置过小 参考 1. 引言 梯度下降法,可以根据微分求出的斜率计算函数的最小值。 在人工智能中,经常被应用于学习算法。 2. 梯…

OpenCV-图像阈值

简单阈值法 此方法是直截了当的。如果像素值大于阈值,则会被赋为一个值(可能为白色),否则会赋为另一个值(可能为黑色)。使用的函数是 cv.threshold。第一个参数是源图像,它应该是灰度图像。第二…

详细了解IO分类

按照数据流方向如何划分? 输入流(Input Stream):从源(如文件、网络等)读取数据到程序。 输出流(Output Stream):将数据从程序写出到目的地(如文件、网络、控…

Appium 安装问题汇总

好生气好生气,装了几天了, opencv4nodejs 和 mjpeg-consumer 就是装不了,气死我了不管了,等后面会装的时候再来完善,气死了气死了。 目录 前言 1、apkanalyzer.bat 2、opencv4nodejs 3、ffmpeg 4、mjpeg-consume…

目标检测知识点总结

1、数据增强 2、指标 3、vit 、swint ViT算法,创新性地将图像划分成一个个patch,并将每个patch展平为一个向量,使得图像数据转化为序列化数据,之后输入到Transformer模型中,实现了Transformer在图像分类任务中的应用。…

Lecture 11 - List,Set,Map

List, Set and Map are all interfaces: they define how these respective types work, but they don’t provide implementation code overview 1. List(列表): (1) 创建、访问和操作列表:ArrayList …

ElfBoard开源项目|基于百度智能云平台的车牌识别项目

本项目基于百度智能云平台,旨在利用其强大的OCR服务实现车牌号码的自动识别。选择百度智能云的原因是其高效的API接口和稳定的服务质量,能够帮助开发者快速实现车牌识别应用。 本项目使用摄像头捕捉图像后,通过集成百度OCR服务的API&#xf…

应对超声波测试挑战,如何选择合适的数字化仪?

一、数字化仪的超声波应用 超声波是频率大于人类听觉范围上限的声学声压(声学)波。超声波设备的工作频率为20 kHz至几千MHz。表1总结了一些更常见的超声波应用的特征。 每个应用中使用的频率范围都反映了实际情况下的平衡。提高工作频率可以通过提高分…

product/admin/list?page=0size=10field=jancodevalue=4562249292272

文章目录 1、ProductController2、AdminCommonService3、ProductApiService4、ProductCommonService5、ProductSqlService https://api.crossbiog.com/product/admin/list?page0&size10&fieldjancode&value45622492922721、ProductController GetMapping("ad…

博物馆导览系统方案(一)背景需求分析与核心技术实现

维小帮提供多个场所的室内外导航导览方案,如需获取博物馆导览系统解决方案可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~撒花! 一、博物馆导览系统的背景与市场需求 在数字化转型的浪潮中,博物馆作为文化传承和知…

Flink学习连载文章11--双流Join

双流 Join 和两个流合并是不一样的 两个流合并:两个流变为 1 个流 union connect 双流 join: 两个流 join,其实这两个流还是原来的,只是满足条件的数据会变为一个新的流。 可以结合 sql 语句中的 union 和 join 的区别。 在离线 Hive 中&…

vue3+wangeditor富文本编辑器详细教程

一、前言 在这篇教程中,我将指导如何使用 Vue 3 和 WangEditor 创建一个功能丰富的富文本编辑器。WangEditor 是一个轻量级的富文本编辑器,它非常适合集成到 Vue 项目中。这个例子展示了如何配置富文本编辑器,包括工具栏、编辑器配置以及如何…

Python学习39天

my_tools.py文件提供工具函数 """ 此文件编写工具函数,供程序员使用 my_tools """def read_confirm_select():"""让用户输入:Y/N,不区分大小写,将用户输入值转为小写返回&#xff…