PX4 多旋翼的四个控制环
约 895 字大约 3 分钟
2026-07-03
PX4 多旋翼采用级联控制结构。外层控制器的输出作为内层控制器的输入,最终将位置或速度等高层目标逐步转换为电机输出。

这是 PX4 多旋翼控制的总架构图。
左侧虚线框代表 Inertial Frame ,也就是惯性系;右侧虚线框代表 Body Frame,也就是机体系;中间的模块 Acceleration and Yaw to Attitude 是两者之间的桥梁,负责把惯性系下的加速度目标转换为机体系相关的姿态目标。
各个字母的下标sp 是 setpoint 的缩写,意思是“期望值”或者“目标值”。
第一环:Position Control 位置控制。位置环主要是 P 控制器,它的目标是根据目标位置和当前位置的误差,计算一个速度目标。
第二环:Velocity Control 速度控制。速度环是 PID 控制器。它的目标是根据目标速度和当前速度的误差,计算一个加速度目标。
左边两环下面写着 50 hz,意思是位置环和速度环大概以 50 Hz 的频率运行。为什么外环频率比较低?因为位置和速度变化相对慢,不需要每一毫秒都算。无人机的位置不会在 1 ms 内发生剧烈变化。
中间模块:Acceleration and Yaw to Attitude。它将 Asp (加速度期望)和 ψsp (偏航角期望)转换为 qsp(姿态期望)。qsp 中的 q 不是普通的角度,而是 quaternion,四元数。
第三环:Angle Control 姿态控制。姿态环主要是 P 控制器。它的目标是根据目标姿态和当前姿态的误差,计算角速度目标。
第四环:Angular Rate Control 角速度控制。角速度环是 PID 控制器。它的目标是根据目标角速度和当前角速度的误差,计算各种控制力矩。
右边两环下面写着 250 Hz 和 1kHZ,表示姿态环约 250 Hz,角速度环约 1 kHz。为什么内环频率更高?因为飞机的姿态和角速度变化很快。如果角速度控制不及时,飞机很容易抖动、发散,甚至炸机。
最右边的 Mixer 可以理解成混控器 / 控制分配器,它的作用是把前面算出来的控制量转换成每个电机的输出。
PID控制器
PID 是一种根据当前误差、历史累计误差和误差变化趋势来计算控制输出的自动纠偏方法。
PID 是三个部分:
P = Proportional,比例
I = Integral,积分
D = Derivative,微分也就是:
P:现在差多少,就改多少。
I:长期差一点,就慢慢补。
D:变化太快,就提前刹车。下面是一个例子:
无人机想保持速度 1 m/s,但现在只有 0.7 m/s,控制器就要想办法让它加速。
P 就是看“现在差多少”:差得越多,推一把越大;差得越少,推一把越小。
I 是看“是不是长期都差一点”:如果无人机一直因为风阻、负载、电机差异而达不到目标,I 就会慢慢加大补偿,把这个长期小偏差消掉。
D 是看“变化得快不快”:如果无人机已经很快接近目标了,D 会提前收力,防止冲过头、来回振荡。
