技术宅的结界

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

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 508|回复: 2
收起左侧

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

[复制链接]

1072

主题

2493

帖子

6万

积分

用户组: 管理员

一只技术宅

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

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

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

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

梯形加减速.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+中断来一气呵成。

评分

参与人数 1威望 +10 宅币 +30 贡献 +10 收起 理由
watermelon + 10 + 30 + 10 通俗易懂

查看全部评分

回复

使用道具 举报

28

主题

300

帖子

1746

积分

用户组: 上·技术宅

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

使用道具 举报

1072

主题

2493

帖子

6万

积分

用户组: 管理员

一只技术宅

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

不错哦

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-12-6 06:20 , Processed in 0.097028 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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