Фильтрация методом скользящего среднего в аналоговом управлении DCS и ПЛК
Фильтр скользящего среднего — это сглаживатель со скользящим окном, который большинство инженеров по КИПиА добавляют в аналоговые цепи DCS и ПЛК. Вот как раб...
Откройте аналоговый тракт DCS или ПЛК, и вы часто обнаружите функциональный блок, который делает нечто не более впечатляющее, чем усреднение. Он хранит последние пять отсчётов, складывает их, делит сумму на пять и записывает результат как значение PV, которое фактически видит PID-регулятор. Этот блок представляет собой фильтр скользящего среднего — сглаживатель с подвижным окном, к которому инженеры КИПиА чаще всего обращаются в первую очередь, поскольку арифметика очевидна, а запаздывание предсказуемо.
Это не настройка демпфирования преобразователя и не рекурсивный фильтр первого порядка (PT1). Задача та же — подавить шум и сохранить пригодное для использования значение технологической переменной, — но алгоритм другой, как и цена в виде запаздывания.
Honeywell Experion PKS C300 в шкафу Series C: класс контроллеров DCS, в которых аналоговые PV обычно сглаживаются функциональными блоками Control Execution Environment до подачи на PID-регулятор.
Подвижное окно, а не рекурсивная память
Храните последние N отсчётов. При каждом новом цикле сканирования удаляйте самое старое значение, добавляйте самое новое и выдавайте среднее арифметическое оставшихся значений:
Y(n) = [X(n) + X(n−1) + … + X(n−N+1)] / N
Если аналоговый вход сканируется один раз в секунду, а N = 10, каждый выходной сигнал представляет собой среднее значение за последние десять секунд. Ширина окна остаётся фиксированной: один отсчёт добавляется, один отсчёт удаляется. В этом и состоит весь механизм.
Фильтр первого порядка является рекурсивным: выход этого цикла зависит от предыдущего выхода плюс доля нового отсчёта. Скользящее среднее — нет. Оно смотрит только на исходную историю в пределах окна. Поэтому его проще объяснить оператору щита управления, и оно естественно реализуется в DCS или ПЛК, где уже есть память для хранения N аналоговых значений.
ABB AC500 (включая модули безопасного ввода-вывода AC500-S): то же скользящее среднее обычно реализуется функциональным блоком или фрагментом ST в Automation Builder, а не скрытым меню преобразователя.
Два параметра: длина окна и время выборки
Степень фильтрации определяется не только N. Время отклика равно N × периоду выборки. Значение N = 10 при периоде 1 с даёт окно длительностью десять секунд. То же N при периоде 100 мс даёт одну секунду. Рассматривайте эти параметры как пару, иначе вы перенесёте «удачную» настройку с одного контура на другой и будете удивляться, почему клапан теперь движется еле-еле.
Чем больше N, тем сильнее подавляется шум и тем больше запаздывание. После истинного скачка измеряемой величины отфильтрованному PV требуется N отсчётов, чтобы полностью достичь нового значения. Для медленного температурного измерения это часто приемлемо. Для контура давления или расхода, который должен компенсировать возмущение нагрузки, слишком широкое окно заставляет PID выглядеть медлительным, хотя причиной задержки является фильтр.
Периодический шум — единственный случай, когда размер окна можно выбрать целенаправленно. Если помеха повторяется примерно раз в секунду, а сканирование выполняется каждые 100 мс, значение N = 10 охватывает полный цикл и усредняет пульсации почти до нуля. В этом и заключается главное преимущество скользящего среднего: согласовать окно с периодом возмущения, а не выбирать круглое число, которое просто делает тренд «плавным».
| Выбор | Результат | Цена |
|---|---|---|
| Малое N | Более быстрое отслеживание реальных изменений процесса | Больше остаточного шума в PV |
| Большое N | Более плавный тренд, лучшее подавление выбросов | Большее запаздывание; более медленная реакция PID |
| Согласовать N с периодом шума | Сильное ослабление этого цикла | Неэффективно, если частота шума меняется |
| Более быстрая выборка при том же N | Более короткое окно в реальном времени | Большее использование ресурсов ЦП и буфера |
Скользящее среднее и фильтрация первого порядка (PT1)
Оба варианта являются средствами низкочастотной фильтрации. Скользящее среднее более наглядно: можно указать на последние N отсчётов. Оно также требует больше памяти и большего числа операций сложения за цикл. Фильтр первого порядка — это несколько операций умножения, поэтому он достаточно дёшев для преобразователя или небольшого встроенного модуля ввода-вывода, который не может хранить окно.
В полноценной системе DCS или ПЛК аргумент о нехватке памяти редко имеет решающее значение. Процессоры Honeywell Experion PKS C300 в оборудовании Series C C300 и ЦП ABB AC500 в серии ПЛК ABB располагают достаточным объёмом памяти для хранения короткой истории аналогового сигнала. Настройте сглаживание там, где его можно увидеть, укажите N и частоту сканирования рядом с PID-регулятором и оставьте демпфирование преобразователя на известном, обычно небольшом, значении, чтобы незаметно не получить двойную последовательную фильтрацию.
Чего он не делает
Запаздывание — это плата за любой сглаживатель. Температурные контуры часто его выдерживают. Контуры давления и расхода обычно нет: чрезмерная фильтрация этих PV заставляет регулятор бороться с запаздывающим объектом.
Выбросы достаточно хорошо выпадают из усреднения по окну. Медленный дрейф — нет: фильтр нижних частот будет следовать за линейным изменением, только с запаздыванием. Если проблема заключается в смещении нуля или засорённой импульсной линии, исправьте измерение, а не скрывайте проблему увеличением окна.
Простое скользящее среднее также не создаёт дополнительного скачка на границе окна — каждый отсчёт в буфере имеет одинаковый вес. Взвешенное скользящее среднее (новые отсчёты имеют больший вес) немного быстрее отслеживает скачок и требует больше арифметических операций. Используйте взвешенный вариант, если причиной жалоб является запаздывание в быстром контуре и усреднение всё ещё необходимо; сохраняйте равные веса, если хотите, чтобы поведение было очевидным для следующей ночной смены.
Об авторе
Elena Vargas | Инженер по технологическим измерениям
Elena Vargas занимается аналоговыми трактами на промышленных предприятиях: настройкой преобразователей, фильтрацией в DCS/ПЛК и динамикой контуров на платформах Experion PKS и PAC. В основном она работает с контурами давления, расхода и температуры, где неправильно выбранный фильтр проявляется как запаздывание, а не как аккуратный тренд.