打印
[STM32F4]

STM32控制步进电机—种S形加减速曲线的推导与实现

[复制链接]
259|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 有何不可0365 于 2022-11-10 15:28 编辑

手上有个42步进电机,可是要么龟爬要么光叫不跑,百度了才知道要有个加速过程,而各种加速中又属S形加速最棒,那我当然要一步到位啦。 以下图片可以很好的展示S形加速的特点:



网图侵删。

理论分析 选择曲线 加速曲线有很多,梯形、余弦、多项式、7段S型、7段修正S型、15段S型、31段S型等。


使用特权

评论回复
沙发
有何不可0365|  楼主 | 2022-11-10 15:29 | 只看该作者
其中很多分段函数一看就很复杂,需要的参数也很多,我们选一种简单的,仅需要一个表达式就能确定的加速曲线:

使用特权

评论回复
板凳
有何不可0365|  楼主 | 2022-11-10 15:29 | 只看该作者
计算函数方程
首先确定三个输入参数,也就是函数中的常量:

使用特权

评论回复
地板
有何不可0365|  楼主 | 2022-11-10 15:33 | 只看该作者
由图可知加速度为二次函数,且极值点 t = T 2 t=\frac{T}{2} t=2T​,所以 a − t a-t a−t表达式为:

使用特权

评论回复
5
有何不可0365|  楼主 | 2022-11-10 15:35 | 只看该作者
因为函数图像过原点,所以带入 a = 0 , t = 0 a=0,t=0 a=0,t=0可得:

使用特权

评论回复
6
有何不可0365|  楼主 | 2022-11-10 15:35 | 只看该作者
所以 加速度公式 为:

使用特权

评论回复
7
有何不可0365|  楼主 | 2022-11-10 15:45 | 只看该作者
对时间一次积分获得速度:

使用特权

评论回复
8
有何不可0365|  楼主 | 2022-11-10 15:46 | 只看该作者
二次积分获得位移:

使用特权

评论回复
9
有何不可0365|  楼主 | 2022-11-10 15:46 | 只看该作者
将三个常量带入速度表达式,可得:

使用特权

评论回复
10
有何不可0365|  楼主 | 2022-11-10 15:54 | 只看该作者
解之可得系数 k k k:

使用特权

评论回复
11
有何不可0365|  楼主 | 2022-11-10 15:54 | 只看该作者
以及 速度公式 :

使用特权

评论回复
12
有何不可0365|  楼主 | 2022-11-10 15:55 | 只看该作者
又因为时间为0时位移为0,所以可以获得 位移公式:

使用特权

评论回复
13
有何不可0365|  楼主 | 2022-11-10 15:55 | 只看该作者
单位分析

因为使用场景是单片机控制步进电机,所以常规的速度单位 m / s m/s m/s用在这里不太合适。

在没有细分的情况下,单片机每发1个脉冲,电机前进1步,对于步距角1.8°的步进电机来说,就是旋转 1 200 \frac{1}{200} 2001​圈。所以速度单位选择"个每秒",也就是Hz。

加速过程秒级显然是我们不可接受的,微秒级的话步进电机也受不了,所以加速的时间单位选择ms。

综上:
加速度 a a a的单位为(Hz/ms)
速度v的单位为(Hz)
位移s的单位为(1000个)

显然位移单位不合常理,我们将位移单位化为(个),可得 位移公式2:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

445

帖子

0

粉丝