其他分享
首页 > 其他分享> > 【MatLab学习笔记】实例Lateral Control Tutorial

【MatLab学习笔记】实例Lateral Control Tutorial

作者:互联网

以下实例为MathWorks官方实例,本人翻译整理了相关知识点,记录一下学习笔记。 

原文链接:https://ww2.mathworks.cn/help/driving/ug/lateral-control-tutorial.html


 Lateral Control Tutorial

此实例展示了当车辆变换车道时,如何使用Lateral Contorller Stanley模块,通过控制车辆转向角来跟随一条已规划的路径。

概述

对车辆的控制是导航系统中的最后一步,一般是用两个独立的控制器完成的:

此实例主要介绍在恒定纵向速度场景中路径跟随情况下车辆的横向控制。在此实例中,你将:

  1. 了解Lateral Controller Stanley模块背后的算法

  2. 使用Driving Scenario Designer应用创建一个行驶场景,并创建一个可供车辆跟随的参考路径。

  3. 使用闭环Simulink模型来测试场景中的横向控制器

  4. 使用Bird’s-Eye Scope来可视化场景并关联仿真结果

横向控制器

斯坦利横向控制器使用非线性控制律来最小化横向轨迹误差和前轮相对于参考路径的航向角。Lateral Controller Stanley模块通过预估转向角指令来调整车辆当前位姿来适配参考位姿。

根据控制律用到的车辆模型不同,Lateral Controller Stanley模块有两种配置:

你可以通过车辆模型的设置来选择使用哪种配置。

场景创建

场景使使用Driving Scenario Designer应用来创建的。此场景包含三条单向车道和自车,自车满足:

  1. 从中间车道开始行驶

  2. 进入弯道部分之后换到左侧车道

  3. 换回中间车道

在整个仿真过程中,车辆以10m/s的恒定速度行驶。此场景是通过Export>Export MATLAB function按钮作为MATLAB®函数从应用程序导出的。 导出的函数名为HelperCreatedRivingScenario。 此场景中的路和参与者被保存到场景文件lateralcontrol.mat中。

模型设置

打开Simulink教程模型

open_system('LateralControlTutorial')

此模型包含以下主要组成部分:

variant = 'LateralControlTutorial/Lateral Controller';
set_param(variant, 'LabelModeActivechoice', 'Kinematic');

打开模型的同时也运行了helperLateralControlTutorialSetup脚本,该脚本初始化模型使用的数据。该脚本加载Simulink模型所需的某些常量,例如车辆参数,控制器参数,道路环境和参考位姿。特别是,脚本调用先前导出的函数helperCreateDrivingScenario来构建场景。 脚本还通过调用HelperCreateLanesensorBus来设置模型所需的总线。

可以使用以下方法绘制道路和规划路径:

helperPlotRoadAndPath(scenario, refPoses)

仿真环境

在模拟模型时,可以打开Bird‘s-Eye Scope进行模拟分析。 打开scope后,点击Find Signals设置信号。 然后运行模拟以显示车辆、道路边界和车道标记。 下图显示了本例25秒时的鸟瞰图。 就在这一瞬间,车辆已经切换到左侧车道。

可以使用以下命令运行完全模拟并查看结果:

sim('LateralControlTutorial');

还可以使用车辆和环境子系统中的Simulink Scope(Simulink)检查控制器的性能,以便车辆按照规划路径行驶。 范围显示最大偏离路径小于0.3米,最大转向角度量级小于3度。

scope = 'LateralControlTutorial/Vehicle and Environment/Scope';
open_system(scope)

为减少转向指令中的横向偏差和振荡,使用Lateral Controller Stanley Dynamic模块,并再次模拟模型:

set_param(variant, 'LabelModeActivechoice', 'Dynamic');
sim('LateralControlTutorial');

结论

这个例子展示了如何使用Simulink模拟车辆在变道情况下的横向控制。 与Lateral Controller Stanley Kinematic模块相比,Lateral Controller Stanley Dynamic模块提供了更好的路径跟随性能,并且与参考路径的横向偏差更小。

标签:Control,控制器,模块,Lateral,路径,MatLab,车辆,模型
来源: https://blog.csdn.net/weixin_42325129/article/details/117945513