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