1. MPC与车辆轨迹跟随控制概述
在自动驾驶技术快速发展的今天,车辆轨迹跟随与车道保持作为核心控制问题备受关注。模型预测控制(MPC)因其能够显式处理多变量系统约束的优势,成为解决这一问题的理想选择。MPC本质上是一种基于模型的滚动优化控制策略,它通过在每个采样时刻求解有限时域内的最优控制问题,并将第一个控制量作用于系统,在下个采样时刻重复这一过程。
二自由度车辆动力学模型是研究车辆横向运动的基础模型,它主要考虑车辆的横向运动和横摆运动两个自由度。这个简化模型虽然忽略了悬架动态、轮胎非线性等复杂因素,但足以描述车辆在常规驾驶工况下的基本动力学特性,为控制器设计提供了良好的平衡点。
Simulink作为MATLAB中的模块化仿真环境,特别适合进行这类控制算法的快速原型开发和验证。其图形化编程界面可以直观地搭建车辆模型和控制算法,而内置的求解器能够高效处理微分方程数值解算。通过Simulink,我们可以方便地构建完整的"车辆-控制器-环境"闭环系统,进行各种工况下的仿真测试。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 二自由度车辆动力学建模
2.1 基本运动方程建立
二自由度车辆模型主要考虑车辆的横向运动和横摆运动。建立如图1所示的车辆坐标系,其中x轴沿车辆纵向,y轴沿车辆横向,z轴垂直向上。根据牛顿第二定律,我们可以得到以下运动方程:
横向力平衡方程:
m(v̇ + ur) = Fyf + Fyr
横摆力矩平衡方程:
Izṙ = aFyf - bFyr
其中:
- m:车辆质量
- v:车辆横向速度
- u:车辆纵向速度(假设恒定)
- r:横摆角速度
- Iz:车辆绕z轴的转动惯量
- a,b:质心到前、后轴的距离
- Fyf,Fyr:前、后轮胎的侧向力
2.2 轮胎侧向力模型
在小侧偏角假设下,轮胎侧向力与侧偏角呈线性关系:
Fyf = Cαfαf
Fyr = Cαrαr
其中Cαf和Cαr分别为前、后轮胎的侧偏刚度,αf和αr为前、后轮胎的侧偏角,可表示为:
αf = δ - (v + ar)/u
αr = -(v - br)/u
这里δ为前轮转向角,是系统的控制输入。
2.3 状态空间模型推导
选择车辆横向速度v和横摆角速度r作为状态变量,前轮转向角δ为控制输入,可以得到系统的状态空间表达式:
ẋ = Ax + Bu
y = Cx
其中:
x = [v r]ᵀ
u = δ
A = [ -(Cαf+Cαr)/mu (bCαr-aCαf)/mu - u ]
[ (bCαr-aCαf)/Izu -(a²Cαf+b²Cαr)/Izu ]
B = [ Cαf/m ; aCαf/Iz ]
C = [0 1] (以横摆角速度作为输出)
这个线性模型将成为MPC控制器设计的基础。在实际应用中,还需要考虑模型的离散化处理,以适应数字控制器的实现要求。
3. MPC控制器设计与实现
3.1 MPC基本原理
模型预测控制的核心思想可以概括为三个步骤:
- 预测:基于当前状态和系统模型,预测未来一段时间内的系统行为
- 优化:求解一个有限时域的最优控制问题,最小化目标函数
- 滚动:实施第一个控制量,在下一采样时刻重复上述过程
这种"预测-优化-滚动"的策略使MPC能够有效处理多变量系统的约束问题,非常适合车辆控制这类应用场景。
3.2 轨迹跟随问题表述
对于车辆轨迹跟随问题,我们需要定义以下要素:
状态变量:x = [y ψ v r]ᵀ
- y:横向位置偏差
- ψ:航向角偏差
- v:横向速度
- r:横摆角速度
控制输入:u = δ (前轮转向角)
输出变量:通常选择横向偏差和航向偏差作为被控输出
目标函数一般采用二次型形式:
J = ∑(yᵢQyᵢ + uᵢRuᵢ)
其中Q和R为权重矩阵,用于调节跟踪精度与控制量的平衡。
3.3 约束处理
MPC的一个显著优势是能够显式处理各种约束,在车辆控制中常见的约束包括:
-
控制量约束:转向角物理限制
|δ| ≤ δmax -
控制量变化率约束:转向执行机构速率限制
|Δδ| ≤ Δδmax -
状态约束:如横向加速度限制等
|ay| ≤ aymax
在Simulink中,这些约束可以直接配置在MPC模块的参数设置中,非常方便。
3.4 控制器参数整定
MPC控制器的性能很大程度上取决于以下参数的合理选择:
-
预测时域(Np):通常选择覆盖系统主要动态响应的时间范围。对于车辆控制,一般取Np=10-20步。
-
控制时域(Nc):决定优化自由度的参数,通常小于预测时域,取Nc=2-5步。
-
采样时间(Ts):需要兼顾计算复杂度和控制精度,通常取0.05-0.1秒。
-
权重矩阵(Q,R):需要根据控制目标进行调节。一般来说:
- 增大Q元素:增强跟踪精度,但可能导致控制量剧烈变化
- 增大R元素:平滑控制量,但可能降低响应速度
4. Simulink实现与仿真
4.1 仿真模型搭建
在Simulink中搭建完整的轨迹跟随控制系统,主要包括以下子系统:
- 车辆模型:实现二自由度动力学方程
- 参考轨迹生成:产生期望的路径信息
- MPC控制器:核心控制算法实现
- 可视化模块:实时显示车辆运动状态
具体实现时,可以利用Simulink的以下功能:
- MATLAB Function块:实现自定义的车辆模型
- MPC Controller块:提供现成的MPC算法实现
- Lookup Table:存储参考路径点
- Scope和Animation:用于结果显示
4.2 关键模块配置
- 车辆模型模块:
matlab复制function [y_dot, psi_dot, v_dot, r_dot] = vehicle_model(y, psi, v, r, delta, u)
% 参数定义
m = 1500; % 质量(kg)
Iz = 2500; % 转动惯量(kg·m^2)
a = 1.2; % 前轴到质心距离(m)
b = 1.6; % 后轴到质心距离(m)
Caf = 60000; % 前轮侧偏刚度(N/rad)
Car = 50000; % 后轮侧偏刚度(N/rad)
% 动力学方程
y_dot = v + u*psi;
psi_dot = r;
v_dot = (Caf*(delta - (v+a*r)/u) + Car*(-(v-b*r)/u))/m - u*r;
r_dot = (a*Caf*(delta - (v+a*r)/u) - b*Car*(-(v-b*r)/u))/Iz;
end
- MPC控制器配置:
- 选择状态空间模型形式
- 设置预测时域和控制时域
- 配置输入输出约束
- 调整权重参数
4.3 典型工况测试
-
双移线测试:
这是评估车辆轨迹跟随性能的标准测试工况。参考轨迹由两条连续的S形曲线组成,考验控制器的快速响应能力。 -
圆周运动:
恒定曲率的路径可以验证控制器的稳态跟踪性能。 -
阶跃输入:
用于评估系统的瞬态响应特性,如超调量、调节时间等。
仿真结果显示,在车速60km/h的双移线测试中,MPC控制器能够将横向位置偏差控制在0.2m以内,航向角偏差小于3度,表现出良好的跟踪性能。
5. 实际应用中的挑战与解决方案
5.1 模型不确定性
二自由度模型虽然简化,但与实际车辆存在差距。主要应对策略包括:
- 鲁棒MPC:在设计时考虑模型不确定性范围
- 自适应MPC:在线更新模型参数
- 增加扰动观测器:估计并补偿模型误差
5.2 计算实时性
MPC需要在线求解优化问题,对计算资源要求较高。可采用的解决方案:
- 显式MPC:离线计算最优控制律,在线查表
- 简化模型:在保证精度的前提下降低模型阶次
- 优化求解算法:使用专用QP求解器
5.3 传感器噪声
实际车辆状态测量不可避免存在噪声,建议:
- 设计状态观测器(如卡尔曼滤波器)
- 在MPC中考虑测量噪声特性
- 增加输出滤波环节
实际工程应用中,MPC采样时间不宜过小,一般建议不小于50ms,以保证优化问题能在规定时间内求解完成。同时,预测时域也不宜过长,通常选择覆盖系统主要动态响应的时间范围即可。
6. 进阶话题与扩展方向
6.1 结合路径规划
完整的自动驾驶系统需要将轨迹跟随与路径规划相结合。可以考虑:
- 参考轨迹的平滑处理
- 考虑车辆动力学约束的规划算法
- 预测控制与行为决策的协同
6.2 集成纵向控制
实现完整的轨迹跟踪需要同时考虑横向和纵向控制:
- 设计分层控制架构
- 协调速度与转向控制
- 考虑驱动/制动系统特性
6.3 硬件在环测试
在仿真验证后,建议进行HIL测试:
- 使用实时仿真机运行车辆模型
- 验证控制器的实时性能
- 测试极端工况下的系统行为
在项目开发过程中,我发现MPC控制器的性能很大程度上依赖于准确的车辆参数。实际应用中,建议通过实车试验进行参数辨识,或者设计参数自适应机制。同时,控制器的约束设置也需要谨慎,过于严格的约束可能导致优化问题不可行,而过于宽松的约束则可能无法保证控制性能。
