Сайт о доме, строительстве, саде и огороде!

Что делает пид регулятор

chto delaet pid reguljator 5

Содержание

Как влияют параметры ПИД-регулятора на процесс? Ответ на вопрос 4

ПИД‑регулятор имеет уставку (SP — Set Point), чтобы оператор мог задать значение температуры. Выходной сигнал контроллера (CO — Controller Output) устанавливает положение регулирующего клапана. А значение измеренной температуры, называемое параметром регулирования процесса (или переменной процесса, PV — Process Variable), даёт контроллеру столь необходимую обратную связь. Переменная процесса и выходной сигнал контроллера передаются в цифровой форме или посредством сигналов тока, напряжения (рис.

3).

Когда всё включено и работает, ПИД‑регулятор получает сигнал переменной процесса, сравнивает его с уставкой и вычисляет разницу между двумя сигналами, также называемую ошибкой (E — Error). Затем на основании величины ошибки и констант настройки ПИД-регулятора контроллер рассчитывает соответствующий выходной сигнал, который устанавливает регулирующий клапан в правильное положение для поддержания температуры на заданном уровне. Если температура поднимется выше заданного значения, контроллер уменьшит степень открытия клапана, и наоборот.

Что такое ПИД регулятор для чайников?

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

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

Что такое ПИД регулятор?

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

Устройство подает управляющий или выходной сигнал на устройство регулирования, на основании полученных данных от датчиков или сенсоров. Контроллеры обладают высокими показателями точности переходных процессов и качеством выполнения поставленной задачи.

Три коэффициента ПИД регулятора и принцип работы

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

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

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

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

Читайте также: Что такое индуктивный бесконтактный датчик, его устройство и принцип работы

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

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

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

Просто о PID-регулировании

Что делает пид регулятор

Принцип PID-регулирования используется в автоматическом управлении процессами повсеместно. Большинство современных промышленных контроллеров имеют встроенный механизм, реализующий PID-управление. Но для успешного применения этого мощного средства необходимо чётко понимать механизм его действия. Эта статья в популярной форме представляет начальные сведения о PID-регулировании.

В ЗАКЛАДКИ

А знаете ли вы, что…

В 1939 году приборостроительная компания Taylor представила новую версию своего пневматического контроллера Fulscope с функцией предварительного действия в дополнение к ранее доступным режимам пропорционального управления и сброса. В настоящее время три режима управления называются пропорциональным, интегральным (сброс) и дифференциальным (предварительное действие), следовательно, сокращённо PID. В отечественной литературе принята аббревиатура ПИД , означающая пропорционально-интегрально-дифференциальный режим. В том же году компания Foxboro Instrument добавила к ранее доступным в контроллере Stabilog режимам пропорциональности и сброса гиперсброс, что делает его вторым ПИД-регулятором на рынке. Сегодня все ПИД‑регуляторы, в том числе и в системе Dataforth MAQ®20, основаны на тех самых пропорциональном, интегральном и производном (дифференциальном) режимах контроллеров, выпущенных в 1939 году (рис.

1).

ПИД‑регуляторы используются в большинстве приложений автоматического управления процессами в промышленности. Они могут регулировать расход, температуру, давление, уровень и многие другие параметры производственных процессов. В статье рассматривается конструкция ПИД‑регуляторов и объясняются используемые в них режимы управления P, I и D.

Ручное управление

О PID регуляторе простым языком (что такое ПИДы)

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

Если температура воды по какой-либо причине становится слишком высокой, оператор должен немного закрыть газовый клапан на величину, достаточную, чтобы температура вернулась к желаемому значению. Если вода становится слишком холодной, он должен приоткрыть газовый клапан.

Контроль и обратная связь

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

Автоматическое управление

Чтобы избавить оператора от утомительной задачи ручного управления, функцию управления можно автоматизировать с помощью ПИД‑регулятора. Для этого требуется следующее: Установить электронное устройство измерения температуры. Автоматизировать клапан, добавив к нему исполнительный механизм (и, возможно, позиционер), чтобы клапаном можно было управлять электронным способом. Установить контроллер, например, ПИДрегулятор MAQ ® ‑20, и подключить к нему устройство измерения температуры и автоматизированный клапан управления.

Более подробная информация о PID-регуляторе Dataforth MAQ ® 20 представлена во врезке.

ПИД‑регулятор имеет уставку (SP — Set Point), чтобы оператор мог задать значение температуры. Выходной сигнал контроллера (CO — Controller Output) устанавливает положение регулирующего клапана. А значение измеренной температуры, называемое параметром регулирования процесса (или переменной процесса, PV — Process Variable), даёт контроллеру столь необходимую обратную связь. Переменная процесса и выходной сигнал контроллера передаются в цифровой форме или посредством сигналов тока, напряжения (рис.

3).

Когда всё включено и работает, ПИД‑регулятор получает сигнал переменной процесса, сравнивает его с уставкой и вычисляет разницу между двумя сигналами, также называемую ошибкой (E — Error). Затем на основании величины ошибки и констант настройки ПИД-регулятора контроллер рассчитывает соответствующий выходной сигнал, который устанавливает регулирующий клапан в правильное положение для поддержания температуры на заданном уровне. Если температура поднимется выше заданного значения, контроллер уменьшит степень открытия клапана, и наоборот.

ПИД-контроль

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

Режим пропорционального управления

Главной движущей силой в контроллере является режим пропорционального управления. Он изменяет сигнал на выходе контроллера пропорционально ошибке (рис. 4).

Если ошибка увеличивается, управляющее действие увеличивается про­порцио­нально ей. Это очень полезно, так как для исправ­ления бо́льших оши­­бок требуется более интенсивное действие. Регулируемая настройка для пропорционального управления называется усилением контроллера (Kc — Controller Gain). Более высокое усиление увеличит пропорциональное управляющее воздействие для данной ошибки. Если усиление регулятора установлено слишком высоким, контур управления начнёт колебаться и станет нестабильным.

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

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

Пропорциональный контроллер

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

Что делает пид регулятор

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

6 с помощью пропорционального контроллера.

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

Поскольку ошибка остаётся постоянной, наш P‑контроллер будет поддерживать постоянный выходной сигнал и регулирующий клапан будет удерживать своё положение. Система теперь снова сбалансирована, но уровень воды в баке стал ниже заданного значения. Эта оставшаяся постоянная ошибка называется отклонением. На рис.

7 показано влияние внезапного снижения давления топливного газа на работу описанного ранее промышленного нагревателя и реакция пропорционального контроллера на данную ситуацию.

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

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

Интегральный режим управления

Необходимость избавиться от ручного сброса по описанному ранее сценарию привела к разработке автоматического сброса, или режима встроенного управления, как это называется сегодня. Функция режима встроенного управления заключается в увеличении или уменьшении выходного сигнала контроллера с течением времени, чтобы уменьшить имеющуюся ошибку (когда переменная процесса не находится в заданном интервале значений). При наличии достаточного времени интегральный механизм будет изменять выходной сигнал контроллера, пока ошибка не станет равной нулю. Если ошибка велика, интегральный режим будет увеличивать/уменьшать выходной сигнал контроллера с более высокой скоростью; если ошибка мала, изменения будут медленными.

Для данной ошибки скорость интегрального действия задаётся интегральной настройкой времени контроллера (Ti — Integral Time). Большое значение Ti (длинное время интегрирования) приводит к медленному интегральному действию, а небольшое значение Ti (короткое время интегрирования) приводит к быстрому интегральному действию (рис. 8).

Если интервал времени интегрирования установлен слишком большим, контроллер будет реагировать медленно; если он установлен слишком коротким, контур управления будет колебаться и станет нестабильным. Большинство контроллеров, включая MAQ ® 20, в качестве единицы измерения для интегрального управления используют интегральное время (Ti) в минутах, но некоторые определяют его в секундах. Немногие контроллеры, обычно с параллельным алгоритмом, используют параметр «интегральное усиление» (Ki) в повторениях в минуту. Параллельный алгоритм работы также доступен в MAQ ® 20.

Пропорционально-интегральный контроллер

Обычно пропорционально-интегральный контроллер называют PI‑контроллером, его выход состоит из суммы пропорциональных и интегральных управляющих воздействий (рис. 9).

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

Что делает пид регулятор

Если сравнить это с рис. 7, становится ясно, как интегральное управление продолжает управлять выходом контроллера до тех пор, пока смещение не будет устранено полностью.

Режим дифференциального управления

Что делает пид регулятор

Уроки Ардуино. ПИД регулятор

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

Режим управления по производной обеспечивает сигнал, основанный на скорости изменения ошибки (рис. 11).

Из-за этого дифференциальный режим изначально назывался управлением по скорости. Дифференциальный режим производит большее управляющее действие, если ошибка изменяется с большей скоростью. Если величина ошибки не меняется во времени, действие дифференциальной составляющей равно нулю. Дифференциальный режим имеет настройку, называемую Derivative Time (Td). Чем больше значение этого времени, тем больше вклад дифференциального управления. Установка времени Td на ноль полностью отключает этот режим.

Если время установлено слишком большим, будут возникать колебания и контур управления станет нестабилен. Для настройки дифференциальной составляющей контроллера используются две единицы измерения: минуты и секунды.

Пропорционально-интегрально-дифференциальный контроллер

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

На рис. 12 показан алгоритм неинтерактивного (также называемого идеальным) ПИД-регулятора, а на рис. 13 представлен алгоритм параллельного контроллера.

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

Это уменьшает влияние возмущения и сокращает время, необходимое для того, чтобы уровень вернулся к своему заданному значению (рис. 14).

На рис. 15 сравнивается скорость восстановления при P, PI и PID-регулировании температуры на выходе нагревателя после внезапного изменения давления топливного газа, как описано ранее.

Заключение

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

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

Авторизованный перевод Юрия Широкова
E-mail: textoed@gmail.com

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

Что делает пид регулятор

Что делает пид регулятор

ПИД регулятор – один из самых распространенных автоматических регуляторов. Он настолько универсален, что применяется практически везде, где нужно автоматическое управление. Например температурой: специальные печи, холодильники, инкубаторы, паяльники, сопло и стол 3D принтера, ИК паяльные станции и прочее. Поддержание частоты оборотов мотора, например для станков. Всевозможные балансирующие штуки, гироскутеры, сигвеи, левитирующие магнитные платформы, и конечно же квадрокоптеры и самолёты с автопилотом. Это всё ПИД регулятор. Почему именно ПИД?

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

Система управления

Что делает пид регулятор

Прежде чем переходить непосредственно к пиду, очень важно понять и запомнить несколько базовых понятий, из которых состоит автоматическая система. В первую очередь это регулятор, который всем заправляет и находится в центре системы. Регулятор в данном понимании – математический алгоритм или часть программы, которая крутится на микроконтроллере. Регулятор, как алгоритм, работает с обычными числами. Объект управления – это девайс, которым мы управляем, например печка или мотор.

Для этого у нас есть управляющее устройство, например диммируемый тен или драйвер мотора. Управляющее устройство получает от регулятора управляющий сигнал, то есть конкретное число. Это может быть заполнение шим сигнала, от 0 до 255, а может быть угол поворота сервомашинки от 0 до 180, потому что регулятору без разницы чем управлять. В объекте управления у нас стоит датчик, с которого регулятор получает управляемую величину, то есть текущий сигнал с датчика.

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

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

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

ПИД регулятор состоит из трёх составляющих: пропорциональной P, интегрирующей I и дифференциирующей D, формируется просто как сумма трёх значений, умноженных каждая на свой коэффициент. Эта сумма после вычислений становится управляющим сигналом, который подаётся на управляющее устройство, обозначим его как out.

out = P*kP + I*kI + D*kD

kP, kI и kD это и есть те самые коэффициенты, которые нужно настроить для работы ПИДа. Значения тут могут быть самые разные, от 0.001 то десятков и тысяч, это зависит от конкретной системы. Тут есть ещё один момент: любой коэффициент может быть равен нулю, и в таком случае обнуляется вся его компонента.

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

  • out – выход с регулятора (управляющий сигнал)
  • setpoint – установка (заданное значение)
  • input – вход (значение с датчика)
  • err – ошибка регулирования
  • dt – период вычисления и регулирования

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

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

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

P = setpoint - input

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

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

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

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

I = I + (setpoint - input) * dt

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

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

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

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

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

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

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

Для настройки регулятора нужно варьировать коэффициенты:

  • При увеличении kP увеличивается скорость выхода на установленное значение, увеличивается управляющий сигнал. Чисто математически система не может прийти ровно к заданному значению, так как при приближении к установке П составляющая пропорционально уменьшается. При дальнейшем увеличении kP реальная система теряет устойчивость и начинаются колебания.
  • При увеличении kI растёт скорость компенсации накопившейся ошибки, что позволяет вывести систему точно к заданному значению с течением времени. Если система медленная, а kI слишком большой – интегральная сумма сильно вырастет и произойдёт перерегулирование, которое может иметь характер незатухающих колебаний с большим периодом. Поэтому интегральную сумму в алгоритме регулятора часто ограничивают, чтобы она не могла увеличиваться и уменьшаться до бесконечности.
  • При увеличении kD растёт стабильность системы, она не даёт системе меняться слишком быстро. В то же время kD может стать причиной неадекватного поведения системы и постоянных скачков управляющего сигнала, если значение с датчика шумит. На каждое резкое изменение сигнала с датчика Д составляющая будет реагировать изменением управляющего сигнала, поэтому сигнал с датчика нужно фильтровать (читай урок по фильтрам).

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

Далее замеряем период колебаний системы в секундах, обозначим как T. Итоговые коэффициенты получим так:

  • kP = 0.6 * kP1
  • kI = kP / T * 2 * dt
  • kD = kP * T / 8 / dt

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

  • kP: 0.6*20=12
  • kI: 12/3*2*0.05=0.4
  • kD: 12*2/8/0.05=60

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

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

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

// (вход, установка, п, и, д, период в секундах, мин.выход, макс. выход) int computePID(float input, float setpoint, float kp, float ki, float kd, float dt, int minOut, int maxOut) < float err = setpoint - input; static float integral = 0, prevErr = 0; integral = constrain(integral + (float)err * dt * ki, minOut, maxOut); float D = (err - prevErr) / dt; prevErr = err; return constrain(err * kp + integral + D * kd, minOut, maxOut); >

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

Период dt имеет такой смысл: чем инерционнее у нас система, тем реже можно вычислять пид. Например для обогрева комнаты период можно поставить 1 секунду или больше, а для контроля за оборотами двигателя надо будет поставить пару десятков миллисекунд, то есть около сотни раз в секунду.

Библиотеки

  • GyverPID – моя библиотека со встроенным тюнером коэффициентов
  • QuickPID – хорошая библиотека с интересными возможностями (оптимизация интегральной суммы, смешанный режим пропорционально ошибке/измерению)
  • sTune – тюнер коэффициентов, несколько алгоритмов

Видео

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

  • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
  • Поддержать автора за работу над уроками
  • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *