ПИД-регулятор. Описание и принцип работы.

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

Итак, что у нас имеется?

Во-первых, объект, температуру которого необходимо поддерживать на заданном уровне, кроме того, эту температуру необходимо регулировать извне. Во-вторых, наше устройство на базе микроконтроллера, с помощью которого мы и будем решать поставленную задачу. Кроме того, у нас есть измеритель температуры (он сообщит контроллеру текущую температуру) и какое-нибудь устройство для управления мощностью нагревателя. Ну и поскольку необходимо как-то задавать температуру, подключим микроконтроллер к ПК.

Принцип работы ПИД-регулятора

Таким образом, у нас есть входные данные:

  • текущая температура,
  • температура, до которой необходимо нагреть/остудить объект.

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

Начнем с пропорциональной составляющей. Здесь все просто, берем значение нужной нам температуры (уставку) и вычитаем из него значение текущей температуры. Получаем рассогласование (невязку). Умножаем полученную невязку на коэффициент и получаем значение мощности, которое и передаем на нагреватель. Вот и все!

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

Например, когда мы добились того, чтобы температуры объекта была равна нужному нам значению, невязка стала равна нулю. А вместе с ней и выдаваемая мощность стала нулевой. Но температура не может просто так оставаться постоянной, поскольку происходит теплообмен с окружающей средой и объект охлаждается. Таким образом, при использовании только пропорциональной составляющей температура будет колебаться около нужного нам значения.

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

Для решения первой используется дифференциальная составляющая. Она противодействует предполагаемым отклонениям регулируемой величины, которые могут произойти в будущем. Каким образом? Сейчас разберемся!

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

С этим вроде разобрались, вспоминаем про вторую проблему регулятора 🙂

А с ней нам поможет справиться интегральная составляющая. Как нам в программе получить интеграл? А легко – просто суммированием (накоплением) значений невязки, на то он и интеграл! Возвращаемся к нашему примеру. Температура ниже значения уставки, начинаем подогревать. Пока мы нагреваем, значение невязки положительное и накапливается в интегральной составляющей. Когда температура “дошла” до нужного нам значения, пропорциональная и дифференциальная составляющая стали равны нулю, а интегральная перестала изменяться, но ее значение не стало равным нулю.

Таким образом, благодаря накопленному интегралу мы продолжаем выдавать мощность и нагреватель поддерживает нужную нам температуру, не давая объекту охлаждаться. Вот так вот просто и эффективно 🙂

В итоге мы получаем следующую формулу ПИД-регулятора:

Формула ПИД-регулятора.

Тут  u(t) – искомое выходное воздействие, а e(t) – значение невязки. Частенько формулу преображают к следующему виду, но суть от этого не меняется:

ПИД-регулятор.

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

Поделиться!

Подписаться
Уведомление о
guest
20 Комментарий
старее
новее большинство голосов
Inline Feedbacks
View all comments
sob
sob
6 лет назад

Правильно ли я понимаю, что интегральная составляющая остановится на каком-то одном значении и будет колебаться возле нее?
И еще, при вычислении производной, в первый раз что брать в качестве предыдущей невязки?

sob
sob
6 лет назад

Понял, спасибо.

Роман Лысюк
6 лет назад

всегда интересовасля пид-регуляторами. спасибо за пояснение

Иоанн
Иоанн
5 лет назад

Спасибо большое за эти статьи. Как раз возникла аналогичная задача. Имеются два двигателя от шуруповёртов и датчики количества оборотов и необходимо, чтобы они производили одинаковое количество оборотов всегда, ну или пропорционально один больше другого на определённое количество. Начал сам придумывать как это реализовать. Додумался до пропорциональной и дифференциальной составляющей, но чувствовал, что чего-то не хватает. Ваша статья всё прояснила – оказывается всё давным давно придумано. Ещё раз спасибо!

Старый_киповец
Старый_киповец
4 лет назад

CMSIS-DSP Verison 1.1.0
CMSIS DSP Software Library
Там есть ВСЁ

Андрей
Андрей
4 лет назад

Классно изложили суть всех составляющих объяснив как они себя ведут в процессе, это самое ценное. Спасибо

Даниил
Даниил
3 лет назад

Cпасибо Вам большое!

Виталий
Виталий
2 лет назад

Статья очень понравилась.В данное время будем применять ТРМ вместо автотрансформаторов для регулирования температуры в 3 зонной электрической печи.И вот какие коэффиценты при ПИД регулировании установить нужно.
С уважением Виталий.

Muxri
Muxri
2 лет назад

спасибо, написал курсач за 5 минут

Эдуард
Эдуард
2 лет назад

“Дифференциальная составляющая вносит свой вклад в мощность и представляет из себя производную температуры, взятую также с определенным коэффициентом (в программе для контроллера необходимо брать разницу между текущим значением невязки и предыдущим).”

Производная температуры это не разница между текущим значением невязки и предыдущим. Это наверно описка. Спасибо.

Alex
Alex
Reply to  Эдуард
2 лет назад

Всетаки наверное это разница между текущим и вредыдущем значениями отклонения измеряемого сигнала помноженного на дифференциальный коэфfициент. Kd*(e(n) – e(n – 1)) = Kd*e(n) – Kd*e(n-1)

Матвей
2 лет назад

ОТ души ребята, чётко и понятно)) классная статья!

Виталик
Виталик
2 месяцев назад

Первая из около 10 ти статей, где написано доходчиво как работает PID регулятор. спасибо

Присоединяйтесь!

Profile Profile Profile Profile Profile
Vkontakte
Twitter

Язык сайта

Август 2020
Пн Вт Ср Чт Пт Сб Вс
 12
3456789
10111213141516
17181920212223
24252627282930
31  

© 2013-2020 MicroTechnics.ru