什么是控制算法?
想象一下,无人机悬浮在空中,需要以最短时间抬升到上方 10 米处。如何调整电流、油门或功率这些输入,才能在保证性能的同时达成目标?这就是控制算法要解决的问题。
控制算法本质上是一套指挥机械系统运作的'数学指令'。它告诉机器(如无人机、恒温空调、机械臂)根据当前状态,通过调整输入来达到预期目标。不同的算法适用于不同场景:有的适合动态系统,有的适合静态;有的计算量小,适合嵌入式;有的则能处理复杂的高阶耦合。
作为控制工程师,日常工作包括根据场景选型、优化参数让波形更贴合跟踪曲线、编写保护逻辑、处理传感器噪声(比如用卡尔曼滤波做状态估计),以及增加前馈或优化阻尼比让动作更丝滑。
MPC 控制算法核心
MPC(Model Predictive Control)是一类基于优化的控制策略。如果说 PID 是根据'现在的误差'做反应,那么 MPC 就是在'预测未来'并做决策。你可以把它想象成一个会推算未来几秒钟走势的驾驶员。
MPC 的三大特性
- 预测模型:这是 MPC 的灵魂,是对物理世界规律的数学表达。
- 预测:利用模型推算出未来 N 个步长内系统的状态。
- 滚动优化:虽然算出了未来 10 步的完美计划,但只执行第 1 步,然后扔掉剩下的,重新计算。走一步,看十步。每个采样周期都在解一个最优问题。虽然计算量大,但它能保证在任何时刻,输出的操作都是基于当前最新状态的最优选择。
PID vs LQR vs MPC 对比
| 特性 | PID (比例 - 积分 - 微分) | LQR (线性二次调节器) | MPC (模型预测控制) |
|---|---|---|---|
| 核心思想 | 消除误差:根据过去和现在的误差调整输出 | 能量最优:在无限时间内寻找状态与控制能量的最佳平衡 | 预测未来:在有限时间内通过滚动优化寻找满足约束的最优解 |
| 对模型的依赖 | 无需模型 | 强依赖:需要精确的线性状态空间模型 | 强依赖:需要系统模型,但要求相对灵活 |
| 处理约束的能力 | 几乎没有 | 中:设计时考虑了能量权衡,但不能直接加入硬约束 | 极强:天然支持各种硬约束 |
| 多变量系统 (MIMO) | 困难:多个回路之间存在严重的耦合干扰 | 擅长:天然支持多输入多输出系统,通过矩阵统一计算 | 最擅长:能同时处理多个目标和复杂的变量耦合 |
| 计算复杂度 | 极低:简单的代数运算,单片机轻松跑 | 低:设计阶段解代数黎卡提方程,运行时仅为矩阵乘法 | 极高:每个采样周期都要解一个带约束的最优化问题(QP) |
| 主要应用场景 | 电机转速、恒温控制、简单平衡 | 航天器姿态控制、精密工业伺服 | 自动驾驶避障、无人机轨迹规划、化工过程 |
普适的 MPC 算法推导流程











