Path Following Control System

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

  • Библиотека:
  • Model Predictive Control Toolbox / Автоматизированное Управление

  • Path Following Control System block

Описание

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

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

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

Порты

Входной параметр

развернуть все

Скоростное заданное значение автомобиля, оборудованного датчиком в m/s. Когда нет никакого ведущего транспортного средства, контроллер отслеживает эту скорость.

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

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

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

Скорость автомобиля, оборудованного датчиком в m/s.

Дорожное искривление в виде 1/R, где R является радиусом кривой в метрах.

Дорожное искривление:

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

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

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

Модели контроллеров дорожное искривление как измеренное воздействие с предварительным просмотром. Можно задать искривление как a:

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

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

Отклонение ответвления автомобиля, оборудованного датчиком в метрах от средней линии маршрута. Боковой e отклонения 1 положителен, когда автомобиль, оборудованный датчиком справа от средней линии и отрицателен, когда автомобиль, оборудованный датчиком слева от средней линии.

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

e2=θeθc

Здесь, θe является углом автомобиля, оборудованного датчиком, и θc является углом средней линии с обоими углами, заданными в системе координат глобальной координаты.

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

Оптимизация контроллера включает сигнал. Когда этот сигнал:

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

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

Зависимости

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

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

  • 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.

Вывод

развернуть все

Ускоряющий управляющий сигнал в m/s2 сгенерированный контроллером.

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

Параметры

развернуть все

Вкладка параметров

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

Выберите этот параметр, чтобы задать модель автомобиля, оборудованного датчиком, используемую контроллером 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"

Масса автомобиля, оборудованного датчиком в kg.

Зависимости

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

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

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

Момент инерции об автомобиле, оборудованном датчиком вертикальная ось в Kg · m2.

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

Чтобы включить этот параметр, выберите параметр 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]"

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

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

Примечание

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

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

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

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

1τs+1

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

Параметры блоков: TransportLag
Ввод: строка, вектор символов
Значение по умолчанию: "0"
Разрядка управления

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, выберите параметр 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"

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

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

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

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

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

Если максимальное ускорение варьируется в зависимости от времени, добавьте входной порт 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 +m1-1, второе свободное перемещение применяется со времени k +m1 через k +m1+m2-1 и так далее. Используя перемещения блока может улучшить робастность вашего контроллера.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Блокируйте вкладку

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

Для получения дополнительной информации смотрите Субоптимальное Решение QP.

Зависимости

После выбора этого параметра задайте параметр 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++ с помощью Simulink® Coder™.

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

Смотрите также

Блоки

Введенный в R2019a