Прогнозирующий контроллер драйвера для отслеживания продольной скорости и бокового пути
Динамика автомобиля транспортное средство
Блок Predictive Driver реализует контроллер, который генерирует нормированные команды управления, ускорения и торможения, чтобы отслеживать продольную скорость и боковое эталонное перемещение. Нормированные команды могут варьироваться от -1 до 1. Контроллер использует однопутную (велосипедную) модель для оптимального одноточечного предварительного просмотра.
Используйте параметры External Actions для создания входных портов для сигналов, которые можно использовать для симуляции стандартных тестовых маневров. Блок использует этот порядок приоритета для входных команд: отключить (наивысший), удержать, переопределить.
В этой таблице представлены параметры внешнего действия.
Цель | Параметр внешнего действия | Входные порты | Тип данных |
---|---|---|---|
Переопределите команду Accelerator командой входного ускорения. | Accelerator override |
| Boolean |
| double | ||
Удерживайте команду ускорения при текущем значении. | Accelerator hold | AccelHld | Boolean |
Отключите команду ускорения. | Accelerator disable | AccelZero | Boolean |
Переопределите команду замедлителя входной командой замедления. | Decelerator override |
| Boolean |
| double | ||
Удерживайте команду замедлителя при текущем значении. | Decelerator hold | DecelHld | Boolean |
Отключите команду замедлителя. | Decelerator disable | DecelZero | Boolean |
Переопределите команду рулевого управления с помощью команды входа рулевого управления. | Steering override |
| Boolean |
| double | ||
Удерживайте команду рулевого управления при текущем значении. | Steering hold | SteerHld | Boolean |
Отключите команду рулевого управления. | Steering disable | SteerZero | Boolean |
Используйте параметр Longitudinal control type, cntrlType, чтобы задать одну из следующих опций управления.
Настройка | Реализация блока |
---|---|
| Пропорционально-интегральное (PI) управление с отслеживанием коэффициентов усиления и feedforward. |
| Управление ПИ с отслеживанием насыщения и передаточного усиления, которые являются функцией скорости транспортного средства. |
| Оптимальная одноточечная модель предпросмотра (посмотрите вперед) управления, разработанная С. С. Макадамом1, 2, 3. Модель представляет поведение управления рулевым управлением драйвера во время маневров следования по пути и избегания препятствий. Предварительный просмотр драйверов (посмотрите вперед), чтобы следовать предопределенному пути. Для реализации модели MacAdam, блок:
|
Используйте параметр Lateral control type, controlTypeLat, чтобы задать тип бокового управления. Таблица задает реализацию блока.
Настройка | Реализация блока | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Оптимальная одноточечная модель предпросмотра (посмотрите вперед) управления, разработанная С. С. Макадамом1, 2, 3. Модель представляет поведение управления рулевым управлением драйвера во время маневров следования по пути и избегания препятствий. Предварительный просмотр драйверов (посмотрите вперед), чтобы следовать предопределенному пути. | ||||||||||||
| Контроллер, который использует Stanley4 метод минимизации ошибки положения и ошибки угла текущего положения относительна ссылка положения. На панели Reference Control используйте:
|
Используйте параметр Shift type, ShftType, чтобы задать одну из следующих опций shift.
Настройка | Реализация блока |
---|---|
| Коробка передач отсутствует. Блок выводит постоянную передачу 1. Используйте эту настройку, чтобы минимизировать количество параметров, необходимых для генерации команд ускорения и торможения, чтобы отслеживать движение прямого транспортного средства. Эта настройка не допускает обратного движения транспортного средства. |
| Блок использует Stateflow® диаграмма для моделирования заднего, нейтрального и графика сдвига передач привода. Используйте эту настройку, чтобы сгенерировать команды ускорения и торможения, чтобы отслеживать движение вперед и назад транспортное средство с помощью простого планирования сдвига задней, нейтральной и ведущей передач. В зависимости от состояния транспортного средства и обратной связи по скорости транспортного средства, блок использует начальную передачу и время, необходимое для переключения транспортного средства вверх на привод или вниз на задний или нейтральный. Для нейтральных передач блок использует команды торможения, чтобы контролировать скорость транспортного средства. Для задних передач блок использует команду ускорения, чтобы сгенерировать крутящий момент, и команду тормоза, чтобы уменьшить скорость транспортного средства. |
| Блок использует диаграмму Stateflow, чтобы смоделировать расписание заднего нейтрального паркового и N-скоростного сдвига. Используйте эту настройку, чтобы сгенерировать команды ускорения и торможения для отслеживания движения вперед и назад транспортного средства с помощью планирования сдвига передачи назад, нейтралей, парковки и N-ступеней. В зависимости от состояния транспортного средства и обратной связи о скорости транспортного средства, блок использует эти параметры, чтобы определить:
Для нейтральных передач блок использует команды торможения, чтобы контролировать скорость транспортного средства. Для задних передач блок использует команду ускорения, чтобы сгенерировать крутящий момент, и команду тормоза, чтобы уменьшить скорость транспортного средства. |
| Блок использует вход передачу, транспортное средство состояние и обратную связь скорости, чтобы сгенерировать команды ускорения и торможения, чтобы отслеживать движение вперед и назад транспортное средство. Для нейтральных передач блок использует команды торможения, чтобы контролировать скорость транспортного средства. Для задних передач блок использует команду ускорения, чтобы сгенерировать крутящий момент, и команду тормоза, чтобы уменьшить скорость транспортного средства. |
Используйте параметр и Longitudinal velocity units, velUnits и Angular units, angUnits, чтобы задать модули для входа и выходных портов.
Используйте параметр Output gear signal, чтобы создать GearCmd
выходной порт. The GearCmd
сигнал содержит целое значение управляемой передачи транспортного средства.
Механизм | Целое число |
---|---|
Парк |
|
Перемена |
|
Нейтральный |
|
Двигатель |
|
Механизм |
|
Используйте параметр Output handwheel angle, чтобы задать модули для портов рулевого управления.
Настройка | Реализация блока | Порт | |
---|---|---|---|
| Командированный угол поворота, нормированный от -1 до 1. Блок использует параметр Tire wheel angle limit, theta предела насыщения угла колеса шины, чтобы нормализовать команду. |
| |
Переопределяет команду рулевого управления с вход команды рулевого управления, нормированной с -1 по 1. |
| ||
| Командированный угол поворота, в модулях, заданных Angular units, angUnits. |
| |
Переопределяет команду рулевого управления с входом командой рулевого управления в модулях, заданной Angular units, angUnits. |
|
Если вы задаете тип элемента управления PI
или Scheduled PI
блок реализует пропорционально-интегральное (PI) управление с отслеживанием коэффициентов усиления и feedforward. Для Scheduled PI
строение, блок использует коэффициент усиления передачи, которые являются функцией скорости транспортного средства.
Чтобы вычислить выход регулировки скорости, блок использует эти уравнения.
Настройка | Уравнение |
---|---|
|
|
|
|
Фильтр lowpass ошибки скорости использует эту передаточную функцию.
Чтобы вычислить команды ускорения и торможения, блок использует эти уравнения.
В уравнениях используются эти переменные.
vnom | Номинальная скорость транспортного средства |
Kp | Пропорциональная составляющая |
Ki | Интегральная составляющая |
Kaw | Анти-обмотка усиления |
Kff | Скоростной передаточный коэффициент усиления |
Kg | Feedforward угла ранга |
θ | Угол уклона |
τerr | Постоянная времени фильтрации ошибок |
y | Номинальная выходная величина управления |
ysat | Насыщенная выходная величина управления |
eref | Ошибка скорости |
eout | Различие между насыщенным и номинальным выходами управления |
yacc | Сигнал ускорения |
ydec | Сигнал торможения |
v | Сигнал обратной связи по скорости |
vref | Опорный сигнал скорости |
Если вы задаете Longitudinal control type, cntrlType или Lateral control type, cntrlType Predictive
, блок реализует оптимальную модель предпросмотра с одной точкой (посмотрите вперед) управления, разработанную C. C. macAdam1, 2, 3. Модель представляет поведение управления рулевым управлением драйвера во время маневров следования по пути и избегания препятствий. Предварительный просмотр драйверов (посмотрите вперед), чтобы следовать предопределенному пути. Для реализации модели MacAdam, блок:
Представляет динамику как линейное одноколейное (велосипедное) транспортное средство
Минимизирует предварительно просматриваемый сигнал ошибки в одной точке T* секундах вперед по времени
Учитывает задержку драйвера, вытекающую из перцепционных и нервно-мышечных механизмов
Для бокового и рыскательного движения, блок реализует эти линейные динамические уравнения.
В матричном обозначении:
Одноточечная модель принимает минимальный предварительно просмотренный сигнал ошибки в одной точке T* секундах вперед по времени. a* является способностью драйвера предсказать будущую реакцию транспортного средства на основе текущего входа управления рулевым управлением. b* является способностью драйвера предсказать будущий ответ транспортного средства на основе текущего состояния транспортного средства. Блок использует эти уравнения.
В уравнениях используются эти переменные.
a, b | Расположение шин вперед и назад, соответственно |
m | Масса транспортного средства |
I | Инерция вращения транспортного средства |
CɑF | Коэффициент поворота передней шины |
CɑR | Коэффициент поворота задней шины |
a*, b* | Скаляр предсказания драйвера и векторное усиление, соответственно |
x | Предсказанный вектор состояния транспортного средства |
v | Поперечная скорость |
r | Скорость рыскания |
Ψ | Угол рыскания переднего колеса |
y | Боковое перемещение |
F | Системная матрица |
δ, δF | Угол поворота и угол поворота передней оси, соответственно |
γ | Угол уклона |
g | Вектор коэффициента управления |
U | Скорость прямого (продольного) транспортного средства |
T* | Предварительный просмотр временного окна |
ƒ(t+T*) | Предварительно просматриваемый путь на T * секунд вперед |
u | Тяговая сила |
mT | Вектор постоянного наблюдения; обеспечивает боковое положение транспортного средства |
ar | Статическое сопротивление качения и привода |
br | Линейное сопротивление качения и привода |
cr | Аэродинамическое сопротивление качения и привода |
Fr | Сопротивление качению |
Одноточечная модель, реализованная блоком, находит команду рулевого управления, которая минимизирует локальный индекс эффективности, J, за текущий интервал предварительного просмотра (t, t+T).
Чтобы минимизировать J относительно команды рулевого управления, это условие должно быть выполнено.
Можно выразить оптимальное решение по управлению с точки зрения текущей неоптимальной и соответствующей ненулевой выходной ошибки предварительного просмотра на T* секунд вперед1, 2, 3.
Блок использует расстояние предварительного просмотра и продольную скорость транспортного средства, чтобы определить временное окно предварительного просмотра.
В уравнениях используются эти переменные.
T* | Предварительный просмотр временного окна |
ƒ(t+T*) | Предварительно просматриваемый путь на T* с вперед |
y(t+T*) | Предварительный просмотр выходных данных объекта T* с опережением |
e(t+T*) | Предварительно просматриваемый сигнал ошибки на T* секунд вперед |
u(t), uo(t) | Угол поворота и оптимальный угол поворота, соответственно |
L | Предварительный просмотр расстояния |
J | Индекс эффективности |
U | Скорость прямого (продольного) транспортного средства |
Одноточечная модель, реализованная блоком, вводит задержку драйвера. Задержка драйвера учитывает задержку, когда драйвер отслеживает задачи. В частности, это задержка транспорта, вытекающая из перцепционных и нервно-мышечных механизмов. Чтобы вычислить драйвер задержку переноса, блок реализует это уравнение.
В уравнениях используются эти переменные.
τ | Задержка транспортировки драйвера |
y(t+T*) | Предварительный просмотр выходных данных объекта T* с опережением |
e(t+T*) | Предварительно просматриваемый сигнал ошибки на T* секунд вперед |
u(t), uo(t) | Угол поворота и оптимальный угол поворота, соответственно |
J | Индекс эффективности |
Если вы задаете Lateral control type, controlTypeLat Stanley
, блок реализует метод Стэнли4. Чтобы вычислить команду угла поворота, контроллер Стэнли минимизирует ошибку положения и ошибку угла текущего положения относительно положения ссылки. Направление движения транспортного средства определяет эти значения ошибки.
Чтобы вычислить команду угла поворота, контроллер минимизирует ошибку положения и ошибку угла текущего положения относительно положения ссылки.
Это position error - боковое расстояние от центра тяжести транспортного средства (CG) до контрольной точки на пути.
angle error является углом транспортного средства относительно ссылки пути.
[1] MacAdam, C. C. «Оптимальное управление предпросмотром для линейных систем». Журнал динамических систем, измерений и управления. Том 102, № 3, сентябрь 1980.
[2] MacAdam, C. C. «Application of Optimal Preview Control for Simulation of Closed-Loop Automobile Driving». Транзакции IEEE по системам, человеку и кибернетике. Том 11, выпуск 6, июнь 1981 года.
[3] MacAdam, C. C. Разработка моделей взаимодействия водитель/машина с управлением для динамического анализа. Окончательный технический отчет UMTRI-88-53. Энн Арбор, Мичиган: Научно-исследовательский институт транспорта Мичиганского университета, декабрь 1988 года.
[4] Гофман, Габриэль М., Клэр Дж. Томлин, Майкл Монтемерло и Себастьян Трун. Autonomobile Automobile Trajectory Tracking for Off-Road Driving: Проектирование контроллера, Experimental Validation and Racing (неопр.) (недоступная ссылка). Американская контрольная конференция. 2007, стр 2296–2301. doi:10.1109/ACC.2007.4282788