[Из песочницы] Симуляция ПИД-регулятора температуры

Поискал я статьи на данном ресурсе на тему ПИД-регуляторов. Много статей. И с объяснением принципов работы таких регуляторов. И с алгоритмами подбора параметров. И с реализацией на конкретных железках и программах. Не увидел одного — симуляции ПИД-регуляторов на моделях, с тем, чтобы пользователь без использования без всякого железа мог «пощупать» работу ПИД-регулятора.

Для этого создана матмодель нагревательного элемента с датчиком температуры и ПИД-регулятором (разумеется, с кучей упрощений, но без ущерба для реалистичности). Реализовано это на обычном Excel. С тем, чтобы любой пользователь мог сам «покрутить» виртуальные параметры, и посмотреть, что из этого выходит. Собственно, я эту модель в своё время и сделал как раз для того, чтобы «потрогать» своими руками процесс ПИД-регулирования.
Сама модель имеет следующие параметры:

  • Кf инерционности нагреваемого тела (масса, уд. теплоёмкость, изоляция)
  • Температура окружающей среды °С
  • Начальная температура тела °С


ПИД-регулятор имеет параметры:

  • Целевая температура °С
  • Коэфф. пропорционального воздействия
  • Коэфф. дифференциального воздействия
  • Коэфф. интегрального воздействия
  • Максимальное значение управляющего воздействия
  • Общий коэффициент усиления (если 0, то регулятор и нагреватель не работают)


Дальше много картинок.

1. Сначала выключим ПИД-регулирование и убедимся, что модель адекватная.

Устанавливаем равную температуру тела и окружающей среды и убеждаемся на графике, что температура стабильна:

image

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

image

То же самое, но теперь температура тела ниже температуры окружающей среды.

image

Уменьшаем коэффициент инерционности, и видим, что температура тела быстрее стремится к окружающей среде.

image

Увеличиваем коэффициент инерционности, и видим, что температура тела медленнее стремится к окружающей среде.

image

Теперь включаем нагрев (но не ПИД-регулятор!). Для этого в колонке управления «включаем» 2 раза «нагрев» — с 0 по 2 единицу времени на «мощность» =20, и с 11 по 12 единицу времени на «мощность» =10. На графике наблюдаем адекватную реакцию.

image

Теперь «включаем» постоянный «нагрев» на «мощность» 10. Видим, что температура тела растёт, но до определенного предела — «мощности» не хватает.

image

2. Теперь «включим» ПИД-регулятор, и посмотрим, как он будет регулировать температуру.

Установим целевую температуру в 100°С и Kp=1, Kd=1, Ki=0.1

image

Увеличим Ki до 1, и увидим, что это не совсем полезно в данном случае.

image

Теперь уберем интегральную составляющую Ki и посмотрим — теперь регулировка не дотягивает до 100 градусов — мало «мощности» без интегральной составляющей.

image

Увеличим K и/или Kp — теперь «мощности» хватило, но без интегральной составляющей возникли высокочастотные колебания.

image

Ну и так далее.

Ссылка на файл. Кому интересно — поиграйтесь.

© Habrahabr.ru