Пид регулятор

ПИД регулятор – один из самых распространенных автоматических регуляторов. Он настолько универсален, что применяется практически везде, где нужно автоматическое управление.

Применение ПИД регулятора

  1. Температурные системы: специальные печи, холодильники, инкубаторы, паяльники.
  2. Системы поддержания частоты оборотов мотора для станков.
  3. Балансирующие устройства: гироскутеры, сигвеи, левитирующие магнитные платформы.
  4. 3D принтеры, ИК паяльные станции.
  5. Квадрокоптеры и самолеты с автопилотом.

Почему выбирают ПИД регулятор?

Хотя существуют и другие регуляторы, превосходящие ПИД по адаптивности к управляемой системе и стабильности (например, линейно квадратичный), настройка ПИД регулятора относительно проста и понятна. ПИД регулятор универсален для почти любого процесса.

Преимущества использования ПИД регулятора

  • Простая настройка
  • Универсальность
  • Применяется в широком спектре устройств
  • Устойчивость к изменениям в управляемой системе

Как работает ПИД регулятор

ПИД регулятор состоит из трех основных компонентов:

  • P (пропорциональный) – реагирует на текущую ошибку между желаемым и фактическим значением, пропорционально этой ошибке.
  • I (интегральный) – учитывает накопленные ошибки во времени, чтобы компенсировать постоянное отклонение от желаемого значения.
  • D (дифференциальный) – предсказывает изменение ошибки в будущем на основе ее текущей скорости изменения.

Пример применения ПИД регулятора в автопилоте квадрокоптера

  • P компонент реагирует на текущее отклонение от заданной траектории.
  • I компонент корректирует ошибки, накопленные со временем, что помогает коптеру следовать по заданной траектории без постоянных отклонений.
  • D компонент предсказывает будущее изменение ошибки и помогает предотвращать перереагирование.

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

Читайте также:  Работа процессоров intel с отсутствующими конденсаторами

Перед переходом к регулятору PID очень важно понять и запомнить несколько основных понятий, составляющих автоматическую систему. Прежде всего, это регулятор, который контролирует все и находится в центре системы. Регулятор в данном понимании является математическим алгоритмом или частью программы, работающей на микроконтроллере. Регулятор, как алгоритм, работает с обычными числами. Регулируемый объект — это устройство, которое мы контролируем, например, плита или двигатель. Для этого у нас есть устройство управления, например, диммируемый свет или обмоточный двигатель. Устройство управления получает управляющий сигнал от регулятора, то есть определенное число. Это может быть цикл работы сигнала ШИМ от 0 до 255, или это может быть угол поворота сервопривода от 0 до 180, потому что регулятору не важно, что он управляет. В контролируемом объекте у нас есть датчик, от которого регулятор получает управляемую переменную, то есть текущий сигнал от датчика. Это обратная связь, которая позволяет системе точно поддерживать заданное значение. В случае с плитой это температура, а с двигателем — скорость вращения. И, наконец, регулятор получает уставку, то есть число, до которого он должен привести текущее значение от датчика. Уставку можно установить любым образом: с помощью ручки, слайдера, энкодера, кнопок, даже через SMS или голосовой ввод. Регулятору все равно, это просто число. Задача регулятора — сравнить текущее значение с уставкой и вывести управляющий сигнал на устройство управления. В программе это будет выглядеть примерно так: регулятор получил уставку, регулятор получил значение от датчика, регулятор выполнил вычисления и выдал нам управляющий сигнал, снова число. Если это ШИМ, мы отправляем его через функцию генерации ШИМ. Еще один важный момент — регулятор должен делать вычисления и применять управляющий сигнал через одинаковые промежутки времени, с постоянным периодом или частотой. Эта частота называется частотой дискретизации системы, а период обозначается как dt, как и период интегрирования.

Читайте также:  Паяльная станция: особенности классификация, применение, способы управления и выбор паяльных устройств - Станок

Пропорциональная составляющая

Пропорциональная составляющая представляет собой разность текущего значения с датчика и установки.

P = setpoint - input

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

Интегральная составляющая

Интегральная составляющая просто суммирует ошибку (разность текущего и заданного значения), умноженную на период дискретизации системы, то есть на время, прошедшее с предыдущего расчёта dt. Буквально, это интеграл от ошибки по времени.

I = I + (setpoint - input) * dt

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

Дифференциальная составляющая

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

err = setpoint - input 
D = (err - prevErr) / dt 
prevErr = err

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

Настройка регулятора

Для настройки регулятора необходимо изменять коэффициенты:

- Коэффициент пропорциональной составляющей (kP)
- Коэффициент интегральной составляющей (kI)
- Коэффициент дифференциальной составляющей (kD)

### I составляющая

Интегральная составляющая просто суммирует в саму себя ту же самую ошибку, разность текущего и заданного значения, умноженную на период дискретизации системы, то есть на время, прошедшее с предыдущего расчёта dt – фактически берёт интеграл от ошибки по времени.

I = I + (setpoint - input) * dt

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

D составляющая

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

err = setpoint - input D = (err - prevErr) / dt prevErr = err

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

Вот так выглядит процесс стабилизации при изменении коэффициентов: 

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

Например, незатухающие колебания появились при kP 20, период колебаний составил 3 секунды. 
Период dt в системе будет 50 мс (0.05 с). Считаем:

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

## Реализация на C++

Соединяя все рассмотренные выше уравнения, получим:

Это готовая функция, которая принимает значение с датчика, установку, три коэффициента и время, а также ограничение выхода с регулятора. Как пользоваться этой функцией: функция должна вызываться с некоторым периодом, причем длительность этого периода нужно будет передать в функцию в секундах. Если попроще, можно использовать задержку. Но делать так не рекомендуется, лучше сделать таймер на миллис и работать с ним. Функция возвращает управляющий сигнал, то есть можно подать его например как ШИМ. Период dt имеет такой смысл: чем инерционнее у нас система, тем реже можно вычислять пид. Например для обогрева комнаты период можно поставить 1 секунду или больше, а для контроля за оборотами двигателя надо будет поставить пару десятков миллисекунд, то есть около сотни раз в секунду.

## Библиотеки

https://youtube.com/watch?v=rIbWnB26dp0%3Fenablejsapi%3D1%26autoplay%3D0%26cc_load_policy%3D0%26cc_lang_pref%3D%26iv_load_policy%3D1%26loop%3D0%26modestbranding%3D0%26rel%3D1%26fs%3D1%26playsinline%3D0%26autohide%3D2%26theme%3Ddark%26color%3Dred%26controls%3D1%26

## Полезные страницы

9 950 ₽

от 10шт. - 8 955 ₽

от 50шт. - 8 458 ₽

Ремонтный центр (3 в 1)

Паяльная станция ELEMENT 985D (3 в 1) двухканальная (паяльник + термофен + сепаратор для ремонта дисплеев). 
Станция для разделения ЖК-экранов и особенно подходит для разделения экранов мобильных телефонов.
Индикация температуры паяльника и фена цифровая. 
Диапазон рабочих температур паяльника 200-480С. 
Диапазон рабочих температур фена 100-480С. 
Регулировка рабочий температуры паяльника и фена - кнопочное. В комплекте 4 насадки для фена. 
Антистатическое исполнение станции.

### Паяльная станция ELEMENT 985D

Применяется для демонтажа и пайки различных видов компонентов в корпусах, таких, как SOIC, PLCC, QFP, BGA и т.д.

Сочетает в себе современный дизайн и небольшой размер, что позволяет экономить рабочее пространство.

PID замкнутая система датчиков, микроконтроллер для цифрового отображения данных и контроля температуры, большая стартовая мощность, быстрый разогрев, стабильность температуры с точностью до 1°C, на которую не влияет объем выдуваемого воздуха. Все эти преимущества делают пайку и демонтаж базопасными для таких чувствительных компонентов, как SOIC, PLCC, QFP, BFA и т.д.

Температура достигает установленного уровня всего за 5 — 7 секунд.

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

Уникальная система охлаждения. Продолжительный продув воздухом после выключения прибора продлевает срок его эксплуатации. Когда температура воздушного потока опускается до 50°C, питание отключается.

Круговая крыльчатка обеспечивает поступление большого воздушного потока при меньшем шуме.

Оцените статью
Про пайку
Добавить комментарий