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 там, где должно.
- Зафиксировать лимиты выхода, скорость, антиwindup.
- Начать с P-only или малым I, добиться устойчивого отклика на шаг без постоянных колебаний.
- Ввести I для снятия статики, следить за перерегулированием.
- D добавлять последним, на отфильтрованном сигнале, если нужно гасить перелет.
- Проверить сценарии: смена уставки, скачок возмущения, работа у границ насыщения.
Заключение
PID - не «три ручки удачи», а согласованный с объектом регулятор с ограничениями реального исполнительного механизма. Перерегулирование чаще лечится связкой настроек, антиwindup и фильтра, чем одним только уменьшением Kp. Если в контуре доминирует задержка, ищите инженерное решение (каскад, другое измерение, компенсация), а не бесконечное ужесточение PID.
FAQ
С чего начать, если автонастройка в ПЛК есть?
С проверки масштабов, знака связи и лимитов. Автонастройка хороша на гладкой модели и плохо переносит агрессивный шум.
Обязателен ли D?
Нет. На многих тепловых контурах достаточно PI с антиwindup.
Почему растет Ti в одних и «усиливается I» в других?
Разные формы записи PID. Всегда смотрите справку на вашу форму (зависимая/независимая, Kp/Ti/Td или иначе).
Что такое «производная по измерению»?
Частая полезная опция: дифференцировать PV, а не ошибку, чтобы убрать скачки при смене уставки. Зависит от реализации блока.
Нужен ли отдельный фильтр, если есть сглаживание в SCADA?
SCADA не убирает шум из контура ПЛК. Фильтр должен быть там, где считается PID, если шум мешает.