主要内容

车道跟踪控制和传感器融合车道检测

这个例子展示了如何模拟为一个汽车lane-following控制器并生成代码。

在本例中,您:

  1. 审查控制算法相结合的传感器融合、车道检测和车道后控制器从模型预测控制工具箱™软件。

  2. 测试控制系统的闭环仿真软件使用合成®模型生成的数据自动驾驶工具箱™软件。金宝app

  3. 配置的代码生成设置software-in-the-loop模拟和控制算法自动生成代码。

介绍

后巷系统是一个控制系统,使车辆行驶在车道的高速公路,同时保持一个用户集的速度或前面的车辆保持安全距离。后巷系统包括纵向和横向控制自我的车辆:

  • 纵向控制——维持一个司机让速度和前面的汽车保持安全距离的车道通过调整自我车辆的加速度。

  • 横向控制,保持自我沿中心线的车辆行驶车道通过调整转向自我的工具

合并后的后巷控制系统实现个人目标的纵向和横向控制。此外,车道控制系统可以调整后两个目标的优先级,当他们不能同时得到满足。

对纵向控制的一个例子使用传感器融合的自适应巡航控制系统(ACC),看到的自适应巡航控制系统与传感器融合。例如横向控制使用一个车道保持辅助系统(党的)车道检测,看看车道保持辅助车道检测。ACC的例子假定理想的车道检测和党的例子不考虑周围的车辆。

在这个例子中,两个车道检测和周围的汽车被认为是。车道从视觉和雷达探测跟踪系统综合数据,估计巷中心和引导车的距离,并计算出自我的纵向加速度和转向角。

定义场景

打开模型之前,您可以改变模型模拟的场景。这个场景控制的选择是一个回调函数,helperLFSetUp模型打开时,。

默认情况下,模型模拟一个切入的场景在弯曲的道路。改变默认的场景使用,要么通过单击编辑设置脚本编辑设置脚本按钮或通过调用模型helperLFSetup用一个新的输入场景。例如,以下语法相当于指定默认的场景。

helperLFSetup (“LFACC_04_Curve_CutInOut”);

你可以选择从下面的场景。

‘ACC_01_ISO_TargetDiscriminationTest’‘ACC_02_ISO_AutoRetargetTest’‘ACC_03_ISO_CurveTest’‘ACC_04_StopnGo’‘LFACC_01_DoubleCurve_DecelTarget’‘LFACC_02_DoubleCurve_AutoRetarget’‘LFACC_03_DoubleCurve_StopnGo’‘LFACC_04_Curve_CutInOut’‘LFACC_05_Curve_CutInOut_TooClose’

开放实验台模型

打开模型试验台模型金宝app。

open_system (“LaneFollowingTestBenchExample”)

该模型包含四个主要组件:

  1. 车道控制器—控制后的纵向加速度和转向角面前自我

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

  3. 碰撞检测-停止仿真碰撞时的自我检测到车辆和车辆

  4. 绪轨道——允许绪轨道鸟瞰图显示的范围。

打开这个模型还运行helperLFSetUp初始化脚本,它使用的数据模型通过运行场景加载函数和常数模型所需的模型,如车辆模型参数,控制器的设计参数,道路场景中,和周围的汽车。金宝app

情节的道路和自我的道路车辆。

情节(场景)

策划的结果模拟和描述自我车辆周围和跟踪对象,使用鸟瞰的范围(自动驾驶工具箱)。鸟瞰的范围是一个模型级,您可以打开从仿真软件将来发布的可视化工具。金宝app在模拟选项卡,在审查结果,点击鸟瞰的范围。打开范围后,通过点击设置信号找到信号

mid-simulation视图,模拟模型10秒。

sim卡(“LaneFollowingTestBenchExample”,“StopTime”,“十”)

模拟模型10秒钟后,打开鸟瞰的范围。在将来发布范围,显示世界坐标的情况下,点击世界坐标。在这个视图中,自我车辆环绕。显示车辆坐标的传奇视图中,点击传说

鸟瞰的范围显示传感器融合的结果。它显示了雷达和视觉传感器检测车辆在其覆盖区域。它还显示了跟踪维护的多目标跟踪(自动驾驶工具箱)块。黄色的跟踪显示最重要的对象(绪),这是最近的轨道前的自我车道的车辆。理想的路面标志也随着综合检测显示左和右车道边界(红色所示)。

模拟模型的场景。

sim卡(“LaneFollowingTestBenchExample”)
假设没有干扰测量输出通道# 3。- - >输出假设扰动添加到测量输出通道# 2是集成的白噪声。假设没有干扰测量输出通道# 1。- - >输出假设扰动添加到测量输出通道# 4是集成的白噪声。- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

图控制器的性能。

plotLFResults (logsout time_gap default_spacing)

第一个图中显示以下间距控制性能结果。

  • 速度图显示,自我从0到11秒,车辆维护速度控制开关间距控制从11到16秒,然后切换回速度控制。

  • 两辆车之间的距离图显示,导致车辆之间的实际距离和自我车辆总是大于安全距离。

  • 加速度情节表明自我车辆的加速度是光滑的。

  • 碰撞状态图显示,没有领导车辆碰撞和自我检测到车辆,因此自我车辆运行在安全模式。

第二个图显示以下横向控制性能结果。

  • 横向偏差图显示,车道中心线之间的距离在0.2米。

  • 相对偏航角情节表明偏航角误差对车道中心线在rad 0.03(小于2度)。

  • 转向角图显示,自我车辆的转向角是光滑的。

探索巷后控制器

后的车道控制器子系统包含三个主要部分:1)估计巷中心2)跟踪和传感器融合3)MPC控制器

open_system (“LaneFollowingTestBenchExample /后巷控制器”)

估计巷中心子系统输出通道传感器数据的MPC控制器。预览曲率提供车道中心线的曲率的自我。在这个例子中,自我车辆可以为3秒,展望未来的产品预测地平线和控制器样品时间。控制器使用预览信息计算自我车辆转向角,从而提高了MPC控制器性能。横向偏差措施自我车辆和中心线之间的距离的车道。相对偏航角测量偏航角自我车辆和道路之间的区别。子系统内部的ISO 8855 SAE J670E块转换坐标从车道检测,使用ISO 8855, MPC控制器使用SAE J670E。

跟踪和传感器融合子系统流程视觉和雷达探测来自车辆和环境子系统和生成一个综合情况自我车辆周围的环境的照片。同时,它提供了车道控制器后,估计最近的车辆在车道车辆前的自我。

的目标MPC控制器块是:

  • 维护司机让速度和引导车辆保持安全距离。这一目标是通过控制纵向加速度。

  • 保持自我的车辆中间的车道;这是减少横向偏差美元E_{横向}$和相对偏航角美元E_{偏航}$,通过控制转向角。

  • 减缓自我车辆当路是弯曲的。为了实现这一目标,MPC控制器对横向偏差较大的惩罚权重比纵向速度。

MPC控制器设计在路径跟踪控制(PFC)系统块基于输入掩码参数,设计MPC控制器是一种自适应MPC在运行时更新车辆模型。后的车道控制器计算纵向加速度和转向角的自我车辆基于以下输入:

  • 司机让速度

  • 自我车辆纵向速度

  • 预览曲率(来自车道检测)

  • 横向偏差(来自车道检测)

  • 相对偏航角(来自车道检测)

  • 导致车辆之间的相对距离和自我车辆跟踪和传感器融合系统()

  • 导致车辆之间的相对速度和自我车辆跟踪和传感器融合系统()

考虑到自我的物理限制车辆,转向角约束是[-0.26,0.26]rad内,和纵向加速度约束是(3 2)m / s ^ 2。

探讨车辆和环境

车辆和环境子系统使闭环仿真后巷的控制器。

open_system (“LaneFollowingTestBenchExample /车辆和环境”)

系统延迟块模型之间的延迟系统的输入和输出。延迟可能是由于传感器延迟或通信延迟。在这个例子中,延迟近似样品时间T_s = 0.1美元秒。

车辆动力学子系统模型使用自行车车辆动力学模型——力输入块从车辆动力学Blockset™。低层动力学建模的一阶线性系统的时间常数\τ= 0.5美元秒。

SAE J670E ISO 8855子系统从车辆动力学转换坐标,它使用SAE J670E,场景的读者,它使用ISO 8855。

场景的读者(自动驾驶工具箱)块读取演员提出了基本工作空间场景的数据变量。块的演员带来了从世界坐标转换场景进自我车辆坐标。演员的姿势是流在公共汽车上生成的块。场景的读者块还生成理想的左和右车道边界基于车辆的位置对场景中使用helperLFSetUp

视觉检测发电机(自动驾驶工具箱)块的理想读者块车道边界的场景。检测发电机模型单眼相机的视野并确定航向角、曲率、曲率微分,和每个道路边界的有效长度,占任何其他障碍。的驾驶雷达数据生成器(自动驾驶工具箱)从日渐生成集群检测数据块出现在雷达基于雷达截面的视场中定义的场景。

控制器运行多个测试场景

这个示例使用多个基于ISO标准的测试场景和真实世界的场景。来验证控制器的性能,您可以测试多个场景和优化控制器参数的控制器如果表现不令人满意。这样做:

  1. 选择场景通过改变场景名称输入helperLFSetUp

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

  3. 模拟模型与所选择的场景。

  4. 评估使用的控制器性能plotLFResults

  5. 调整控制器参数如果表现不令人满意。

你可以使用仿真软件自动化控制器的验证和确认测试™。金宝app

生成代码的控制算法

LFRefMdl模型支持生成金宝appC代码使用嵌入式编码器®软件。检查如果你有访问嵌入式编码器,运行:

hasEmbeddedCoderLicense =许可证(“签出”,“RTW_Embedded_Coder”)

您可以生成一个C函数为模型,探索通过运行代码生成报告:

如果hasEmbeddedCoderLicense rtwbuild (“LFRefMdl”)结束

你可以验证编译C代码的行为如预期使用software-in-the-loop (SIL)模拟。模拟LFRefMdl参考模型在SIL)模式下,使用:

如果hasEmbeddedCoderLicense set_param (“LaneFollowingTestBenchExample /后巷控制器”,“SimulationMode”,“Software-in-the-loop (SIL)”)结束

当您运行这个LaneFollowingTestBenchExample模型、代码生成、编译和执行LFRefMdl模型,它使您能够通过模拟测试编译的代码的行为。

结论

这个例子展示了如何实现一个完整的后巷控制器与传感器融合和弯曲的道路车道检测,测试它在仿真软件使用合成使用自动驾驶工具箱软件生成的数据,组件化,并自动生成代码。金宝app

关闭所有bdclose所有

另请参阅

相关的话题