1. 智能车运动控制基础:从自行车模型到MPC框架
在智能驾驶领域,运动控制算法相当于车辆的"小脑",负责将上层决策转化为精确的执行动作。停车场自动倒库这类低速场景中,工程师们常采用经典的自行车模型(Bicycle Model)作为控制基础。这个看似简单的模型背后,蕴含着对车辆运动特性的深刻抽象。
1.1 自行车模型构建原理
自行车模型的核心思想是将四轮车辆简化为两轮系统:
- 前轮代表转向轮,综合了实际车辆前轴两个轮胎的转向特性
- 后轮代表驱动轮,承载了动力传递的核心功能
在MATLAB中,我们通常这样定义状态向量和控制向量:
matlab复制states = @(x) [x(1); x(2); x(3); x(4)]; % [X坐标(m), Y坐标(m), 航向角(rad), 车速(m/s)]
controls = @(u) [u(1); u(2)]; % [前轮转角(rad), 加速度(m/s²)]
这个模型的运动学方程可以表示为:
code复制ẋ = v * cos(θ + β)
ẏ = v * sin(θ + β)
θ̇ = (v / L) * tan(δ)
v̇ = a
其中β=arctan((lr/L)*tan(δ)),lr是后轴到质心的距离,L是轴距。这种建模方式在低速场景(<30km/h)下误差通常在可接受范围内,但当车速提高时,轮胎侧偏特性会变得显著,此时就需要考虑更复杂的动力学模型。
1.2 模型线性化技巧
为了适配MPC框架,我们需要对非线性模型进行线性化处理。常用的方法是在工作点附近进行一阶泰勒展开:
matlab复制% 连续时间系统线性化
A_continuous = jacobian(f(x,u), x);
B_continuous = jacobian(f(x,u), u);
% 离散化处理(前向欧拉法)
dt = 0.1; % 典型控制周期100ms
A_discrete = eye(4) + A_continuous*dt;
B_discrete = B_continuous*dt;
实际工程中,离散化方法的选择会影响控制器的性能。除了前向欧拉法,零阶保持(ZOH)和一阶保持(FOH)也是常见选择,它们在不同采样频率下的稳定性表现各异。
提示
