1. 项目概述
这个项目实现了一套基于线性参变(LPV)框架的鲁棒模型预测控制(RMPC)系统,专门用于高速车辆路径跟踪(PTC)场景。核心目标是解决车辆在20-25m/s高速变道工况下的稳定性控制问题。我在实际测试中发现,这套系统在单移线工况下能稳定维持25m/s车速,双移线工况也能保证10-15m/s的安全通过速度。
系统采用分层架构设计:上层控制器负责处理车辆动力学层面的路径跟踪,下层控制器则专注于执行层的力矩分配。这种设计思路来源于我在实际工程中遇到的教训——早期尝试的单层控制架构在高速工况下经常出现计算延迟导致的控制失稳问题。
2. 核心算法设计
2.1 LPV模型构建
基于二自由度车辆模型,我们建立了考虑车速和侧偏刚度变化的LPV模型。这里有个关键点:侧偏刚度不是固定值,而是作为调度参数动态调整。模型的状态空间表达式如下:
matlab复制A = [0,1,0,0;
0, -(Caf+Car)/(m*vx), (Caf+Car)/m, (lr*Car - lf*Caf)/(m*vx);
0,0,0,1;
0, (lr*Car - lf*Caf)/(Iz*vx), (lf*Caf - lr*Car)/Iz, -(lf^2*Caf + lr^2*Car)/(Iz*vx)];
其中vx是实时车速,Caf和Car会根据轮胎垂直载荷动态变化。在实际调试中,我发现当车速超过20m/s时,忽略侧偏刚度变化会导致模型误差增大30%以上。
2.2 鲁棒MPC设计
RMPC的核心在于通过LMI(线性矩阵不等式)处理模型不确定性。控制器的设计过程需要考虑:
- 状态约束:横向加速度限制在±0.4g以内
- 输入约束:方向盘转角速率不超过120度/秒
- 输出约束:路径跟踪误差不超过0.5m
求解器的实现采用了带松弛因子的QP优化:
matlab复制function sys=mdlDerivatives(t,x,u)
rho = [1/u(2), u(2)]; % 调度参数
[P, K] = solveLMI(rho); % LMI求解
[delta_f, M_z] = solveQP(P, K, u(1), constraints); % 带约束优化
sys = [delta_f; M_z];
end
3. 控制系统实现
3.1 上层控制策略
上层控制器输出两个关键指令:
- 前轮转角δf
- 附加横摆力矩Mz
在Simulink中,我使用Triggered Subsystem来同步CarSim的仿真步长。这里有个实用技巧:由于CarSim8.02存在约10ms的转向延迟,需要在S函数中加入前馈补偿。
3.2 下层力矩分配
下层控制采用最优分配算法,将上层输出的Mz分解到四个车轮。核心优化问题表述为:
matlab复制cvx_begin
variable T(4)
minimize( norm(T(1)+T(2)+T(3)+T(4) - T_total) + Q(1)*norm( (T(2)-T(1))*0.5*Lf + ... ) )
subject to
abs(T) <= T_max;
cvx_end
权重矩阵Q的配置很关键:横摆力矩跟踪权重设为0.8,总驱动力权重设为0.2。这种配置保证了车辆动态响应优先于驱动力需求。
4. 联合仿真与测试
4.1 CarSim-MATLAB联合仿真
仿真平台配置要点:
- MATLAB 2020a或更高版本
- CarSim 8.02
- Optimization Toolbox
- CVX凸优化包
文件结构包含:
- 主模型.mdl文件
- 出图脚本.m文件
- 说明文档.pdf
- CarSim参数.cpar文件
4.2 性能测试结果
在双移线测试中:
- 25m/s时最大横向误差0.3m
- 超过27m/s时触发稳定性控制,自动降速至15m/s
- 平均计算延迟<5ms(100Hz控制频率)
出图脚本支持自动标注最大偏差点:
matlab复制plot(refPath(:,1), refPath(:,2), '--r', 'LineWidth', 1.5);
plot(actualPath(:,4), actualPath(:,5), 'b');
xlabel('纵向位置/m');
ylabel('横向位置/m');
legend('期望路径','实际轨迹');
5. 工程经验分享
5.1 参数调试技巧
- LPV参数变化率大的工况(如急加速),需要将LMI求解频率从50Hz提升到100Hz
- 侧偏刚度调度参数需要根据实车数据进行标定
- 松弛因子大小影响控制器的鲁棒性,建议初始值设为0.1
5.2 常见问题排查
问题1:高速时出现控制振荡
解决方法:检查QP求解器的Hessian矩阵条件数,必要时进行正则化处理
问题2:CarSim与MATLAB仿真不同步
解决方法:调整Triggered Subsystem的采样时间,确保与CarSim步长一致
问题3:力矩分配结果不合理
解决方法:检查电机转矩限制参数,确认CVX求解器的exitflag状态
6. 硬件部署建议
对于实时性要求高的场景:
- 推荐使用工控机而非普通笔记本
- 最低配置要求:i7处理器,16GB内存
- 需要实时操作系统支持(如Linux with RT补丁)
在实车测试中,这套系统表现出良好的适应性。特别是在湿滑路况下,RMPC的鲁棒性优势明显,能够自动调整控制策略维持车辆稳定。不过需要注意的是,当轮胎进入强非线性区时,控制性能会有所下降,这时需要结合更复杂的轮胎模型进行补偿。