1. 项目背景与核心价值
四旋翼无人机作为当前最流行的飞行器平台之一,其姿态控制性能直接决定了飞行稳定性和任务执行能力。传统PID控制虽然实现简单,但在面对气流扰动、负载变化等不确定因素时,往往需要反复调参且难以获得理想效果。自抗扰控制(Active Disturbance Rejection Control, ADRC)通过独特的扰动观测和补偿机制,为解决这一问题提供了新思路。
我在工业级无人机研发中曾遇到一个典型案例:某农业植保机在满载与空载切换时,常规PID控制器需要准备多套参数,而ADRC仅用一组参数就实现了全工况稳定控制。这种"参数不敏感"的特性,正是吸引我深入研究ADRC的关键原因。
2. 自抗扰控制原理剖析
2.1 ADRC的三阶架构设计
典型ADRC包含三个核心组件:
-
跟踪微分器(TD):安排过渡过程,解决超调与快速性矛盾
- 例如对于姿态角指令θ,TD输出v1跟踪θ,v2提供微分信号
- 离散实现公式:fhan(v1(k)-θ(k), v2(k), r, h)
-
扩张状态观测器(ESO):核心创新点,将模型不确定性和外部扰动统一视为"总扰动"
- 三阶ESO状态方程示例:
matlab复制其中z3即为估计的总扰动e = z1 - y; z1 = z1 + h*(z2 - β01*e); z2 = z2 + h*(z3 - β02*e + b0*u); z3 = z3 + h*(-β03*e);
- 三阶ESO状态方程示例:
-
非线性状态误差反馈(NLSEF):
- 采用fal函数等非线性组合,比线性组合更适应大范围工况
- 典型fal函数:fal(e,α,δ)=|e|^α sign(e), |e|>δ; e/δ^(1-α), |e|≤δ
2.2 与传统PID的本质区别
通过对比实验可以清晰看出差异:
- PID在5m/s侧风扰动下姿态角波动达±8°
- ADRC在相同条件下将波动抑制在±2°以内
- 根本原因在于ESO的实时扰动补偿能力,相当于给控制器装上了"透视眼"
3. 四旋翼建模与控制器实现
3.1 简化动力学模型
建立机体坐标系下的滚转通道方程:
code复制Ixx * φ'' = l*(F2 - F4) + Md
其中:
- Ixx:滚转惯量
- l:电机到重心距离
- F2,F4:对角电机拉力
- Md:气动干扰力矩
3.2 参数整定技巧
通过"时间尺度归一化"方法简化调参:
- 确定带宽ωc(决定响应速度)
- 观测器带宽取ωo≈3~5ωc
- 控制器参数经验公式:
- β01 = 3ωo, β02 = 3ωo², β03 = ωo³
- b0取系统近似增益倒数
实测建议:先用仿真确定参数范围,再通过飞行实验微调。某型无人机典型值为ωc=6rad/s,ωo=20rad/s
4. 嵌入式实现关键点
4.1 定点数优化方案
在STM32F4平台上的实现技巧:
- 将ESO计算拆分为多个200us的任务周期
- 采用Q15格式定点数运算,节省70%计算时间
- 关键代码片段:
c复制int32_t fal(int32_t e, int32_t alpha, int32_t delta) {
int32_t abs_e = abs(e);
if(abs_e > delta) {
return (int32_t)((int64_t)e * pow_fix(abs_e, alpha-1) >> 15);
} else {
return (int32_t)((int64_t)e * pow_fix(delta, alpha-1) >> 15);
}
}
4.2 抗传感器噪声措施
实测发现MPU6050的噪声会导致ESO高频抖动:
- 在TD前增加滑动平均滤波(窗口5~7)
- 调整ESO带宽时保持ωo≤1/3采样频率
- 对z3输出进行低通滤波(截止频率2~3倍ωc)
5. 飞行测试与性能对比
5.1 阶跃响应测试
在悬停状态下施加30°滚转角指令:
| 指标 | PID | ADRC |
|---|---|---|
| 上升时间(ms) | 320 | 280 |
| 超调量(%) | 12.5 | 4.8 |
| 稳态误差(°) | ±0.5 | ±0.2 |
5.2 抗扰动测试
使用风机施加阶跃风扰:
- PID恢复时间:1.2s
- ADRC恢复时间:0.6s
- 特别在突卸载荷时,ADRC几乎无瞬态波动
6. 工程实践中的经验总结
-
参数敏感性测试:ADRC对b0(控制增益)最敏感,误差超过30%会导致性能明显下降。建议通过频响实验准确辨识
-
计算资源分配:在F407平台上,ADRC相比PID增加约15%的CPU占用,需要合理分配控制周期:
- 姿态环:1kHz(必须保证)
- ESO更新:500Hz(最低要求)
-
混合控制策略:在低成本无人机上可采用:
- 内环(角速率):ADRC
- 外环(角度):PID
这种架构既保证抗扰性,又降低计算负担
-
调试工具链:
- 使用FreeMASTER实时监控ESO状态
- 通过SD卡记录z3变化,分析扰动频谱特性
- 发现某次飞行中z3呈现0.5Hz周期性,排查发现是电池松动导致的重心偏移
经过半年多的实际应用验证,采用ADRC的无人机在复杂环境下的控制性能提升显著。特别是在农业植保场景中,面对农药喷洒导致的重量变化和田间紊流,控制效果比传统方法稳定40%以上。下一步计划将算法移植到TI的C2000系列DSP,进一步探索在更高动态性能无人机上的应用可能。