重新理解控制论
最近修改日期: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 会有更深的理解。