设计运动控制系统很多年,突然有人问我S曲线加减速算法跟梯形加减速算法的区别,我竟然拼凑了很多语言都没能讲清楚。作为一个技术男怎能善罢甘休,但介于个人能力有限只能借用网上大牛的讲解搞清楚。苦苦搜索了三天终于找到了一篇像样的文章,由于是英文资料,我就在这里按照自己的方式将文章内容分享一下。(注:本人英文能力有限仅供参考)
首先举个生活中的例子
在我们平时开车的过程中就存在 S 曲线与梯形加减速运动的经历。想象一下,当你控制汽车减速停止时不将脚从刹车踏板上移开,你将会以某个恒定速率减速,直到汽车停下。在汽车完成减速的那一刻,它会向后倾斜并摆动几次,然后再稳定下来。假如换一种方式,当你控制汽车减速停止时以恒定速度制动汽车,但在汽车完全停止之前你轻轻地将脚从刹车踏板上抬起,这是我们大多数人(优秀的司机)为了避免撞到乘客而自动做的事情。使用这种方法,汽车不会摆动。
在汽车运动结束时让脚离开刹车踏板类似于执行 S 曲线算法。它产生了从恒定减速到零减速的过渡阶段。这种简单的变化导致负载振荡低得多。
S曲线运动方式如何影响机器性能
类似于上面优秀司机的做法,在控制机器运动过程中使用S曲线算法也会大大优化机器的性能。
S曲线加速度通过将加速度渐变的方式消除了加速度突变的情况,从而使机器运动更平滑。除了提供更平滑的运动之外,你还可以根据负载调整S 曲线的参数从而提高机器运行的速度,例如龙门架、皮带驱动系统、XYZ 工作台、分度器、刺绣、机器人机制等。
S 曲线算法将“过渡”段添加到传统的 3 相梯形曲线(加速、滑行、减速),从而产生 7 相曲线。如图 1 所示。
图 1:S 曲线和梯形曲线的速度曲线
使 S 曲线算法如此强大的原因在于,它们向连接机构和负载注入的振动能量显着减少。无论使用的驱动电机是伺服电机还是步进电机,都是如此。同样重要的是,与梯形曲线相比,S 曲线提供了一种额外的控制机制,通过调整曲线过渡阶段与恒定加速度阶段的比率来抵消负载中的振荡。
这两个功能一起会对有效传输时间产生巨大影响。有效转移时间是从负载开始移动到最终真正稳定下来的时间。对于高速点对点移动,调整的 S 曲线可以将有效传输时间减少 25% 甚至 33%,具体取决于被控制机构的性质。
定义加速度变化的运动特性称为“急动”。在梯形曲线中,相变处的加加速度是无限的,而在 S 曲线曲线中,加加速度是一个常数值,将变化分布在非零时间段内。对于给定的负载,加加速度越大,在系统中显示为不需要的振动的能量就越大,并且这种引起振动的能量的频谱将越宽。如图 2 所示。
比较梯形剖面与 S 曲线剖面产生的振动能量的数量和类型,我们看到梯形剖面——由于其加速度的瞬时变化——向系统注入了相对大量的振动能量,而这种振动能量分布在很宽的频率范围内。S 曲线运动曲线向负载注入较少的振动能量,同样重要的是,这些振动的范围在较高频率下会迅速切断。
让 S 曲线发挥作用
既然我们了解了所涉及的原理,那么如何编程 S 曲线,以及哪些因素会影响实际负载的平滑度和传递时间?
为给定应用寻找最佳 S 曲线形式是平衡从零加速度过渡到最大加速度(阶段 I 和 III)所花费的时间与最大加速度(阶段 II)所花费时间的百分比的问题。
一方面,如果我们几乎将所有时间都花在过渡(阶段 I 和 III)上,而在最大加速度(阶段 II)上花费很少的时间,则运动将非常平滑,但移动的总时间会增加。这是因为,在阶段 I 期间,S 曲线轮廓仅行进很短的距离,因此,此处花费的时间越长,总传输时间将增加。
另一方面,如果我们只在阶段 I 和 III 中花费一小部分时间,那么总移动的时间将被最小化,但是,轮廓将不会那么平滑,并可能导致负载发生不必要的振动。令人高兴的是,有一个警告,因为即使是相对简短的阶段 I 和 III 阶段也可能导致负载引起的振荡显着减少。不要忘记,您正在比较大的急动值(对于 S 曲线轮廓)与无限的急动值(梯形轮廓),因此即使是一点点过渡也比没有过渡要好得多。
事实上,对于给定的机制,S 曲线相位比通常有一个“神奇”值。虽然过渡时间过短会注入过多的振动能量,但令人惊讶的是,过渡时间过长也会产生类似的影响。通常有一个特定的 jerk 值,它“坚持着陆”并显着或完全减少移动结束时的稳定振荡。找到该值是 S 曲线调整过程的目标。
实际上,除非负载的重量永远不会改变,或者除非负载的重量完全已知,否则您可能会调整 S 曲线形状以实现平均负载的点对点传输。但即使是平均优化的值也会对有效的点对点传输时间产生很大的影响。