Arduino поможет настроить pid регулятор.

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

Я больше практик нежели теоретик поэтому мне ближе запустить pid регулятор с разными настройками и выбрать Kp, Ki, Kd максимально подходящие под мои задачи. К слову сказать для инкубатора или дегидратора система регулировки предполагает подачу ШИМ сигнала на нагреватель и контроль температуры с помощью цыфрового термодатчика. Вычислительных возможностей arduino будет достаточно для такого эксперимента. Единственный ресурс который прдётся потратить — это время.

Постановка задачи.

Нужно настроить pid регулятор на минимальное отклонение  температуры от заданной. Что мы имеем ?

  • очень инертную систему не критичную ко времени входа в режим
  • вычислительные мощности имеют приличный запас
  • достаточно простая схема управления мощностью нагревателя

Способ реализации.

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

  • выбираю из разных методик настройки метод Ziegler-Nichols , позволяющий настроить работающую систему
  • задаю Kp в диапазоне от 0 до 500 с шагом 25 при Ki= Kd=0 в каждом случае систему запускаю на 30 минут и начиная с 25 минуты и до 30 определяю максимальное и минимальное значение температуры — эта разность и станет критерием при выборе оптимального значения
  • повторяю процедуру  Kp в диапазоне около оптимального значения от Kp(оптимальное)-25 до Kp(оптимальное)+25 с шагом 5 при Ki= Kd=0
  • вычисляю новое Kp(оптимальное)
  • повторяю процедуру  Kp в диапазоне около оптимального значения от Kp(оптимальное)-5 до Kp(оптимальное)+5 с шагом 1 при Ki= Kd=0
  • вычисляю новое Kp(оптимальное)

Не трудно догадаться, что pid регулятор на вычисление Kp(оптимальное) потратит достаточно приличное время, но единожды!

Коэффициенты Kp и Ki,Kd pid регулятор получает по формуле.

Получив в результате предыдущих манипуляций Kp(оптимальное) запускаем pid регулятор со следующими параметрами Kp=Kp(оптимальное) и Ki=Kd=0. Даём системе установиться например час времени и вычисляем период Tc колебательного процесса засекая момент когда температура точно соответствует заданному значению. Теперь получен результат согласно методики Ziegler-Nichols :

  • Kp = 0,65  *  Kp(оптимальное)
  • Ki = 0,5  *  Tc
  • Kd =  0,12  *  Tc