0.Intro.
CarSim作为自动驾驶控制算法的开发的仿真工具,广泛应用于在自动驾驶领域。特别是和Simulink联合仿真,可以有效验证算法的准确性,网上也有好多Carsim与Simulink联合仿真的教程,大家可以自行学习。本次主要实现自动驾驶轨迹跟踪算法(MPC)进行仿真验证,把自己的心得给大家分享一下,如有问题欢迎大家评论。【软件配置:MATLAB2018a+CarSim2019】
1.Simulink_Model.
其中Simulink模块采用模块化建模,可扩展多种控制算法,界面清晰直观主要包括:1、驾驶员控制模块;2、接口模块;3、偏差计算模块.
Model
驾驶员控制模块主要包括纵向控制(PID)和横向控制(MPC);接口模块主要用于参考轨迹输入以及仿真结果的输出;偏差计算模块计算车身状态偏差,作为驾驶员控制模块的输入。
1.1.Driver_Model
驾驶员模型主要采用横纵向控制,纵向控为双PID控制。对纵向位移与速度偏差进行控制。
双PID
横向主要采用MPC控制,通过CarSim输出的车辆状态信息,计算出最优的前轮转角,以达到成功追踪目标轨迹。
Part-codes
function [sys,x0,str,ts] = MPCDL(t,x,u,flag)
switch flag