Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Model Predictive Control (MPC)

Модельное предиктивное управление (MPC) планирует короткую последовательность действий с помощью модели, выполняет только первое действие и заново строит план на каждом шаге. Разбираем компоненты, применение и код.

Модельно-прогнозное управление (MPC) — это метод управления, который использует модель системы, чтобы спрогнозировать ее поведение на коротком горизонте, выбрать последовательность действий, лучше всего отвечающую цели при соблюдении ограничений, выполнить только первое действие, а затем на следующем временном шаге повторить весь процесс с новыми измерениями. Этот цикл планирования, действия и повторного планирования называется управлением со скользящим горизонтом и позволяет контроллеру предвидеть дальнейшие события, а не только реагировать на текущую ошибку. MPC возникла в нефтепереработке и химической промышленности в конце 1970-х годов; система Dynamic Matrix Control компании Shell была одной из первых промышленных реализаций. Сейчас MPC управляет роботами, автономными транспортными средствами и климатическими системами зданий.

Компоненты контроллера MPC#

Каждый контроллер MPC состоит из четырёх компонентов:

  • Модель динамики: Предсказывает следующее состояние по текущему состоянию и действию, например изменение положения и курса автомобиля при заданном угле поворота руля. Ее можно получить из уравнений физики, идентифицировать по зарегистрированным данным или обучить нейронную сеть на записанных траекториях.
  • Функция затрат: оценивает предсказанную траекторию, обычно учитывая расстояние до цели, энергопотребление и резкие изменения управляющих сигналов.
  • Ограничения: Условия, которым должен соответствовать каждый план, например максимальный крутящий момент двигателя, ограничения скорости и запретные зоны вокруг препятствий. Явный учет ограничений — главное преимущество MPC перед классическим управлением PID, которое реагирует на ошибки, только когда они возникают, и не может заранее учитывать ограничения.
  • Оптимизатор: На каждом шаге управления ищет наилучшую последовательность действий в пределах горизонта.

Модель определяет сложность оптимизации. Линейная модель с квадратичной целевой функцией сводится к задаче квадратичного программирования, которую специализированные решатели выполняют за миллисекунды или быстрее, тогда как для нелинейных моделей нужны решатели нелинейного MPC, обычно работающие в паре с расширенным фильтром Калмана для оценки состояния, либо поиск на основе выборки. На каждом шаге управления оптимизатор выполняет внутренний цикл прогнозирования и улучшения возможных планов, а контроллер запускает внешний цикл, выполняя одно действие и начиная заново с только что измеренного состояния:

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

Скользящий горизонт в коде#

В приведённом ниже фрагменте кода контролируется тележка, которой нужно доехать до позиции 5 и остановиться. Ускорение ограничено диапазоном от -1 до 1. На каждом шаге алгоритм выбирает 500 случайных планов ускорения, прогнозирует траекторию каждого плана на основе динамики тележки, выполняет первое действие из самого дешёвого плана и строит новый план по новому состоянию:

import numpy as np

rng = np.random.default_rng(0)
position, velocity, target = 0.0, 0.0, 5.0
dt, horizon = 0.1, 30

for _ in range(100):
    # Sample 500 candidate plans of accelerations within the actuator limit of +/-1
    plans = rng.uniform(-1, 1, size=(500, horizon))
    # Predict every plan's trajectory with the cart's dynamics model
    v = velocity + dt * plans.cumsum(axis=1)
    p = position + dt * v.cumsum(axis=1)
    # Cost: distance from the target at each step plus speed at the end of the horizon
    cost = ((p - target) ** 2).sum(axis=1) + 10 * v[:, -1] ** 2
    # Apply only the first action of the cheapest plan, then replan from the new state
    velocity += dt * plans[cost.argmin(), 0]
    position += dt * velocity

print(f"position: {position:.2f}, velocity: {velocity:.2f}")

Через 10 секунд симуляции тележка находится в позиции 5.04 со скоростью 0.04. Ни один случайный план сам по себе не оказывается удачным, но выполнение одного шага и повторное планирование по измеренному состоянию непрерывно исправляют ошибки. Этот подход, называемый случайным перебором, — простейший метод в семействе MPC на основе выборки, куда также входят метод перекрестной энтропии и управление с интегралом пути, предсказывающим траекторию (MPPI); исследователи из Georgia Tech использовали MPPI, чтобы гонять раллийный автомобиль в масштабе 1:5 по грунтовой трассе.

MPC на производстве, в роботах, автомобилях и зданиях#

  • Технологические отрасли: Нефтеперерабатывающие заводы, химические предприятия и электростанции используют MPC, чтобы поддерживать температуру, давление и качество продукции вблизи предельных значений, при которых достигается максимальная производительность. Именно для таких задач этот метод и был создан.
  • Шагающие роботы: Cheetah 3 из MIT бегал и сохранял равновесие с помощью выпуклого MPC, который многократно в секунду пересчитывал силы реакции опоры; позднее MIT выпустил этот контроллер как программное обеспечение с открытым исходным кодом для Mini Cheetah.
  • Вождение: Контроллеры слежения за траекторией в беспилотных автомобилях используют MPC, чтобы плавно следовать заданному маршруту с учетом ограничений на поворот руля, ускорение и комфорт.
  • Здания: Контроллеры отопления и охлаждения за несколько часов прогнозируют температуру в помещениях на основе прогноза погоды и занятости, предварительно охлаждая или нагревая помещения, когда энергия дешевле.
  • Управление PID: Контроллер PID вычисляет выходной сигнал по текущей ошибке, ее интегралу и скорости изменения. Этот метод прост и дешев, но не моделирует будущее и не учитывает ограничения.
  • Линейно-квадратичный регулятор (LQR): Для линейной системы с квадратичной целевой функцией LQR в замкнутой форме находит оптимальный закон обратной связи на бесконечном горизонте. MPC решает конечногоризонтный вариант задачи в реальном времени, что позволяет учитывать ограничения и работать с нелинейными моделями.
  • Обучение с подкреплением: Обучение с подкреплением позволяет выучить политику по опыту до развертывания, после чего для выбора действия достаточно одного быстрого прямого прохода. MPC в реальном времени решает новую задачу оптимизации с помощью явной модели.

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

Восприятие для MPC#

Контроллер MPC планирует не лучше, чем воспринимает окружающую обстановку; в системе физического ИИ, например в роботе, перемещающемся среди людей, его состояние должно включать местоположение людей и направление их движения. Камера с Ultralytics YOLO26 в режиме трекинга предоставляет для каждого человека в каждом кадре ограничивающую рамку и постоянный ID трека. В сочетании с оценкой глубины или калибровкой камеры и фильтром Калмана эти треки дают координаты и скорости препятствий, которых должны избегать ограничения контроллера.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения