Инструкция по настройке ПИД регулятора
Поскольку количество сочетаний трех параметров, предусмотренных для настройки регуляторов, весьма значительно, с течением времени было разработано много методик, облегчающих их правильную настройку. Некоторые из них требуют определенной дестабилизации технологического процесса, что зачастую неприемлемо на практике. Цель данной статьи – предложить ряд простых правил настройки регуляторов, позволяющих выполнять данную работу с минимальными отклонениями от режимных параметров.
Основное правило: регулятор следует настраивать сообразно технологическому процессу. При высоком быстродействии процесса (например, в контуре расхода), регулятор также следует настроить на быстрое срабатывание. Скорость срабатывания регулятора определяется интегральным временем (интегральной составляющей), а не зоной пропорционального регулирования (усилением). Неправильное использование этих параметров значительно снижает эффективность настройки регуляторов. При низком быстродействии процесса (например, при регулировании температуры на тарелке в верхней части ректификационной колонны) регулятор следует настроить на медленное срабатывание СООБРАЗНО ПРОЦЕССУ. Если у Вас отсутствует информация о характеристиках процесса и не к кому обратиться за разъяснениями, Вам следует перепоручить настройку регуляторов специалисту, который сможет получить необходимую информацию.
Общие правила для стандартных контуров управления
Расход
Обычно более половины контуров управления на установке представляют собой контуры регулирования расхода. Установите интегральную составляющую (I) на 0,1 минуты. Отрегулируйте зону пропорционального регулирования так, чтобы предотвратить излишнюю зашумленность результатов измерения (как правило, около 300%, хотя, в некоторых случаях, при неправильном монтаже узла расходомера, требуемое значение может достигать 1000%). Установка зоны пропорционального регулирования для контура, в котором используется позиционер клапана, в два – три раза превышает значение для контура без позиционера. Для медленно срабатывающих или заедающих регулирующих клапанов может потребоваться установка 0,2 или 0,3 минуты, однако, обычно, такие значения являются исключением. Если эти настройки не работают, проверьте монтаж клапана и первичного измерительного элемента с целью определения неисправности. Устраните неисправность. Не следует устанавливать регулятор на неприемлемое значение интегральной составляющей, например, 10 минут. Если вы считаете, что требуемое значение интегральной составляющей равно 10 минут, следует использовать регулятор в ручном режиме или клапан с ручным приводом.
Примечание: Регуляторы не будут нормально работать, если клапан или другой конечный регулирующий элемент почти полностью закрыт или почти полностью открыт. Настраивать регуляторы в этих условиях не следует. Попросите оператора открыть или закрыть байпас (при наличии байпаса) или дождитесь, пока технологические параметры не изменяться настолько, чтобы клапан вернулся в пределы рабочего диапазона. Предельные значения рабочего диапазона составляют от 5 до 95% рабочего хода, при этом более безопасный диапазон – от 10 до 90%. Не следует использовать воздействие дифференциальной составляющей для контуров регулирования расхода.
Уровень
Следующий за контуром расхода наиболее распространенный контур управления – контур уровня. не следует использовать малые значения интегральной составляющей в контуре регулировки уровня. При использовании подобного значения контур будет безостановочно работать в цикличном режиме, нередко с периодом (временем от пика одного цикла до пика следующего цикла) от 10 до 15 минут. Этот период обратно пропорционален интегральному времени. Установите интегральное время на 10 минут. Эта установка будет приемлемой для 80 — 90% регуляторов уровня. Если временная постоянная аппарата (объем/расход) составляет от 1 до 2 минут, то можно использовать более короткое интегральное время, однако следует помнить о том, что более продолжительное время является более надежным. При большом объеме аппарата и малом расходе следует использовать более продолжительное интегральное время.
Если важна точность регулирования уровня, используйте наименьшее значение зоны пропорционального регулирования (10 — 50%), при котором отсутствует циклическое срабатывание. Если плавное изменение расхода на последующую установку важнее жесткого регулирования уровня, используйте более широкую зону пропорционального регулирования (100 — 200%). Не следует использовать воздействие дифференциальной составляющей в контуре регулирования уровня. Впрочем, имеются немногочисленные исключения. В очень редких случаях небольшая дифференциальная составляющая используется для компенсации на регулирующих клапанах уровня со значительным гистерезисом. Шумы по уровню вызывают дрожание клапана, что может способствовать более плавному регулированию. Более оптимальное решение – установить позиционер или, что еще лучше, регулятор расхода в каскаде с регулятором уровня.
В контурах уровня, если регулятор управляет клапаном без позиционера, зачастую наблюдается предельный цикл. График предельного цикла имеет пилообразную форму, иногда с плоскими нижними и/или верхними участками. Контроль выходного сигнала в ходе предельного цикла показывает изменение, равное примерно 5%. Устранить подобный предельный цикл путем настройки практически невозможно. Настройка приводит к изменению периодичности цикла, но не влияет на его амплитуду. Если регулирование клапана осуществляется в пределах рабочего диапазона, то устранить данную проблему можно только путем установки позиционера или каскадированием уровня с расходом.
Если уровень контролируется по расходу продукта, направляемого в парк хранения, то, как правило, циклическое срабатывание не имеет значения. Если же речь идет об орошении в ректификационной колонне, зацикливание, как правило, недопустимо. Следует отметить, что циклическое управление клапаном в почти полностью закрытом или почти полностью открытом положении приводит к возникновению предельного цикла, как правило, с плоским нижним участком, если клапан почти закрыт или с плоским верхним участком, если клапан почти полностью открыт.
Давление жидкости
Настройка осуществляется аналогично контурам расхода. Шумы могут быть не столь интенсивными, как при регулировании расхода, и значения зоны пропорционального регулирования, как правило, будут меньше.
Давление газа
Настройка осуществляется аналогично контурам уровня с использованием высокого значения интегральной составляющей. Регулятор, работающий только в пропорциональном режиме, обеспечивает адекватное регулирование, но с определенным изменением контрольной точки в зависимости от состояния процесса по причине пропорционального отклонения. Так как зона пропорционального регулирования может, как правило, оказаться очень небольшой (менее 100% и, нередко, примерно от 5 до 20%), то такое отклонение будет незначительным.
Отрегулировав более 80% контуров стандартной установки, переходим к более труднорегулируемым контурам, а именно: температуре, давлению паров и составу. Сюда же относится температура, на основании которой определяется состав среды во многих колоннах дистилляции.
Труднорегулируемые контуры
Существует две способа настройки труднорегулируемых контуров. Первый способ заключается в использовании безопасных исходных настроек: зона пропорционального регулирования 100%, интегральное время 5 — 10 минут, без дифференциальной составляющей. Переключите регулятор в автоматический режим при результатах измерения, близких к требуемой уставке.
При возникновении циклических колебаний определите время от одного пика до другого (от верхней точки до верхней точки или от нижней точки до нижней точки). Это – период контура управления. Если отклонение каждого пика от уставки будет больше отклонения предыдущего пика, увеличьте зону пропорционального регулирования (в два, три и более раз) до тех пор, пока увеличение амплитуды в цикле не прекратиться.
Если исходное интегральное время составляет менее половины периода, оно слишком короткое, что, возможно, и вызывает циклическое срабатывание. Увеличьте интегральное время. По мере увеличения интегрального времени период должен сокращаться. Если период примерно в два раза превышает интегральное время и происходит затухание колебаний, это означает, что работа почти полностью закончена. При отсутствии помех измерения следует установить дифференциальную составляющую, равную четверти интегрального времени. Дождитесь изменения параметров или попросите оператора немного скорректировать уставку в безопасном направлении. Выполните повторную настройку зоны пропорционального регулирования, чтобы обеспечить приемлемое гашение колебаний после выхода из режима. Повторяйте эти действия, пока не получите нормальный отклик контура.
Проконтролируйте контур в течение нескольких часов, чтобы убедиться в стабильности его работы. Некоторые контуры стабильны при небольших изменениях параметров, но начинают осциллировать при значительных изменениях. Увеличьте зону пропорционального регулирования, если это необходимо, чтобы обеспечить стабильность контура при значительных отклонениях от заданного режима.
Если этот ускоренный метод оказался в вашем случае неэффективным или если вы хотите действовать более методично, следуйте приведенной ниже методике. Она работает во всех случаях и не оставляет сомнений относительно характеристик контура управления.
Стандартный метод настройки регуляторов
1. Переключите регулятор в ручной режим работы, когда процесс достаточно стабилен и на установке не ожидается резких отклонений от заданного режима. Установите D (производную отклонения или дифференциальную составляющую у некоторых регуляторов) на минимальное, а I (интегральное время или интегральное составляющую у некоторых регуляторов) на максимальное значение.
2. Для начала выберите уставку, равную результатам измерения и установите зону пропорционального регулирования (P) на 100% (или коэффициент усиления на 1,0 у некоторых регуляторов). Немного измените выходной сигнал и переключите регулятор в автоматический режим. Зарегистрируйте исходное положение клапана на тот случай, если вам потребуется вернуться к нему в процессе настройки.
3. При отсутствии колебаний повторите п. 2, уменьшая зону пропорционального регулирования (возможно, до половины первоначального значения). Продолжайте уменьшать зону пропорционального регулирования, пока не начнутся колебания. Если с первой попытки возникнут колебаний с возрастающей амплитудой, верните регулятор в ручной режим и установите клапан в исходное положение, зарегистрированное в п. 2. Удваивайте зону пропорционального регулирования и повторяйте попытки, пока не получите равномерные или почти равномерные колебания. Замерьте период (определяемый как время отработки одного полного цикла)
4. Для ПИ-регулятора:
Установите I = период х 0,82.
Удвойте зону пропорционального регулирования.
Период увеличится приблизительно на 43%. Каждый пик должен составлять примерно половину от амплитуды предыдущего пика. Это называется гашением амплитуды на четверть.
Выполните повторную настройку зоны пропорционального регулирования, если необходимо большее или меньшее демпфирование.
5. Для ПИД-регулятора:
Установите I = период х 0,5.
Установите D = период х 0,125.
Удвойте зону пропорционального регулирования.
Период уменьшится примерно на 15%.
Выполните повторную настройку зоны пропорционального регулирования, если необходимо большее или меньшее демпфирование.
6. Следует помнить о том, что безопасными являются большие значения I и малые значения D. Данные указания предназначены для регуляторов, настраиваемых в минутах на повтор . Некоторые изготовители используют обратное отношение I и D, при этом наибольшее значение соответствует наименьшему и наоборот.
7. При зашумленных результатах измерения (в особенности это относится к контурам Ph) использование дифференциальной составляющей, как правило, невозможно. Ни в коем случае не устанавливайте дифференциальную составляющую, которая превышает интегральную.
Каскадирование и другие виды взаимодействия контуров управления
Сначала выполните настройку вторичного контура (т.е. расхода) в режиме локальной уставки. Уменьшите интегральную составляющую до минимально допустимого значения. Переключите вторичный контур в режим работы с удаленной уставкой и выполните настройку первичного контура (т.е. уровня). Значение интегральной составляющей первичного регулятора не должно быть меньше помноженного на 4 значения интегральной составляющей вторичного регулятора. Эти же правила применимы и для контуров, взаимодействующих через технологический процесс.
Примером такого взаимодействия через технологический процесс является контур давления в колонне и температурный контур с компенсацией по давлению, используемые для управления ректификационной колонной. Настройте контур давления (который является самым быстрым контуром в данном примере) на минимальную интегральную составляющую, а затем установите интегральное время регулятора температуры, не менее, чем в 4 раза превышающее интегральное время контура давления. Для проверки взаимодействия этих двух контуров при их циклическом срабатывании с аналогичным периодом, переведите один из контуров в ручной режим. Прекращение цикла указывает на возможное наличие проблемы, вызванной взаимодействием. Переместите контуры или используйте описанную выше методику минимизации колебаний.
С дополнительными материалами по настройке ПИД регуляторов Вы можете ознакомиться здесь.
Узнать больше про регуляторы и алгоритмы работы регуляторов Вы можете здесь.
Для закрепления полученных знаний предлагаем Вам воспользоваться программой имитации контуров регулирования Перейти
Методы настройки ПИД-регуляторов

Опубликована Вторник, 06 Сентябрь 2022 02:36 | | Просмотров: 14233
Данная статья посвящена исследованию методов настройки непрерывных ПИД-регуляторов на примере объектов первого и второго порядка и второго порядка с запаздыванием, а также выбору оптимальной настройки регулятора путем сравнения полученных результатов.
Сразу оговорюсь, что это не статья, а скорее реферат, то есть информация, собранная из разных источников с некой оценкой полезности и эффективности/применимости каждого метода.
Начнем с того, что с настройкой ПИД регулятора можно столкнуться где угодно, например, на преобразователе частоты , и хорошо, если это будет регулятор давления, они настраиваются достаточно просто, если не считать особенностей настройки ПИД, чтобы ПЧ гарантировано «уходил в сон», то есть если отсутствует расход воды, частоник может снизить обороты до указанных минимальных, а дальше просто остановить двигатель и ждать, когда ошибка регулирования не превысит какую-то тоже настроенную величину. В термоконтроллерах чаще всего есть автонастройка, но не всегда она дает приемлемые показатели работы. На сервоприводах контур положения часто тоже имеет ПИ регулятор, он хоть и представляет из себя только часть от ПИД-регулятора, но общие принципы настройки тоже присутствуют, тк имеются основные канал пропорциональный и интегральный.
А что если регулятор не имеет автонастройки и регулируемый объект достаточно сложен, например, чтобы вывести в автонастройку агрегат мощностью 100кВт требуется ее прогрев и работа, а это может составить десятки минут (а иногда и часы, а время- деньги, особенно если это время работы энергоемкого прибора) не говоря уже о себестоимости материала. Тут стоит для начала разобраться в особенностях самого ПИД, чтобы подобрать во-первых подходящий метод, а во-вторых, понять где и как стоит добиваться устойчивости в первую очередь, а где и как можно и потом делать тонкую настройку.

Структура регулятора по классике приведена на картинке, хотя существуют варианты, когда коэффициенты объединяются, это конечно усложняет работу, но общий принцип остается один, главное вовремя заметить, что изменение коэффициента пропорционального влияет например на интегральный канал.
- Пропорциональный канал выдает величину выходного сигнала, который рассчитывается как ошибка (разница, рассогласование) e(t) сигнала обратной связи (ОС) и сигнала задания r, умноженная на коэффициент Kp, который опять же может быть выражен и как 1/Tp — постоянная времени пропорционального канала регулятора. Если убрать (обнулив коэффициенты) остальные составляющий ПИД-регулятора, то результат такого регулятора будет иметь статическую ошибку, тк пропорциональный канал может только компенсировать часть рассогласования. Дальнейшее увеличение значение коэффициента в попытках увеличить эффективность, приведет к перерегулированию (превышению величины над уставкой, иногда многократному и повторяющемуся, в худшем случае в виде автоколебаний) при появлении большого рассогласования (например пуск или резкое изменение параметра). Данный канал отвечает за быстродействие регулятора в целом и наибольшую часть работы (компенсация большей части рассогласования).
- Интегральный канал в общем тоже берет за основу ошибку регулирования, но при этом выход интегрирует эту ошибку, умноженную на коэффициент Ki (1/Ti). Это дает возможность компенсации статической ошибки, если система не испытывает внешних возмущений (со временем конечно, если процесс не устойчивый, это событие может и не наступить), но не избавляет от динамической. Попытки уменьшить динамическую ошибку или как-то уменьшить время, за которое регулятор компенсирует ошибку, приведут к тому, что тоже появится перерегулирование и почти гарантировано автоколебания (ну как минимум несколько затухающих даже на фоне отсутствия перерегулирования в целом, если пропорциональный канал имеет слабое значение).
- Дифференциальный канал подает на выход скорость изменения ошибки de/dt, умноженную на коэффициент Kd (1/Td), что дает возможность как бы предугадать описанное выше резкое изменение рассогласования (пуск или резкое изменение параметра) и тем самым помочь своим более медленным братьям компенсировать величину ошибки. В дальнейшем, когда вступят в дело каналы пропорциональный и интегральный, роль дифференциального канала должна затухать. Конечно отыграют и электрические составляющие, и задержка расчета, и механика с инерцией, которая часто является самой долгой в перечне задержек, но что-то все же можно получить и от этого канала. Дифференциальный канал чувствителен к ВЧ-помехам. Поэтому, при построении системы регулирования, необходимо принять меры для защиты от помех. Кстати в теории дифференциальный канал может уменьшить значение перерегулирования, полученного при настройки пропорционального и интегрального канала за счет более быстрого уменьшения ошибки регулирования до вмешательства других каналов.
Итак теперь перейдем непосредственно к методам настройки
Ручная настройка или метод настройки «по графикам».
Часто можно услышать о простейшем подходе к настройке (сейчас говорим о ручной), когда вручную настраивают сперва Kp, предварительно обнулив остальные каналы, потом Ki, а последним Kd, оценивая результат работы чисто по графикам процессе (так называемый эмпирический и эвристический методы), либо пользуясь ТАУ (нахождение частоты устойчивости и отступ от нее на 2-4 лога), такая инструкция встречается практически для всех ПЧ и даже сервоприводов, возможно это оправдано тем, что процесс быстрый и графики можно получить без особых затрат просто перебирая коэффициенты по логарифмической шкале, но для температуры так будет настраивать неудобно. Да-да если коэффициент равный двум слишком мал, а введение в коэффициент цифры 4 не дало необходимого изменения, нет смысла вводить K=6, нужно вводить 8, а потом 16, смысл в том, что мы тем самым ищем нужную нам частоту среза, а она как многие помнят из ТАУ у нас на логарифмической шкале выложена, и если она далеко, то перебор по обычной шкале сильно удлинит время поиска.
Важное замечание: даже для одного и того же объекта процедуру настройки ПИД регулятора следует повторять, если изменились параметры объекта (например, загрузка печи) или значительно изменилась рабочая температура (остывание и соответственно отток мощности зависит от градиента температур).

Второй вариант больше подходит для долгих процессов (температура) — предварительно нужно вывести систему на границу устойчивости. Для этого нужно вывести регуляторы И и Д (записать нули), оставив только П (пропорциональный), устойчивость необходимо проверять на той температуре, которая близка к рабочей, то есть эксперименты с большим Кр нужно проводить уже после выхода на установившийся процесс, до этого лучше постараться выбрать коэффициент поменьше, либо уменьшить его уже когда перескочили уставку. На установившемся процессе добиваемся увеличением Кп коэффициента появления заметных колебаний, либо если колебания уже есть, то уменьшаем Кр до их исчезновения, полученный коэффициент Кркр запомним. Что делать с полученной частотой среза (частота, на которой настройка теряет устойчивость)? Переведем ее в период колебаний τ (хотя можно сразу измерить именно период колебаний τ ). Далее для термоконтроллеров Термодат предлагает следующую таблицу.
| Тип регулирования | Пропорциональный коэффициент Kp |
Интегральный коэффициент Ki |
Дифференциальный коэффициент Kd |
| Только P | 2*Кркр | Выключено | Выключено |
| P+I | 2.2*Кркр | 0.8* τ | Выключено |
| P+I+D | 1.7*Кркр | 0.5*τ | 0.12*τ |
Для других применений думаю лучше пользоваться методом «по графикам» для ручной настройки.
Тангенциальный метод настройки ПИД-регулятора (первый метод Зиглера-Никольса).
Следующий метод, который предлагается опять же для настройки ПИД регулировки температуры, это Тангенциальный метод.
В тангенциальном методе для нахождения ПИД коэффициентов используется переходная характеристика объекта, в случае терморегулирования кривая разогрева объекта.
Для начала опишу метод, который предлагается производителем приборов Термодат (коэффициенты соответственно могут отличаться у разных производителей).
В режиме ручного управления контроллера задается некоторое значение мощности на нагрузке. Значение мощности должно быть таким, чтобы установившаяся температура не превысила допустимого значения. Нужно дождаться установления температуры Т1, в этом режиме и в некоторый момент времени скачком изменить значение мощности (например: на 5%). Записать процесс изменения температуры (на компьютере, на самописце или по точкам, вручную) до установления нового устоявшегося значения температуры Т2.

Провести касательную к полученной кривой в точке, где наклон касательной будет максимален.
Определить «мёртвое» время процесса как промежуток времени, прошедший с момента изменения мощности до момента времени, определяемого точкой пересечения касательной и средней линии температуры первого устойчивого состояния Т1 (до изменения мощности нагрева).
Определить величину относительного наклона касательной по формуле:
К = (∆T/∆t)/∆N.
∆T — изменение температуры в °С,
∆t — соответствующее изменение времени в секундах,
∆N — изменение мощности в %.
Установите значения коэффициентов Kp, Ki, Kd в соответствии с таблицей.
| Тип регулирования | Пропорциональный коэффициент Kp |
Интегральный коэффициент Ki |
Дифференциальный коэффициент Kd |
| Только P | 100*τм*К | Выключено | Выключено |
| P+I | 111*τм*К | 3.3*τм | Выключено |
| P+I+D | 83*τм*К | 2*τм | 0.25*τм |
К сожалению данный метод имеет еще пару трактовок, посему приведу обе, а решать какая лучше подойдет вам. Оба используют только два параметра для описания объекта, проводится линия по участку, соответствующему максимальному наклону графика переходной характеристики.
Первый вариант основан на поиске мертвого времени и длительности переходного процесса.

В первом случае ищется пересечение с осью времени и с мнимой линией максимального задания, значения параметров L и T, используются в расчете, формулы приведены в таблице:
| Тип регулирования | Пропорциональный коэффициент Kp |
Интегральный коэффициент Ti=Kp/Ki |
Дифференциальный коэффициент Td=Kd/Kp |
| Только P | T/L | Выключено | Выключено |
| P+I | 0.9*T/L | L/0.3 | Выключено |
| P+I+D | 1.2*T/L | 2*L | 0.5*L |
Второй вариант использует: a и L, которые определяются по графику переходной характеристике объекта управления так:

Формулы для расчета коэффициентов сведены в следующую таблицу:
| Тип регулирования | Пропорциональный коэффициент Kp |
Интегральный коэффициент Ti |
Дифференциальный коэффициент Td |
| Только P | 1/a | Выключено | Выключено |
| P+I | 0,9/a | 3*L/Kp | Выключено |
| P+I+D | 1,2/a | 0,9*L/Kp | 0.5*L/Kp |
Замечание: метод Зиглера-Никольса даёт параметры, далёкие от оптимальных. Это объясняется не только упрощённостью самого метода (он использует только 2 параметра для описания объекта), но и тем, что параметры регулятора в этом методе определялись Зиглером и Никольсом, исходя из требования к декременту затухания, равному 4, что и даёт медленное затухание процесса колебаний.
Метод Зиглера-Никольса никак не учитывает требования к запасу устойчивости системы, что является вторым его недостатком. Судя по медленному затуханию переходного процесса в системе, этот метод даёт слишком малый запас устойчивости. Но все же для начальной настройки вполне пойдет.
Метод колебаний (или второй частотный метод Зиглера-Никольса)
Данный метод основан на поиске частоты устойчивости, на которой сдвиг по фазе в разомкнутом контуре равен 180°.
Назначить уставку Тус, равной температуре регулирования (или 0.7Тус, если перегрев во время настройки нежелателен, а он может быть значительным).
Тоже существует два варианта, первый упрощенный от Термодата:
Включить позиционный (пороговый) режим регулирования.
В установившемся режиме колебаний температуры измерить период τ колебаний температуры (время между соседними максимальными или минимальными значениями температуры). Измерить также полный размах колебаний температуры ΔТ=Тmax-Тmin (разность максимального и минимального значений температуры).

Установите значения коэффициентов Kp, Ki, Kd в соответствии с таблицей. Параметр «Ограничение ПИД» или «Зона» (если он есть в приборе) сделать равным Kp.
| Тип регулирования | Пропорциональный коэффициент Kp |
Интегральный коэффициент Ki |
Дифференциальный коэффициент Kd |
| Только P | 1.4*∆Т | Выключено | Выключено |
| P+I | 1.6*∆Т | 2.4*τ | Выключено |
| P+I+D | 1.2*∆Т | 1.5*τ | 0.2*τ |

Второй вариант такой:
Настройка пропорциональной компоненты (Kp)
1.Перед настройкой зоны пропорциональности интегральная и дифференциальная компоненты отключаются (Kи =0, Kд = 0) и задаем некоторое целевое значение регулируемого параметра (например, температуры):
Тο — начальная температура в системе;
Тsp — заданная температура (уставка);
∆T — размах колебаний температуры (в расчетах не участвует);
∆t — период колебаний температуры.
2.Меняем значение пропорциональной составляющей Kp от минимума (можно от 0) до момента, пока не появятся устойчивые колебания системы с периодом ∆t. Фиксируем это значение как Kуст, а также период колебаний системы ∆t. Система должна находится в постоянном колебательном процессе, притом колебательный процесс незатухающий, колебания должны быть одинаковы относительно Тsp.
После получения данной кривой на нашем объекте, засекаем время периода колебаний ∆t – полный период. Данное время есть характеристика системы, оборудования.
3.На этом практическая часть метода заканчивается. Из полученных значений рассчитываем коэффициенты ПИД:
Kp=0.6⋅Kуст
Ki=(2⋅Kp)/∆t
Kd=(Kp⋅∆t)/8
Здесь Kуст – тот самый коэффициент пропорциональной составляющей, при котором возникли колебания, а ∆t – период этих колебаний.
Второй вариант, когда надо найти постоянные времени Ti и Td
Используя полученные параметры рассчитываем Ти и Тд по таблице.
| Пропорциональный коэффициент Kp |
Интегральный коэффициент Ti |
Дифференциальный коэффициент Td |
|
| П-регулятор | 0.5*Kуст | ||
| ПИ-регулятор | 0.4*Kуст | 0.8*∆t/Kp | |
| ПИД-регулятор | 0.6*Kуст | 0.5*∆t/Kp | 0.125*∆t/Kp |
Хочется сказать, что данный метод не несет за собой никаких улучшений, просто он построен на другом способе поиска, недостатки те же, что и у метода Зиглера-Никольса первого.
Метод CHR (Chien, Hrones и Reswick) или Чина-Хронеса-Ресвика, если по-русски
Этот метод предполагает предварительное определение времени задержки L и времени выравнивания T по переходной характеристике объекта. Ну это мы делали и для Зиглера-Никольса, но в отличие от Зиглера и Никольса, которые использовали в качестве критерия качества настройки декремент затухания, равный 4, Chien, Hrones и Reswick (CHR) использовали критерий максимальной скорости нарастания при отсутствии перерегулирования или при наличии не более чем 20 процентного перерегулирования. Такой критерий позволяет получить больший запас устойчивости, чем в методе Зиглера-Никольса. Метод CHR даёт две разные системы параметров регулятора. Одна из них получена при наблюдении отклика на изменение уставки (таблица), вторая – при наблюдении отклика на внешние возмущения (не представлена). Какую систему параметров выбирать, зависит от того, что важнее для конкретного регулятора: качество регулирования при изменении уставки или ослабление внешних воздействий (в жизни изменение уставки вызывает намного более существенные процессы в регулятора, потому лучше настраивать по этой таблице, будет настройка не «в малом», а «в большом»). Если же важно и то и другое, то необходимо использовать регуляторы с двумя степенями свободы. Метод CHR использует аппроксимацию объекта моделью первого порядка с задержкой. В CHR используются те же исходные параметры a и L, что и в методе Зиглера-Никольса. Обратим внимание, что пропорциональный коэффициент в методе CHR меньше, чем в методе Зиглера-Никольса.
Формулы для определения коэффициентов приведены в таблице:
| Без перерегулирования | С 20% перерегулированием | |||||
| Пропорциональный коэффициент Kp |
Интегральный коэффициент Ti |
Дифференциальный коэффициент Td |
Пропорциональный коэффициент Kp |
Интегральный коэффициент Ti |
Дифференциальный коэффициент Td |
|
| П-регулятор | 0.3/a | 0.7/a | ||||
| ПИ-регулятор | 0.35/a | 1.2*L/Kp | 0.6/a | L/Kp | ||
| ПИД-регулятор | 0.6/a | L/Kp | 0.5*L/Kp | 0.95/a | 1.4*L/Kp | 0.47*L/Kp |
Остальные методы, а именно Спектральный метод, метод Куна, метод Стогестада, метод Шеделя требуют уже больших знаний ТАУ и самое главное требуют либо реальной переходной характеристики, которую придется искать методом интерполяции и аппроксимации, либо вовсе моделирования объекта управления. Если вкратце, то суть методов можно описать парой предложений.
Спектральный метод
Спектральный метод предполагает компенсацию нулями регулятора нежелательных полюсов объекта.
На основе полюсов объекта определяются компенсирующие значения постоянных времени интегрального и дифференцирующего каналов:
Tи = |1/p1|, Tд = |1/p2|.
и коэффициенты регулятора Kp и Kd в виде:
Kp = Ki(Tи + Tд), Kd = Ki*Tи*Tд/(Tи + Tд).
Метод Куна
Параметром, характеризующим быстродействие любых рассматриваемых объектов, является суммарная постоянная времени. Метод настройки Куна (или метод «Т-правило») основан на аппроксимации объекта звеном третьего порядка. Параметры ПИД-регулятора Ti и Td выбирают, таким образом, чтобы компенсировать два полюса. Расчетные значения для регулятора даны в таблице, но я здесь ее приводить не стану.
Метод Стогестада
По идентифицированным параметрам модели ОУ находят необходимые параметры настройки регулятора. Принцип синтеза ПИД-регулятора с использованием метода Стогестада заключается в следующем: задание желаемого вида переходной характеристики замкнутой САУ (желаемый вид описывается инерционным звеном первого порядка) путем выбора постоянной времени.
Для апериодического звена второго порядка с транспортным запаздыванием параметры ПИД-регулятора могут быть найдены по следующим формулам:
kp = T1/k*(Tc+τ), Ti=min[T1;c(Tc+τ)],Td=T2.
где T1, T2, k и τ–параметры объекта; с–параметр, который рекомендуют принимать равным 4, для обеспечения апериодического вида переходного процесса на выходе системы управления (например пароперегревателем котла).
Метод Шеделя
Метод Шеделя основан на принципе каскадного коэффициента демпфирования. В методе обобщается понятие коэффициента демпфирования на случай системы 3-го порядка. Параметры ПИД-регулятора должны быть выбраны таким образом, чтобы коэффициенты демпфирования системы принимали определенные значения. Их если будет интересно лучше поискать в справочниках.
Мы осуществляем поставки в города ХМАО, ЯНАО, Республики Башкирия, Челябинской, Тюменской области и другие регионы РФ. Все оборудование Вы можете купить с доставкой в следующие города: Челябинск, Учалы, Сургут, Уфа, Тарко-Сале, Магнитогорск, Златоуст, Миасс, Ханты-Мансийск, Новый Уренгой, Губкинский, Надым, Когалым, Нижневартовск, Тюмень, Лабытнанги, Салехард, Нефтеюганск, Муравленко, Лангепас, Тобольск, Ноябрьск, Курган, Шадринск, Шумиха.
Простой метод настройки ПИД регулятора

Есть два похода к настройке ПИД регулятора. Первый – синтез регулятора, то есть вычисление параметров регулятора на основании модели системы. Данный метод позволяет очень точно рассчитать параметры регулятора, но он требует основательного погружения в ТАУ.
Второй метод – ручной подбор параметров (коэффициентов). Это метод научного тыка проб и ошибок. Берем готовую систему, меняем один (или сразу несколько коэффициентов) регулятора, включаем регулятор и смотрим за работой системы. В зависимости от того, как ведет себя система с выбранными коэффициентами (недо/пере регулирование) опять меняем коэффициенты и повторяем эксперимент. И т. д. Ну, такой метод имеет право на жизнь, главное представлять как изменение того или иного коэффициента повлияет на систему (что бы не действовать совсем наугад).
Есть более «оптимизированный» метод подбора коэффициентов – метод Зиглера–Никольса.
Сразу скажу, что метод работает не для любой системы, результаты получаются не самыми оптимальными. Но, зато, метод очень простой и годится для базовой настройки регулятора в большинстве систем.
Суть метода состоит в следующем:
1. Выставляем все коэффициенты (Kp, Ki, Kd) в 0.
2. Начинаем постепенно увеличивать значение Kp и следим за реакцией системы. Нам нужно добиться, чтобы в системе начались устойчивые колебания (вызванные перерегулированием). Увеличиваем Kp, пока колебания системы не стабилизируются (перестанут затухать).
3. Запоминаем текущее значение Kp (обозначим его Ku) и замеряем период колебаний системы (Tu).
Все. Теперь используем полученные значения Ku и Tu для расчета всех параметров ПИД регулятора по формулам:
Kp = 0.6 * Ku
Ki = 2 * Kp / Tu
Kd = Kp * Tu / 8
Готово. Для дискретных регуляторов нужно еще учесть период дискретизации – T ( умножить на Ki та Т, разделить Kd на Т).
Еще раз повторюсь, ТАУ изучать нужно, синтез регуляторов рулит, описанный метод годится для базовой настройки, подходит не для всех систем и т. д. Но данный метод очень простой, и вполне годится для «бытового» уровня.
- ПИД регулятор
- +5
- 22 августа 2012, 12:23
- e_mc2
Комментарии ( 17 )
Сильно инерционную систему настроить так сложно. Я пробовал воспользоваться этим методом, что бы настроить печь для SMD, но так и не смог добиться колебаний. Да и точность измерения периода вызывает сомнения 🙁
Плюсую безоговорочно! Автор абсолютно правильно расставил акценты, его не упрекнешь ни в пренебрежении к каноническим методам, ни в том, что не очертил ограничения предлагаемого.
Именно для Easyelectronics! В яблочко!
Себе метод тоже взял на вооружение. Мне-то и не нужно… Но подумал: «Ага, было не нужно СЛОЖНО расчитывать контуры регулирования. А вот так просто… Х.з. Может и есть смысл пересмотреть некторые готовые решения»
Кстати, знатоки. К вам вопрос:
Подскажите, плз, как быть в такой ситуации, что описал уважаемый evsi? Если есть огромная тау и загнать систему в колебания нереально? Можете порекомендовать метод, сравнимый по простое с сабжем?
Ведь, ИМХО, классический ПИД-регулятор тогда и нужен во всей своей красе, когда у системы «классические» динамические параметры. Например, она может взвыть. А если вся она простая, как инерционная печь (или теплый пол) — так и решение может быть попроще. Но можно ли вывести это решение от классического ПИД-регулятора, как частный случай?
Кстати, я не настаиваю, что теплый пол — простая система. Я просто этого не знаю. Но тогда оговорюсь: система не то, чтобы простая, но собственные колебания ее получить невозможно. Ну, прикиньте, как мне получить автоколебания в подогреве теплого пола? Но может для таких инерционных систем можно построить эксперимент несколько иначе? Например, подать скачек, построить переходной процесс, а потом несколько простых вычислений — вуаля! ПИД-регулятор рассчитан!
Есть другой эмпирический метод — Cohen Coon Tuning Method. Он не требует введения системы в перерегулирование и достаточно прост (основан на анализе реакции системы на «импульс» на входе). Возможно, он Вам подойдет (сам я не пробовал его использовать).
Шикарно! Я знал, что такое должно существовать! Не было нужды, не искал. А вот — само нашлось 🙂
Спасибо огромное!
Да не за что:) Если будете его использовать — отпишитесь, пожалуйста, о результатах.
Так… По работе не очень-то и нужно. Но в теплом полике у меня стоит тинька и сигнал от датчика температуры пока игнорирует. Возможно, дойдут руки — поэкспериментирую.
Но я обожаю простые методы. За каждой простой формулой (в непростой области, каковой ПИД-регулирование, несомненно, является)) стоит глубокое понимание вопроса.
мда… как-то это все попахивает немножко бредом…
я все понимаю, ТАУ учить лень всем… но коэффициенты ПИД (только зачем ПИД? в бытовом и ПИ достаточно), относительно характеристического уравнения системы, а потом уже делают их корректировку незначительную…
но коэффициенты ПИД (. ), относительно характеристического уравнения системы, а потом уже делают их корректировку незначительную…
вы пропустили что-то, не?
да чуток есть, пардоньте)
коэффициенты регулятора получают из хар.уравнения системы
А если харак. уравнение неизвестно и получение его проблематично и не стоит потраченных сил, то эмпирический метод подбора коэффициентов куда привлекательней.
мда… как-то это все попахивает немножко бредом…
мда… как-то это все попахивает немножко бредом…
Что именно Вас смущает? Этот метод придумал не я, это один из известных эмпирических методов.
только зачем ПИД? в бытовом и ПИ достаточно
Не спорю. Но «бытовые» системы бывают разные. Где-то вообще можно обойтись двухпозиционным регулированием, где-то нужен ПИД.
«…относительно характеристического уравнения системы …»
Я специально написал последний абзац, дабы упредить подобные комментарии.
Если для Вас проще решать данную задачу через синтез (что, безусловно, есть более правильный путь) – значит данный метод Вам не нужен. Но, ИМХО он будет полезен многим посетителям данного ресурса.
Двухпозиционное регулирование не так плохо, чтобы говорить о нем
Где-то вообще можно обойтись
Оно часто бывает оптимальным по быстродействию. Робастность тоже не последнее его качество. При правильном использовани им можно и коптером рулить. В простых случаях к тому же имеет 0 (почти) параметров для настройки.
Я не имел ввиду, что это плохо, я говорил о простоте реализации (например, биметаллический термостат).
Зингер — это швейные машинки. 😉
Если влом считать, можно воспользоваться матлабом с его блоком автонастройки.
ПИД регулятор


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

Прежде чем переходить непосредственно к пиду, очень важно понять и запомнить несколько базовых понятий, из которых состоит автоматическая система. В первую очередь это регулятор, который всем заправляет и находится в центре системы. Регулятор в данном понимании – математический алгоритм или часть программы, которая крутится на микроконтроллере. Регулятор, как алгоритм, работает с обычными числами. Объект управления – это девайс, которым мы управляем, например печка или мотор. Для этого у нас есть управляющее устройство, например диммируемый тен или драйвер мотора. Управляющее устройство получает от регулятора управляющий сигнал, то есть конкретное число. Это может быть заполнение шим сигнала, от 0 до 255, а может быть угол поворота сервомашинки от 0 до 180, потому что регулятору без разницы чем управлять. В объекте управления у нас стоит датчик, с которого регулятор получает управляемую величину, то есть текущий сигнал с датчика. Это – обратная связь, которая и даёт возможность системе точно поддержать заданное значение. В случае с печкой это температура, а с мотором – частота оборотов. Ну и наконец регулятор получает установку (уставку), то есть число, к которому он должен привести текущее значение с датчика. Установка может задаваться каким угодно образом: крутилкой, ползунком, энкодером, кнопками, да хоть смской или голосовым вводом. Регулятору это неважно, для него это просто цифра. Задача регулятора состоит в том, чтобы сравнивать текущее значение с установкой и выдавать управляющий сигнал на управляющее устройство. То есть в программе это будет выглядеть условно так: регулятор получил установку, регулятор получил значение с датчика, регулятор выполнил вычисления и выдал нам управляющий сигнал, опять же число. Если это шим – мы его подаём через функцию генерации шим. Есть ещё один момент – регулятор должен делать расчёты и применять управляющий сигнал через равные промежутки времени, то есть с равным периодом или частотой. Эта частота называется частотой дискретизации системы, а период обозначается как dt, прямо как период интегрирования.
Под капотом у ПИД регулятора
ПИД регулятор состоит из трёх составляющих: пропорциональной P, интегрирующей I и дифференциирующей D, формируется просто как сумма трёх значений, умноженных каждая на свой коэффициент. Эта сумма после вычислений становится управляющим сигналом, который подаётся на управляющее устройство, обозначим его как out.
out = P*kP + I*kI + D*kD
kP, kI и kD это и есть те самые коэффициенты, которые нужно настроить для работы ПИДа. Значения тут могут быть самые разные, от 0.001 то десятков и тысяч, это зависит от конкретной системы. Тут есть ещё один момент: любой коэффициент может быть равен нулю, и в таком случае обнуляется вся его компонента. То есть регулятор можно превратить в П, ПИ, ПД, и прочие сочетания. Разные системы требуют разного подхода, именно поэтому ПИД регулятор такой универсальный. В дальнейшем будем пользоваться следующими названиями переменных:
- out – выход с регулятора (управляющий сигнал)
- setpoint – установка (заданное значение)
- input – вход (значение с датчика)
- err – ошибка регулирования
- dt – период вычисления и регулирования
P составляющая
Пропорциональная составляющая предоставляет собой разность текущего значения с датчика и установки.
P = setpoint - input
Данная разность называется ошибкой регулирования, то есть насколько далеко находится система от заданного значения. Получается чем больше ошибка, тем больше будет управляющий сигнал и тем быстрее система будет приводить управляемую величину к заданному значению. Коэффициент kP тут влияет роль усиления ошибки и настраивается вручную. Но в то же время, если система пришла к заданной величине, ошибка станет равной нулю, и управляющий сигнал тоже! Другими словами, п регулятор никогда не сможет привести к заданному значению, всегда будет некая ошибка. П составляющая является основной в ПИД регуляторе и так сказать тянет самую большую лямку, регулятор может неплохо работать только лишь на ней одной. P составляющая исправляет ошибку в текущий момент времени.
I составляющая
Интегральная составляющая просто суммирует в саму себя ту же самую ошибку, разность текущего и заданного значения, умноженную на период дискретизации системы, то есть на время, прошедшее с предыдущего расчёта dt – фактически берёт интеграл от ошибки по времени.
I = I + (setpoint - input) * dt
В самом регуляторе это ещё умножается на коэффициент kI, которым настраивается резкость данной составляющей. В интегральной составляющей буквально копится ошибка, что позволяет регулятору с течением времени полностью её устранить, то есть привести систему ровно к заданному значению с максимальной точностью. I составляющая исправляет прошлые, накопившиеся ошибки.
D составляющая
Дифференциальная составляющая представляет собой разность текущей и предыдущей ошибки, поделенную на время между измерениями, то есть на ту же dt, которая общий период регулятора. Иными словами – это производная от ошибки по времени.
err = setpoint - input D = (err - prevErr) / dt prevErr = err
Фактически D составляющая реагирует на изменение сигнала с датчика, и чем сильнее происходит это изменение, тем большее значение прибавляется к общей сумме. Иными словами, D позволяет компенсировать резкие изменения в системе и при правильной настройке предотвратить сильное перерегулирование и уменьшить раскачку. Коэффициент д позволяет настроить вес, или резкость данной компенсации, как и остальные коэффициенты регулируют свои составляющие. D составляющая в первую очередь нужна для быстрых систем, то есть для систем с резкими изменениями, такие как квадрокоптер или шпиндель станка под переменной нагрузкой. D составляющая исправляет возможные будущие ошибки, анализируя скорость.
Настройка регулятора
Для настройки регулятора нужно варьировать коэффициенты:
- При увеличении kP увеличивается скорость выхода на установленное значение, увеличивается управляющий сигнал. Чисто математически система не может прийти ровно к заданному значению, так как при приближении к установке П составляющая пропорционально уменьшается. При дальнейшем увеличении kP реальная система теряет устойчивость и начинаются колебания.
- При увеличении kI растёт скорость компенсации накопившейся ошибки, что позволяет вывести систему точно к заданному значению с течением времени. Если система медленная, а kI слишком большой – интегральная сумма сильно вырастет и произойдёт перерегулирование, которое может иметь характер незатухающих колебаний с большим периодом. Поэтому интегральную сумму в алгоритме регулятора часто ограничивают, чтобы она не могла увеличиваться и уменьшаться до бесконечности.
- При увеличении kD растёт стабильность системы, она не даёт системе меняться слишком быстро. В то же время kD может стать причиной неадекватного поведения системы и постоянных скачков управляющего сигнала, если значение с датчика шумит. На каждое резкое изменение сигнала с датчика Д составляющая будет реагировать изменением управляющего сигнала, поэтому сигнал с датчика нужно фильтровать (читай урок по фильтрам).
Вот так выглядит процесс стабилизации при изменении коэффициентов: Настройка регулятора – дело не очень простое. Начальные коэффициенты для подбора можно получить по следующему алгоритму: сначала выставляем все коэффициенты в 0. Плавно увеличиваем kP до появления незатухающих колебаний. Значение kP, при котором они появились, запишем и обозначим как kP1. Далее замеряем период колебаний системы в секундах, обозначим как T. Итоговые коэффициенты получим так:
- kP = 0.6 * kP1
- kI = kP / T * 2 * dt
- kD = kP * T / 8 / dt
Например, незатухающие колебания появились при kP 20, период колебаний составил 3 секунды. Период dt в системе будет 50 мс (0.05 с). Считаем:
- kP: 0.6*20=12
- kI: 12/3*2*0.05=0.4
- kD: 12*2/8/0.05=60
На полученных коэффициентах должны более-менее работать большинство систем, но не все. Также можно воспользоваться автоматическим тюнером коэффициентов, например два разных алгоритма встроены в библиотеку GyverPID.
Реализация на C++
Соединяя все рассмотренные выше уравнения, получим:
// (вход, установка, п, и, д, период в секундах, мин.выход, макс. выход) int computePID(float input, float setpoint, float kp, float ki, float kd, float dt, int minOut, int maxOut) < float err = setpoint - input; static float integral = 0, prevErr = 0; integral = constrain(integral + (float)err * dt * ki, minOut, maxOut); float D = (err - prevErr) / dt; prevErr = err; return constrain(err * kp + integral + D * kd, minOut, maxOut); >
Это готовая функция, которая принимает значение с датчика, установку, три коэффициента и время, а также ограничение выхода с регулятора. Как пользоваться этой функцией: функция должна вызываться с некоторым периодом, причем длительность этого периода нужно будет передать в функцию в секундах. Если попроще, можно использовать задержку. Но делать так не рекомендуется, лучше сделать таймер на миллис и работать с ним. Функция возвращает управляющий сигнал, то есть можно подать его например как ШИМ. Период dt имеет такой смысл: чем инерционнее у нас система, тем реже можно вычислять пид. Например для обогрева комнаты период можно поставить 1 секунду или больше, а для контроля за оборотами двигателя надо будет поставить пару десятков миллисекунд, то есть около сотни раз в секунду.
Библиотеки
- GyverPID – моя библиотека со встроенным тюнером коэффициентов
- QuickPID – хорошая библиотека с интересными возможностями (оптимизация интегральной суммы, смешанный режим пропорционально ошибке/измерению)
- sTune – тюнер коэффициентов, несколько алгоритмов
Видео
Полезные страницы
- Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
- Поддержать автора за работу над уроками
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])