这个示例展示了如何使用由相同决策逻辑控制的智能车辆对高速公路场景进行建模。每辆车都根据独立的statflow®图表定义的逻辑来决定何时加速、减速或变道。由于不同车辆的行驶条件(包括附近车辆的相对位置和速度)不同,MATLAB®中单独的图表对象控制公路上的单个车辆。
要开始该示例,请运行脚本sf\u驱动程序\u demo.m
。该脚本显示一条长公路和多辆车辆的三维动画。视图聚焦于一辆车辆及其周围环境。当该车辆沿公路移动时,独立状态流程图sf_驱动器
显示决定其操作的决策逻辑。
从随机位置开始,每辆车都试图以目标速度行驶。由于目标速度是随机选择的,因此车辆可能会相互阻碍。在这种情况下,车辆将尝试改变车道并恢复其目标速度。
类文件公路场景
定义一个
对象,该对象表示包含公路及其上车辆的三维环境。要控制车辆的运动drivingScenario
(自动驾驶工具箱)drivingScenario
对象创建状态流程图对象的数组。每个图表对象控制模拟中的不同车辆。
国家流程图sf_驱动器
由两个顶级状态组成,拉内基普
和拉尼切
.
当拉内基普
状态为活动时,相应的车辆保持在其车道上。在这种状态下,有两种可能的子状态:
巡航
当车辆正前方的区域为空且车辆可以以其目标速度行驶时,激活。
跟随
当车辆正前方的区域被占用且其目标速度快于前方车辆的速度时,该区域变为激活状态。在这种情况下,车辆被迫减速并试图改变车道。
当拉尼切
状态为激活,相应的车辆尝试改变车道。在此状态下,有两个可能的子状态:
继续
当车辆旁边的区域为空且车辆可以安全换道时,激活。
中止
当车辆旁边的区域被占用时变为激活状态。在这种情况下,车辆将被迫保持在其车道上。
状态之间的转换拉内基普
和拉尼切
是由价值观守护的孤岛悬挂
.在拉内基普
状态下,图表将此本地数据设置为真的
当子状态跟随
处于激活状态,且车辆旁边有足够的空间改变车道。在拉尼切
状态下,图表将此本地数据设置为假
当车辆完成变道时。
drivingScenario
(自动驾驶工具箱)