В этом примере показано, как моделировать сценарий автомагистрали с использованием интеллектуальных транспортных средств, управляемых одной логикой принятия решений. Каждое транспортное средство определяет время ускорения, замедления или изменения полос движения на основе логики, определенной отдельной диаграммой Stateflow ®. Поскольку условия вождения (включая относительное положение и скорость соседних транспортных средств) отличаются от транспортного средства к транспортному средству, отдельные объекты диаграммы в MATLAB ® управляют отдельными транспортными средствами на шоссе.
Чтобы запустить пример, запустите сценарий sf_driver_demo.m. Сценарий отображает 3-D анимацию длинного шоссе и нескольких транспортных средств. Вид фокусируется на одном транспортном средстве и его окружении. Когда этот автомобиль движется по шоссе, автономная диаграмма Stateflow sf_driver показывает логику решения, определяющую его действия.

Начиная со случайного положения, каждое транспортное средство пытается двигаться с заданной скоростью. Поскольку целевые скорости выбираются случайным образом, транспортные средства могут препятствовать друг другу. В этой ситуации транспортное средство попытается изменить полосы движения и возобновить свою целевую скорость.
Файл класса HighwayScenario определяет объект, представляющий 3-D среду, содержащую магистраль и находящиеся на ней транспортные средства. Для управления движением транспортных средств drivingScenario (Automated Driving Toolbox)drivingScenario создает массив объектов диаграммы Stateflow. Каждый объект диаграммы управляет различным транспортным средством в моделировании.
Диаграмма Stateflow sf_driver состоит из двух состояний верхнего уровня, LaneKeep и LaneChange.
Когда LaneKeep состояние активно, соответствующее транспортное средство остается в своей полосе движения. В этом состоянии существуют два возможных подсостояния:
Cruise активен, когда зона непосредственно перед транспортным средством пуста и транспортное средство может двигаться со своей целевой скоростью.
Follow активизируется, когда зона непосредственно перед транспортным средством занята и его целевая скорость выше скорости впереди транспортного средства. При этом транспортное средство вынуждено тормозить и пытаться менять полосы движения.
Когда LaneChange состояние является активным, соответствующее транспортное средство пытается изменить полосы движения. В этом состоянии существуют два возможных подсостояния:
Continue активен, когда зона рядом с транспортным средством пуста и транспортное средство может безопасно менять полосы движения.
Abort активизируется, когда зона рядом с транспортным средством занята. При этом транспортное средство вынуждено оставаться на своей полосе.

Переходы между состояниями LaneKeep и LaneChange охраняются значением isLaneChanging. В LaneKeep состояние, диаграмма устанавливает эти локальные данные в true когда подсостояние Follow активен, и рядом с транспортным средством достаточно места для смены полос движения. В LaneChange состояние, диаграмма устанавливает эти локальные данные в false когда транспортное средство заканчивает менять полосы движения.
drivingScenario (Автоматизированная панель инструментов вождения)