Path Following Control System

Симулируйте управление по пути с помощью адаптивного прогнозирующего контроллера модели

  • Библиотека:
  • Модель прогнозирующего управления Toolbox/беспилотное вождение

  • Path Following Control System block

Описание

Блок Path Following Control System моделирует систему управления, следующую за траекторией (PFC), которая сохраняет автомобиль , оборудованный датчиком, перемещающийся по центру прямой или изогнутой дороги, отслеживая установленную скорость и сохраняя безопасное расстояние от свинцового транспортного средства. Для этого контроллер регулирует и продольный разгон, и передний угол поворота автомобиля , оборудованного датчиком. Блок вычисляет оптимальные действия управления при удовлетворении ограничений безопасного расстояния, скорости, ускорения и угла поворота, используя адаптивное прогнозирующее управление (MPC).

Этот блок объединяет возможности блоков Lane Keeping Assist System и Adaptive Cruise Control System в один контроллер.

Чтобы настроить контроллер, например, использовать расширенные функции MPC или изменить начальные условия контроллера, нажмите Create PFC subsystem.

Порты

Вход

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

Автомобиль , оборудованный датчиком уставку скорости в м/с. Когда нет ведущего транспортного средства, контроллер отслеживает эту скорость.

Безопасный промежуток времени в секундах между ведущим транспортным средством и автомобилем , оборудованным датчиком. Эта временная погрешность используется для вычисления минимального безопасного ограничения расстояния. Для получения дополнительной информации см. Раздел «Безопасное следование расстоянию».

Расстояние в метрах между головным транспортным средством и автомобилем , оборудованным датчиком. Чтобы вычислить этот сигнал, вычесть положение автомобиля , оборудованного датчиком из положения ведущего транспортного средства.

Скорость различия в метрах в секунду между ведущим автомобилем и автомобилем , оборудованным датчиком. Чтобы вычислить этот сигнал, вычесть скорость автомобиля , оборудованного датчиком из скорости головного автомобиля.

Автомобиль , оборудованный датчиком скорость в м/с.

Кривизна дороги, заданная как 1/ R, где R - радиус кривой в метрах.

Кривизна дороги:

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

  • Отрицательно, когда дорога изгибается к отрицательной оси Y глобальной системы координат.

  • Нуль для прямой дороги.

Контроллер моделирует кривизну дороги как измеренное нарушение порядка при предварительном просмотре. Кривизну можно задать как:

  • Скалярный сигнал - Задайте кривизну для текущего контрольного интервала. Контроллер использует это значение кривизны через горизонт предсказания.

  • Векторный сигнал с длиной меньше или равной Prediction Horizon - Задайте текущие и предсказанные значения кривизны на горизонте предсказания. Если длина вектора меньше, чем горизонт предсказания, то контроллер использует окончательное значение кривизны в векторе для оставшейся части горизонта предсказания.

Боковое отклонение автомобиля , оборудованного датчиком в метрах от осевой линии маршрута.

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

Ограничение автомобиля , оборудованного датчиком минимальное продольное ускорение в м/с2. Используйте этот входной порт, когда минимальное ускорение изменяется во время исполнения.

Зависимости

Чтобы включить этот порт, выберите Use external source для параметра Minimum longitudinal acceleration.

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

Зависимости

Чтобы включить этот порт, выберите Use external source для параметра Maximum longitudinal acceleration.

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

Зависимости

Чтобы включить этот порт, выберите Use external source для параметра Minimum steering angle.

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

Зависимости

Чтобы включить этот порт, выберите Use external source для параметра Maximum steering angle.

Сигнал разрешения оптимизации контроллера. Когда этот сигнал:

  • Ненулевое, контроллер выполняет вычисление оптимизации и генерирует Longitudinal acceleration и Steering angle сигналы управления.

  • Нуль, контроллер не выполняет вычисления оптимизации. В этом случае Longitudinal acceleration и Steering angle выходные сигналы остаются на значениях, которые они имели, когда оптимизация была отключена. Контроллер продолжает обновлять оценки внутреннего состояния.

Зависимости

Чтобы включить этот порт, выберите параметр Use external signal to enable or disable optimization.

Фактические сигналы управления, приложенные к автомобилю , оборудованному датчиком. Первым элементом этого сигнала является продольное ускорение в м/с2, и второй элемент является углом управления в радианах. Контроллер использует эти сигналы, чтобы оценить состояния модели автомобиля , оборудованного датчиком. Используйте этот вход порт, когда сигналы управления, приложенные к автомобилю , оборудованному датчиком, не совпадают с оптимальными сигналами управления, вычисленными прогнозирующим контроллером модели. Это несоответствие может произойти, когда, например:

  • Этот Path Following Control System не является активным контроллером. Поддержание точной оценки состояния, когда контроллер не активен, предотвращает выпуклости в сигналах управления, когда контроллер становится активным.

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

Зависимости

Чтобы включить этот порт, выберите параметр Use external control signal for bumpless transfer between PFC and other controllers.

Матрица состояний прогнозирующей модели автомобиль , оборудованный датчиком. Количество строк в матрице состояний соответствует количеству состояний в прогнозирующей модели. Эта матрица должна быть квадратной.

Прогнозирующая модель автомобиль , оборудованный датчиком, заданная Vehicle dynamics matrix A, Vehicle dynamics matrix B и Vehicle dynamics matrix C, должна быть минимальной.

Зависимости

Чтобы включить этот порт, выберите параметр Use vehicle model.

Матрица ввода в состояние автомобиля , оборудованного датчиком прогнозирующей модели. Количество строк в этом сигнале должно совпадать с количеством строк в Vehicle dynamics matrix A.

Прогнозирующая модель автомобиль , оборудованный датчиком, заданная Vehicle dynamics matrix A, Vehicle dynamics matrix B и Vehicle dynamics matrix C, должна быть минимальной.

Зависимости

Чтобы включить этот порт, выберите параметр Use vehicle model.

Матрица состояние-выход прогнозирующей модели автомобиль , оборудованный датчиком. Количество столбцов в этом сигнале должно совпадать с количеством строк в Vehicle dynamics matrix A.

Прогнозирующая модель автомобиль , оборудованный датчиком, заданная Vehicle dynamics matrix A, Vehicle dynamics matrix B и Vehicle dynamics matrix C, должна быть минимальной.

Зависимости

Чтобы включить этот порт, выберите параметр Use vehicle model.

Выход

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

Сигнал управления ускорением в м/с2 сгенерирован контроллером.

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

Параметры

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

Вкладка « параметры»

Автомобиль , оборудованный датчиком

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

Чтобы определить модель транспортного средства, задайте следующие параметры блоков:

  • Total mass

  • Yaw moment of inertia

  • Longitudinal distance from center of gravity to front tires

  • Longitudinal distance from center of gravity to rear tires

  • Cornering stiffness of front tires

  • Cornering stiffness of rear tires

  • Longitudinal acceleration tracking time constant

Для получения дополнительной информации о модели автомобиля , оборудованного датчиком см. Автомобиль , оборудованный датчиком Прогнозирующей модели

Выбор этого параметра очищает параметр Use vehicle model.

Программное использование

Параметры блоков: ModelType
Тип: строка, вектор символов
По умолчанию: "Use vehicle parameters"

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

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

Как правило, модель автомобиля , оборудованного датчиком зависит от скорости, и, следовательно, она изменяется с течением времени. Чтобы обновить внутреннюю модель во время исполнения, используйте Vehicle dynamics A, Vehicle dynamics B и Vehicle dynamics C входные порты.

Для получения дополнительной информации о модели автомобиля , оборудованного датчиком см. Автомобиль , оборудованный датчиком Прогнозирующей модели

Выбор этого параметра очищает параметр Use vehicle parameters.

Программное использование

Параметры блоков: ModelType
Тип: строка, вектор символов
По умолчанию: "Use vehicle parameters"

Автомобиль , оборудованный датчиком масса в кг.

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle parameters.

Программное использование

Параметры блоков: VehicleMass
Тип: строка, вектор символов
По умолчанию: "1575"

Момент инерции вокруг вертикальной оси эго-автомобиля в Кг· м2.

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle parameters.

Программное использование

Параметры блоков: VehicleYawInertia
Тип: строка, вектор символов
По умолчанию: "2875"

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

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle parameters.

Программное использование

Параметры блоков: LengthToFront
Тип: строка, вектор символов
По умолчанию: "1.2"

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

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle parameters.

Программное использование

Параметры блоков: LengthToRear
Тип: строка, вектор символов
По умолчанию: "1.6"

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

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle parameters.

Программное использование

Параметры блоков: FrontTireStiffness
Тип: строка, вектор символов
По умолчанию: "19000"

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

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle parameters.

Программное использование

Параметры блоков: RearTireStiffness
Тип: строка, вектор символов
По умолчанию: "33000"

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

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle parameters.

Программное использование

Параметры блоков: AccelTimeConstant
Тип: строка, вектор символов
По умолчанию: "0.5"

Матрица начального состояния прогнозирующей модели автомобиль , оборудованный датчиком. Количество строк в матрице состояний соответствует количеству состояний в прогнозирующей модели. Эта матрица должна быть квадратной.

Начальный автомобиль , оборудованный датчиком прогнозирующая модель, заданная A, B и C, должна быть минимальной.

Как правило, модель автомобиль , оборудованный датчиком изменяется со временем. Чтобы обновить матрицу состояний во время исполнения, используйте Vehicle dynamics A входной порт.

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle model.

Программное использование

Параметры блоков: EgoModelMatrixA
Тип: строка, вектор символов
По умолчанию: "[-4.4021 ,-12.4603;1.3913,-5.1868]"

Исходная матрица ввода в состояние автомобиля , оборудованного датчиком прогнозирующей модели. Количество строк в этом параметре должно совпадать с количеством строк в A.

Начальный автомобиль , оборудованный датчиком прогнозирующая модель, заданная A, B и C, должна быть минимальной.

Как правило, модель автомобиль , оборудованный датчиком изменяется со временем. Чтобы обновить матрицу ввода в состояние во время исполнения, используйте Vehicle dynamics B входной порт.

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle model.

Программное использование

Параметры блоков: EgoModelMatrixB
Тип: строка, вектор символов
По умолчанию: "[24.1270;15.8609]"

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

Начальный автомобиль , оборудованный датчиком прогнозирующая модель, заданная A, B и C, должна быть минимальной.

Как правило, модель автомобиль , оборудованный датчиком изменяется со временем. Чтобы обновить матрицу состояния до выхода во время исполнения, используйте Vehicle dynamics C входной порт.

Зависимости

Чтобы включить этот параметр, выберите параметр Use vehicle model.

Программное использование

Параметры блоков: EgoModelMatrixC
Тип: строка, вектор символов
По умолчанию: "[1,0;0,1]"

Начальная скорость модели автомобиль , оборудованный датчиком в м/с, которая может отличаться от фактической начальной скорости автомобиль , оборудованный датчиком.

Это значение используется, чтобы сконфигурировать начальные условия прогнозирующего контроллера модели. Для получения дополнительной информации см. «Начальные условия».

Примечание

Очень маленькая начальная скорость, например eps, может привести к неминимальной реализации для модели объекта контроллера, вызывая ошибку. Чтобы предотвратить эту ошибку, установите начальную скорость на большее значение, например 1e-3.

Программное использование

Параметры блоков: InitialLongVel
Тип: строка, вектор символов
По умолчанию: "15"

Общая задержка транспортировки, τ, в модели автомобиль , оборудованный датчиком в секундах. Эта задержка включает в себя привод, датчик и лаги связи. Для каждого канала ввода-вывода модель задержки транспорта является:

1τs+1

Программное использование

Параметры блоков: TransportLag
Тип: строка, вектор символов
По умолчанию: "0"
Регулирование интервалов

Чтобы сконфигурировать безопасное следующее расстояние, установите параметр Default spacing. Для получения дополнительной информации о безопасном следующем расстоянии, используемом контроллером, смотрите Безопасное следование расстоянию.

Программное использование

Параметры блоков: spaceCtrl
Тип: строка, вектор символов
По умолчанию: "on"

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

Это значение используется для вычисления:

Зависимости

Чтобы включить этот параметр, выберите параметр Maintain safe distance between lead vehicle and ego vehicle.

Программное использование

Параметры блоков: DefaultSpacing
Тип: строка, вектор символов
По умолчанию: "10"

Вкладка Контроллер

Путь, следующий за ограничениями контроллера

Минимальное ограничение угла рулевого управления спереди в радианах.

Если минимальный угол поворота изменяется с течением времени, добавьте Minimum steering angle входной порт к блоку, выбрав Use external source.

Зависимости

Этот параметр должен быть меньше, чем параметр Maximum steering angle.

Программное использование

Параметры блоков: MinSteering
Тип: строка, вектор символов
По умолчанию: "-0.26"

Максимальное ограничение угла рулевого управления спереди в радианах.

Если максимальный угол поворота изменяется с течением времени, добавьте Maximum steering angle входной порт к блоку, выбрав Use external source.

Зависимости

Этот параметр должен быть больше, чем параметр Minimum steering angle.

Программное использование

Параметры блоков: MaxSteering
Тип: строка, вектор символов
По умолчанию: "0.26"

Ограничение автомобиля , оборудованного датчиком минимальное продольное ускорение в м/с2.

Если минимальное ускорение изменяется с течением времени, добавьте Minimum longitudinal acceleration входной порт к блоку, выбрав Use external source.

Программное использование

Параметры блоков: MinAcceleration
Тип: строка, вектор символов
По умолчанию: "-3"

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

Если максимальное ускорение изменяется с течением времени, добавьте Maximum longitudinal acceleration входной порт к блоку, выбрав Use external source.

Программное использование

Параметры блоков: MaxAcceleration
Тип: строка, вектор символов
По умолчанию: "2"
Настройки прогнозирующего контроллера модели

Шаг расчета контроллера в секундах.

Программное использование

Параметры блоков: Ts
Тип: строка, вектор символов
По умолчанию: "0.1"

Шаги горизонта предсказания контроллера. Время предсказания контроллера является продуктом шага расчета и горизонта предсказания.

Программное использование

Параметры блоков: PredictionHorizon
Тип: строка, вектор символов
По умолчанию: "30"

Горизонт управления контроллером, заданный как один из следующих:

  • Положительное целое число, меньше или равное параметру Prediction horizon. В этом случае контроллер вычисляет, m свободные движения управления происходят в моменты времени, k через k + m -1, и удерживает выходной сигнал контроллера постоянным для остальных шагов горизонта предсказания от k + m до k + p -1. Здесь k текущий контрольный интервал.

  • Вектор положительных целых чисел, [m 1, m 2,...], где сумма целых чисел равна параметру Prediction horizon. В этом случае контроллер вычисляет M блоки свободных ходов, где M - длина вектора управляющего горизонта. Первое бесплатное движение относится ко временам k через k + <reservedrangesplaceholder5> 1-1, второе бесплатное движение применяется со времени k + <reservedrangesplaceholder3> 1 через k + <reservedrangesplaceholder1> 1 + <reservedrangesplaceholder0> 2-1 и так далее. Использование шагов блоков может улучшить робастность вашего контроллера.

Программное использование

Параметры блоков: PredictionHorizon
Тип: строка, вектор символов
По умолчанию: "30"
Поведение контроллера

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

Программное использование

Параметры блоков: LongWeight
Тип: строка, вектор символов
По умолчанию: "0.1"

Настройка веса для боковой ошибки. Чтобы вызвать меньшие боковые ошибки, увеличьте этот вес.

Программное использование

Параметры блоков: LateralWeight
Тип: строка, вектор символов
По умолчанию: "1"

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

Программное использование

Параметры блоков: AccelRateWeight
Тип: строка, вектор символов
По умолчанию: "0.1"

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

Программное использование

Параметры блоков: SteerRateWeight
Тип: строка, вектор символов
По умолчанию: "0.1"

Блок»

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

Для получения дополнительной информации см. Suboptimal QP Solution.

Зависимости

После выбора этого параметра задайте параметр Maximum iteration number.

Программное использование

Параметры блоков: suboptimal
Тип: строка, вектор символов
По умолчанию: "off"

Максимальное количество итераций оптимизации контроллера.

Зависимости

Чтобы включить этот параметр, выберите параметр Use suboptimal solution.

Программное использование

Параметры блоков: maxiter
Тип: строка, вектор символов
По умолчанию: "10"

Чтобы добавить Enable optimization входной порт к блоку, выберите этот параметр.

Программное использование

Параметры блоков: optmode
Тип: строка, вектор символов
По умолчанию: "off"

Чтобы добавить External control signal входной порт к блоку, выберите этот параметр.

Программное использование

Параметры блоков: trackmode
Тип: строка, вектор символов
По умолчанию: "off"

Сгенерируйте пользовательскую подсистему PFC, которую можно изменить для своего приложения. Данные строения для пользовательского контроллера экспортируются в MATLAB® рабочая область как структура.

Можно изменить пользовательскую подсистему контроллера следующим образом:

  • Измените настройки MPC по умолчанию или используйте расширенные функции MPC.

  • Измените начальные условия контроллера по умолчанию.

  • Используйте различные настройки приложения, такие как пользовательский сейф после определения расстояния.

Алгоритмы

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

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

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

.

Генерация кода ПЛК
Сгенерируйте структурированный текстовый код с помощью Coder™ Simulink ® PLC

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