本文授权转自微信公众号嵌入式应用研究院,本篇主要分享S形加减速运动算法的相关内容。
一 什么是S形加减速
如下图所示,假设该装置使用步进电机实现物体X的移动,系统要求物体X从A点出发,到B点停止,移动的时间越短越好且系统稳定。
图1
如果滑块从启动速度到目标速度的加减速不是以固定的比例进行加速/减速,而在加减速的变化过程中速度曲线呈现一个英文字母“S”形的,我们称之为S形加减速算法。则上述将这个过程描述为如下图所示:
图2 S曲线加减速模型
可以获知OA段其实就是滑块的加速部分、AB则是匀速部分,BC则是减速部分。在OA加速过程中,速度刚开始是缓慢增加,后来增加得越来越快,而在中点时刻,增加又有所放慢,但依然继续增加逼近设定的速度。实际这一阶段又分成了三个阶段在AB匀速过程中,加速到设定速度之后,以设定速度匀速步进;在BC减速部分中,以设定的速度开始按照加速度段的变化规律做减速变化,直到速度降至0后停止。
前面我们有提到梯形加减速的缺点,梯形加减速在启动、停止和高速运动的过程中会产生很大的冲击力振动和噪声,所以多数会应用于简单的定长送料的应用场合中,例如常见的3D打印机使用的就是梯形加减速算法;但是相比较S形加减速在启动停止以及高速运动时的速度变化的比较慢,导致冲击力噪音就很小,但这也决定了他在启动停止时需要较长的时间,所以多数适用于精密的工件搬运与建造。
二 梯形加减速与S形加减速差别
S形加减速在启动停止以及高速运动时的速度变化的比较慢,导致冲击力噪音就很小,所以更适用于精密的工件搬运与建造。
图3
图4
三 S形加减速模型分析
图5
7段式算法特点:具有平稳、精度高的特点,但该算法的参数复杂,大大降低到了工作效率且对硬件的要求较高;
5段式算法特点:算法简单、具有实时性和高精度的加减速控制算法,非常适合资源紧凑的小型嵌入式系统。
四 五段式S形加减速模型分析
图6
T1、T2、T3、T4、T5分别代表加加速阶段、减加速阶段、恒速阶段、加减速阶段和减减速阶段的时间。为了使该开始点和结束点的加加速度在减加速阶段为零,加加速阶段的时间必须等于减加速阶段的时间,即T1=T2,T4=T5=T。以加速段为例,第一分为加加速段,这部分是加速度a从0增大到最大值 ,第二部分是减加速度段, 从最大值减少至0(注意是加速度的变化!在加速度段,速度是一直在增加的!)也就是说两部的划分是看加速度a的最大值,减速度段也同理,只不过加速度是相反变化的。
图7
在进行S形加减速前我们必须要确定的目标量有如下:
●电机需要步进的距离,即用户必须要明确需要电机步进的步数,使用 表示。
●加速度所需时间,使用 表示。
●减速度所需时间,使用 表示。
●最大速度大小,决定电机匀速时的速度值,用 表示。
这几个参数一起决定电机将以多快的速度接进目标值,需要注意的是,因为S形加减速的加速度和减速度是随时间变化的,这一点和梯形的加速度是固定的有所不同,所以不能确定,但是只要我们给出确定的时间和末速度就可以算出要步进的步数。确定了目标量,下面将对未知量进行具体求解。
五 确定已知量和未知量
S形加减速我们需要求解的未知量如下:
(1)加速阶段时的加加速度段需要多少脉冲数?使用 进行表示。
(2)加速阶段时的减加速度段需要多少脉冲数?使用 进行表示。
(3)下一个变化的脉冲的周期是多少?
使用 进行表示同梯形算法一样,无论速度怎么变化,给定的距离是不变的,只要知道加速度段的距离和减速段的距离,确定加速阶段和减速阶段需要提供多少个脉冲,然后让控制器一个一个把脉冲送出去即可。但是这里需要说明的是,因为本文采用五段S曲线加减速算法模型使用对称结构,所以当我们知道了加速度段距离求解算法,同理就知道了减速度距离的求解算法,它俩算法一样,只是速度排序为倒序关系。所以这里不用另外求解减速度段的距离,这也是五段式的优点,如下图所示:
获取加加速度段的步数S1
因为加速度段被分成了加加速度段和减加速度段,并且对应着两个不同的加速度,一个以加加速的方式逼近目标值,一个以减加速的方式逼近目标值,所以两部分所需要的步数也是不相同的,因为求解加速度段所需要的步数,可以通过求解加加速度段与减加速度段的和进行得出:要获取位移(步数),可知先获取速度,对速度 的积分就可以得到位移,如下所示:
要先求取速度,可对加速度 积分则得速度的变化量,如下:
实际的速度 为初始速度加速度的变化量,如下:
为加速度,加速度 从0变化到最大值,有如下:(其中 是加加速度(jerk),即速度的变化率,)因为这里为加加速度段,对应的时间 也是在一定范围内( )。
结合两式可得位移公式:
可知,如果我们知道加加速度,并带入我们之前设置好的时间,就可以知道加加速度段所需要的距离,遗憾的是我们还不知道加加速度,所以需要先求解加加速度,根据图形模型可知,速度和时间的比值就是加加速度(斜率),速度是等于加速度的积分,则有如下:
而加速度在加速度段呈现两种变化,也就是在加速段有两种加速度斜率,我们知道在减加速度部段的加速斜率是以加加速度部段为基础反向变化的,所以只要知道加加速度段斜率就可知减加速度斜率,那么如何求解第一部分的加速度斜率?
图8 S曲线加速各阶段速度解析
如上图所示:第一部分和第二部分的加速是以加速度最大值作为划分的,而加速度最大值下对应着从初速度速度到末速度的中点速度,当加速度 随着时间变化到最大值时速度 ,由于初速度为0,中点速度即为末速度的一半,这里的时间为 ,可得加加速度:
由于 是用户设置的已知的,所以就可以求出 :
将就得的值 代入式4,可得加加速度段的距离为:
需要注意的是:为了使 的数值直接对应步数,即 的单位为Step,(如 ,则为2步,即需要两个脉冲),在设定速度时, 的单位应该设置为Step/s,表示1秒内可步进多少步数,这样设置还有一个好处是,速度 的倒数 (每一步对应的时间)直接对应要输出脉冲的周期,于是乎我们的问题3(下一个变化的脉冲的周期 是多少?)就迎刃而解,不用和梯形那样进行繁琐的推导,只要知道速度即可,在后面论述中我们会重点介绍。那么知道了加加速度段的距离,再求解减加速度段的距离就能得到加速段的距离。
获取减加速度段的步数S2
要获取减加速度段的位移,同样要知道速度和加速度,而减加速度段的加加速度J是和加加速度段是相反的,即为 ,所以有加速度为 ,其中时间 在初始时 , 为加加速度段的所用时间, 为减加速段所用时间,则有( ) :
对加速度进行积分则可得到对应的速度为( ):
其中 为这个阶段的末速度:
则对速度进行积分求得位移:
已知加加速阶段时间与减加速阶段时间相等,即 ,所以减加速度段的位移段 :
因最终加速度段的位移等于:
确定下一个脉冲的周期
下一个脉冲的周期决定了电机速度的快慢,根据我们前面的论述,速度的倒数对应每一个脉冲的周期 。
所以对应的定时器计数值为:
因此要想求出每一步对应的速度,以加加速度段为例,加加速度已经确定,根据位移公式。
必须要知道每一步速度下对应的时间 ,而这个 可以通过位移
求得,如当 ,即第一步的对应时间为 ,同理第二步对应的时间为 ,而 等于第一步时间和第二步脉冲周期的和( ),因此 的时间就等于第二步脉冲的周期 ,但是我们不采用这种方法计算。
我们只需要知道第一步所需的时间 ,通过 计算出对应的速度V,速度的倒数 ,就是第二步脉冲的周期,然后将第一步时间 加上第二步周期 就是位移公式中步进到第二步的时间总和,以此循环即可得出每一步的脉冲周期,当然了,如果是减加速度段,就使用减加速度段的公式即可。
六 七段式S形加减速的原理
实际上要实现S型可以采用的方法有很多,在传统的S形曲线加减速算法中,它包括七个运动阶段:加加速阶段,恒加速阶段,减加速阶段,恒速阶段,加减速阶段,恒定减速阶段和减减速阶段。
图9 S曲线加减速七段式模型
图10
图11
图12
图13
图14
七 概述:通用=低效
[1]《DMF407电机控制专题教程》第17章步进电机S形加减速-正点原子的文章-知乎
https://zhuanlan.zhihu.com/p/551709810
[2]杨超,张冬泉.基于S曲线的步进电机加减速的控制[J].机电工程,2011,28(07):813-817.
|