087、S形速度曲线生成——从“抖成筛子”到“丝般顺滑”
一、一个让我半夜惊醒的调试现场
去年做一台六轴协作机器人的关节控制,电机选的是400W的直流无刷,配20位绝对值编码器。上位机发了个位置指令,电机“嗖”地一下冲过去,然后——整个机械臂像得了帕金森一样高频抖动,末端执行器上的吸盘把工件甩飞了。
当时我盯着示波器上的电流波形,那叫一个惨不忍睹:启动瞬间电流尖峰冲到额定值的3倍,减速阶段速度曲线末端有个明显的“回勾”,像是刹车踩到底又弹起来。老工程师路过看了一眼,丢下一句话:“梯形速度曲线,末端加速度突变,机械谐振被激发了。”
从那以后,我老老实实研究S形速度曲线。今天这篇笔记,就是当时踩坑的完整记录。
二、为什么梯形曲线不够用
梯形速度曲线(T-Curve)在工业界用了三十年,简单、计算量小、容易实现。但它的致命伤在于:加速度在拐点处是阶跃变化的。
想象一下你开车:绿灯亮起,你一脚油门踩到底(加速度瞬间最大),然后匀速巡航,快到路口又一脚刹车踩死(加速度瞬间反向最大)。车上的乘客会怎样?前仰后合。电机轴上的负载也一样——机械结构会因为这个加速度突变产生冲击,激发固有频率,轻则抖动,重则损坏减速器。
S形曲线的核心思想:让加速度连续变化,而不是跳变。具体来说,把加速度的变化率(Jerk,加加速度)也纳入控制。Jerk = da/dt,单位是m/s³。控制好Jerk,就能让速度曲线从“折线”变成“S形”。
三、S形曲线的数学骨架
S形曲线通常分七个阶段(7段式),