1. 项目概述:基于MPC的车辆轨迹跟踪仿真
在自动驾驶和车辆控制领域,轨迹跟踪是一个经典问题。想象一下你在驾校练习S弯和直角转弯的场景 - 作为人类驾驶员,我们会不断观察车辆位置与预期路径的偏差,然后微调方向盘和油门来修正。模型预测控制(MPC)就是让计算机实现类似决策过程的数学方法。
这个项目构建了一个完整的车辆控制仿真系统,主要特点包括:
- 采用运动学模型作为预测模型,适合低速场景(<60km/h)
- 使用Carsim提供高精度的车辆动力学仿真环境
- 通过Simulink实现MPC控制器并与Carsim实时交互
- 以圆形路径作为参考轨迹,验证控制器的跟踪性能
注意:虽然运动学模型简单高效,但当车速超过60km/h或需要考虑轮胎力等复杂因素时,必须切换到动力学模型。这是初学者常忽略的重要限制条件。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心模型构建
2.1 车辆运动学模型解析
车辆运动学模型描述了基础几何关系,忽略质量、轮胎摩擦等动力学因素。其核心是建立方向盘转角、油门输入与车辆位姿变化的关系:
matlab复制function dxdt = KinematicModel(t,x,u)
L = 2.8; % 轴距(m)
dxdt = [x(4)*cos(x(3)); % X轴速度
x(4)*sin(x(3)); % Y轴速度
x(4)*tan(u(1))/L; % 横摆角变化率
u(2)]; % 加速度
end
状态变量x包含:
- x(1): 车辆X坐标
- x(2): 车辆Y坐标
- x(3): 航向角(yaw)
- x(4): 车速
控制输入u包含:
- u(1): 前轮转角(steering angle)
- u(2): 加速度(acceleration)
模型的关键假设:
- 前轮转角与转向角成tan关系(小角度时可近似为线性)
- 忽略轮胎侧偏角(slip angle)的影响
- 假设车辆只在平面运动(不考虑坡度)
2.2 模型离散化处理
MPC需要在离散时间步长上进行预测,因此需要将连续模型离散化。采用前向欧拉法:
matlab复制dt = 0.1
