跳转至

重新理解控制论

最近修改日期:2026-05-05

参与者:Jackrainman

在机器人比赛中,绝大多数控制问题只需要 双环 PID + TD(或其他参考轨迹平滑) 就足以解决。

一上来就追求 LADRC 这样的高级控制器并没用错,但是真正需要优先解决的,往往不是控制器不够高级,而是:

  • 目标给得太硬
  • 已知扰动没有补偿
  • 参数没调顺
  • 单位和限幅没理清

所以在选算法之前,先把问题分层弄清楚。

1. 任务层:你想干什么?

这一层要回答的核心问题是:目标从哪里来?

比如: - 遥控器给速度命令 - 导航给一个目标点 - 云台要锁定目标 - 机械臂要到某个角度


2. 参考生成层:目标来了以后,怎么处理?

目标直接喂给控制器往往不行,这一层讨论的是:给控制器的参考信号应该长什么样?

比如: - 限速 - 限加速度 - 轨迹规划 - 插值 - TD 平滑


3. 跟踪控制层:怎么让系统跟上参考?

参考信号准备好了,这一层讨论的是:怎么根据参考和测量,算出控制输出?

比如: - PID - LADRC - LQR - MPC - 前馈 + PID - PID + 扰动观测器


4. 执行器与对象层:真实世界会怎么破坏你的控制?

最后这一层要考虑的是电机、驱动器、机械结构本身的真实行为:

  • 电流饱和
  • 摩擦
  • 间隙
  • 编码器噪声
  • 电机惯量
  • CAN 延迟
  • 任务调度抖动

理清了这四层关系,你就明白了:

  • 轨迹规划 属于第 2 层
  • LADRC 属于第 3 层
  • printf 阻塞、饱和、编码器跳变 属于第 4 层

这也是为什么很多人觉得"它们不是一回事"——因为确实不在同一层。

搞清楚了这些,再去看 04-机器人控制系统的分层设计与算法选型方法.md 会有更深的理解。