Меню

Пропорциональная составляющая реагирует на текущую ошибку



Методика настройки цифрового ПИД-регулятора

Общие сведения

    Обычно, при использовании пропорционально-интегрально-дифференциального или ПИД- (PID- Proportional-Integral-Derivative) регулятора и грамотной его настройке, достигается лучшая точность управления по сравнению с двухпозиционным (релейным) регулятором. Но для оптимальной настройки регулятора и, как следствие, получение желаемого качества управления, необходимо понимание механизмов и принципов работы ПИД-регулятора.

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

Математическое выражение цифрового ПИД-регулятора

где:

    Xp — полоса пропорциональности

    Ei = (SP-PV) = (уставка-тек) = ошибка (рассогласование)

    Тд — постоянная времени дифференцирования

    ∆Ei — разность ошибок соседних измерений (Ei — Ei-1)

    ∆tизм — время между соседними измерениями (ti — t i-1)

    Ти — постоянная времени интегрирования

    — Накопленная к i-ому шагу сумма рассогласований (интегральная сумма)

    Легко заметить, что сигнал управления является суммой трех составляющих: пропорциональной (слагаемое 1), дифференциальной (слагаемое 2), и интегральной (слагаемое 3).

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

    Дифференциальная составляющая зависит от скорости изменения ошибки ∆Ei / ∆tизм и компенсирует резкие возмущения.

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

    Обычно ПИД-регулятор имеет дополнительные параметры помимо трех коэффициентов (Xp, Ти, Тд). Рассмотрим их более подробно на примере скриншота меню параметров ПИД-регулятора прибора “ПАРАГРАФ PL20”.

Рис. 1

    Каналов (выходов) ПИД-регулирования в приборе может быть несколько и параметры для каждого из них свои собственные. Поэтому выберите желаемый канал в первой графе.

    Источником обратной связи с объекта управления (текущая контролируемая величина) может быть любой измерительный канал прибора, поэтому необходимо выбрать желаемый измерительный канал в графе ВЛАДЕЛЕЦ.

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

    Уставка (SP) – это желаемая величина, на которую регулятор должен выйти в установившемся режиме.

    Xp – зона пропорциональности. Задается в единицах контролируемой величины (для терморегулятора в градусах). Зона пропорциональности называется так, потому что только в ней ((SP — Xp)…(SP + Xp)) пропорциональная составляющая ПИД-регулятора может формировать мощность выходного сигнала управления пропорционально ошибке. А за ее пределами мощность будет равна либо 0%, либо 100%. Таким образом, чем уже эта зона, тем быстрее отклик регулятора, но слишком высокое быстродействие может ввести систему в автоколебательный режим.

    Ти – постоянная времени интегрирования.

    Тд – постоянная времени дифференцирования.

    Текущая мощность – это информационный параметр.

    Минимальная и максимальная мощность определяют границы мощности выхода ПИД-регулятора.

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

    Последним параметром идет период ШИМ. Этот параметр один для всех ПИД-регуляторов, т.к. каналы ШИМ синхронизированы между собой от одного таймера. ШИМ сигнал позволяет регулировать мощность посредством регулировки скважности сигнала (регулируется ширина импульса при постоянной частоте модуляции). Разрядность ШИМ (число позиций мощности) равна 8192 дискреты (13 бит). Период ШИМ (от 1 мс до 250 сек). Этот параметр зависит от типа и коммутационных способностей силовых исполнительных ключей (м.б. реле, пускатель, твердотельное реле, симистор). Чем выше частота коммутации (чем меньше период) тем больше тепловые потери в ключах (квадратичная зависимость потерь от частоты) и больше износ механических коммутаторов, но лучше качество регулирования. Важно найти золотую середину.

Настройка пропорциональной компоненты (Xp)

   Перед настройкой зоны пропорциональности интегральная и дифференциальная компоненты отключаются, постоянная интегрирования устанавливается максимально возможной (Ти = макс), а постоянная дифференцирования минимально возможной (Тд = 0). Устанавливается безопасная величина уставки, равная (0,7…0,9)×SP, где SP – это реальная уставка настраиваемой системы. Зона пропорциональности устанавливается минимально возможной (Xp = 0).

   В этом случае регулятор выполняет функции двухпозиционного релейного регулятора с гистерезисом равным нулю. Регистрируется переходная характеристика.

Рис. 2

    Тο — начальная температура в системе;

    Тsp — заданная температура (уставка);

    ∆T — размах колебаний температуры;

    ∆t — период колебаний температуры.

    Установить зону пропорциональности равной размаху колебаний температуры: Xp = ∆T. Это значение служит

первым приближением для зоны пропорциональности.

    Следует проанализировать переходную характеристики еще раз и при необходимости скорректировать значение зоны пропорциональности. Возможные варианты переходных характеристик показаны на рис. 3.

Рис. 3

    Переходная характеристика типа 1: Значение зоны пропорциональности очень мало, переходная характеристика далека от оптимальной. Зону пропорциональности следует значительно увеличить.

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

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

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

    Выбросы устраняются дополнительным увеличением зоны пропорциональности так, чтобы получилась переходная характеристика типа 4.

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

    Переходная характеристика типа 5: Сильно затянутый подход к установившемуся значению говорит о том, что зона пропорциональности чрезмерно велика. Динамическая и статическая точность регулирования здесь мала.

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

Настройка дифференциальной компоненты (Tд)

    Этот этап присутствует только в том случае, если применяется полнофункциональный ПИД-регулятор. Если дифференциальная компонента применяться не будет (используется пропорционально-интегральный (ПИ) регулятор), то следует пропустить этот этап.

    На предыдущем этапе была задана зона пропорциональности, соответствующая переходной характеристике типа 2, в которой присутствуют затухающие колебания (см. рис. 3, кривая 2, рис. 4, кривая 1.).

Рис. 4

   Следует установить постоянную времени дифференцирования Тд так, чтобы переходная характеристика имела вид кривой 2 на рис. 4. В качестве первого приближения постоянная времени дифференцирования делается равной Тд = 0,2×∆t.

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

Настройка интегральной компоненты (Ти )

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

Рис. 5

    Интегральная компонента предназначена для того, чтобы убрать остаточное рассогласование между установившимся в системе значением температуры и уставкой. Начинать настраивать постоянную времени интегрирования следует с величины Ти = ∆t.

    Переходная характеристика типа 2: Получается при чрезмерно большой величине постоянной времени интегрирования. Выход на уставку получается очень затянутым.

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

    Переходная характеристика типа 3: Оптимальная.

Использованные источники информации

  • Сабинин Ю.А. Ковчин С.А. “Теория электропривода”
  • Шрейнер Р. Т. “Системы подчиненного регулирования электроприводов”
  • Олссон, Пиани “Цифровые системы автоматизации и управления”
  • Материалы сайта www.asu-tp.org

ООО «Автоматика» © 2012

Как следует из названия, в этой статье мы дадим точное представление о структуре и работе ПИД-контроллера. Однако сначала, давайте познакомимся с ПИД-контроллерами.

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

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

Работа ПИД-регулятора

При использовании недорогого простого контроллера возможны только два состояния управления, например, полностью ВКЛ или полностью ВЫКЛ. Он используется для настроек с ограничением контроля, в котором эти два состояния управления достаточно для целей управления. Однако характер этого контроля ограничивает его использование и, следовательно, заменяется ПИД-контроллерами.

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

П-контроллер:

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

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

И-контроллер

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

Интегральное управление уменьшает его выход, когда происходит отрицательная ошибка. Он ограничивает скорость реакции и влияет на стабильность системы. Скорость реакции увеличивается за счет уменьшения интегрального усиления Ki.

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

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

Д-контроллер

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

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

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

Методы настройки ПИД-регулятора

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

Метод проб и ошибок: это простой способ настройки ПИД-регулятора. Пока система или контроллер работают, мы можем настроить контроллер. В этом методе сначала нужно установить значения Ki и Kd в нуль и увеличить пропорциональный коэффициент (Kp), пока система не достигнет колебательного поведения. Как только он осциллирует, отрегулируйте Ki (интегральный термин), чтобы колебания остановились и, наконец, отрегулировали Д, чтобы получить быстрый отклик.

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

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

Метод Zeigler-Nichols: Zeigler-Nichols предложил методы замкнутого контура для настройки ПИД-регулятора. Это метод непрерывного циклирования и метод демпфирования колебаний. Процедуры для обоих методов одинаковы, но поведение колебаний различно. При этом сначала нужно установить постоянную p-контроллера, Kp на определенное значение, а значения Ki и Kd равны нулю. Пропорциональный коэффициент усиления увеличивается до тех пор, пока система не будет колебаться с постоянной амплитудой.

Усиление, при котором система производит постоянные колебания, называется конечным усилением (Ku), а период колебаний называется предельным периодом (Pc). Как только это достигнуто, мы можем ввести значения P, I и D в ПИД-контроллере по таблице Zeigler-Nichols, зависит от контроллера, используемого как P, PI или PID, как показано ниже.

Структура ПИД-регулятора

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

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

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

Все управляющие приложения не нуждаются во всех трех элементах управления. Комбинации, такие как элементы управления PI и PD, очень часто используются в практических приложениях.

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

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


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

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


ПИД регулятор состоит из трёх составляющих: пропорциональной 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])

В этом уроке

  • И-регулятор и за что он отвечает
  • Настройка регулятора
  • Управление машинкой с помощью ПИД-регулятора

Видео версия урока

Общие сведения о ПИД-регуляторе:

В прошлом уроке мы разобрались с работой ПД-регулятора.

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

Это достигается простым умножением текущей ошибки на коэффициент kP:



P = ОШИБКА * kP

П-регулятор указывает машине повернуть в сторону линии. Чем дальше линия от центра бампера, итем сильнее ошибка отличается от 0, тем круче поворот машины.

Недостатком П-регулятора является то, что он не может работать на больших скоростях.

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

Дифференциальная составляющая (от лат. differentia – разность) — это разность между текущей и предыдущей ошибкой.

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

Это достигается умножением разности ошибок на коэффициент kD:
D = (ОШИБКА – предыдущая ОШИБКА) * кD

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

Чем выше скорость изменения ошибки, тем сильнее влияние Д-регулятора.

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

Недостатком Д-регулятора является его чувствительность к шумам (некорректным данным).

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

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

Интегральная составляющая (от лат. integra – составной) — это сумма нескольких последних ошибок.

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

Это достигается умножением суммы ошибок на коэффициент kI.
I = СУММА ПОСЛЕДНИХ ОШИБОК * кI

Количество ошибок в сумме определяет скорость реакции И-регулятора:

  • Малое количество ошибок приведёт к тому, что их сумма будет мала для воздействия;
  • Большое количество ошибок придаст воздействию существенную инерционность;
  • В примере ниже мы будем использовать сумму из 10 последних ошибок.

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

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

Пример: представим, что машина едет по дуге, и бампер выдаёт ошибку 0,5. П-регулятор слабо доворачивает вправо, — этого хватает для движения по линии, но ошибка сохраняется на прежнем уровне до завершения поворота. Значит, весь путь центр бампера был смещён от центра линии. Сумма из 10 ошибок по 0,5 уже равна 5, и И-регулятор поможет П-регулятору скорректировать путь так, что центр бампера пройдёт по центру линии на протяжении всей дуги.

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

ПИД регулятор возвращает результат, который является суммой
пропорциональной, интегральной и дифференциальной составляющих:
PID = P + I + D

Поведение составляющих ПИД-регулятора:

Поведение составляющих ПД-регулятора было рассмотрено в предыдущем уроке. Ниже представлена картинка движения машины по линии с ПД-регулятором:

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

После добавления интегральной составляющей, картинка станет такой:

И-регулятор накапливает ошибки и оценивает их сумму. Это позволяет ему справляться со статическими или слабыми ошибками. Теперь машина едет по прямой и на повороте ровнее

Код ПИД-регулятора:

float ERR[10] = {0,0,0,0,0,0,0,0,0,0};                 // Определяем массив последних ошибок
                                                       //
void loop(){                                           //
     i++;     if( i>=10 ){ i=0; }                      // Переходим к следующему элементу массива «ERR»
     ERR[i] = bum.getErrPID();                         // Получаем текущую ошибку
     SUM    = 0; for( auto a:ERR ){ SUM+=a; }          // Получаем сумму последних ошибок
     P      = ERR[i]            * kP;                  // Определяем пропорциональную составляющую регулятора
     I      = SUM               * kI;                  // Определяем интегральную составляющую регулятора
     D      = ( ERR[i]-ERR[j] ) * kD;                  // Определяем дифференциальную составляющую регулятора
     PID    = P + I + D;                               // Получаем результат ПИД-регулятора
     j      = i;                                       // Сохраняем номер элемента массива «ERR» в котором хранится текущая ошибка,
}                                                      // на следующем проходе цикла она станет предыдущей ошибкой
  • До цикла определяем массив ERR для хранения 10 последних ошибок;
  • Предполагается, что остальные переменные кода также объявлены;
  • Первая строка цикла увеличивает значение i на 1, со сбросом в 0 при достижении 10;
  • Вторая строка сохраняет текущую ошибку в элемент ERR[i];
  • Третьей строкой мы получаем в переменную SUM сумму последних 10 ошибок;
  • Следующие три строки определяют составляющие ПИД регулятора;
  • Предпоследняя строка получает результат PID как сумму составляющих P + I + D;
  • Последней строкой значение i сохраняется в j. Значит, при каждом новом проходе цикла элемент ERR[i] хранит текущую ошибку, а ERR[j]  хранит предыдущую ошибку.

Настройка ПИД-регулятора:

  • Настройка ПИД-регулятора сводится к поиску коэффициентов для пропорциональной, интегральной и дифференциальной составляющих.
  • Сброс любого из коэффициентов в 0 приводит к отключению его составляющей:
    • Спрос kP в ПИД-регуляторе приведёт к получению ИД-регулятора;
    • Спрос kI в ПИД-регуляторе приведёт к получению ПД-регулятора;
    • Спрос kD в ПИД-регуляторе приведёт к получению ПИ-регулятора.
  • Получаем П-регулятор, сбросив в 0 коэффициенты kI и kD.
  • Подбираем значение kP, при котором бампер машины или не покидает линию трассы на всех её поворотах, или находится как можно ближе к линии на поворотах. При этом машина может «вилять» на прямых участках трассы — это нормально. Во время настройки допускается немного снизить скорость машины, но её прийдётся вновь повысить в следующем пункте.
  • Постепенно увеличиваем значение kD, получая ПД-регулятор. При этом машина будет всё меньше «вилять» на прямых участках трассы и лучше проходить крутые повороты:
    • Слишком высокий kD приведёт к тому, что машина начнёт «дрожать» на прямой линии;
    • Слишком низкий kD не избавит от «виляний» машины на прямых участках и не улучшит прохождение крутых поворотов;
    • Оптимальным является kD, при котором бампер машины не покидает линию на всех поворотах трассы. При этом машина не «виляет» и не «дрожит» на прямых участках;
    • После настройки kD можно снизить kP, если это не ухудшит движение машины;
  • Постепенно увеличиваем значение kI, получая ПИД-регулятор, уменьшая отклонение центра бампера от центра линии как на прямых участках трассы, так и на поворотах:
    • Слишком высокий kI похож на перерегулировку kP — машина начнёт «вилять»;
    • В процессе настройки kI можно снизить подобранные ранее kP и kD.
  • Коэффициенты kP, kI и kD являются константами, только если машина движется с одной скоростью.

Коэффициент регулятора определяет силу воздействия регулятора.

Чем больше коэффициент, тем сильнее меняется выходная величина.

  • Обычно kD > kP, так как разность ошибок меньше одной ошибки, значит, коэффициент больше.
  • Обычно kI < kP, так как сумма ошибок больше одной ошибки, значит, коэффициент меньше.

Скетч для одной скорости:

Скорость колёс в скетче задаётся функцией setSpeed() в процентах.
Выберем скорость машины, равную 60%. Именно эту скорость мы и указываем обоим колёсам.
Предположим, что при kI = 0, kD = 0, kP = 8 машина не покидает повороты трассы.
Предположим, что при kI = 0, kD = 14.4, kP = 8 машина перестала «вилять» на прямых участках.
Предположим, что при kI = 0.1, kD = 14.4, kP = 8 бампер не покидает центр линии на поворотах.

#include <Wire.h>                                 // Подключаем библиотеку для работы с аппаратной шиной I2C
#include <iarduino_I2C_Motor.h>                   // Подключаем библиотеку для работы с мотором  I2C-flash
#include <iarduino_I2C_Bumper.h>                  // Подключаем библиотеку для работы с бампером I2C-flash
                                                  //
iarduino_I2C_Motor mot_R (0x0A);                  // Объявляем объект mot_R для правого мотора, указав адрес модуля на шине I2C
iarduino_I2C_Motor mot_L (0x0B);                  // Объявляем объект mot_L для правого мотора, указав адрес модуля на шине I2C
iarduino_I2C_Bumper bum(0x0C);                    // Объявляем объект bum  для работы с бампером I2C-flash, указав адрес модуля на шине I2C
                                                  //
float   speed   = 60;                             // Скорость машины в %
float   kP      = 8;                              // Коэффициент пропорциональной составляющей
float   kI      = 0.1;                            // Коэффициент интегральной составляющей
float   kD      = 14.4;                           // Коэффициент дифференциальной составляющей
float   ERR[10] = {0,0,0,0,0,0,0,0,0,0};          // Определяем массив последних ошибок
uint8_t i;                                        // Объявляем переменную указывающую на элемент массива «ERR» хранящий текущую ошибку
                                                  //
void setup(){                                     //
     mot_R.begin();                               // Инициируем работу с левым  мотором I2C-flash
     mot_L.begin();                               // Инициируем работу с правым мотором I2C-flash
     bum.begin();                                 // Инициируем работу с бампером I2C-flash
     mot_R.setDirection(true);                    // Указываем правому мотору, что его вращение должно быть прямым (по часовой стрелке при положительных скоростях)
     mot_L.setDirection(false);                   // Указываем левому мотору, что его вращение должно быть обратным (против часовой стрелки при положительных скоростях)
}                                                 //
                                                  //
void loop(){                                      //
           i++;     if( i>=10 ){ i=0; }           // Переходим к следующему элементу массива «ERR»
           ERR[i] = bum.getErrPID();              // Получаем текущую ошибку
     float SUM    = 0; for(auto j:ERR){SUM+=j;}   // Получаем сумму последних ошибок
     float P      = ERR[i]                 * kP;  // Определяем пропорциональную составляющую регулятора
     float I      = SUM                    * kI;  // Определяем интегральную составляющую регулятора
     float D      = (ERR[i]-ERR[(i+9)%10]) * kD;  // Определяем дифференциальную составляющую регулятора
     float PID    = P + I + D;                    // Получаем результат ПИД-регулятора
     mot_R.setSpeed( speed - PID, MOT_PWM );      // Устанавливаем скорость правого мотора
     mot_L.setSpeed( speed + PID, MOT_PWM );      // Устанавливаем скорость левого  мотора
}

Немного пояснений к коду loop():

  • Текущая ошибка сохраняется в элемент ERR[i];
  • Цикл for(auto j:ERR) проходит по всем элементам массива ERR, копируя их значения в переменную j. В теле цикла выполняется суммирование всех значений в SUM;
  • Запись ERR[(i+9)%10] равносильна записи ERR[i-1] , только при i=0 получим ERR[9]. Эта запись позволяет получить предыдущую ошибку.

Дополнительное задание.

Попробуйте изменить коэффициент И-регулятора kI и посмотрите на результат.

Скетч для диапазона скоростей:

В предыдущем скетче все коэффициенты были найдены для скорости 60%. Если уменьшить скорость движения машины speed с 60% до 30%, то найденные ранее коэффициенты будут слишком велики, и мы получим перерегулирование.

Выход из положения — найти коэффициенты для минимальной и максимальной скоростей машины, после чего вывести формулы зависимости коэффициентов от скорости. Мы уже так делали в предыдущих уроках с коэффициентами kP и kD. Коэффициент kI обычно столь мал, что не сильно зависит от скорости.

Теперь можно написать скетч, у которого скорость можно менять от 20 до 60%:

#include <Wire.h>                                 // Подключаем библиотеку для работы с аппаратной шиной I2C
#include <iarduino_I2C_Motor.h>                   // Подключаем библиотеку для работы с мотором I2C-flash
#include <iarduino_I2C_Bumper.h>                  // Подключаем библиотеку для работы с бампером I2C-flash
                                                  //
iarduino_I2C_Motor mot_R (0x0A);                  // Объявляем объект mot_R для правого мотора, указав адрес модуля на шине I2C
iarduino_I2C_Motor mot_L (0x0B);                  // Объявляем объект mot_L для правого мотора, указав адрес модуля на шине I2C
iarduino_I2C_Bumper bum(0x0C);                    // Объявляем объект bum  для работы с бампером I2C-flash, указав адрес модуля на шине I2C
                                                  //
float   speed   = 60;                             // Скорость машины в %.
float   kP      = 3 + 0.125*(speed-20);           // Коэффициент пропорциональной составляющей
float   kI      = 0.1;                            // Коэффициент интегральной составляющей
float   kD      = speed*speed/250;                // Коэффициент дифференциальной составляющей
float   ERR[10] = {0,0,0,0,0,0,0,0,0,0};          // Определяем массив последних ошибок
uint8_t i;                                        // Объявляем переменную, указывающую на элемент массива «ERR», который хранит текущую ошибку
                                                  //
void setup(){                                     //
     mot_R.begin();                               // Инициируем работу с левым  мотором I2C-flash
     mot_L.begin();                               // Инициируем работу с правым мотором I2C-flash
     bum.begin();                                 // Инициируем работу с бампером I2C-flash
     mot_R.setDirection(true);                    // Указываем правому мотору, что его вращение должно быть прямым (по часовой стрелке при положительных скоростях)
     mot_L.setDirection(false);                   // Указываем левому мотору, что его вращение должно быть обратным (против часовой стрелки при положительных скоростях)
}                                                 //
                                                  //
void loop(){                                      //
           i++;     if( i>=10 ){ i=0; }           // Переходим к следующему элементу массива «ERR»
           ERR[i] = bum.getErrPID();              // Получаем текущую ошибку
     float SUM    = 0; for(auto j:ERR){SUM+=j;}   // Получаем сумму последних ошибок
     float P      = ERR[i]                 * kP;  // Определяем пропорциональную составляющую регулятора
     float I      = SUM                    * kI;  // Определяем интегральную составляющую регулятора
     float D      = (ERR[i]-ERR[(i+9)%10]) * kD;  // Определяем дифференциальную составляющую регулятора
     float PID    = P + I + D;                    // Получаем результат ПИД-регулятора
     mot_R.setSpeed( speed - PID, MOT_PWM );      // Устанавливаем скорость правого мотора
     mot_L.setSpeed( speed + PID, MOT_PWM );      // Устанавливаем скорость левого  мотора
}

Этот скетч отличается от предыдущего только тем, что значения kP и kD определены не числами, а формулами.

При изменении значений скорости speed в пределах от 20% до 60%, будут автоматически пересчитываться коэффициенты kP и kD, и машина продолжит корректно двигаться по линии

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

Недостаток ПИД-регулятора:

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

Применение ПИД-регулятора в системах автоматики

Что же такое ПИД-регулятор? Прежде всего это алгоритм, который может быть реализован как программно, так и аппаратно. Сегодня мы рассмотрим ПИД-регулятор как законченное устройство, которое может быть использовано для построения систем управления и автоматики. В качестве примера возьмём устройство компании «ОВЕН»  ТРМ210. Но для начала немного теории…

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

ПИД-регулятор относится к регуляторам непрерывного типа. Аббревиатура «ПИД» расшифровывается как «пропорционально-интегрально-дифференциальный» (регулятор) — эти три слова полностью описывают принцип его действия. Общая структурная схема управления выглядит так:

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

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

Функция преобразования ПИД-регулятора выглядит следующим образом:

ПИД-регилирование,где E — ошибка регулирования (разница между заданным значением регулируемой величины и фактическим)

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

Пропорциональная:  «Чем больше — тем больше, чем меньше  — тем меньше»

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

Интегральная:  «Учтём предыдущий опыт»

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

Дифферинциальная:  «Учтём скорость изменения»

Эта составляющая берёт производную от измеряемой величины. Физический смысл производной- это скорость изменения физической величины. Например, чем быстрее растёт (или падает) температура в системе, тем больше будет соответствующая производная. Дифферинциальная составляющая позволяет регулятору по-разному реагировать на резкие и плавные изменения регулируемой величины в системе, тем самым избегая «раскачивания» этой величины.

ТРМ210: Функциональная схема прибора

Краткий экскурс в теорию закончен, вернёмся к практике и рассмотрим прибор ТРМ210, реализующий данный алгоритм.

ТРМ210

Вот его функциональная схема:

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

Значение измеренной величины отображается на дисплее прибора.

Управляющее воздействие регулятора может быть импульсным или аналоговым. В первом случае управляющее воздействие регулятора заключается в изменении ширины генерируемых на выходе импульсов. Во втором случае регулятор выдаёт сигнал унифицированного напряжения в диапазоне 0…10 В или тока в диапазоне 4…20 мА. С помощью этих сигналов можно управлять практически любым устройством.

В ТРМ210 предусмотрен блок сигнализации, который сообщает о выходе физической величины за заданные пределы, замыкая дискретный выход, который, например, может «зажигать» лампу «Авария».

Также в приборе имеется блок регистратора, который может передавать измеренное значение физической величины любому другому прибору или устройству с помощью токового сигнала 4…20 мА.

В дополнение ко всему выше перечисленному регулятор имеет «на борту» интерфейс RS-485, который позволяет читать с прибора значения измеряемой величины, выходной мощности регулятора и любых конфигурируемых параметров. Это может пригодиться, если нужно передавать информацию о работе прибора в диспетчерский пункт.

Пример использования

Допустим, необходимо реализовать проветривание помещения следующим образом: чем больше температура внутри, тем больше нужно открыть окно. Для этого установим на окно привод, который будет плавно поворачиваться на заданный угол, а управляться будет сигналом тока 4…20 мА (такой управляющий сигнал поддерживают практически все подобные приводы). То есть, если подать на привод сигнал 4 мА — он полностью закроет окно, а 20 мА — полностью его откроет.

Для измерения температуры можно взять любой из поддерживаемых ТРМ210 — это практически любые термопары и любые датчики имеющие унифицированные выходы 0…10 В и 4…20 мА.

Настройка ПИД-регулятора

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

До свидания! Читайте LAZY SMART.


ОБОРУДОВАНИЕ ТЕХНОЛОГИИ РАЗРАБОТКИ

Продолжение разработки проекта контроллера модуля Пельтье, начатой в уроке 36. Узнаем, что такое ПИД регулятор.

Предыдущий урок Список уроков Следующий урок

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

В предыдущем уроке мы разработали регулятор мощности. Связь регуляторов мощности и температуры выглядит так.

  • Регулятор температуры получает измеренную температуру, сравнивает ее с заданной температурой и вычисляет значение заданной мощности для регулятора мощности.
  • Регулятор мощности формирует ШИМ, соответствующий заданной мощности.

Регулятор мощности мы построили по интегральному закону регулирования. Для стабилизации температуры будем использовать более сложный алгоритм управления – пропорционально-интегрально-дифференцирующий (ПИД) регулятор.

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

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

Регулятор, работающий по такому принципу, обладает высокой точностью. Остальные критерии качества регулирования – быстродействие и устойчивость — у него не на высоте.

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

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

В формировании выходного сигнала ПИД регулятора участвуют:

  • Пропорциональная составляющая – значение пропорционально ошибке рассогласования (разности заданного и реального значений регулируемого параметра).
  • Интегрирующая составляющая – интеграл ошибки рассогласования.
  • Дифференцирующая составляющая – производная ошибки рассогласования.

Математическая форма записи закона ПИД регулятора имеет вид:

o(t) = P + I + D = Kp e(t) + Ki ∫e(t)dt + Kd de(t)/dt

  • o(t) – выходной сигнал;
  • P – пропорциональная составляющая;
  • I – интегрирующая составляющая;
  • D – дифференцирующая составляющая;
  • Kp, Ki, Kd – коэффициенты пропорционального, интегрирующего, дифференцирующего звеньев;
  • e(t) – ошибка рассогласования.

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

Структурная схема ПИД регулятора напряжения U выглядит так.

  • Измеренное напряжение Ureal(t) вычитается из заданного Uset.
  • Полученная ошибка рассогласования e(t) поступает на пропорциональное, интегрирующее и дифференцирующее звенья.
  • В результате суммы составляющих получается управляющее воздействие o(t), которое подается на регулирующий элемент.

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

Составляющие ПИД регулятора.

Еще раз. Выходной сигнал ПИД регулятора это сумма трех составляющих:

  • пропорциональной;
  • интегрирующей;
  • дифференцирующей.

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

P(t) = Kp * e(t)

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

Пропорциональная составляющая не способна компенсировать ошибку полностью. Это видно из формулы. Выходной сигнал в Kp раз больше ошибки. Если ошибка рассогласования равна 0, то и выходной сигнал регулятора равен 0. А тогда и компенсировать нечем.

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

К недостаткам пропорциональных регуляторов следует отнести:

  • наличие статической ошибки регулирования;
  • невысокая устойчивость при увеличении коэффициента.

Есть весомое преимущество:

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

Регуляторы, работающие только по пропорциональному закону, применяют редко.

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

Интегрирующая составляющая.

I(t) = Ki ∫e(t)dt

Пропорциональна интегралу ошибки рассогласования. С учетом временной дискретности регулятора можно написать так:

I(t) = I(t-1) + Ki * e(t)

  • I(t-1) – значение I в предыдущей точке временной дискретизации.

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

К недостаткам интегрального регулятора следует отнести:

  • низкое быстродействие;
  • посредственная устойчивость.

Достоинство:

  • Способность полностью компенсировать ошибку рассогласования при любом коэффициенте усиления.

На практике часто используют интегрирующие регуляторы (только интегрирующая составляющая) и пропорционально-интегрирующие (интегрирующая и пропорциональная составляющие).

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

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

D(t) = Kd de(t)/dt

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

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

D(t) = Kd * ( e(t) — e(t-1) )

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

Регуляторов, состоящих из единственного дифференцирующего звена, не бывает.

Главная задача дифференцирующего звена в ПИД регуляторе – повышение устойчивости.

Настройка ПИД регулятора.

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

О качестве регулирования судят по переходной характеристике регулятора. Т.е. по графику изменения регулируемого параметра во времени.

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

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

Составляющие ПИД регулятора настраиваются отдельно.

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

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

Благодаря высоким характеристикам и универсальности ПИД регуляторы широко применяются в системах автоматизации производства.

В следующем уроке будем разрабатывать ПИД регулятор температуры.

Предыдущий урок Список уроков Следующий урок

Поддержать проект

1

Автор публикации

не в сети 1 день

Эдуард

206

Комментарии: 1699Публикации: 173Регистрация: 13-12-2015

Преобразователи частоты ABB серии ACS355

Преобразователи частоты ABB серии ACS355 – оптимальный выбор по соотношению «цена-качество» для решения задач с ПИД-регулированием. Общий вид приводов ACS355 показан на рис.4.

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

Преобразователи частоты ABB серии ACS355 с базовой панелью управления 2

Рис.4. Преобразователи частоты ABB серии ACS355 с базовой панелью управления.

В данной статье, для примера, рассмотрен вариант настройки ПИД-регулятора преобразователя ACS355 при помощи панели управления.

Панель управления к частотному приводу ACS355 предлагается в двух вариантах исполнения: базовая панель и интеллектуальная панель управления (см. рис.5).

Рис.5. Варианты панелей управления к преобразователям частоты ABB серии ACS355.

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

При использовании базовой панели управления встроенных удобных инструментов, указанных выше, нет.

VII. Измерение входных данных

Я пропускаю этот вопрос, потому как он достоен отдельной большой статьи. О том, как я решал вопрос с термосопротивлением, можно найти в архиве почившего в бозе моего блога.
Главное что нам надо знать, это что мы измеряем данные с нужной нам частотой (в данном случае — 25Гц), и нужной точностью (на выходе — число от 0 до 2048 градусов кельвина через 1/32 градуса). Данные предполагаются уже нормализованные для всех дальнейших расчетов.

Если будет кому интересно — пишите в комментах, распишу в следующий раз как это делается для термопар.

Методика настройки ПИД-регулятора

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

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

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

Объект регулирования – камерная электрическая печь. Число зон регулирования от 24 до 40. Каждая зона есть набор электронагревателей. Материал нагревателей нихром. Тип — проволочные, навитые на керамические трубки.

Требования: поддержание температуры по зонам печи +/- 5С.

МЕТОДИКА:

Настройка пропорциональной компоненты (Xp)

  1. Перед настройкой зоны пропорциональности интегральная и дифференциальная компоненты отключаются:
  • Постоянная интегрирования устанавливается минимально возможной (Ти =0),
  • Постоянная дифференцирования минимально возможной (Тд = 0).

Тο — начальная температура в системе; Тsp — заданная температура (уставка); ∆T — размах колебаний температуры; ∆t — период колебаний температуры.

  1. Меняем значение пропорциональной составляющей Xp от минимума (0) до момента, пока не появятся устойчивые колебания системы с периодом ∆t.

Система должна находится в постоянном колебательном процессе, притом колебательный процесс незатухающий, где ∆T– характеристика колебания равная значению величины рассогласования (±10С, или как по заданию). Колебания должны быть одинаковы от Тsp.

После получения данной кривой на нашем объекте, засекаем время периода колебаний ʌt – полный период. Данное время есть характеристика системы, оборудования.

3. Используя полученные параметры рассчитываем Ти и Тд.

Зона пропорциональности Коэффициент передачи Постоянная времени интегрирования Постоянная времени дифференцирования
П-регулятор 2*PBs 0.5*Xp
ПИ-регулятор 2.2*PBs 0.45*Xp 0.83*ʌТ
ПИД-регулятор 1.67*PBs 0.6*Xp 0.5*ʌТ 0.125*ʌТ

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

Сравнение ПИД –регулятора с позиционным регулированием

В системах АСУ ТП наибольшее распространение получили два типа регуляторов – двухпозиционный и ПИД.

Двухпозиционный регулятор наиболее простой в использовании и широко распространенный.

Данный тип регулятора сравнивает значение входной величины с заданным параметром уставки. Если значение измеренной величины ниже заданного значения уставки, регулятор включает исполнительное устройство, при превышении заданного значения, исполнительное устройство выключается. Для предотвращения слишком частого срабатывания устройства, в следствии колебаний системы и следовательно изменении значений, задается минимальный и максимальный порог срабатывания — гистерезис, или по другому зона нечувствительности, мертвая зона, дифференциал. Например, нам необходимо поддерживать температуру в 15°С. Если гистерезис задан 2°, то регулятор будет включать нагрев при 14°С и отключать соответственно при 16°С.

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

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

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

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

Задачи ПИД-регулятора в системах АСУ ТП

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

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

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

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

В отсутствие автоматических контроллеров все задачи регулирования приходится выполнять вручную. Например, для поддержания постоянной температуры воды, подогреваемой промышленным газовым нагревателем, оператор должен следить за датчиком температуры и соответствующим образом регулировать подачу газа при помощи клапана (рис. 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 поддерживает наиболее распространённый неинтерактивный алгоритм, а также параллельный алгоритм.

Универсальность делает MAQ®20 чрезвычайно мощным устройством и адаптируемым для широкого спектра приложений управления процессами, включая:

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

Линейка продуктов MAQ®20, вобравшая в себя более 25 лет опыта проектирования компании Dataforth в индустрии управления процессами, предлагает самую низкую стоимость на канал, точность ±0,035% и изоляцию 1500 В, а также обеспечивает превосходное ПИД-управление процессами.

Авторизованный перевод Юрия Широкова

E-mail:
textoed@gmail.com

Прежде всего, поблагодарите Хуан Гунга, публичный аккаунт WeChat StrongHuang, далее — интеграция трех статей, поиск WeChat «StrongHuang» или сканирование QR-кода ниже, чтобы следовать за ним.

Ссылка на статью: https://mp.weixin.qq.com/s/6Ew431m4nXhScpNVp8mGxQ
https://mp.weixin.qq.com/s/JYWnu67HEx2uMrntcUhggQ
https://mp.weixin.qq.com/s/IrTehHvTofXWP_BapoN1NQ

В промышленных приложениях PID и его производные алгоритмы являются одними из наиболее широко используемых алгоритмов, и они являются заслуженными универсальными алгоритмами.Если вы можете освоить процесс проектирования и реализации алгоритмов PID, этого должно быть достаточно для обычного персонала R&D, чтобы иметь дело с общими исследованиями и разработками. Проблема в том, и это похвально, что среди алгоритмов управления, с которыми я столкнулся, алгоритм ПИД-управления является самым простым и наилучшим образом отражает мысли обратной связи. Его можно назвать классическим среди классических. Классика не обязательно сложна. Классика часто бывает простой и самой простой. Подумайте о трех законах механики Ньютона и уравнении массы-энергии Эйнштейна. Как просто! Простое не примитивно, и простое не отсталое, простое по степени красоты.


1. Что такое PID
PID, которыйПропорция, интегральная и производнаяАббревиатура из трех слов. Характеристики этих трех блоков можно регулировать, регулируя коэффициенты усиления Kp, Ki и Kd этих трех блоков ПИД-регулятор в основном подходит для систем, которые в основном являются линейными и динамические характеристики которых не изменяются со временем.

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

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

Система состоит из аналогового ПИД-регулятора и управляемого объекта.

На приведенной выше блок-схеме r (t) — это заданное значение, y (t) — это фактическое выходное значение системы, данное значение и фактическое выходное значение составляют отклонение управления e (t) = r (t) — y (t).

e (t) используется как вход ПИД-регулирования, u (t) используется как выход ПИД-регулятора и вход управляемого объекта. Итак, закон управления аналоговым ПИД-регулятором:
 Три важных параметра:
Kp: пропорциональный коэффициент контроллера.
Ti: время интегрирования контроллера, также называемое интегральным коэффициентом.
Td: производное время регулятора, также называемое производным коэффициентом.

1. П-пропорциональная часть:Теперь регулирование — это способность системы приспосабливаться к текущим ошибкам.
Функция пропорционального звена — мгновенно реагировать на отклонение. Как только произойдет отклонение, контроллер немедленно возьмет на себя управление, так что контрольная величина изменится в направлении уменьшения отклонения. Сила управляющего воздействия зависит от коэффициента пропорциональности Kp. Чем больше коэффициент пропорциональности Kp, тем сильнее управляющее воздействие, тем быстрее переходный процесс и меньше статическое отклонение процесса управления; но чем больше Kp, тем легче вызывать колебания и повреждение Стабильность системы. Следовательно, коэффициент пропорциональности Kp должен быть выбран соответствующим образом, чтобы время перехода было небольшим, статическая разница была небольшой, а эффект был стабильным.
Пропорциональный элемент управления учитывает текущую ошибку, а значение ошибки умножается на положительную константу Kp (представляющую отношение). Как показано на рисунке ниже, при различном коэффициенте пропорционального усиления Kp изменение регулируемой переменной во времени (Ki и Kd сохраняют постоянные значения):

2. I-неотъемлемая частьИсправление прошлого — средство устранения статических ошибок в системе.
Из математического выражения интегральной части можно узнать, что до тех пор, пока есть отклонение, его управляющий эффект будет продолжать увеличиваться; только когда отклонение e (t) = 0, его интеграл может быть Постоянная, управляющий эффект — это постоянная величина, которая не увеличивается. Видно, что составная часть позволяет устранить отклонение системы.

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

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

Интегральное управление учитывает прошлую ошибку и умножает сумму значения ошибки (сумму ошибок) на положительную константу Ki. Как показано на рисунке ниже, при различном интегральном усилении Ki изменение регулируемой переменной во времени (Kp и Kd сохраняют постоянные значения):

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

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

Дифференциальное управление учитывает будущую ошибку, вычисляет первую производную ошибки и умножает ее на положительную константу Kd. Как показано на рисунке ниже, при различном дифференциальном усилении Kd изменение регулируемой переменной во времени (Kp и Ki сохраняют фиксированное значение):

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

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

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

1. Стабильность
Если параметры ПИД-регулятора не выбраны должным образом, его выход контроллера может быть нестабильным, то есть его выход может расходиться, и во время процесса могут или не могут быть колебания, а его выход Ограничено только насыщением или механическим повреждением. Нестабильность обычно вызывается чрезмерным усилением, особенно для систем с большим временем задержки.

2. Лучшая производительность
Наилучшая производительность ПИД-регулятора может быть связана с изменениями процесса или изменением заданного значения и будет варьироваться от приложения к приложению.

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

3. Сравнение различных методов отладки.

4. Отрегулируйте влияние параметров PID на систему.

Давайте покажем всем видео, перемещенное с YouTube:[Отсутствует видео]

Четыре, код алгоритма PID【Подлежит редактированию】
Алгоритмы ПИД-регулирования можно разделить на позиционные ПИД-алгоритмы и алгоритмы инкрементального ПИД-регулирования.

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

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

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

Исходный код языка C, прямо отраженный формулой, приведен ниже (пожалуйста, измените исходный код вместе с проектом):
1. Позиционный PID

typedef struct
{
  float Kp;                       // Пропорционально
  float Ki;                       // Интегральный коэффициент Integral
  float Kd;                       // Производная

  float Ek;                       // Текущая ошибка
  float Ek1;                      // Предыдущая ошибка e (k-1)
  float Ek2;                      // Предыдущая ошибка e (k-2)
  float LocSum;                   // Позиция накопленных точек
}PID_LocTypeDef;

/************************************************
 Имя функции: PID_Loc
 Функция: расчет местоположения PID
 Параметр: SetValue ------ установленное значение (ожидаемое значение)
                         ActualValue --- фактическое значение (значение обратной связи)
                         PID ----------- Структура данных PID
 Возвращаемое значение: PIDLoc -------- Положение PID
 Автор: StrongHuang
*************************************************/
float PID_Loc(float SetValue, float ActualValue, PID_LocTypeDef *PID)
{
  float PIDLoc;                                  //позиция

  PID->Ek = SetValue - ActualValue;
  PID->LocSum += PID->Ek;                         // Кумулятивная ошибка

  PIDLoc = PID->Kp * PID->Ek + (PID->Ki * PID->LocSum) + PID->Kd * (PID->Ek1 - PID->Ek);

  PID->Ek1 = PID->Ek;  return PIDLoc;
}

2. Инкрементальный ПИД-регулятор

typedef struct
{
  float Kp;                       // Пропорционально
  float Ki;                       // Интегральный коэффициент Integral
  float Kd;                       // Производная

  float Ek;                       // Текущая ошибка
  float Ek1;                      // Предыдущая ошибка e (k-1)
  float Ek2;                      // Предыдущая ошибка e (k-2)
}PID_IncTypeDef;

/************************************************
 Имя функции: PID_Inc
 Функция: расчет приращения (инкремента) ПИД
 Параметр: SetValue ------ установленное значение (ожидаемое значение)
                         ActualValue --- фактическое значение (значение обратной связи)
                         PID ----------- Структура данных PID
 Возвращаемое значение: PIDInc -------- На этот раз приращение PID (+/-)
 Автор: StrongHuang
*************************************************/
float PID_Inc(float SetValue, float ActualValue, PID_IncTypeDef *PID)
{
  float PIDInc;                                  // Приращение

  PID->Ek = SetValue - ActualValue;
  PIDInc = (PID->Kp * PID->Ek) - (PID->Ki * PID->Ek1) + (PID->Kd * PID->Ek2);

  PID->Ek2 = PID->Ek1;
  PID->Ek1 = PID->Ek;  return PIDInc;
}

Общие принципы формирования пид-регуляторов

Пропорционально-интегрально-дифференциальный
(ПИД)
регулятор


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

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

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

пропорциональное
звено.

дифференциальное
звено.

интегральное
звено.

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

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

Дифференциальная
составляющая
зависит
от скорости изменения
параметра ∆Ei/∆tизм.,
вызывающей
реакцию регулятора
на резкое изменение измеряемого
параметра, возникшее,
например, в результате внешнего
возмущающего
воздействия.

Примечание.

Для
эффективной работы ПИД-регулятора
необходимо по­добрать
для конкретного объекта регулирования
(с определёнными характеристиками)
значения коэффициентов
ПИД-регулятора Хр,
τд
и τи.

Принцип формирования пропорционального регулятора (в цифровом виде)

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

Рис.

Рис.

Пропорционально-дифференциальное регулирование

(ПД-регулирование)

Рис.

При
работе прибора в режиме ПД-регулятора
величина выходного сигна­ла
Yj
зависит
не только от величины отклонения Ei,
но
и от скорости его
изменения:

В
первый период после ступенчатого
изменения
Ei
регулятор
выдает управляющий импульс, длительность
которого пропорциональна величине τд.
При этом длительность импульса снижается
по экспоненциальному закону, и, начиная
с некоторого импульса k,
длительность определяется только
пропорциональным звеном регулятора
при условии его работы в статическом
режиме.

Пропорционально-интегральное регулирование

(ПИ-регулирование)

При
работе прибора в режиме ПИ-регулятора,
величина выходного сиг­нала
зависит как от величины текущего
рассогласования Еi,
так
и от суммы пре­дыдущих
рассогласований.

Описывается
формулой

Рис.

С
появлением отклонения Е, длительность
импульсов постепенно увеличивается.
При этом в каждом импульсе присутствует
постоянная составляющая, обусловленная
пропорциональным звеном.

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

  1. Зона
    нечувствительности.

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

Рис.

  1. Ограничение
    управляющего сигнала.

Любой
исполнительный механизм обладает
ограничением – как максимальным, так
и минимальным ограничением сигнала, и
в тех случаях, когда входной сигнал
находится в зона ограничения, на выходе
будет формироваться минимальный или
максимальный сигнал постоянной величины.

Рис.

Примечание.

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

  1. Зона
    накопления интеграла.

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

Рис.

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

Примечание.

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

  1. Ограничение
    скорости выхода на уставку.

Ограничение
скорости выхода контролируемой величины
на заданное значение
используется для предотвращения
перерегулирования при запуске
системы (кривая I).
При этом фиксированное значение уставки
заме­няют
на «плавающее», которое постепенно
приближают к значению Туст.
(кривая II).
Первоначально приближение происходит
с максимальной скоростью и по мере
приближения к уставке резко замедляется.

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

При
использовании скорости выхода на
уставку возрастает время выхо­да
на рабочий режим. Поэтому в некоторых
случаях параметра
не используется.

Рис.

  1. Период
    управляющих импульсов.

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

В
идеальном случае частота импульсов
управления должна совпадать с частотой
опроса
датчика.

Примечание.

В
случае использования релейных контактов
на выходе устройства, период формирования
импульсов ограничивается параметрами
реле, т.е. частота импульсов не может
быть увеличена и на практике составляет
приблизительно 1 включение/выключение
в 15-20 секунд.

Проблема
износа контактов решается либо тех
обслуживанием, либо заменой реле
тиристором.

Управление
различными исполнительными устройствами

Для
поддержания заданного значения
регулируемого параметра можно
использовать различные типы исполнительных
устройств.

Все
они могут быть разделены на два вида:

  • нагреватели,

  • холодильники.

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

Холодильником
– устройство, включение которого
приводит к уменьшению измеряемого
параметра.

Примечание.

Так
же, в качестве частного случая имеется
вид исполнительного устройства типа
задвижка, которая работает и так, и так.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Протерм леопард 24 btv 17 ошибка f6
  • Протерм пантера ошибка f72