Longitudinal Controller Stanley

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

  • Библиотека:
  • Автоматизированное Приводное Транспортное средство

  • Longitudinal Controller Stanley block

Описание

Блок Longitudinal Controller Stanley вычисляет команды ускорения и замедления, в метрах в секунду, которые управляют скоростью транспортного средства. Задайте базовую скорость, скорость тока и направление движения тока. Контроллер вычисляет эти команды с помощью метода Стэнли [1], который блок реализует как дискретный пропорционально-интегральный (PI) контроллер с интегральным анти-насыщением. Для получения дополнительной информации см. «Алгоритмы».

Можно также вычислить команду угла поворота транспортного средства с помощью метода Стэнли. Смотрите блок Lateral Controller Stanley.

Порты

Вход

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

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

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

Направление движения транспортного средства, заданное как 1 для движения вперед и -1 для обратного движения.

Триггер, чтобы сбросить интеграл ошибки скорости, e (k), к нулю. Значение 0 удерживает e (k) устойчивым. Ненулевое значение сбрасывает e (k).

Выход

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

Команда Acceleration, возвращенная как действительный скаляр в области значений [0, M A], где M A - значение параметра Maximum longitudinal acceleration (m/s^2).

Команда замедления, возвращенная как действительный скаляр в области значений [0, M D], где M D - значение параметра Maximum longitudinal deceleration (m/s^2).

Параметры

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

Пропорциональная составляющая контроллера, K p, задаётся как положительный действительный скаляр.

Интегральная составляющая контроллера, K i, задаётся как положительный действительный скаляр.

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

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

Блок насыщает выход из AccelCmd в область значений [0, M A], где M A является значением этого параметра. Значения выше M A устанавливаются в M A.

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

Блок насыщает выход от порта DecelCmd до области значений [0, M D], где M D является значением этого параметра. Значения выше M D устанавливаются равными M D.

Алгоритмы

Блок Longitudinal Controller Stanley реализует дискретный пропорционально-интегральный (PI) контроллер с интегральным анти-насыщением, как описано параметром Anti-windup method (Simulink) блока ПИД-регулятор. Блок использует это уравнение:

u(k)=(Kp+KяTszz1)e(k)

  • u (k) является управляющим сигналом на k-м временном шаге.

  • K p является пропорциональной составляющей, заданным параметром Proportional gain, Kp.

  • K i является интегральной составляющей, заданным параметром Integral gain, Ki.

  • T s - шаг расчета блока в секундах, заданное параметром Sample time (s).

  • e (k) является ошибкой скорости (CurrVelocity - RefVelocity) на k-м временном шаге. Для каждого k эта ошибка равна различию между входами текущей скорости и опорной скорости (CurrVelocity - RefVelocity).

Сигнал управления, u, определяет значение команды AccelCmd ускорения и команды DecelCmd замедления. Блок насыщает команды ускорения и замедления соответствующими областями значений [0, M A] и [0, M D], где:

  • M A является значением параметра Maximum longitudinal acceleration (m/s^2).

  • M D является значением параметра Maximum longitudinal deceleration (m/s^2).

На каждом временном шаге только одно из AccelCmd и DecelCmd значений портов положительно, а другое значение порта 0. Другими словами, транспортное средство может ускоряться или замедляться за один временной шаг, но она не может сделать оба в один момент времени.

Направление движения, заданное в Direction входном порте, определяет, какая команда положительна на заданном временном шаге.

Значение порта направленияУправляйте Значением сигналов u (k)Значение порта AccelCmdЗначение порта DecelCmdОписание
1 (движение вперед)

u (<reservedrangesplaceholder0>)> 0

положительный действительный скаляр0Транспортное средство ускоряется, когда она движется вперед

u (<reservedrangesplaceholder0>) <0

0положительный действительный скалярТранспортное средство замедляется, когда она движется вперед
-1 (обратное движение)

u (<reservedrangesplaceholder0>)> 0

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

u (<reservedrangesplaceholder0>) <0

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

Ссылки

[1] Гофман, Габриэль М., Клэр Дж. Томлин, Майкл Монтемерло и Себастьян Трун. Autonomobile Automobile Trajectory Tracking for Off-Road Driving: Проектирование контроллера, Experimental Validation and Racing (неопр.) (недоступная ссылка). Американская контрольная конференция. Август 2007, с. 2296-2301. doi:10.1109/ACC.2007.4282788.

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

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

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