exponenta event banner

Автоматизация управления интеллектуальными транспортными средствами с помощью диаграмм статусов

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

Открыть сценарий управления

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

Начиная со случайного положения, каждое транспортное средство пытается двигаться с заданной скоростью. Поскольку целевые скорости выбираются случайным образом, транспортные средства могут препятствовать друг другу. В этой ситуации транспортное средство попытается изменить полосы движения и возобновить свою целевую скорость.

Файл класса HighwayScenario определяет drivingScenario (Automated Driving Toolbox) объект, представляющий 3-D среду, содержащую магистраль и находящиеся на ней транспортные средства. Для управления движением транспортных средств drivingScenario создает массив объектов диаграммы Stateflow. Каждый объект диаграммы управляет различным транспортным средством в моделировании.

Выполнение логики принятия решений для транспортных средств

Диаграмма Stateflow sf_driver состоит из двух состояний верхнего уровня, LaneKeep и LaneChange.

Когда LaneKeep состояние активно, соответствующее транспортное средство остается в своей полосе движения. В этом состоянии существуют два возможных подсостояния:

  • Cruise активен, когда зона непосредственно перед транспортным средством пуста и транспортное средство может двигаться со своей целевой скоростью.

  • Follow активизируется, когда зона непосредственно перед транспортным средством занята и его целевая скорость выше скорости впереди транспортного средства. При этом транспортное средство вынуждено тормозить и пытаться менять полосы движения.

Когда LaneChange состояние является активным, соответствующее транспортное средство пытается изменить полосы движения. В этом состоянии существуют два возможных подсостояния:

  • Continue активен, когда зона рядом с транспортным средством пуста и транспортное средство может безопасно менять полосы движения.

  • Abort активизируется, когда зона рядом с транспортным средством занята. При этом транспортное средство вынуждено оставаться на своей полосе.

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

См. также

(Автоматизированная панель инструментов вождения)

Связанные темы