主要内容

基于非线性模型预测控制的变道辅助

该实例说明了如何使用多级非线性模型预测控制(MPC)设计变道控制器。在这个例子中,你:

  1. 回顾一种结合了自定义AStar路径规划算法和使用模型预测控制工具箱™软件设计的变道控制器的控制算法。

  2. 设计一种用于自动变道的多级非线性MPC控制器。

  3. 使用自动驾驶工具箱软件生成的驾驶场景,在Simulink®模型中测试闭环控制系统。金宝app

介绍

变道辅助控制系统在前面有另一辆较慢行驶的车辆时,自动将自我车辆转向相邻车道,如下图所示。

本例中的变道控制器设计用于当ego车辆以恒定速度行驶在直线道路上时工作,尽管它可以通过适当的修改扩展到其他驾驶场景。

在这个例子中:

  1. 驾驶场景用于模拟环境,这样就会出现需要变道的情况。方法创建和导出该场景驾驶场景设计师应用程序从自动驾驶工具箱。

  2. 基于此场景,生成一个离散的占用网格,然后路径规划器使用该网格规划自我车辆的无碰撞参考路径。

  3. 一旦生成参考路径,控制器通过控制自我车辆的转向角度来跟踪所规划路径的横向位置来执行自动变道机动。

Simulink模型概述金宝app

打开Simulin金宝appk模型。

mdl =“LaneChangeExample”;open_system (mdl)

该模型包含四个主要组成部分:

  1. 非线性MPC -变道控制器,控制自我车辆的前转向角度

  2. 车辆和环境-模拟自我车辆的运动和模拟环境

  3. 占用网格生成器-生成一个离散网格,包含关于环境和自我车辆周围车辆的信息

  4. 星路径规划师-考虑到其他车辆的动态行为,为自我车辆规划一条无碰撞路径

在车辆和环境子系统内部,车辆动力学子系统使用自动驾驶工具箱中的自行车模型-速度输入块对车辆动力学进行建模。

打开这个模型运行helperLCSetUp脚本,该脚本初始化Simulink模型使用的数据,如车辆模型参数、控制器设计参数、道路场景和周金宝app围的车辆。

为该实例设计了多级非线性MPC控制器createNLmpcObjLC函数调用helperLCSetUp脚本。该控制器使用定义的状态方程vehicleStateFcnLC.m并控制小车的转向角度。

用自我车辆将遇到的道路和车辆来描绘场景。

情节(场景)

图中包含一个轴对象。axis对象包含13个类型为patch、line的对象。

下图显示了放大后的部分道路。

在场景的最后模拟模型。模拟模型将打开鸟眼图世界坐标入住率在自我的观点.占用网格显示了自我车辆前面的道路和车辆的代表,并包括规划的路径作为白线。

= sim (mdl);

图变道状态图包含一个坐标轴对象。标题为World Coordinates的axis对象包含两个类型为line的对象。这个对象表示Lane边界。

图占用网格包含一个轴对象。标题为Ego Perspective的axis对象包含一个类型为image的对象。

在模拟过程中,鸟眼图以蓝色显示计划的路径。

为了绘制仿真结果和描述自我车辆环境,您也可以使用鸟瞰的范围(自动驾驶工具箱).Bird's-Eye Scope是一个模型级的可视化工具,您可以从Simulink工具条中打开它。金宝app在模拟选项卡,在审查结果,点击鸟瞰的范围.打开范围后,通过单击设置信号找到信号.一旦信号设置和模拟运行,你可以看到由ego车辆执行的变道机动世界坐标的观点鸟瞰镜。

绘制控制器性能图。

plotLCResults

图变道性能包含2个轴对象。带有标题的轴对象1。这个对象表示转向角度。跟踪性能包含2个类型为line的对象。这些目标代表自我飞行器的横向位置,规划轨迹。

如图所示为控制器变道性能。

  • 转向角图显示,自我车辆的转向角度遵循标准变道机动。

  • 跟踪性能plot结果表明,多级非线性MPC控制器能够很好地跟踪参考路径的横向位置。

为多个测试场景运行控制器

这个示例包括一个额外的测试场景。为了验证控制器的性能,您可以对控制器进行多种场景的测试,并在控制器性能不理想时进行参数调整。这样做:

  1. 通过更改来选择场景scenarioIdhelperLCSetUp.要使用其他场景,请设置scenarioId = 2

  2. 通过运行配置仿真参数helperLCSetUp

  3. 用选定的场景模拟模型。

  4. 使用plotLCResults

  5. 如果性能不理想,调整控制器参数。

结论

这个例子展示了如何使用AStar路径规划器生成的参考路径在直线道路上实现一个集成的自动变道控制器,并使用自动驾驶工具箱软件生成的驾驶场景在Simulink中测试它。金宝app

另请参阅

|

相关的话题