054、串级PID控制:内环与外环设计
054、串级PID控制:内环与外环设计去年夏天在调试一架四轴飞行器时,遇到一个让人头疼的问题:飞机在悬停时总是不停地“点头”,频率大约在3-5Hz。PID参数调了无数遍,P从0.5试到5.0,I从0.01试到0.1,D从0.1试到0.8,结果要么是高频抖动,要么是低频漂移,始终无法同时兼顾响应速度和稳定性。后来拆开日志一看,问题出在角度环和角速度环的耦合上——我一直在用单级PID控制角度,但电机输出的力矩直接作用于角加速度,而角度是角速度的积分。这个二阶系统的惯性延迟,单靠一个PID根本压不住。换成串级PID后,问题迎刃而解。为什么非要用串级?先想清楚物理本质。四轴飞行器的控制链路是这样的:期望角度 → 实际角度 → 角速度 → 电机转速 → 力矩 → 角加速度 → 角速度 → 角度。这是一个典型的二阶积分环节。单级PID相当于让一个控制器同时处理角度误差和角速度变化。当角度出现偏差时,控制器输出直接驱动电机,但电机产生的力矩先改变角速度,角速度积分后才改变角度。这个延迟会导致控制器“过冲”——看到角度还没回来就继续加大输出,等角度回来时已经过头了。串级PID把这个问题拆成两层:外环(角度环)负责“看方向”,输出期望角速度;内环(角速度环)负责“执行”,快速跟踪期望角速度。内环的带宽远高于外环,相当于给外环提供了一个“快响应”的执行器。内环设计:角速度环是核心角速度环是整个串级控制的基石。它的任务只有一个:让实际角速度快速、准确地跟随期望角速度。实际调试中,角速度环的采样率至少要达到200Hz以