找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 4067|回复: 2

【单片机】步进电机梯形加减速算法

[复制链接]

1112

主题

1653

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
245
威望
744 点
宅币
24254 个
贡献
46222 次
宅之契约
0 份
在线时间
2298 小时
注册时间
2014-1-26
发表于 2020-8-7 17:07:08 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
所谓梯形加减速,指的是一种步进电机的加减速算法。

梯形加减速.png

图中,Y轴表示的是步进电机当时的转速,X轴是时间。
当步进电机到达一定转速的时候,停止加速,并在快要到达结尾的时候减速。
图中的这个梯形被很多竖线分为了不同的块。其中每个块的面积是一样的(虽然图上画的不是很像)。
这个面积,就是步进电机的“1步”的单位。
而每一条竖线,相当于在当前时间,步进电机进行一次步进。
如图所示,因为步进电机可以进行匀速的加减速,步进电机可以由低速平稳过渡到高速,并平稳减速。这样可以保证步进电机在不丢步的同时进入高速转动的状态。是3D打印机或者激光雕刻机等依赖的重要功能。

梯形的腰的斜率,决定了步进电机加减速时的加速度大小。梯形的高,决定步进电机的最大速度。

设每一步的时长为T,当前初始速度为V0,结束速度为V1,加速度(梯形腰斜率)为a,T的值应当如此计算:

T = 解一元二次方程(a, V0 * 2, -2).解1

其中,一元二次方程应该是如下所示的算式:

Ax^2 + Bx + C = 0

其中:
A = a(加速度、梯形腰斜率)
B = V0 * 2
C = -2

一元二次方程解法:

Delta = B^2 - 4AC
解1 = (-B + Sqrt(Delta)) / 2A
解2 = (-B - Sqrt(Delta)) / 2A

计算出T的值后,我们就可以在单片机上通过使用定时器来精确地控制步进电机进行运动了。通常可以先预先生成时间间隔序列,然后使用TIM+DMA+中断来一气呵成。
回复

使用道具 举报

29

主题

315

回帖

1561

积分

用户组: 上·技术宅

UID
3808
精华
11
威望
105 点
宅币
702 个
贡献
165 次
宅之契约
0 份
在线时间
404 小时
注册时间
2018-5-6
发表于 2020-8-7 18:48:24 | 显示全部楼层
俺看懂了
Passion Coding!
回复

使用道具 举报

1112

主题

1653

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
245
威望
744 点
宅币
24254 个
贡献
46222 次
宅之契约
0 份
在线时间
2298 小时
注册时间
2014-1-26
 楼主| 发表于 2020-8-8 21:02:32 | 显示全部楼层

不错哦
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-27 07:30 , Processed in 0.045176 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表