1. 模型预测控制(MPC)的本质与优势
在工业控制领域,我们常遇到这样的困境:传统PID控制器对双积分系统束手无策,倒立摆控制中延迟响应导致系统失稳。这正是模型预测控制(Model Predictive Control, MPC)大显身手的场景。与"事后补救"的常规控制不同,MPC像经验丰富的司机,能预判前方路况提前调整方向盘。
MPC的核心在于三要素:预测模型、滚动优化和反馈校正。以倒立摆为例,控制器会:
- 基于当前摆杆角度和速度,预测未来3-5秒的运动轨迹
- 计算使摆杆保持直立的最优电机控制序列
- 只执行第一步控制量,下一周期重新预测优化
这种"走一步看三步"的策略,使其在以下场景表现突出:
- 处理大延迟系统(如化工过程控制)
- 应对多变量耦合(如无人机编队)
- 满足约束条件(如机械臂关节限位)
注意:MPC的计算复杂度随预测步长呈指数增长,实际工程中需要在控制精度和实时性间权衡。
2. 手搓MPC的数学工具箱
2.1 状态空间模型构建
以经典的双积分系统为例(如小车位置控制):
matlab复制% 连续系统模型
A = [0 1; 0 0];
B = [0; 1];
C = eye(2);
D = zeros(2,1);
sys = ss(A,B,C,D);
% 离散化(采样周期0.1s)
Ts = 0.1;
sys_d = c2d(sys,Ts,'zoh');
2.2 预测方程推导
离散状态空间模型为:
code复制x(k+1) = A_d x(k) + B_d u(k)
y(k) = C_d x(k)
扩展至预测时域Np步:
math复制Y = F x(k) + Φ U
其中:
- F = [C_d A_d; C_d A_d^2; ...; C_d A_d^Np]
- Φ为下三角Toeplitz矩阵,体现控制时域Nc的影响
2.3 二次型代价函数设计
典型形式:
math复制J = (Y-R)^T Q (Y-R) + U^T R U
- Q:输出权重矩阵(调节跟踪性能)
- R:控制权重矩阵(抑制剧烈动作)
3. MATLAB实战:倒立摆控制
3.1 模型线性化
在平衡点(θ=0)附近线性化:
matlab复制[Ali
