070、姿态控制:滚转通道设计
070、姿态控制:滚转通道设计
从一次炸机说起
去年夏天,一架四轴在手动模式下突然向右翻滚,电机尖叫着砸向地面。事后分析日志,滚转角速率在0.2秒内从0飙到800度/秒,而PID输出却只给了60%的油门差。问题出在哪?滚转通道的微分项被高频振动淹没了,而比例项又因为积分饱和迟迟拉不回来。那次之后,我彻底重写了滚转通道的控制逻辑。
滚转通道是所有姿态控制中最“敏感”的通道。俯仰和偏航多少还能容忍一些延迟,但滚转一旦失控,飞机瞬间就会翻转。这不是危言耸听——你去看任何开源飞控的代码,滚转通道的P增益通常都比俯仰高30%到50%,因为滚转惯量最小,响应最快。
滚转动力学:别被公式骗了
教科书上写滚转力矩等于惯量乘以角加速度,但实际飞控里你根本用不到这个公式。为什么?因为电机和螺旋桨的响应延迟、空气阻力的非线性、以及机架结构的弹性形变,让理论模型和实际差了十万八千里。
真正有用的东西是:滚转通道的传递函数可以近似为一阶惯性加纯延迟。这个延迟主要来自电机响应——从PWM变化到螺旋桨产生足够力矩,大约需要20到50毫秒。如果你用高频PID(比如1kHz),这个延迟就会让微分项产生严重的相位滞后。
我习惯在滚转通道里加一个低通滤波器,截止频率设在30Hz左右。别问我为什么是30Hz,这是试出来的——低于20Hz,响应太慢;高于50Hz,噪声会直接灌进微分项。这里有个坑:滤波器的阶数不要超过二阶,否则相位延迟会让你怀疑人生。
PID参数:别照搬别人的
网上流传的“滚转P=0.15,I=0.02,
