MPC+PTC+AFS模型预测控制与路径跟踪仿真:72km/h高速度下的附着系数仿真研究
模型预测控制MPC+路径跟踪PTC+侧偏角软约束+主动前轮转向AFS, 范例是72km/h,附着系数0.3的单移线,附着系数0.85双移线。 仿真MATLAB2020b版本和carsim2020。 MPC: 一为增量式方法编写,采用s-function实现,输入为跟踪误差、横摆角误差、侧向速度和横摆角速度,输出量为前轮转角,仅考虑横向控制。 考虑了前后轮的侧偏角软约束,在侧偏角到约束边界时减小控制律,保证侧偏角的稳定。 二为采用Apollo中的模型,基于MATLAB function编写,不包括侧偏角软约束,作为对比参考使用。 包含carsim的cpar文件、模型mdl文件、绘图m文件(运行后一键出图)、说明文档和中文文献。

今天我要和大家聊聊一个关于汽车控制的有意思的内容:基于模型预测控制(MPC)的路径跟踪控制系统,结合侧偏角软约束和主动前轮转向(AFS),在高附着系数和低附着系数下的性能表现。作为一个喜欢动手尝试的工程师,我最近在 MATLAB 和 CarSim 的环境下做了一些仿真,结果还挺有意思的,这里和大家分享一下。
1. 整体框架:MPC + 路径跟踪 + 侧偏角软约束
整个系统的控制架构大致可以分为以下几个部分:
- 路径跟踪(Path Tracking Control, PTC):负责规划车辆的轨迹,并计算期望的跟踪误差。
- 模型预测控制(MPC):基于当前状态的预测,优化控制输入,确保车辆沿着期望路径行驶。
- 侧偏角软约束(Soft Sideslip Constraint):在控制过程中,考虑轮胎的侧偏角限制,避免轮胎工作在极限状态,从而提高车辆的稳定性和舒适性。
听起来有点复杂?其实可以这么理解:系统通过预测车辆未来的运动状态,调整前轮的转向角,帮助车辆沿着规划的路径行驶。与此同时,还会实时监测轮胎的侧偏角,避免在极端情况下让轮胎“抓不住地”。
2. MPC的实现:基于s-function的方式
先来聊聊 MPC 的实现部分。这里用的是增量式 MPC,具体是通过 s-function 在 MATLAB 中实现的。输入包括跟踪误差(也就是车辆偏离目标路径的量)、横摆角误差、侧向速度和横摆角速度,输出是前轮转向角。

代码部分大致是这样的:
function sys = mpc_sfunction(t, x, u, flag)
switch flag
case 0
% 系统初始化
sys = [0; 0; 0; 0]; % 状态
case 1
% 状态更新
sys = model预测部分;
case 2
% 输出计算
sys = controller计算部分;
end
end
当然,实际代码会更复杂一些,但大致的框架就是这样。需要注意的是,这部分只考虑了横向控制,也就是说,只调整前轮转向角,而纵向速度是固定的,或者由其他控制器单独控制。
3. 侧偏角软约束:为什么要加这个?
很多人可能会问,为什么要引入侧偏角软约束呢?其实,这是因为传统的 MPC 方法在优化过程中可能会导致轮胎的侧偏角超出物理极限,尤其是在高速或转向剧烈的情况下,这可能会导致车辆失控。

模型预测控制MPC+路径跟踪PTC+侧偏角软约束+主动前轮转向AFS, 范例是72km/h,附着系数0.3的单移线,附着系数0.85双移线。 仿真MATLAB2020b版本和carsim2020。 MPC: 一为增量式方法编写,采用s-function实现,输入为跟踪误差、横摆角误差、侧向速度和横摆角速度,输出量为前轮转角,仅考虑横向控制。 考虑了前后轮的侧偏角软约束,在侧偏角到约束边界时减小控制律,保证侧偏角的稳定。 二为采用Apollo中的模型,基于MATLAB function编写,不包括侧偏角软约束,作为对比参考使用。 包含carsim的cpar文件、模型mdl文件、绘图m文件(运行后一键出图)、说明文档和中文文献。

在我们的系统中,当侧偏角接近约束边界时,系统会主动减小控制律的强度,从而确保侧偏角不会超过安全范围。这样的设计不仅能提高车辆的稳定性,还能让驾驶体验更舒适。

举个例子,假设附着系数很低(比如0.3,模拟雨天或雪地路面),车辆在快速转向时,轮胎很容易打滑。通过软约束机制,系统会适当降低转向角的调整幅度,避免轮胎的侧偏角瞬间达到极限。
4. 仿真结果:两种附着系数下的对比
为了验证系统的有效性,我们做了两组仿真:
- 单移线测试(72 km/h,附着系数0.3)
- 双移线测试(附着系数0.85)
仿真工具是 MATLAB 2020b 和 CarSim 2020。CarSim 的模型文件、绘图脚本和相关文档我都整理好了,有兴趣的朋友可以自己尝试。
单移线测试
在单移线测试中,车辆需要快速从一条车道移动到另一条车道,附着系数设为0.3,模拟低附着路面的情况。通过 MPC + 软约束的控制方案,车辆能够顺利完成移线,同时侧偏角保持在安全范围内。对比传统 MPC(不带软约束)的结果,可以发现后者在转向过程中出现了明显的侧偏角超限现象,甚至可能导致失控。
双移线测试
双移线测试更复杂一些,车辆需要连续两次快速转向,附着系数设为0.85,模拟高附着路面的情况。在这种情况下,我们的控制方案依然表现出色,侧偏角始终稳定在合理范围内,车辆的路径跟踪精度也较高。
5. 工具和资源
整个项目包含以下资源:
- CarSim 的 cpar 文件:用于定义车辆的动力学模型。
- MATLAB 的 mdl 文件:包含控制算法的 Simulink 模型。
- 绘图脚本:运行后可以一键生成仿真结果的图形,方便分析。
- 说明文档:详细介绍了整个项目的设置和运行方法。
- 中文文献:如果你对理论部分感兴趣,这里有一些相关的中文参考文献。
这些资源我都整理好了,感兴趣的朋友可以自行下载尝试。
6. 总结
总的来说,这次仿真让我对 MPC 在车辆控制中的应用有了更深刻的理解。通过引入侧偏角软约束,不仅可以提高车辆的稳定性,还能让控制策略更加符合实际驾驶需求。同时,结合 MATLAB 和 CarSim 的仿真工具,让整个开发和验证过程更加高效。
如果你也对汽车控制感兴趣,不妨试一试自己动手实现一个简单的 MPC 算法,或者在现有模型上添加一些新的约束条件。相信通过不断的尝试和优化,你会对这个领域有更深的认识!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)