exponenta event banner

Система управления путем следования

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

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

  • Path Following Control System block

Описание

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

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

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

Порты

Вход

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

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

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

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

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

Скорость эго транспортного средства в м/с.

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

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

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

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

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

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

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

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

Боковое отклонение эго-транспортного средства в метрах от осевой линии полосы движения.

Угол продольной оси эго-транспортного средства в радианах от осевой линии полосы движения.

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

  • Без нуля контроллер выполняет вычисления оптимизации и генерирует сигналы управления продольным ускорением и углом поворота рулевого управления.

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

Зависимости

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

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

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

  • Привод рулевого управления или ускорения выходит из строя и не подает правильный управляющий сигнал на эго-транспортное средство.

Зависимости

Чтобы включить этот порт, выберите параметр Use external control signal for bumpless transfer между PFC и другими контроллерами.

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

Модель прогнозирования эго-транспортного средства, определенная матрицей динамики транспортного средства A, матрицей динамики транспортного средства B и матрицей динамики транспортного средства C, должна быть минимальной.

Зависимости

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

Матрица ввода в состояние прогнозной модели эго-транспортного средства. Количество строк в этом сигнале должно соответствовать количеству строк в матрице динамики транспортного средства A.

Модель прогнозирования эго-транспортного средства, определенная матрицей динамики транспортного средства A, матрицей динамики транспортного средства B и матрицей динамики транспортного средства C, должна быть минимальной.

Зависимости

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

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

Модель прогнозирования эго-транспортного средства, определенная матрицей динамики транспортного средства A, матрицей динамики транспортного средства B и матрицей динамики транспортного средства C, должна быть минимальной.

Зависимости

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

Продукция

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

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

Сигнал управления углом поворота переднего руля в радианах, формируемый контроллером. Угол переднего рулевого управления - это угол передних шин от продольной оси транспортного средства. Угол поворота является положительным по отношению к положительной поперечной оси эго-транспортного средства.

Параметры

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

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

Транспортное средство Ego

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

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

  • Общая масса

  • Момент инерции рыскания

  • Продольное расстояние от центра тяжести до передних шин

  • Продольное расстояние от центра тяжести до задних шин

  • Жесткость передних шин при повороте

  • Жесткость задних шин при повороте

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

Дополнительные сведения о модели эго-транспортного средства см. в разделе Прогнозная модель эго-транспортного средства

При выборе этого параметра удаляется параметр Использовать модель транспортного средства (Use vehicle model).

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

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

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

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

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

Дополнительные сведения о модели эго-транспортного средства см. в разделе Прогнозная модель эго-транспортного средства

При выборе этого параметра удаляется параметр Использовать параметры транспортного средства.

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

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

Масса эго-транспортного средства в кг.

Зависимости

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

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

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

Момент инерции относительно вертикальной оси эго транспортного средства в кг· м2.

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Исходная прогностическая модель эго-транспортного средства, определенная A, B и C, должна быть минимальной.

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

Зависимости

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

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

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

Начальная матрица ввода в состояние прогнозной модели эго-транспортного средства. Количество строк в этом параметре должно соответствовать количеству строк в A.

Исходная прогностическая модель эго-транспортного средства, определенная A, B и C, должна быть минимальной.

Как правило, модель эго-транспортного средства изменяется во времени. Для обновления матрицы «вход-состояние» во время выполнения используется входной порт Vehicle Dynamics B.

Зависимости

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

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

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

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

Исходная прогностическая модель эго-транспортного средства, определенная A, B и C, должна быть минимальной.

Как правило, модель эго-транспортного средства изменяется во времени. Для обновления матрицы «состояние-выход» во время выполнения используйте входной порт Vehicle Dynamics C.

Зависимости

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

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

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

Начальная скорость модели эго-транспортного средства в м/с, которая может отличаться от фактической начальной скорости эго-транспортного средства.

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

Примечание

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

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

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

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

1τs+1

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

Зависимости

Этот параметр должен быть меньше параметра Максимальный угол поворота.

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

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

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

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

Зависимости

Этот параметр должен быть больше параметра «Минимальный угол поворота».

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

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

Минимальное ограничение продольного ускорения эго-транспортного средства в м/с2.

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

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

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

Максимальное ограничение продольного ускорения эго-транспортного средства в м/с2.

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

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

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

Время выборки контроллера в секундах.

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

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

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

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

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

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

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

  • Вектор положительных целых чисел, [m1, m2,...], где сумма целых чисел равна параметру горизонта прогнозирования. В этом случае контроллер вычисляет М блоков свободных перемещений, где М - длина вектора управляющего горизонта. Первое свободное перемещение применяется к временам 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"

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

Зависимости

Чтобы включить этот параметр, выберите параметр Использовать неоптимальное решение.

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритмы

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

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

.
Представлен в R2019a