(1)加速阶段时的加加速度段需要多少脉冲数?使用 进行表示(2)加速阶段时的减加速度段需要多少脉冲数?使用 进行表示(3)下一个变化的脉冲的周期是多少?使用 进行表示同梯形算法一样,无论速度怎么变化,给定的距离是不变的,只要知道加速度段的距离和减速段的距离,确定加速阶段和减速阶段需要提供多少个脉冲,然后让控制器一个一个把脉冲送出去即可。但是这里需要说明的是,因为本文采用五段S曲线加减速算法模型使用对称结构,所以当我们知道了加速度段距离求解算法,同理就知道了减速度距离的求解算法,它俩算法一样,只是速度排序为倒序关系。所以这里不用另外求解减速度段的距离,这也是五段式的优点,如下图所示:获取加加速度段的步数S1因为加速度段被分成了加加速度段和减加速度段,并且对应着两个不同的加速度,一个以加加速的方式逼近目标值,一个以减加速的方式逼近目标值,所以两部分所需要的步数也是不相同的,因为求解加速度段所需要的步数,可以通过求解加加速度段与减加速度段的和进行得出:要获取位移(步数),可知先获取速度,对速度 的积分就可以得到位移,如下所示: 要先求取速度,可对加速度 积分则得速度的变化量,如下: 实际的速度 为初始速度加速度的变化量,如下: 为加速度,加速度 从0变化到最大值,有如下:(其中 是加加速度(jerk),即速度的变化率,)因为这里为加加速度段,对应的时间 也是在一定范围内( ) 结合两式可得位移公式: 可知,如果我们知道加加速度,并带入我们之前设置好的时间,就可以知道加加速度段所需要的距离,遗憾的是我们还不知道加加速度,所以需要先求解加加速度,根据图形模型可知,速度和时间的比值就是加加速度(斜率),速度是等于加速度的积分,则有如下: 而加速度在加速度段呈现两种变化,也就是在加速段有两种加速度斜率,我们知道在减加速度部段的加速斜率是以加加速度部段为基础反向变化的,所以只要知道加加速度段斜率就可知减加速度斜率,那么如何求解第一部分的加速度斜率? S曲线加速各阶段速度解析如上图所示:第一部分和第二部分的加速是以加速度最大值作为划分的,而加速度最大值下对应着从初速度速度到末速度的中点速度,当加速度 随着时间变化到最大值时速度 ,由于初速度为0,中点速度即为末速度的一半,这里的时间为 ,可得加加速度: 由于 是用户设置的已知的,所以就可以求出 : 将就得的值 代入式4,可得加加速度段的距离为: 需要注意的是:为了使 的数值直接对应步数,即 的单位为Step,(如 ,则为2步,即需要两个脉冲),在设定速度时, 的单位应该设置为Step/s,表示1秒内可步进多少步数,这样设置还有一个好处是,速度 的倒数 (每一步对应的时间)直接对应要输出脉冲的周期,于是乎我们的问题3(下一个变化的脉冲的周期 是多少?)就迎刃而解,不用和梯形那样进行繁琐的推导,只要知道速度即可,在后面论述中我们会重点介绍。那么知道了加加速度段的距离,再求解减加速度段的距离就能得到加速段的距离。获取减加速度段的步数S2要获取减加速度段的位移,同样要知道速度和加速度,而减加速度段的加加速度J是和加加速度段是相反的,即为 ,所以有加速度为 ,其中时间 在初始时 , 为加加速度段的所用时间, 为减加速段所用时间,则有( ): 对加速度进行积分则可得到对应的速度为( ): 其中 为这个阶段的末速度: 则对速度进行积分求得位移: 已知加加速阶段时间与减加速阶段时间相等,即 ,所以减加速度段的位移段 : 因最终加速度段的位移等于: 确定下一个脉冲的周期下一个脉冲的周期决定了电机速度的快慢,根据我们前面的论述,速度的倒数对应每一个脉冲的周期 。 所以对应的定时器计数值为: 因此要想求出每一步对应的速度,以加加速度段为例,加加速度已经确定,根据位移公式 必须要知道每一步速度下对应的时间 ,而这个 可以通过位移 求得,如当 ,即第一步的对应时间为 ,同理第二步对应的时间为 ,而 等于第一步时间和第二步脉冲周期的和( ),因此 的时间就等于第二步脉冲的周期 ,但是我们不采用这种方法计算。我们只需要知道第一步所需的时间 ,通过 计算出对应的速度V,速度的倒数 ,就是第二步脉冲的周期,然后将第一步时间 加上第二步周期 就是位移公式中步进到第二步的时间总和,以此循环即可得出每一步的脉冲周期,当然了,如果是减加速度段,就使用减加速度段的公式即可。