梯形速度控制曲线(T曲线)
所谓梯形速度曲线,也称为直线加减速或T型加减速。 其算法十分简易,规划周期耗时短,有利于缩减系统的连续运行时间,从而提高系统的运动控制速度,实施起来比较易,应用广泛。 但它采用的是匀加减速,使得在加减速阶段的起点和终点处加速度存在突变,加速度曲线不连续,使其加速、匀速和减速过程不能实现平滑过渡,会有顿挫感。
速度曲线示意图:
因此,在工业中虽然梯形控制曲线被广泛应用,但是对于振动要求较高的场合却是不适合采用该控制模式。
S型速度控制曲线
S型速度曲线控制算法是工业控制领域另一种常用的加减速控制策略,S型曲线很好的克服了T型曲线加速度不连续的问题。S型曲线实际就是实现一个加速度的T型变化过程,具体来说就是加速度增加、加速度恒定、将速度减小的过程。在整个速度调节规程中,加速度是连续变化的,而反映到速度的变化就是一条平滑的S型曲线。如下图所示:
通俗的来讲,S型曲线会将整个速度变化过程进行拆解,通过控制加速度的变化来对速度进行一系列的平滑处理。对于一个长控制周期而言使用S曲线后的速度可以被平滑如下:
可以看到相对于T曲线的控制,S曲线得到的速度曲线会更加平滑。
两种算法的控制差异
从控制被控量的角度来说,T型控制曲线的被控量是其速度,加速度恒定的情况下根据需要的速度与期望的速度之间按照加速度进行增加或减少。而S型曲线的被控量其实是加加速度(jerk),在S型曲线中加速度是会随着加速周期逐步上升的,初始起步时加速度很小,因此速度变化量很小,不会引起很大的抖动,起步后加速度逐渐增加,则速度变化量随之增加,可以减少速度变化周期,提高实时性,然后到达目标速度前开始下降加速度直到加速度逐渐降到零,此时速度变化量也会比较平稳。
从控制周期的角度来说,T曲线更多考虑的是一个周期的变化,相对而言更加简单。但是S型速度控制曲线考虑的不再是一个控制周期的变化量而是一段周期的控制变化量,举个简单的例子:速度从零启动加到某个特定值,对于T曲线只要考虑一个周期内加速度能否到达这个值,不能则以当前速度+加速度*控制周期,能则直接给到期望值。但是对于S型曲线,不仅需要考虑一个周期内能否加到期望值,还需要考虑到加速度提前下降的问题。比如当前速度0.6,当前加速度0.3,加加速度0.1,期望速度1.0。则在一个周期内无法到达期望速度。但同时如果以当前加速度进行速度调节,则下一周期速度会变为0.9,加速度为0.2,此时速度会存在超调,所以加速度需要提前下降。因此该过程需要考虑到未来多个周期的控制情况。
S速度曲线的简单原理
关于S曲线的控制原理可以参考《自动驾驶】运动规划丨速度规划丨T型/S型速度曲线》一文,这里做简单介绍。
在传统的T曲线控制中,只有加速度的概念,速度根据固定加速度变化:
而它的加速度是阶跃变化的:
因此,当系统的加速度从一个值变成另一个值的时候,速度的惯性会使人产生顿挫感。
而相对于T曲线,S曲线增加了控制量加加速度(Jerk),系统的加速度此时变成一个变化量,因此当速度达到期望值时,加速度同时会下降到一个非常低的值,由于速度变化量减小,因此不会产生很大的速度惯性,使系统看起来更平滑:
加速度:
这里对于S曲线中加速度的处理方法不一,上述图例中采用的一阶加速度。除此之外也有采用二阶加速度的,例如《一文带你学明白神秘的电机S曲线柔性调速算法》;也有指数型的,例如《电机速度曲线规划2:S形速度曲线设计与实现》。但其实不管哪种方法,S型曲线的本质都是控制加速度,使被控物体到达目标速度时加速度降低到一个很小的值以达到一个稳定过渡的效果,同时中间过程又可以使加速度达到一个很大的值使系统具有较好的跟随性,只要理解了这一点基本S曲线就变得比较通俗易懂了。