学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#学生成功#万博1manbetx

无人驾驶汽车轨迹跟踪控制器仿真

嗨,大家好!在这篇博客中,我们将看到如何在MATLAB和Simulink中实现轨迹跟踪控制器,使车辆遵循预定义的路径。万博1manbetx在我们开始之前,我要感谢我出色的同事们,大卫·巴恩斯Munish拉吉,罗山Hingnekar感谢他们为这个博客的内容所做的努力。

动机

作为MathWorks学生项目团队的一部分,我们定期与学生互动。在几次互动中,学生们提出了类似的建议赛车休息室视频,我们应该构建一些关于如何为路径跟踪应用程序模拟自行车模型的内容。他们还提到,它可以进一步用于Simulink中的圈速仿真模型。万博1manbetx受到学生们和我们两个强大工具箱的启发,车辆动力学模块,自动驾驶工具箱,我们决定制作一系列视频来演示可以轻松实现的工作流程。
这就是学生给我们的动力。现在,让我们来看看技术动机!
轨迹跟踪是自动驾驶的重要组成部分之一,车辆的目标是控制横向和纵向运动以遵循预定义的路径。例如,在学生方程式无人驾驶比赛中,车辆需要在第一圈同时规划和跟踪路径。此外,在随后的几圈中,车辆会以更高的速度跟踪优化路径。因此,控制器的跟踪精度要求较高,以避免轨迹出现较大偏差。
目前,针对轨迹跟踪问题,有多种控制策略。然而,在这篇博客中,我们将重点介绍以下三种轨迹跟踪控制器:
  • 纯追踪控制器
  • 斯坦利控制器
  • 模型预测控制器(MPC)
为了总结接下来的部分,我们将首先生成一个参考轨迹。然后,我们将建立一个车辆模型。最后,我们将展示如何轻松地实现上述三种控制策略来控制车辆的纵向和横向运动。

参考轨迹

如果您已经记录了车辆姿态数据,则可以跳过此步骤。但是,如果要生成参考轨迹,则可以使用驾驶场景设计这个应用程序可以让你设计合成驾驶场景来测试你的自动驾驶系统。在本例中,我们利用了预构建场景中出现的US Highway场景的一部分。然后,我们指定了一个飞行器及其轨迹,并将轨迹数据导出到一个mat文件。

汽车模型

轨迹跟踪问题的精度取决于飞行器动力学模型。根据车辆动力学模型的保真度,您可以决定哪种控制器最适合不同的驾驶条件。车辆动力学模块提供了一系列的车辆车身块实现车辆模型,以计算车辆运动。在模型中,我们使用了车身3DOF双轨块,其中轮胎力是从组合滑移轮2DOF块。此外,向量化轮胎子系统接受来自简化动力系统子系统的输入。
现在,在接下来的章节中,我们已经为所有控制器模型使用了相同的车辆动力学模型,这些控制器将旨在生成所需的转向角度、加速和减速命令。
要开始一个基本的纵向和横向车辆动力学模型,请查看这个视频教程:

控制器

纯粹追求控制器

作为实现控制策略的首选,我们推出了纯追踪控制器。简单来说,这是一个路径跟踪算法,计算轨迹曲率,将车辆从一个点移动到另一个点。根据公式,可以计算车辆的车轮转向角度,以遵循参考轨迹。
从转向角度公式中可以看出,其中一个变量是前瞻距离。一般来说,它是计算角速度命令时,车辆应该从当前位置沿着路径看多远。它是保证控制器跟踪精度的重要调优因素之一。小的前视距离可以导致振荡路径和精确跟踪,而大的前视距离导致振荡路径较小,但可能导致跟踪较差。
现在我们已经简单介绍了纯追逐控制器,下图显示了它在Simulink中的实现。万博1manbetx
对于实现,我们使用了单纯的追求基于两个输入端口、姿态和参考轨迹计算目标方向角的块。在该块中,您可以通过设置前视距离来调优控制器。进一步,根据上述公式,得到所需的车轮转向角度,使车辆沿着如下图所示的轨迹行驶。
参考视频教程:

斯坦利控制器

转到我们的下一个控制器,Stanley控制器在斯坦福赛车队的DARPA挑战赛.该控制律是一种非线性控制律,其目的是使前轮相对于参考路径的横轨误差和航向角最小化。它计算转向角度命令,调整车辆的当前姿态,以匹配参考姿态。
为了在Simulink中对控制器建模,我们使用了万博1manbetx横向控制人Stanley块。块体根据上述公式计算转向角度。有趣的是,您可以使用控制器设置选择车辆模型的类型。例如,对于低速跟踪(如停车场),您可以使用运动学自行车模型,而对于高速跟踪(如赛车),最好使用动态自行车模型。此外,您可以调整位置,偏航率和转向增益,以提高控制器的准确性。
与纯跟踪控制器模型一样,我们使用Stanley控制器建立了车辆路径跟踪模型。飞行器模型和参考轨迹保持一致。在模拟模型时,很明显,在高速环境中,车辆成功地跟踪所需的轨迹,达到30米/秒的最大速度。
参考视频教程:

模型预测控制器(MPC)

最后,让我们看看MPC在Simulink中的路径跟踪应用程序的实现。万博1manbetx简而言之,MPC解决了一个在线优化算法,以找到将预测输出驱动到参考的最优控制动作。它可以处理多输入多输出系统,这些系统的输入和输出之间可能存在交互。它还可以处理输入和输出约束。然而,缺点是它的计算成本很高。
请注意,我们不会在本节详细介绍,因为我们已经有了一个很棒的MATLAB技术讲座系列视频,理解模型预测控制.您可以观看视频来了解MPC是如何工作的,也会发现这种多变量控制技术的好处。
为了实现MPC控制器,最初,我们从泛型开始MPC控制器块。然而,路径跟踪控制系统Block是跟踪轨迹的更好选择。一般来说,挡块是为了让自驾车辆沿着直线或弯曲道路的中心行驶,同时跟踪设定的速度,并与领先车辆保持安全距离。但是,我们通过将设定的速度设置为飞行器的参考速度,并将基于曲率的距离设置为曲率端口,从而实现了跟踪轨迹。此外,由于块的输出是纵向加速度,我们连接了一个踏板地图,以获得所需的加速和减速命令。
最后,在选取合适的预测视界、控制视界等设计参数后,对模型进行仿真,可以很好地看到车辆对路径的跟踪。

参考视频教程:

是时候构建自己的模型了

本博客并没有涵盖上述控制器的所有技术细节,而是提供了在MATLAB和Simulink中实现这些控制器的概述。万博1manbetx我们希望我们提供了足够的背景和资源,让您开始使用轨迹跟踪模型。所以现在轮到你使用这些资源作为参考,在更具挑战性的赛道上驾驶汽车了。
此外,如果有任何与本博客有关的疑问,请随时与我们联系racinglounge@mathworks.com

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。