飞控算法从入门到精通 · 083 | 轨迹规划:最小加加速度轨迹
一、从一次炸机说起
去年夏天,我在调试一台四旋翼的自主降落程序。飞机在离地半米处突然剧烈抖动,然后侧翻,桨叶打在地面上,电机尖叫着停转。事后分析日志,发现位置指令的加速度曲线在最后0.2秒内出现了三次跳变——从2m/s²瞬间跳到-1.5m/s²,再跳到0.8m/s²。飞控的PID控制器根本来不及响应这种加速度突变,电机输出饱和,姿态失控。
这个问题的根源,就是轨迹规划时只保证了位置和速度连续,忽略了加速度的连续性。而加速度的导数——加加速度(Jerk),才是决定飞行器能否平滑跟踪轨迹的关键。
二、为什么是加加速度,不是加速度?
很多做飞控的朋友会问:PID控制器不是能处理加速度变化吗?理论上是,但实际中PID对加速度的阶跃响应存在滞后。当加速度发生跳变时,控制器需要时间调整输出,这段时间内飞行器会偏离期望轨迹。对于多旋翼这种欠驱动系统,偏差会迅速耦合到姿态通道,引发震荡。
更致命的是,加速度跳变意味着电机转速的突变。电机有转动惯量,转速不能瞬间改变。如果你让加速度从0跳到5m/s²,电机需要从当前转速快速拉升,这会导致电流冲击,严重时触发过流保护。我见过不少飞控在急加速时重启,就是因为电源被电机瞬间拉垮。
最小加加速度轨迹的核心思想:让加速度的变化率(即加加速度)最小化,从而获得平滑的加速度曲线,进而得到平滑的速度和位置曲线。数学上,我们通常最小化加加速度的平方积分,即最小化 jerk² 的积分。