Pid

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


Что такое ПИД-регулятор?

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

Буквы PID означают:

  • Пропорциональный
  • Интеграл
  • Производная

По сути, алгоритм PID принимает две переменные:

  • Текущее измеренное значение (например, текущая температура в аквариуме)
  • Желаемая (целевая) температура (например, 25 °C)

Выход — это управляемая переменная (например, в данном случае количество энергии, подаваемой на нагреватель).

Например, если измеренная температура была 20 °C, а целевая температура – 25 °C, то управляемая переменная может быть равна 5 (разнице между целевым и фактическим значением).

Параметр конфигурации proportional просто умножает ошибку на фиксированную (пропорциональную) величину. Таким образом, в этом случае по мере того, как температура резервуара приближается к целевому значению, мощность нагревателя будет уменьшаться.

Параметр конфигурации derivative умножает ошибку на производную от ошибки (то есть на скорость изменения ошибки). Это означает, что вы можете уменьшить мощность по мере приближения температуры к целевому значению, чтобы не допустить превышения.

Параметр конфигурации интегральный умножает ошибку на накопление прошлых ошибок, чтобы компенсировать слишком медленное или слишком быстрое применение исправлений.


Библиотека

Существует библиотека Arduino PID (см. ссылку ниже), которая позволяет вам указать соответствующие переменные (цель, ошибка) и параметры настройки (P, I и D).

Вы вызываете функцию Compute время от времени (например, при прохождении основного цикла), и она вычисляет новую управляемую переменную, которую вы затем будете использовать для управления вашим нагревателем/двигателем/охладителем. / свет или что-то, чем вы управляете.


Ссылка

  • Википедия: ПИД-регулятор
  • Arduino Playground: библиотека PID
  • Arduino-PID-Library на GitHub
  • Улучшение PID для начинающих — введение/документация

Вопросы, связанные с [pid]:

  • 1