Уроки Ардуино. ПИД регулятор
Summary
TLDRВ этом видео с канала 'Заметки орду' рассматривается тема пид-регулятора: что это, для чего он нужен и как работает. Автор дает практический обзор, объясняя математические операции и программную реализацию на Arduino. Показывает, как пид-регулятор используется для автоматического управления различными процессами, такими как температура, частота оборотов мотора и др. Также представлены примеры регуляторов в действии, включая управление температурой с термистором и сервоприводом, а также скоростью вентилятора с использованием Arduino. В видео подробно описывается настройка коэффициентов пид-регулятора для достижения стабильного состояния системы.
Takeaways
- 📚 ПИД-регулятор - это универсальный автоматический регулятор, используемый для управления различными процессами, такими как температура, скорость вращения двигателя и другие.
- 🔧 ПИД-регулятор состоит из трех компонентов: пропорционального (P), интегрального (I) и дифференциального (D), каждый из которых оказывает влияние на общий управляющий сигнал.
- 🔍 Пропорциональное управление реагирует на текущую ошибку, то есть разницу между заданным значением и текущим значением с датчика.
- 🔄 Интегральное управление накапливает ошибку по времени, что позволяет устранить статическую ошибку и достичь точного значения управляемой величины.
- ⏱️ Дифференциальное управление реагирует на изменения ошибки во времени, что позволяет предотвратить резкие колебания и перерегулирование.
- 🎛️ Коэффициенты ПИД-регулятора need to be настроены вручную для определенной системы, что может потребовать тщательного подбора и тестирования.
- 📉 Интегральная составляющая ПИД-регулятора может вызвать накопление ошибки, что может привести к перерегулированию, если неправильно настроена.
- 📈 Дифференциальная составляющая помогает быстро реагировать на изменения в системе и уменьшить колебания управляющего сигнала.
- 🔌 В видео рассматривались примеры использования ПИД-регулятора для управления температурой и скоростью вращения вентилятора, демонстрируя его гибкость и эффективность.
- 🛠️ Для реализации ПИД-регулятора в Arduino используются специальные библиотеки, такие как ГаверПИД, которые упрощают настройку и использование регулятора.
- ⚙️ Практические примеры из видео показывают, что ПИД-регулятор может быть использован с различными типами датчиков и устройствами, подчеркивая его универсальность.
Q & A
Что такое ПИД-регулятор и для чего он используется?
-ПИД-регулятор (пропорционально-интегрально-дифференциально) - это автоматический регулятор, который используется для управления различными процессами, такими как нагрев, вращение двигателя и другие. Он обеспечивает более точный контроль за процессом с помощью обратной связи от датчика.
Какие компоненты входят в состав ПИД-регулятора?
-ПИД-регулятор состоит из трех компонентов: пропорционального (П), интегрального (И) и дифференциального (Д). Каждый компонент участвует в формировании общего управляющего сигнала, который корректирует работу системы.
Что делает пропорциональная составляющая ПИД-регулятора?
-Пропорциональная составляющая корректирует текущую ошибку в системе, то есть разность между текущим значением и заданным. Чем больше ошибка, тем больше управляющий сигнал, что позволяет быстро реагировать на изменения.
Какова функция интегральной составляющей в ПИД-регуляторе?
-Интегральная составляющая накапливает ошибку с течением времени, что позволяет регулятору устранить статическую ошибку и привести систему к заданному значению с максимальной точностью.
Дифференциальная составляющая ПИД-регулятора исправляет какую ошибку?
-Дифференциальная составляющая исправляет предполагаемые будущие ошибки, реагирует на изменения сигнала датчика и позволяет компенсировать резкие изменения в системе, предотвращая перерегулирование.
Какие системы требуют использования всех трех составляющих ПИД-регулятора?
-Быстродействующие системы с резкими изменениями, такие как квадрокоптеры, шпиндель станка под переменной нагрузкой, требуют использования всех трех составляющих для стабилизации и точного контроля.
Чему эквивалентна интегральная составляющая в ПИД-регуляторе?
-Интегральная составляющая эквивалентна накоплению ошибки в системе, что позволяет регулятору с течением времени полностью устранить ошибку и привести систему к заданному значению.
Какие факторы влияют на выбор коэффициентов ПИД-регулятора?
-Выбор коэффициентов зависит от конкретной системы и процесса, которые он должен контролировать. Необходимо учитывать скорость реакции системы, наличия резких изменений, стабильность и точность, которые требуются для контролируемого процесса.
Какие преимущества имеет ПИД-регулятор перед другими типами регуляторов?
-ПИД-регулятор является универсальным и может быть использован для почти любого процесса. Он обеспечивает высокую точность, может компенсировать внешние воздействия и имеет простое математическое моделирование, что облегчает его настройку и использование.
Какие могут быть последствия неправильной настройки ПИД-регулятора?
-Неправильная настройка может привести к нестабильному поведению системы, перерегулированию, раскачке, возникновению колебаний и невозможности достижения заданного значения управляемой величины.
Какие дополнительные функции может иметь библиотека для работы с ПИД-регулятором?
-Библиотека может предоставлять функции для автоматической настройки коэффициентов ПИД-регулятора, встроенный тюнер, оптимизацию интегральной суммы, управление таймерами и периодами работы регулятора, а также удобные методы для вывода и анализа данных.
Outlines
😎 Введение в ПИД-регулятор и его применение
В этом параграфе представитель канала 'Заметки Орду' вступает в тему ПИД-регуляторов, объясняя, что это такое, для чего они нужны и как работают. Автор также упоминает о том, что в видео будет рассмотрена не только теория, но и практика управления с помощью ПИД. Он рекомендует зрителям ознакомиться с базовыми уроками перед просмотром и упоминает о наличии текстовой версии урока на своем сайте. Основное внимание уделяется тому, что ПИД-регулятор - это универсальный инструмент для автоматического управления различными процессами, включая температуру, обороты двигателей и другие параметры.
🔧 Основы автоматического управления и состав ПИД-регулятора
Второй параграф посвящён основам автоматического управления и деталям внутренней работы ПИД-регулятора. Рассматриваются три основных составляющих регулятора: пропорциональную, интегральную и дифференциальную составляющую. Автор объясняет, как каждый компонент влияет на общую работу регулятора и как они взаимодействуют друг с другом для достижения желаемого результата. Также упоминается о том, что ПИД-регулятор универсален и может быть настроен для различных систем, а также о важности корректной настройки коэффициентов для достижения стабильного состояния.
🔧 Функционирование составляющих ПИД-регулятора
В этом параграфе подробно рассматривается, как каждая из составляющих ПИД-регулятора влияет на управление процессом. Автор объясняет, что пропорциональная составляющая реагирует на текущую ошибку, интегральная - на накопленную ошибку, а дифференциальная - на предполагаемые будущие ошибки. Также здесь демонстрируется, как изменение коэффициентов влияет на работу регулятора, и как настраивать регулятор для достижения стабильного состояния без колебаний.
🛠 Практическое применение ПИД-регулятора для управления температурой и обороты
Автор переходит к практическим примерам использования ПИД-регулятора, начиная с контроля температуры. Он описывает схему, использующую термистор, RTU, резистор и MOSFET для управления нагревом, и демонстрирует, как регулятор подстраивается для достижения заданной температуры. Также рассматривается использование ПИД-регулятора для управления частотой оборотов вентилятора с помощью Arduino, включая подключение и программирование необходимых компонентов.
🔨 Реакция ПИД-регулятора на внешние воздействия и оптимизация настроек
В этом параграфе автор демонстрирует, как ПИД-регулятор реагирует на внешние воздействия, такие как включение вентилятора, который охлаждает термистор. Показывается, как регулятор корректно компенсирует такие изменения и поддерживает заданное значение температуры. Также здесь происходит оптимизация коэффициентов регулятора для достижения более плавного и точного регулирования.
🔄 Исследование ПИД-регулятора в различных сценариях и заключение
В заключительном параграфе автор рассматривает работу ПИД-регулятора в различных сценариях, включая управление температурой с использованием сервопривода и управления обороты вентилятора. Показывается, как регулятор может быть настроен для работы с различными типами устройств и процессами. Автор подводит итоги и благодарит зрителей за внимание, обещая вернуться к теме ПИД-регуляторов в будующих уроках.
Mindmap
Keywords
💡ПИД-регулятор
💡Обратная связь
💡Термистор
💡Сervoпривод
💡Тахометр
💡Управляющий сигнал
💡Коэффициенты ПИД
💡Установка
💡Интегральная сумма
💡Дифференциальная составляющая
💡Ардуино
Highlights
PID-регулятор - это универсальный инструмент для автоматического управления различными процессами.
PID состоит из трех компонент: пропорционального (P), интегрального (I) и дифференциального (D).
Пропорциональный компонент корректирует текущую ошибку в реальном времени.
Интегральный компонент накапливает ошибку для устранения статической неправильности.
Дифференциальный компонент реагирует на изменения ошибки и предотвращает резкие колебания.
PID-регуляторы применяются в холодильниках, печках, 3D-принтерах и многих других устройствах.
Регуляторы могут компенсировать внешние воздействия, такие как изменение нагрузки или окружающей среды.
Настройка PID-регулятора включает определение коэффициентов P, I и D.
Коэффициенты регулятора определяются исходя из характеристик системы и желаемого поведения.
Программная реализация PID-регулятора на Arduino демонстрирует простоту и гибкость.
Для корректной работы регулятора необходим периодический вызов функции с определенным интервалом (частота дискретизации).
Примеры из видео: управление температурой печки и обороты двигателя с использованием PID-регулятора.
Использование сервопривода для управления температурой, перемещая термистор.
Регулятор температуры с использованием термистора и мосфета для управления нагревом.
Регулятор оборотов вентилятора с использованием Arduino и прерываний для измерения частоты.
Подключение вентилятора для охлаждения термистора и демонстрация адаптивности регулятора.
Видео также включает примеры настроек и кода для реализации PID-регулятора на Arduino.
Рассмотрены автоматические и ручные методы настройки коэффициентов PID-регулятора.
Демонстрация влияния каждого компонента PID на общее поведение системы.
Transcripts
привет ребята с вами канал заметки орду
ящика и сегодня мы углубимся в такую
интересную тему как пид-регулятор что
это такое для чего он нужен и как он
работает
ну и конечно опробуем его на практике
[музыка]
перед просмотром этого урока рекомендую
ознакомиться со всем циклом базовых
уроков на канале или хотя бы с уроками
ашем сигнале и потенциометр ах так же
текстовая версия этого урока есть у меня
на сайте
ссылочка будет в описании в этом видео я
не буду касаться глубокой теории которую
проходит на университетском курсе то у
или таро это все очень сложно и конечно
же невероятно интересно но на практике
поверьте мне оно нам просто не
понадобятся кому интересно смотрите
учебник мы рассмотрим как работает пицца
точки зрения происходящих там
математических операций они кстати до
смешного элементарные рассмотрим
программную реализацию на си плюс плюс
применительно к arduino и конечно же
займемся практикой и попробуем
поуправлять всем подряд в общем займемся
тем чего не было в вузе причем даже не
применяя теорию которую там изучали
я серьезно но сначала пару слов о самом
управление есть 2 способ управлять
каким-то процессом будь то нагрев
кастрюлю с брагой или что-то оборотов
двигателя с обратной связью и без нее
без обратной связи мы например можем
действовать так у нас есть моторчик мы
знаем что при таком-то напряжение он
крутится с такой-то скоростью подаем
нужное нам напряжение считаем что мотор
и правда крутятся с заданной скоростью
все но вот под нагрузкой это будет
совсем не так
обороты просядут и тут на помощь
приходит обратная связь ставим датчик
оборотов системы получают новые значения
и самостоятельно контролирует сигнал на
мотор чтобы обороты были такие как мы
зададим именно этим занимается регулятор
например пит пид-регулятор один из самых
распространенных автоматических
регуляторов он настолько универсален что
применяется практически везде где нужно
автоматическое управление например
температурой специальные печи
холодильнике инкубаторы паяльники сопло
и 100 3d принтера инфракрасной паяльной
станции и прочее прочее поддержание
частоты оборотов мотора например для
станков и даже роботизированных рук на
базе сервомоторов всевозможные
балансирующие штуки гироскутеры сильвы и
левитирующие магнитной платформы и
конечно же квадрокоптера и самолеты с
автопилотом да это все виды регулятора
почему именно пит существуют и другие
регуляторы превосходящие пит по
адаптивности в управляющей системе и 100
бедности например линейной квадратичной
но чтобы грамотно синтезировать такой
регуляторах нужно быть гораздо больше
чем семи пядей во лбу а настройки
пид-регулятора дело хоть и неприятно и
но фактически очень простое и под силу
любому
с mtv регулятор универсален для почти
любого процесса
прежде чем переходить непосредственно к
пиду очень важно понять и запомнить
несколько базовых понятий из которых
состоит автоматическая система в первую
очередь от и регуляторах который всем
заправляет и находится грубо говоря в
центре системы регулятора в данном
понимании математический алгоритм или
часть программы которая крутится
например на микроконтроллере объект
управления это девайс которым мы
управляем например печка или мотор для
этого у нас есть управляющие устройства
например де миру и myteen или драйвер
мотора управляющее устройство получает
от регулятора управляющий сигнал то есть
какое-то конкретное число это может быть
заполнение шин сигнала от 0 до 255
машинки от 0 до 180 потому что
регулятору безразницы чем он управляет
также в объекте управления у нас стоит
датчик с которого регулятор получает
управляемую величину то есть текущий
сигнал с датчика это и есть обратная
связь случае спичкой эта температура с
мотором частота оборотов ну и наконец
регулятор получает установку то есть
число к которому он должен привести
текущее значение с датчика установка
приходит в систему грубо говоря извне и
может задаваться каким угодно образом
крутилка и ползунком энкодером кнопками
и да хоть и с маской или голосовым
вводом и и задает человек задача
автоматическая система управления
состоит в том чтобы сравнивать текущее
значение с установкой и выдавать
управляющий сигнал на управляющие
устройства то есть в программе это будет
выглядеть условно вот так регулятор
получила установку регулятор получила
значение с датчика регулятор выполнил
вычисления и выдал нам управляющий
сигнал опять же какое-то число
если эта шим моего подаем через функцию
генерации шин есть еще один момент
регулятор должен делать расчеты и
применять управляющий сигнал через
равные промежутки времени то и с равным
периодом или частотой
эта частота называются частотой
дискретизации системы а период
обозначает сказать да ты прямо как
период интегрирования
давайте перейдем к самому регулятору
который в нашем случае пит что это за
три веселых буквы таких итак
пропорционально интегральный
дифференциальный регулятор полное
название которого как и полицейский
инспектор дорожного регулирования лучше
не сокращать представляет собой по сути
алгоритм то есть набор математических
операций при чем опираться довольно
простых такие как сложение и умножение и
даже деление прелесть пид-регулятора
состоит в том что ему вообще все равно в
каких единицах измерения ему присылают
величину и ему абсолютно неважно чем он
управляет и как то есть вместо прямого
диммирование обогреватели в печке мы
можем подавать тот же сама управляющий
сигнал на сервопривод который крутит
диммер или пусть тот же сервопривод
крутит кран на батарее или пусть
какой-нибудь линейный привод открывает и
закрывает окно неважно пид-регулятор
будет сыра но выполнять свою задачу если
управляющий сигнал влияет на значение с
датчика
это самое главное условие также
регулятор будет компенсировать внешние
воздействия на систему например открыли
окно на улицу температура стала падать и
регулятор сам увеличил управляющий
сигнал воткнули инструмент в заготовку
обороты упали пид-регулятор поднял
мощность и вернул обороты на заданный
уровень но естественно для всего этого
пид-регулятор должен быть настроен pid
регулятор настраивается при помощи трех
коэффициентов пропорционального
интегрального и дифференциального и
сейчас я думаю настало время заглянуть
ему под капот выход регулятора то есть
непосредственно наш управляющий сигнал
состоит из трех составляющих
пропорциональный интегральный
дифференциальный формируется это все
просто как сумма трех значение
умноженное каждая на свой коэффициент
это те самые коэффициенты которые нужно
настроить для корректной работы pedo
значение тут могут быть самые разные вот
одни 1000 до десятков и тысяч это
зависит от конкретной системы
тут есть еще один момент любой
коэффициент может быть равен нулю в
таком случае обнуляется вся его
компонента то есть регулятор можно
превратить в п.п.
и pd и прочие сочетания разные системы
требуют разного подхода именно поэтому
пид-регулятор такой универсальный
разберем подробно все три составляющие
классическая форма пид-регулятора на
языке математиков выглядит вот так но
мне узнать не очень нужна мы
программисты и запишем все более проста
и понятна пропорциональная составляющая
представляет собой
нас текущего значения сдатчика эти
установки данная разность называется
ошибки регулирования то есть насколько
далеко находится система от заданного
значения получаются чем больше будет
ошибка тем больше будет управляющий
сигнал и тем быстрее системы будет
приводить управляемую величину в
заданному значению коэффициент п тут
влияет роль в усилении ошибки и
настраивается вручную давайте продумаем
работу регулятора чуть дальше если
система пришла к заданной величине
ошибкой станет равным волю и управляющий
сигнал тоже другими словами по регулятор
никогда не сможет привести к заданному
значению всегда будет некая ошибка п
составляющая является основной в
пид-регулятор и так сказать тянет самую
большую лямку регулятор может неплохо
работает только лишь на ней позже мы на
это посмотрим а сейчас давайте наглядно
покажу регулятор в действии
немного позже мы рассмотрим мою
библиотеку пит для arduino сейчас
запустим и снега пример который
называется simulation
в нем имитируется инновационный процесс
с которым пытается справится регулятор
загружая прошивку и открывая плоттер
смотрим зеленая линия эта установка
значение 40 допустим это градусы
но в этом примере это просто какое-то и
число красная линия это управляющий
сигнал и синие текущее значение с
датчика как можно видеть процесс
стабилизировался на 15 условно градусах
а управляющий сигнал равен нулю так как
все три коэффициент регулятор равны нулю
и регулятора фактически отключен давайте
установим коэффициент п равным единице
начались какие-то движения управляющий
сигнал подскочил вверх
температура поднялась и все успокоилось
текущая ошибка регулирования составляет
40 минус 20 8-12 градусов и именно такой
управляющий сигнал мы видим на красном
графики потому что коэффициент равен
единице очень очень простая математика
процесс остановился потому что система
пришла к равновесию так как
пропорциональная составляющая отвечает
за ошибку в текущей конкретный момент
времени как вы можете видеть формулы ps
составляющие не привязано ко времени и
является просто умножением ошибки то
есть п не зависит от dt это чисто
статическая составляющая системы
если мы увеличим пены пример до пяти то
увидим скачок управляющего сигнала после
чего система вновь придет к равновесию
так и не достигнув установки но
будет уже гораздо ближе к ней как я
говорил по регулятор чисто математически
не может заставить систему прийти к
установке поставьте видео на паузу и
подумайте над работы по составляющей
поднимем поэтому 15 и увидим колебания
они за тухнут поднимем до 20 и получим
незатухающие колебания происходят а не
из-за того что система не идеальная и
имеет запаздывание то есть регулятор уже
уменьшает управляющий сигнал но
температура продолжает расти потому что
нагреватель сильно нагрелась и сразу
остыть не может он разогнался и имеет
инерцию тогда регулятор сильнее
уменьшают управляющий сигнал и печка
начинает остывать
но ситуация повторяется вновь только в
противоположную сторону и так далее
вывод здесь такой коэффициент при
уменьшаю статическую ошибку то есть
ошибку на каждом шаге регулирование чем
больше по тем ошибка меньше но к нулю и
уменьшить не получится в то же время
большое значение п приведет к раскачке
системы
но как же нам тогда уменьшить ошибку до
нуля этим занимается интегральная
составляющая интегральная составляющая
просто суммирует в саму себя ту же самую
ошибку разность текущего и заданного
значения умноженную на периоде скрити
зации системы то есть на время прошедшее
с предыдущего расчета dt то есть
фактически берет интеграл от ошибки в по
времени в самом регуляторе это еще
умножается на коэффициент
и которым настраивается резкость данной
составляющей в интегральной составляющей
буквально копится ошибка что позволяет
регулятору с течением времени полностью
и устранить то есть привести систему
ровно к заданному значению с
максимальной точностью давайте
перезапустим симуляцию и увеличен
коэффициент и например до двух десятых
система придет в движение потому что
ошибкой начинает накапливаться
температура растёт и даже перелетает
через установку интегральная
составляющая начинает уменьшаться потому
что ошибкой стало отрицательный в итоге
снова перелетает но колебания имеют
затухающий характер и вскоре систему
придёт ровно к заданной температуре то
есть интегральная составляющая выдает
такой управляющий сигнал при котором
ошибка равна нулю чисто интегральный
регулятор сам по себе используется
довольно редко потому что он слишком
медленный и приводит вот к таким за
летом и чаще применяют
п и регулятор давайте для примера
запустим систему с тем же коэффициентом
и
и п равным 5 видим как отработал по
регулятор сразу подняв управляющий
сигнал еда в системе начали нагрев а вот
теперь начинает работу с интегральная
составляющая и плавненько уменьшает
ошибку до 0 давайте чуть увеличим и
например до 0,5 чтобы система работала
чуть шустрее
то есть вес интегральной составляющей в
общей суммы становятся чуть больше
и получаем практически идеальный процесс
регулятор уверенно и быстро выставил
нужное значение без перерегулирование
давайте сменим установку на 60 градусов
и посмотрим как регуляторы и отработает
достаточно плавно и четко поздравляю мы
настроили регулятор минуточку а как же
две составляющие зачем она вообще нужна
давайте еще разок п составляющая
исправляет текущую ошибку в текущий
момент времени то есть прямо вот здесь и
сейчас
интегральная составляющая исправляет
буквально прошлые ошибки
она их копит и делает из них управляющий
сигнал а вот дифференциальная
составляющая исправляет внимание будущий
ошибки системы
дифференциальное составляющая
представляют собой разность текущие и
предыдущие ошибки поделённую на время
между измерениями то есть на тоже dt
которая общий период регулятора
иными словами это обычные математическое
производное от ошибки по времени
фактически д составляющие реагируют на
изменение сигналу датчика и чем сильнее
происходит это изменение тем большее
значение прибавляются к общей сумме
иными словами д составляющая позволяет
компенсировать резкие изменения в
системе и при правильной настройке
предотвратить сильное перерегулирование
и уменьшить раскачку коэффициент d
позволяет настроить вес или резкость
данной компенсации как и остальные
коэффициенты регулируют свои
составляющие
дифференциальная составляющая в первую
очередь нужно для быстрых систем то есть
для систем с резкими изменениями такие
как квадрокоптер или шпиндель станка под
переменной нагрузкой
применительно к медленным процессом две
составляющие очень часто не используют
оставляя печки и обогреватели работать
папы и регулятору как мы с вами сделали
чуть раньше и она отлично работало
медленно и надежно но если от печки
требуется быстро выходной режим тут не
обойтись без d и точной настройки гифка
с википедией отлично демонстрирует
влияние всех коэффициентов на систему и
все вышесказанное
power задает основной сигнал но является
причиной колебаний и не уводит ошибку в
ноль и позволяют полностью нивелировать
ошибку с течением времени но также может
раскачивать систему d позволяет сгладить
резкие движения и добиться быстрого и
идеального переходного процесса все
вместе они образуют пид-регулятор один
из самых популярных и используемых
алгоритмов в мире
я думаю вы уже сами увидели насколько
прост по своей сути пид-регулятор с
точки зрения вычислений всего несколько
сложений и умножений и реализация
регулятора в коде для arduino может
выглядеть не пример вот так это готовая
функция которая принимает значение с
датчика установку три коэффициента и
время как пользоваться этой функции
функция должна вызываться с некоторым
периодом причем длительность этого
периода нужно будет передать функцию в
секундах если попроще можно использовать
задержку но делай так не рекомендуется
лучше сделать таймер на мелис и работать
с ним функция возвращает управляющий
сигнал то есть можно подать его например
как шим период даты
имеет такой же смысл чем и мерцание у
нас система тем реже можно вычислять пит
например для обогрева комнаты период
можно поставить одну секунду или больше
а для контроля за оборотами двигателя
надо будет поставить пару десятков
миллисекунд
то есть около сотни раз в секунду это
пример реализации в коде
дальше видео я буду пользоваться своей
библиотекой под названием гавер пит
которая просто удобнее
скачать можно по ссылке в описании под
видео работы с библиотекой очень просто
создаем объект и в скобках указываем
коэффициенты перед по очереди
также можно указать dtm четвертым по
порядку в миллисекундах можно вообще
ничего не указывать и настроить
регулятор дальше в программе по ходу
работы например коэффициент являются
членами класса и настраиваются прямо как
переменные для установки периоды
интегрирования вызываем цдт и передаем
ей значение в миллисекундах также важно
настройка является направлении
регулирования если увеличение
управляющего сигнала увеличивает
значение с датчика это прямое
регулирование например это нагрев или
разгон движка если увеличение
управляющего сигнала уменьшает значение
с датчиках например при активном
охлаждение или пид-регулятор и
торможения то вызываемся direction
реверс новый измеренной сигнал с датчика
мы передаем в input к установке можем
обратиться как setpoint
и присвоить ей нужное значение вызов
гитаре залп делают все необходимые
расчет
и а вот тут принимает значение
управляющего сигнала то есть его можно
засунуть какой-нибудь аналог райд или
куда там нужно системе
важный момент где три залпа вычисляет
значение сразу по вызову
то есть ее нужно вызывать по отдельному
таймеру с периодом dt которые мы сами и
настроили это можно сделать задержка их
а лучше таймером на мелис то есть все
управление мы сажаем на выполнение по
таймеру чтобы не перегружать программу
поэтому-то миру мы будем опрашивать
датчик делать расчеты да и отправлять на
управляющие устройства это хороший
пример также в библиотеке есть get ризал
таймер которая выполняет расчет по
своему внутреннему таймеру с периодом dt
и сделано для новичков и тестов код
можно организовать вот таким образом и
значение будут сами считаться по
встроенному таймеру но следует отдавать
предпочтение предыдущему примеру в
библиотеке есть еще несколько крутых
фишек но здесь мы их рассматривать не
будем о них можно подробно почитать в
документации
также в отдельном ролике мы рассмотрим
встроенный тюнер коэффициентов и может
быть коснемся оптимизации интегральной
суммы
а сейчас мы рассмотрим два жизненных
примера сделаем регулятор температуры и
оборотов двигателя регулятор температуры
будет состоять из обычного термистора
который подключен ко рту и на через
резистор на 10 килоом и mosfet
транзистора которая управляет мощностью
нагреву нихромовой проволоки которая
намотана прямо на термистор для
ускорения процесса нагрева
то есть при увеличении значения шим
сигнал она мосфет температура с
термистора будет расти для просто
температура с термистора буду
использовать библиотеку термистора
которую можно скачать у меня сбит хоп
ссылочку оставлю данный пример кстати
уже встроены в библиотеку здесь мы
объявляем пины мо света и термистора
далее подключаем библиотеку термистора и
создаем объект скобках указываем пин
сопротивление и коэффициент бета
для этого термисторов он равен 3950 и
взяты из даташита подключаем библиотеку
гайвер пит и создаем объект также
объявляю период работы
термистор система не очень быстрая и
есть смысл поставить ну например пол
секунды
откроем порт для отладки и уменьшен
тайм-аут парсинга потому что некоторыми
параметрами мы будем управлять прямо
через potter как в уроке про плоттер
смотрите на канале установим наш период
и сделаем пимма света выходом в основном
цикле программы у нас то мир на мели с
периодом пид-регулятора поэтому таймеру
мы скармливаем на вход регулятора
текущую температуру
ростер мистера библиотеке есть несколько
вариантов я выбираю усредненную
температуру выполняем расчет и передаем
выход регулятора на генерацию шим
сигнала и здесь же строим графики как в
уроке про плоттер завершает основной
цикл функция парсинга при помощи которой
можно задавать коэффициенты и установку
прямо через окно плоттера
как вы уже видели в этом видео установка
просто перестраивается переменный set
point как я уже показывал ну что ж
запускаем итак прошло примерно 2 минуты
после запуска тут можно видеть как
управляющий сигнал сразу дошло до
максимума чтобы разогнать с телом потому
что у нас установка находилось
достаточно далеко вот сигнал с датчика
температура поднялась перелетела через
установку
она у нас 60 градусов вот она на график
она зелененькая и практически сразу
систему у нас устаканилась и пришла к в
навесе you то есть туда куда было нужно
в 60 градусов сейчас температура
поддерживается 60 градусов можно видеть
небольшие скачки управляющего сигнала и
небольшие скачки температуры но они
здесь совсем маленький я думаю не больше
одного градуса регулятор у меня настроен
как по и то есть составляющая d равна
нулю
эти коэффициенты я получил из
автоматического тюнера которая строим
библиотеку и вот просто собрал установку
запустил и она уже работает давайте
установку изменением например на
примерно 70 отправляем установка
изменилось пошла реакция ждем нагрев
видим что температура снова перелетела
через установку но управляющий сигнал
уже уменьшается и сейчас она снова
придет к равновесию значит как настроить
регулятор
идеально нужно подбирать коэффициенты
немножечко вручную возможно тут не
хватает для коэффициента потому что
система все таки довольно таки быстро я
те места нагревается практически
моментально но в этом конкретном случае
наверное я бы уменьшил интегральную
составляющую потому что вот это вот пик
дает именно она потому что она
накапливается пока у нас идет нагрев
она накапливается и приводит к такому
вот перепрыгнул давайте попробуем
дифференциальную составляющую поставить
где-нибудь
ну так по масштабу где-нибудь десяточку
и температуру setpoint понизим обратно
до 60 посмотрим что у нас произойдет
управляющий сигнал
отключился система остывает
самостоятельно потребление 0 ампер
лампочка не горит всё отключено
температуру плавно приближается к
установке начинает подавать сигнал на
нихром дома свет и температура плавно
поднимается обратно вверх в общем
регулятор делают свою работу
температуру удерживает но чтобы он
отрабатывал идеальный и без вот таких
вот перескоков как здесь вниз и как
здесь вверх нужно настраивать более
точную и тратить на это больше времени
давайте попробуем рассмотреть реакцию на
внешние воздействия я сейчас поставлю
вентилятор который будет принудительно
остужать термистор
то есть управляющий сигнал по сути
должен будет держаться немножечко выше
чем у держится вот здесь ставлю
вентилятор прямо вот вот так вот о
воткнем
[музыка]
видим как начало падать температура
потому что вентилятор все-таки остужать
термистор
и управляющий сигнал резко пошел вверх
чтобы это делала компенсировать спустя
буквально секунд 30 система пришла к
установленному значению и в этом месте
будет находиться и дальше как можно
видеть регуляторы отлично работает и
справляется со своей задачей
вот эти вот сильные суммой управляющие
сигналы связаны с тем что мы ввели
дифференциальную составляющих тома штаны
реагирует на изменение получаются
температуры если я верну
дифференциальную составляющей в ноль
реакция на изменения температур будет
уже не такой резкой и вот этих вот
резких скачков уже не будет что вы
все-таки посмотреть какая у нас точность
находится вот здесь давайте мы уберем
вывод в порт получаются выходного
сигнала потому что он сильно растягивает
график и посмотрим еще разок и после
перезапуска системы интегральная сумма
обнуляется естественно поэтому у нас
наблюдается некоторая просадка
напряжения которое сделала вот такой вот
кульбит и сейчас пойдет к верху спустя
минут система стабилизировалась и мы
можем видеть что температура
удерживается буквально вот плюс-минус 2
десятых градуса если учесть что это 57
я здесь 59 наверно даже одна десятая
градуса что вообще шикарно как я уже
говорил пид-регулятор у неважно чем
управлять поэтому давайте проведем вот
такой забавный эксперимент пусть
регулятор управляет не непосредственно
мощностью нагрева
а пусть он двигает термистор около
источника тепла при помощи сервопривода
и пытаются удержать заданную температуру
на этом самом there мистере как вам
такое
урок по серго был на канале поэтому
изменения в код комментировать не буду
запустила на тех же коэффициентах тут у
меня лампа накаливания на 100 ватт и
серого может приближать и отдалять
термистор от лампочки установка стоит на
50 градусов можно видеть что управляющий
сигнал растет и серого приближает
термистор лампочки
судя по всему коэффициента из
предыдущего примера подошли и для этого
примера потому что повторюсь и
регулятору неважно чем управлять вот у
нас температура уже плавно перескакивает
на управляющий сигнал падает и ожидаем
дальнейшее снижение и стабилизацию на
уровне получается 50 градусов так то не
расплавишься тут о
горячо давайте поставим градусов 70
чтоб было поинтереснее
полегче не разбей температура резко
растет у нас прямой контакт с лампой
сейчас начнем это двигаться обратно все
вот тут уже регулятор работают не очень
стабильно слишком и раскачает судьба
всему нужно настраивать коэффициенты
конкретно под конкретную систему
хотя вот уже сейчас амплитуда колебаний
вроде бы уменьшается и скорее всего за
стабилизируем ся где-нибудь вот недалеко
от лампы до
[музыка]
можно с уверенностью сказать что система
за стабилизировалась на установке это
единственная бы немножечко уменьшил п
чтобы не было таких резких изменений у
вас сервопривода а так коэффициенты
более чем рабочие
перейдем ко второму примеру я взял 4
пиновый компьютерный вентилятор и
подключая его вот таким образом внешнее
питание 12 вольт земля вентилятора и
arduino обязательно соединяются выход
тахометра вентилятора подключаю на
внешние аппаратное прерывание на пине 2
ишим вход вентилятора подключаю нашим
пин 3 для измерения частоты оборотов
используются мини библиотека тахометра
которую также можно найти у меня точно
также создаем объект и период я задам 30
миллисекунд потому что вентилятор
все-таки и быстродействующие системы шин
пин сделаю выходом open тахометр и
обязательно подтягивают питанию далее
настраиваем прерывание на пин тахометра
например по спаду и устанавливаем период
для регулятора библиотека тахометра
работает очень просто просто вызываем
тег в прерывании и все
значение сама обработается и от
фильтруется внутри библиотеки и готовые
обороты в минуту можно будет забрать из
метода get рпн которые мы радостно
передадим на вход регулятора
выполним расчет отправим результат нашим
и далее все как в примере с терри
мистером мы видим графики и управление
сделаем через порт ну и конечно же можно
повесить крутилку или слайдер на вход
регулятора как в уроке про крутилки
просто подключаем и передаем аналог ride
хотя я знаю что у этого вентилятора
максимальный оборот а около 330
а минимальные около 150 поэтому
использую функцию map чтобы получить
полный диапазон скоростей и по длине
слайдера и так коэффициенты у меня здесь
немного другого
телята ра потому что все тестировал я
пару месяцев назад
но посмотрим вдруг они здесь тоже
заработают знаешь синенький график у нас
это реальная частота оборотов и
зелёненькая полосочка это то чему она
должна быть равна давайте попробуем
увеличить
установку пошла вверх вентилятор
разгоняется и поддерживает жадные
обороты
так мы тоже максимум поставим пониже
все замечательно стабилизируется давайте
дадим внешнюю нагрузку то есть я прижму
пальцем смотрим на красненький
управляющий сигнал он у нас начинает
расти как сильно дергается но видно что
он растет и достигает максимума 255 и
регулятор стараются компенсировать
вот это вот удержание пальцем все
отлично работает еще немного
модифицируем пример пусть вентилятор
охлаждает термистор которая нагревается
от лампы из предыдущего примера то есть
мы опять управляем температуру и но уже
наоборот и нам даже не нужно знать
оборот с вентилятора потому что пиду они
не нужны он будет стабилизировать
температуру переключим регулятор время
раз и объединим примеры в один я
запустила на тех же самых коэффициентах
что я были в примере с теми старом
поэтому скорее всего она просто так
работать не будет
тут мы можем видеть что интегральная
составляющая начинает поднимать
управляющий сигнал вентилятор
разгоняются
но к стати непонятных хватит ли
вентилятора чтобы остудить
термистор находящийся около лампочки тут
мы уже уперлись в максимум регулятора
255 то есть чем больше быть не может
вентилятор жарит на полную катушку но
температура ну не очень tanto купола
давайте я поближе поставили вентилятор
чтобы эффективнее было
[музыка]
я немного задвину лампу чтобы вентилятор
было проще охладить термистора но эти
подождем и посмотрим что получится так
но спустя 5 минут чик видим что система
вроде бы пришла равновесия плотного
сожаление абсолютно совпали
тут колебания глобальный вроде
закончились дальше будет прямая на этом
думаю сегодня можно заканчивать ролик и
так получился довольно-таки длинным
потому что я постарался максимально
подробно рассказать вам про саму суть
регулятор и показать его работу на самых
разных примерах в дальнейших уроках мы
еще не раз вернемся к пе ду для
управления различными штуками и
рассмотрим некоторые его особенности
более подробно а если урок вам
понравился не забудьте поставить лайкос
и поделиться своим мнением в
комментариях и самим роликом с друзьями
которые до сих пор не знаю как работают
пи-регулятора с вами был канал заметки
рду ящика до новых встреч друзья
[музыка]
Voir Plus de Vidéos Connexes
ИЗУЧИТЕ ГЛАВНУЮ НЕЙРОСЕТЬ МИРА от Б до Ю
Earn US$450 Daily POSTING SONGS ONLINE In Minutes Worldwide - Simple STEP-BY-STEP Guide
The Best Way to Manage Tasks and Projects in Notion
Как выбрать КОНДИЦИОНЕР в 2024 году? / Топ-6 ЛУЧШИХ кондиционеров
Fiio KA13 Review 550 mw 😲🔥
Telegram BOT на NestJS - 1 часть
5.0 / 5 (0 votes)