主要内容

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

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

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

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

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

简介

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

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

在这个例子中:

  1. 驾驶场景用于模拟需要变道的环境。场景的创建和导出使用驾驶场景设计自动驾驶工具箱中的应用程序。

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

  3. 在生成参考路径后,控制器通过控制车辆的转向角度来跟踪规划路径的横向位置,从而实现自主变道机动。

Simulink模型概述金宝app

打开Simulin金宝appk模型。

mdl =“LaneChangeExample”;open_system (mdl)

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

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

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

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

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

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

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

本例的多级非线性MPC控制器设计采用createNLmpcObjLC函数调用helperLCSetUp脚本。中定义的状态方程vehicleStateFcnLC.m控制自我飞行器的转向角度。

用道路和自我车辆将遇到的汽车画出场景。

情节(场景)

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

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

将模型模拟到场景的末尾。模拟模型打开鸟眼图世界坐标占用网格自我的观点.占用网格显示了自我车辆前面的道路和车辆的表示,并将规划的路径作为白线。

Out = sim(mdl);

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

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

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

要绘制模拟结果并描绘自我车辆周围的环境,您还可以使用鸟瞰的范围(自动驾驶工具箱).Bird's-Eye Scope是一个模型级可视化工具,可以从Simulink工具条中打开。金宝app在模拟选项卡,在审查结果,点击鸟瞰的范围.打开作用域后,通过单击设置信号找到信号.信号设置好并且模拟运行后,您可以在世界坐标视图鸟瞰瞄准镜。

绘制控制器性能图。

plotLCResults

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

图中显示了控制器的变道性能。

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

  • 跟踪性能图表明,多级非线性MPC控制器从AStar路径规划器中跟踪参考路径的横向位置,效果令人满意。

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

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

  1. 通过更改选择场景scenarioIdhelperLCSetUp.若要使用附加场景,请设置scenario oid = 2

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

  3. 用所选场景模拟模型。

  4. 评估控制器性能使用plotLCResults

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

结论

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

另请参阅

|

相关的话题