Блог

PID-регулирование без мифов: Как настроить контур и не ловить перерегулирование

PID кажется простым: три коэффициента и поехали. На объекте добавляются задержка объекта, наводки от помех, насыщение исполнительного механизма, квантование АЦП и вера в «универсальные» настройки из интернета. Ниже - рабочая логика без мифов: что делают P, I и D, зачем антиwindup, как фильтровать сигнал и что делать с транспортной задержкой, плюс таблица симптом - действие для пусконаладки.

Короткий ответ

P дает скорость реакции, но оставляет статическую ошибку. I убирает остаточное отклонение, но легко вызывает колебания и windup при ограничении выхода. D гасит перерегулирование, но усиливает шум и плохо дружит с чистой задержкой. На практике выигрывает связка: корректный масштаб PV/SP, фильтр на измерении там, где нужно, антиwindup в ПЛК, ограничения на выход и скорость, и пошаговая настройка на объекте, а не копипаст чужих Kp/Ti/Td.

Что такое P, I и D в инженерных терминах

Пропорциональная часть (P) умножает ошибку на коэффициент. Чем выше Kp, тем агрессивнее реакция и тем выше риск перерегулирования на инерционном объекте.
Интегральная часть (I) накапливает ошибку во времени и «дотягивает» процесс до уставки, если только P недостаточно. Слишком большой интеграл (или слишком малое время интегрирования Ti) часто дает колебания и перерегулирование.
Дифференциальная часть (D) реагирует на скорость изменения ошибки и помогает тормозить перед уставкой. На шумной величине D без фильтра превращает помеху в дребезг выхода.
В разных ПЛК и средах (включая типовые решения на СТАБУР и CODESYS-подобные среды) формулировки могут отличаться: где-то задают Kp, Ti, Td, где-то gain и времена в секундах. Важно понимать единицу измерения и знак обратной связи, а не только цифры на экране.

Антиwindup: зачем он нужен

Когда выход регулятора упирается в 0…100 % клапана или ограничение частотника, интеграл продолжает «крутиться» в модели, если его не ограничить. После снятия насыщения система перелетает уставку или долго «отливает» - классический интегральный windup.
Что делать в проекте: - включить штатный антиwindup (ограничение интеграла, back-calculation, tracking); - задать реалистичные лимиты выхода и при необходимости скорость изменения выхода (ramp); - не использовать «голый» I без ограничений на объектах с сильным насыщением исполнительного органа.

Фильтрация измерения: не лечите шум усилением D

Сырой сигнал датчика часто содержит электрический шум и дискретизацию АЦП. Если поднять D, вы усиливаете именно высокочастотное, а не полезную динамику.
Практика: - экран, заземление, правильная линия (см. статью про шкаф и ЭМС); - аппаратный или программный фильтр первого порядка или скользящее среднее с осознанной постоянной времени; - отдельная постоянная для D-path (где поддерживается ПЛК): дифференцировать отфильтрованный сигнал, а не «сырой» шум.
Правило большого пальца: постоянная фильтра должна быть меньше доминирующей постоянной объекта, но достаточной, чтобы убрать дребезг на графике. Если фильтр слишком длинный, вы просто прячете проблему и вносите дополнительную задержку в контур.

Задержка и мертвое время: почему «идеальный PID» не спасает

Если от момента изменения выхода до ответа на датчике проходит заметная транспортная задержка (труба, конвейер, удаленный участок), фазовый запас падает. В таких случаях «крутить только PID» часто бессмысленно: нужны структура каскада, компенсация по возмущению, Smith predictor (если доступен и оправдан), или пересмотр места измерения и такта опроса.
Практический симптом: при малом шаге выхода ответ PV «приходит» через секунды и снова с задержкой - контур легко входит в колебания при умеренном Kp.

Практические сценарии (коротко)

Температура в печи. Большая инерция, медленный отклик: низкий D или отключен, I аккуратный, защита от windup обязательна, ограничение скорости нагрева часто важнее «идеального» PID.
Давление/расход с клапаном. Насыщение хода, люфт, нелинейность: нужны лимиты выхода, иногда характеристика клапана или каскад «положение/расход».
Уровень в баке. Интегрирующий объект по природе, пузыри и кавитация дают шум: фильтр + осторожный D, проверка места отбора давления.
Сервопривод/позиция. Часто PID по положению с ограничением ускорения; не путать с контуром скорости внутри привода.

Таблица симптомов и корректирующих действий

Симптом на графике PV/выхода
Вероятная причина
Что сделать (порядок имеет значение)
Сильное перерегулирование, несколько волн
Слишком высокий Kp или агрессивный I
Снизить Kp; увеличить Ti (ослабить I); проверить единицы и масштаб
Медленно ползет к уставке, долго не дотягивает
Маленький Kp или слабый I
Осторожно поднять Kp; усилить I (уменьшить Ti) с контролем колебаний
Колебания с постоянной амплитудой
Запас устойчивости мал
Снизить Kp; ослабить I; при шуме снизить D или фильтровать PV для D
После насыщения клапана - длинный перелет
Windup
Включить антиwindup; проверить лимиты выхода; ramp на выходе
Выход «дребезжит», PV относительно гладкий
Шум на канале, большой D
Убрать/снизить D; усилить фильтр PV; улучшить монтаж и экран
Реакция PV запаздывает после шага выхода
Транспортная задержка, большой фильтр
Уменьшить лишний фильтр; каскад/компенсация; менять место измерения
Ровный оффсет около уставки
Нет или слабый I
Добавить/усилить I при отсутствии колебаний; проверить статику объекта
Хуже стало после «автонастройки»
Неподходящая модель или шум в окне обучения
Вернуть базовые настройки; настроить вручную по шагу; проверить масштабы

Мини-алгоритм настройки на объекте

  1. Убедиться, что направление связи верное: рост выхода увеличивает PV там, где должно.
  2. Зафиксировать лимиты выхода, скорость, антиwindup.
  3. Начать с P-only или малым I, добиться устойчивого отклика на шаг без постоянных колебаний.
  4. Ввести I для снятия статики, следить за перерегулированием.
  5. D добавлять последним, на отфильтрованном сигнале, если нужно гасить перелет.
  6. Проверить сценарии: смена уставки, скачок возмущения, работа у границ насыщения.

Заключение

PID - не «три ручки удачи», а согласованный с объектом регулятор с ограничениями реального исполнительного механизма. Перерегулирование чаще лечится связкой настроек, антиwindup и фильтра, чем одним только уменьшением Kp. Если в контуре доминирует задержка, ищите инженерное решение (каскад, другое измерение, компенсация), а не бесконечное ужесточение PID.

FAQ

С чего начать, если автонастройка в ПЛК есть?

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

Обязателен ли D?

Нет. На многих тепловых контурах достаточно PI с антиwindup.

Почему растет Ti в одних и «усиливается I» в других?

Разные формы записи PID. Всегда смотрите справку на вашу форму (зависимая/независимая, Kp/Ti/Td или иначе).

Что такое «производная по измерению»?

Частая полезная опция: дифференцировать PV, а не ошибку, чтобы убрать скачки при смене уставки. Зависит от реализации блока.

Нужен ли отдельный фильтр, если есть сглаживание в SCADA?

SCADA не убирает шум из контура ПЛК. Фильтр должен быть там, где считается PID, если шум мешает.

Внутренняя перелинковка