005、位置、速度、加速度与加加速度
005 位置、速度、加速度与加加速度
从一次电机“鬼畜”说起
去年调试一台六轴协作机器人,末端执行器走一个简单的S形轨迹。上位机发的位置指令看着很平滑,但电机跑起来就像得了帕金森——高频抖动,偶尔还“咯噔”一下。示波器抓编码器反馈,位置曲线确实光滑,但速度曲线像锯齿,加速度更是炸裂。当时我盯着波形图骂了半小时,最后发现问题是:位置指令的加加速度(Jerk)没有限制。
这个坑让我意识到,很多搞运动控制的工程师,对位置、速度、加速度的理解停留在课本公式上,但实际嵌入式系统里,这些量之间的耦合关系才是调试的噩梦。
位置:最直观也最危险的量
位置是控制系统的“面子工程”。用户只看末端走没走到位,但位置指令的生成方式,直接决定了电机是“丝滑”还是“抽风”。
梯形速度规划是最常见的坑。假设你从位置0走到100,速度上限100,加速度100。按教科书算出来三段式:匀加速、匀速、匀减速。但实际跑起来,电机在加减速切换点会“咯噔”一下——因为加速度突变,对应加加速度无穷大。
// 梯形速度规划的位置生成(别这样写!)floatpos=0