1. 差速底盘轨迹跟踪的挑战与MPC优势
差速底盘作为移动机器人最常见的驱动形式,其运动控制存在两个固有难题:一是左右轮速差导致的非线性耦合运动,二是系统惯性带来的响应延迟。传统PID控制在这种场景下往往会出现超调振荡,特别是在需要同时跟踪位置和朝向角的情况下。
模型预测控制(MPC)的核心优势在于其"滚动优化+反馈校正"的机制。通过构建包含底盘动力学约束的优化问题,MPC能够提前预测未来数步的运动状态,并计算出最优控制序列。我们在Matlab/Simulink中实测发现,对于速度为0.8m/s的差速底盘,MPC相比PID在急转弯轨迹上的跟踪误差降低了62%。
关键区别:PID是"事后纠错",MPC是"事前规划"。这就像老司机过弯时会提前观察路线并微调方向盘,而不是等车辆偏离后才猛打方向。
2. 差速底盘动力学建模
2.1 运动学方程推导
建立如图所示的底盘坐标系,设左右轮速分别为v_l和v_r,轮距为L,则瞬时转向半径R和角速度ω满足:
matlab复制% 差速底盘运动学方程
v = (v_r + v_l)/2; % 质心线速度
ω = (v_r - v_l)/L; % 角速度
2.2 状态空间表达
取状态量x=[x位置, y位置, 航向角θ],控制量u=[v, ω],得到离散化模型:
matlab复制x(k+1) = x(k) + v*cos(θ)*dt
y(k+1) = y(k) + v*sin(θ)*dt
θ(k+1) = θ(k) + ω*dt
2.3 模型线性化处理
为适配MPC的QP求解,需在参考轨迹点处进行Jacobian线性化:
matlab复制A = [1 0 -v_ref*sin(θ_ref)*dt;
0 1 v_ref*cos(θ_ref)*dt;
0 0 1];
B = [cos(θ_ref)*dt 0;
sin(θ_ref)*dt 0;
0 dt];
3. MPC控制器设计
3.1 代价函数构建
设计包含跟踪误差和控制增量的二次型代价:
matlab复制J = Σ( (x-x_ref)'*Q*(x-x_ref) ) + Σ( Δu
