角度环与角速度环:内环与外环的本质区别

做飞控这么多年,我见过不少新手一上来就调PID,结果飞机要么抖得像筛子,要么软得像面条。其实问题的根源,往往出在没搞懂内环和外环的关系上。

今天咱们就聊聊角度环和角速度环。说白了,这就是飞控里最经典的串级PID结构。你想想看,一个四轴飞行器要稳住姿态,靠的就是这两个环协同工作。

一、内环(角速度环)是什么?

角速度环,也叫速率环。它直接控制电机的输出,让飞机以某个角速度旋转。

举个例子:你给飞机一个指令,让它以每秒30度的速度翻滚。角速度环的任务就是:

  • 读取陀螺仪数据,知道当前实际角速度
  • 对比目标角速度和实际角速度的差值
  • 调整电机转速,让差值归零

我在项目中遇到过一个问题:有次调试一架250轴距的小四轴,角速度环的P值给大了,结果飞机一解锁就开始高频抖动。嗯,这就是典型的角速度环过冲。

核心要点:角速度环是飞控最底层的控制环,它直接面对电机和陀螺仪。响应速度通常在几毫秒到十几毫秒级别。

二、外环(角度环)是什么?

角度环在角速度环的外面。它不直接控制电机,而是给内环发指令。

角度环的工作逻辑是这样的:

  1. 读取姿态解算后的角度(比如当前俯仰角是5度)
  2. 对比目标角度(比如想要俯仰角10度)
  3. 计算出需要的角速度,发给内环去执行

说白了,角度环是个「指挥官」,它告诉内环「你要以多快的速度转」。内环是个「执行者」,它负责把速度跑准。

个人经验:我习惯把角度环的更新频率设在100-200Hz,角速度环设在400-1000Hz。这个比例关系,基本能保证内环跑得比外环快3-5倍。

三、串级PID结构长什么样?

串级PID,就是把两个PID控制器串在一起。外环的输出,直接作为内环的输入。

咱们用一张图来理解:

目标角度 θ_des - 角度环PID - 角速度环PID 电机+桨 动力学 实际角度 θ_actual 角度反馈 角速度反馈 角度环(外环) 角速度环(内环) 执行机构

这张图里,你能看到两个反馈回路。外环的角度反馈是橙色的虚线,内环的角速度反馈是绿色的虚线。内环跑得快,外环跑得慢,这就是串级PID的精髓。

四、为什么内环响应要快于外环?

这个问题,我当年刚入行时也困惑过。后来在一次炸机事故中,我彻底明白了。

原因其实很简单:内环是「干活」的,外环是「指挥」的。

你想想看:

  • 外环每算一次,就给内环一个目标角速度
  • 内环必须在这个目标还没变之前,就把它跑完
  • 如果内环跑得慢,外环又给了新指令,两个指令就打架了

我曾经调试一架大六轴,把内环频率设得和外环一样,都是100Hz。结果飞机在悬停时出现低频晃动,怎么调P值都没用。后来把内环提到400Hz,问题立刻消失。

避坑指南:内环响应速度至少要比外环快3倍。如果内环和外环频率一样,或者内环更慢,飞控就会出现「指令堆积」现象。飞机要么震荡,要么响应迟钝。

五、实际调参中的经验

调串级PID,我有个习惯:先调内环,再调外环。

具体步骤是这样的:

  1. 锁定外环:先把角度环的P值设得很小(比如0.5),让它基本不起作用
  2. 调内环P:慢慢加大角速度环的P值,直到飞机出现轻微抖动,然后退回20%
  3. 调内环D:加入微分项,抑制过冲。D值从0开始慢慢加
  4. 调内环I:加一点点积分,消除稳态误差。I值要小,大了会震荡
  5. 放开外环:内环调稳后,再慢慢加大角度环的P值

一个小技巧:用手转动飞机,感受电机的响应。如果转得快电机反应也快,说明内环响应够了。如果转得快但电机反应慢半拍,内环还得提速。

六、串级PID的数学表达

如果你喜欢看公式,这里有个简化的表达:

// 角度环(外环)
error_angle = target_angle - actual_angle
target_rate = Kp_angle * error_angle + Ki_angle * integral_angle + Kd_angle * derivative_angle

// 角速度环(内环)
error_rate = target_rate - actual_rate
motor_output = Kp_rate * error_rate + Ki_rate * integral_rate + Kd_rate * derivative_rate

看到没?外环算出来的 target_rate,直接喂给了内环。内环再根据这个目标去算电机输出。

我在实际代码里,还会加一些限幅和保护。比如:

  • 外环输出的目标角速度不能超过飞机最大角速度(比如每秒300度)
  • 内环输出的电机值要限制在0-1000之间
  • 积分项要加抗饱和处理

这些细节,都是炸机换来的教训。嗯,说起来都是泪。

七、总结一下

角度环和角速度环的区别,说白了就是:

对比项 角度环(外环) 角速度环(内环)
控制对象 角度 角速度
传感器 姿态解算后的角度 陀螺仪原始数据
响应速度 慢(100-200Hz) 快(400-1000Hz)
输出 目标角速度 电机PWM值
调参顺序 后调 先调

记住一句话:内环决定稳定性,外环决定响应性。内环不稳,外环再好也没用。内环稳了,外环才能发挥手感调教的作用。

好了,这一节的内容就到这儿。下次咱们聊聊具体的调参工具和波形分析方法。

专注资料整理