Velocity Profiler

Сгенерируйте профиль скорости пути транспортного средства с учетом кинематических ограничений

  • Библиотека:
  • Automated Driving Toolbox

  • Velocity Profiler block

Описание

Блок Velocity Profiler генерирует профиль скорости ведущего пути, который удовлетворяет этому набору заданных кинематических ограничений:

  • Максимально допустимая скорость транспортного средства

  • Максимальное продольное ускорение и замедление транспортного средства

  • Максимальный продольный рывок транспортного средства

  • Максимальное боковое ускорение транспортного средства

Задайте совокупные длины вдоль пути, ведущие направления и кривизны в каждой точке вдоль пути. Можно получить эти значения из выхода блока Path Smoother Spline. Также задайте продольную скорость транспортного средства в начале и конце пути.

Используйте сгенерированный профиль скорости в качестве входа ссылки скоростей продольного контроллера, как показано в примере Automated Parking Valet в Simulink.

Порты

Вход

расширить все

Направления движения транспортного средства по длине пути, заданные как M-на-1 вектор на 1с (движение вперед) и -1с (движение назад). Каждый вектор элемент представляет направление движения автомобиля с соответствующей совокупной длиной пути, заданной портом CumLengths входа. M - количество ведущих направлений и должно быть равно длинам CumLengths и Curvatures входов.

Можно получить Directions из выхода блока Path Smoother Spline.

Совокупные длины пути, в метрах, заданы как вектор M-на-1 монотонно увеличивающихся вещественных элементов. Каждый векторный элемент представляет точку вдоль пути. M - количество совокупных длин пути, и должно быть равно длинам Directions и Curvatures входов.

Можно получить CumLengths из выхода блока Path Smoother Spline.

Кривизны подписанного пути по длине пути, в радианах на метр, заданные как M -by-1 действительный вектор. Каждый векторный элемент представляет кривизну пути с соответствующей совокупной длиной пути, заданной CumLengths входным портом. M - количество искривлений и должно быть равно длинам Directions и CumLengths входов.

Можно получить Curvatures из выхода блока Path Smoother Spline.

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

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

Выход

расширить все

Профиль скорости по длине пути, в метрах в секунду, возвращается как M-на-1 действительный вектор-столбец. Каждый вектор элемент представляет ссылке продольную скорость для автомобиля с соответствующей совокупной длиной пути, заданной портом CumLengths входа. M - количество скоростей и равно длине CumLengths.

Выходные значения скорости удовлетворяют ограничениям скорости, ускорения и рывка, заданным в параметрах блока Velocity Profiler. Можно использовать этот выход в качестве ссылки скорости для контроллера транспортного средства.

Velocities является выходом переменного размера с ограничениями, описанными в Variable-Size Signal Limitations (Simulink).

Время прибытия транспортного средства для профиля скорости, заданного в Velocities, возвращаемое как M -by-1 вектор с реальным значением. M - это количество времени прибытия транспортного средства, равное длине Velocities. Модули указаны в секундах.

Каждый элемент вектора представляет время, когда транспортное средство, перемещающийся со скоростью v, приходит к совокупной длине пути p, где:

  • v - соответствующая скорость, возвращаемая Velocities выходным портом.

  • p - соответствующая совокупная длина пути, заданная CumLengths входным портом.

Используйте Times, чтобы визуализировать профиль скорости с течением времени, как показано на примерах «Профиль скорости прямого пути» и «Профиль скорости пути с изменением кривой и направления».

Times является выходом переменного размера с ограничениями, описанными в Variable-Size Signal Limitations (Simulink).

Зависимости

Чтобы включить этот порт, выберите параметр Show Times output port.

Параметры

расширить все

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

При разработке продольного контроллера этот параметр должен быть равен соответствующему параметру в блоке Longitudinal Controller Stanley. В противном случае транспортное средство не может запустить сгенерированный профиль скорости.

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

При разработке продольного контроллера этот параметр должен быть равен соответствующему параметру в блоке Longitudinal Controller Stanley. В противном случае транспортное средство не может запустить сгенерированный профиль скорости.

Максимально допустимая скорость транспортного средства по пути, в метрах в секунду, задается как положительный действительный скаляр. Используйте этот параметр, чтобы ограничить скорость транспортного средства на основе требований к комфорту пассажиров или пределу скорости.

Когда длина пути слишком коротка, чтобы транспортное средство достигло этой максимальной скорости, блок вычисляет меньшую максимальную скорость, которая удовлетворяет ограничению длины пути.

В профиле выходной скорости скорость транспортного средства ограничена [- V max, V max], где V max является значением этого параметра.

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

В профиле выходной скорости продольный рывок транспортного средства ограничен [- J max, J max], где J max является значением этого параметра.

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

В профиле выходной скорости боковое ускорение транспортного средства ограничено [- A max, A max], где A max является значением этого параметра.

Выберите этот параметр, чтобы включить Times выходной порт.

Шаг расчета блока, в секундах, задается как -1 или как положительный действительный скаляр. Значение по умолчанию -1 означает, что блок наследует свой шаг расчета от вышестоящих блоков.

Поскольку блок Velocity Profiler выводит сигналы переменного размера, шаг расчета блока должно быть дискретным (ненулевым). Если блок наследует свой шаг расчета от вышестоящих блоков, эти блоки должны также иметь дискретные шаги расчета.

  • Code generation - Симулируйте модель с помощью сгенерированного кода C/C + +. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код C/C + + для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска.

  • Interpreted execution - Симулируйте модель с помощью MATLAB® интерпретатор. Эта опция сокращает время запуска. В Interpreted execution mode, можно отлаживать исходный код блока.

Подробнее о

расширить все

Алгоритмы

Чтобы сгенерировать профиль скорости для пути ссылка, блок Velocity Profiler выполняет следующие шаги:

  1. Сгенерируйте профиль непрерывной скорости, который удовлетворяет всем кинематическим ограничениям (скорость, ускорение и рывок), заданным параметрами блоков.

  2. Дискретизируйте профиль скорости путем отображения положений в пути ссылки к значениям скорости, основываясь на том, как далеко находятся положения от стартового положения. Совокупные длины пути, заданные в CumLengths входном порте, содержат эти расстояния. Блок Path Smoother Spline возвращает эти совокупные длины пути вместе с сглаженным контуром.

Сгенерированный профиль скорости является кривой с семью интервалами. На каждом временном интервале внутри кривой, рывок, ускорение и скорость транспортного средства изменяются, чтобы удовлетворить заданным ограничениям. Рисунок и таблица показа, как эти значения изменяются для транспортного средства, перемещающегося вперед по пути. Для простоты стартовая и конечная скорость транспортного средства, заданная StartVelocity и EndVelocity входными портами, являются обеими 0.

Временной интервалТолчокУскорениеСкоростьПримечания
1Установите значение MaxJerkУвеличения от 0 на MaxAccelУвеличения от начальной скорости-
2Установите значение 0Поддерживается постоянным в MaxAccelПродолжает увеличиватьсяВ течение предыдущего интервала, если транспортное средство не может достичь MaxAccel учитывая MaxSpeed ограничение, тогда интервал 2 не происходит.
3Установите значение -MaxJerkУменьшается по сравнению с MaxAccel на 0Увеличивается до MaxSpeed-
4Установите значение 0Поддерживается постоянным в 0Поддерживается постоянным в MaxSpeed-
5Установите значение -MaxJerkУменьшается по сравнению с 0 на -MaxDecelНачинает уменьшаться-
6Установите значение 0Поддерживается постоянным в -MaxDecelПродолжает уменьшатьсяВ течение предыдущего интервала, если транспортное средство не может достичь -MaxDecel учитывая MaxSpeed ограничение, тогда интервал 6 не происходит.
7Установите значение MaxJerkУвеличения от -MaxDecel на 0Уменьшается до конечной скорости-

В рисунке и таблице:

  • MaxJerk и -MaxJerk заданы параметром Maximum longitudinal jerk (m/s^3).

  • MaxAccel и -MaxDecel заданы параметрами Maximum longitudinal acceleration (m/s^2) и Maximum longitudinal deceleration (m/s^2), соответственно. Можно задать асимметричные значения для этих параметров.

  • MaxSpeed устанавливается параметром Maximum allowable speed (m/s).

Для транспортного средства в обратном движении кривые на рисунке обращены назад. Знаки значений параметров, показанных на рисунке и таблице, также обращены назад.

Если транспортное средство включает в себя несколько изменений в направлении, блок генерирует отдельные профили скорости для каждого направления движения. Затем блок конкатенирует эти профили в конечном Velocities выходе. Для получения примера смотрите Профиль скорости пути с кривой и изменение направления.

Ссылки

[1] Виллагра, Хорхе, Висенте Миланес, Жошу Перес и Хорхе Годой. «Сглаживайте путь и планирование скорости для автоматизированного транспортного средства общественного транспорта». Робототехника и автономные системы. Том 60, № 2, февраль 2012, стр. 252-265.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2019b