Дорожная карта обученияСредний

ПИД-регулятор (PID) для роботов: дорожная карта обучения

Преобразуйте шумное измерение в сглаженный сигнал ошибки и настройте устойчивый ПИД-регулятор, который отслеживает заданное значение без колебаний.

ПИД-регулятор — основной рабочий инструмент робототехники: он превращает различие между тем, где робот находится, и тем, где он должен находиться, в корректирующее воздействие. Но регулятор хорош лишь настолько, насколько хорош входной сигнал, поэтому эта дорожная карта начинается с фильтрации шумных данных датчиков, а затем учит настраивать пропорциональную, интегральную и производную составляющие, чтобы робот отслеживал заданное значение плавно, а не колебался.

Порядок практических узлов имеет значение. Сначала настройте изолированный контур ПИД, где одна уставка и один объект управления позволяют отдельно увидеть перерегулирование, колебания и ошибку установившегося режима. Только после этого перенесите те же три коэффициента на робота, следующего по линии, где объект сопротивляется воздействиям, а ошибка поступает от реального датчика; именно здесь настройка становится менее предсказуемой.

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

Прежде чем начать

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

Чему вы сможете научиться

  • Настраивать P, затем I, затем D в осознанном порядке, а не менять три числа одновременно в надежде на удачу.
  • Читать кривую отклика и определять по её форме проблему: перерегулирование, установившиеся колебания или неустраняемую ошибку установившегося режима.
  • Распознавать интегральное насыщение при насыщении исполнительного механизма и устранять его ограничением, а не уменьшением коэффициента до исчезновения симптома.
  • Вложить два контура так, чтобы внешний регулятор изменял уставку внутреннего.

Где обычно возникают трудности

Одновременная настройка трёх коэффициентов. При трёх взаимодействующих параметрах и одном выходном сигнале одновременное изменение всего означает, что вы не поймёте, что именно изменилось. Увеличивайте P до колебаний и отступайте; только затем добавляйте D, а I — последней и лишь при сохраняющемся постоянном смещении.

Вычисление производной ошибки. При скачке уставки ошибка скачет вместе с ней, и её производная кратковременно огромна — робот дёргается без физической причины. Берите производную измерения. Математика практически та же, а выброс исчезает.

Передача шума в D. Дифференцирование усиливает шум. Если сигнал датчика нестабилен, D превращает эту нестабильность в команды двигателям. Сначала выполняйте фильтрацию — поэтому путь начинается с шума датчиков, а не с регулятора.

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

Непостоянная частота контура. И I, и D зависят от прошедшего времени. Если контур запускается всякий раз, когда ему случается завершиться, обе составляющие вычисляются на основе неверного интервала. Зафиксируйте интервал либо измеряйте его и передавайте в расчёты фактическое прошедшее время.

Что понадобится

Что Зачем это нужно пути Примечания
Объект управления, на который можно воздействовать Что-то, что реагирует на команду и приходит к установившемуся состоянию: двигатель, нагреватель, робот Если объекта нет, симуляторы заменят все три варианта
Способ построить график Настройка по наблюдению за роботом — угадывание; по чтению кривой — нет Плоттер для последовательного порта или лабораторные работы этого пути
Фиксированный интервал контура I и D вычисляются по прошедшему времени. Контур, запускающийся после завершения, вычисляет их на основе неверного интервала Шаблон с millis()
Терпение настраивать по одному параметру Весь метод —

Все узлы этого пути можно пройти в браузере. Три лабораторные работы используют настоящие регуляторы и настоящие (моделируемые) объекты управления, а процедура настройки непосредственно переносится на оборудование — именно в этом и состоит смысл начать здесь.

Почему путь устроен именно так

Порядок выбран так, чтобы каждый этап добавлял ровно одну новую трудность.

Сначала фильтрация, потому что регулятор хорош лишь настолько, насколько хорош его вход, а D наказывает за пропуск этого этапа. Дифференцирование усиливает шум: датчик с разбросом ±2 отсчётов при опросе каждые 10 ms даёт оценку производной с размахом 200 отсчётов в секунду, и D превращает это прямо в команды двигателям. Настройка по нефильтрованному сигналу учит неверному выводу, что D бесполезен.

Изолированный контур идёт перед роботом, потому что изолирует регулятор. Одна уставка, один объект управления, три коэффициента — и ни геометрии рулевого управления, ни размещения датчиков, ни проскальзывания колёс. Если перерегулирование возникает здесь, его причина в коэффициентах, и другого объяснения быть не может.

Робот, следующий по линии, идёт следующим, потому что добавляет сразу две реальные сложности: ошибка теперь поступает от настоящего датчика с ограниченным полем зрения, а объект управления сопротивляется — собственное движение робота изменяет ошибку быстрее, чем ожидает регулятор. Именно здесь настройка, которая выглядела завершённой, перестаёт быть таковой.

Балансирующий робот завершает путь, и в нём заключается смысл всего пути. Все предыдущие объекты управления устойчивы: без воздействия они остаются на месте, поэтому настройка является оптимизацией. Перевёрнутый маятник неустойчив — оставьте его на одну секунду, и он окажется на полу. Это единственное изменение превращает хорошую настройку из улучшения в требование и подводит к структурной идее, на которой заканчивается путь: если нельзя задать то, что важно, нужно вложить два контура.

Контрольные точки: как проверить усвоение этапа

Этап Проверка Признак успешного прохождения
Фильтрация Постройте на одних осях графики исходного и отфильтрованного сигнала, воздействуя на датчик Можете указать в миллисекундах задержку, которую вносит фильтр, и объяснить, почему она оправдана
Только P Увеличьте P до установившихся колебаний, запишите значение и уменьшите вдвое Получите число для критического коэффициента, а отклик теперь перерегулируется и стабилизируется
Добавить D Увеличивайте D, пока перерегулирование не уменьшится Перерегулирование снижается без вялости отклика; при слишком большом D отклик становится рваным
Добавить I Только если сохраняется постоянное смещение Смещение устраняется, а перед проверками вблизи насыщения ограничен диапазон накопителя
Чтение кривой Посмотрите на три отклика и определите проблему каждого Только по форме различаете перерегулирование, установившиеся колебания и ошибку установившегося режима
Насыщение Задайте уставку далеко за пределами достижимого исполнительного механизма, затем снимите команду Система не проходит мимо при снятии команды — если проходит, ограничение накопителя отсутствует
Частота контура Выведите фактический интервал в течение минуты Он фиксирован либо фактическое прошедшее время передаётся в расчёты
Каскадирование Задайте положение на балансирующем объекте Внутренний контур работает в несколько раз быстрее внешнего, и вы можете назвать отношение

Где заканчивается этот путь

ПИД-регулятор — рабочий инструмент, но не исчерпывает дисциплину, и этот путь честно обозначает свою границу.

Он заканчивается управлением с одним входом и одним выходом. У реальных роботов часто есть несколько связанных контуров, которые мешают друг другу; для них существует целая дисциплина, которой ПИД-регулятор не занимается.

Он не рассматривает упреждающее управление, то есть самое значительное практическое улучшение, которого недостаёт большинству робототехнических контуров. По своей природе ПИД-регулятор реагирует и не может действовать до появления ошибки. Если нужное движение уже известно, можно заранее вычислить большую часть требуемого выходного воздействия, оставив ПИД-регулятору только коррекцию ошибки. Учебное руководство по профилям движения — первая половина этой идеи.

Он не рассматривает управление на основе модели — линейно-квадратичный регулятор (LQR), размещение полюсов или что-либо, начинающееся с записи уравнений объекта управления. Они дают лучшие результаты при точной модели, которой обычно нет у небольших роботов.

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

Дорожная карта обучения

Путь

Проходите узлы по порядку — каждый открывает следующий, когда вы его выполните. Ваш прогресс сохраняется на этом устройстве.

0 / 7 выполнено

100%
Руководство

Фильтруйте и объединяйте шумные данные датчиков

Пошаговое руководство

Открыть руководство
Симулятор

Тренируйтесь на изолированном контуре ПИД

Интерактивно

Открыть симулятор
Цель

Настройте устойчивый регулятор

Навык открыт

Частые вопросы

Часто задаваемые вопросы

В каком порядке настраивать коэффициенты ПИД-регулятора?

Сначала P, затем D, затем I и каждый раз только один. Увеличьте коэффициент пропорциональной составляющей до установившихся колебаний отклика, затем уменьшите его примерно вдвое: это классическая начальная точка Ziegler–Nichols, которая быстро приближает к результату. Затем добавьте производную составляющую, чтобы погасить вызванное P перерегулирование. Интегральную составляющую добавляйте последней и только если сохраняется постоянное смещение, которое одной P не устраняет. Одновременное изменение всех трёх ничему не учит: при трёх взаимодействующих параметрах и одном выходном сигнале невозможно определить, какой из них вызвал наблюдаемое изменение.

Почему мой ПИД-регулятор колеблется?

Обычно коэффициент пропорциональной составляющей слишком велик для задержки объекта управления. В каждом контуре есть запаздывание — фильтрация датчика, инерция двигателя и сам интервал контура, — а P действует на уже устаревшую ошибку. При превышении некоторого коэффициента коррекция приходит достаточно поздно, чтобы ухудшить систему, и в контуре возникают установившиеся колебания. Уменьшите P и добавьте D: производная действует на скорость изменения и потому работает с опережением. Если колебания частые и рваные, а не плавные, вероятно, шум попадает в D: дифференцирование усиливает шум, и нестабильные показания датчика превращаются в нестабильные команды двигателям.

Что такое интегральное насыщение и как его устранить?

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

Переносятся ли коэффициенты ПИД-регулятора на другого робота?

Нет, зачастую даже на того же робота завтра. Коэффициенты зависят от объекта управления, а не от алгоритма; объект включает заряд батареи, массу шасси, поверхность и температуру редуктора. Настройка, идеальная на свежих батареях, станет вялой на разряженных, поскольку та же скважность теперь создаёт меньший момент. Поэтому путь требует настраивать по процедуре, а не копировать числа: процедура переносится, хотя коэффициенты — нет.

Почему берут производную из измерения, а не из ошибки?

Потому что при скачке уставки ошибка скачет вместе с ней, а производная скачка кратковременно огромна. Робот резко дёргается по причине, не связанной с физикой: ничего не переместилось, вы лишь запросили другое. Дифференцирование измерения даёт ту же информацию о фактической скорости изменения системы без выброса при изменении уставки. Изменение занимает одну строку кода и почти всегда является правильным.

Что такое каскадный ПИД-регулятор и когда он нужен?

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