Фильтры скользящего среднего в контурах ПЛК и DCS: шум, запаздывание и валидация
Фильтры скользящего среднего могут подавлять шум в аналоговых сигналах, но при этом задерживать управляющие воздействия и сигналы тревоги. Узнайте, как время...
Плавный тренд технологической переменной может создавать впечатление исправной работы контура, одновременно незаметно задерживая информацию, необходимую контроллеру. Скользящее среднее — простой, понятный и эффективный способ борьбы с некоторыми видами шума, однако каждый дополнительный отсчёт в окне изменяет динамическое поведение контура.
Инженерное решение заключается не в том, выглядит ли отфильтрованный график лучше. Важно, устраняет ли фильтр измерительный шум, не скрывая при этом реальные изменения процесса, отказ прибора, аварийные условия или первые признаки нарушения нормального режима.

Система DCS может фильтровать измерение на нескольких уровнях, поэтому полный путь прохождения сигнала необходимо документировать.
Расчёт прост, но временные характеристики — нет
Равномерное скользящее среднее хранит последние N отсчётов, складывает их и делит сумму на N. Каждый новый отсчёт входит в окно, а самый старый выходит из него. Если интервал между отсчётами равен Ts, поведение фильтра зависит и от N, и от Ts; простое копирование N из другого контроллера не воспроизводит такой же отклик в реальном времени.
Для медленно изменяющихся сигналов причинное равномерное скользящее среднее ведёт себя примерно так, словно измерение задерживается на половину ширины окна. Настоящее ступенчатое изменение не появляется сразу в полном размере: выход изменяется на одну N-ю величины ступени при каждой замене старого значения новым и достигает конечного значения только после заполнения окна отсчётами, полученными после ступени.
Такой предсказуемый линейный переход полезен для подавления случайного шума, но опасен для быстродействующих измерений давления, расхода, скорости или параметров, связанных с защитой. ПИД-регулятор, сигнализация, архиватор и оператор получают более позднее представление о процессе, если исходное значение также не сохраняется.
Длину окна необходимо выражать во времени
Десять отсчётов, получаемых раз в секунду, описывают совсем другой фильтр, чем десять отсчётов, получаемых каждые 100 миллисекунд. Документируйте источник запуска отсчётов, период задачи, длину окна, эффективный временной интервал, поведение при инициализации и объект, использующий отфильтрованное значение.
Не следует считать, что период сканирования программы равен интервалу между отсчётами. Функциональный блок может выполняться при каждом сканировании, но принимать новый отсчёт только при истинном значении SampleEnable. Исполнительный период модуля управления DCS также может отличаться от периода обновления ввода-вывода и передатчика.
Документация Rockwell Automation по инструкции MAVE прямо указывает на это различие: NumberOfSamples задаёт диапазон, SampleEnable определяет момент добавления отсчёта в память, а блок сообщает состояние при некорректном входном сигнале и недопустимом размере массива.
Периодический шум можно подавить — и неправильно диагностировать
Скользящее среднее имеет регулярно расположенные нули амплитудно-частотной характеристики. Если окно охватывает целое число периодов стабильного периодического возмущения, положительные и отрицательные участки могут существенно взаимно компенсироваться. Поэтому специально выбранное окно может уменьшить повторяющиеся электрические или механические пульсации.
Однако универсального подавления не происходит. Если частота возмущения меняется, интервал дискретизации нестабилен или сигнал подвергается наложению спектров до того, как достигает фильтра, компенсация ослабевает. Более гладкий тренд также может скрыть проблемы заземления, экранирования, импульсной линии, датчика или монтажа, которые следует устранять в источнике.
Прежде чем увеличивать окно, сравните исходный сигнал с независимым эталоном и изучите спектр шума или хотя бы его период во временной области. Убедитесь, что возмущение является шумом, а не реальным циклическим изменением процесса.

Один и тот же принцип скользящего среднего применяется на платформах ПЛК и DCS, однако выполнение и обработка неисправностей зависят от конкретной платформы.
Скользящее среднее и фильтр первого порядка решают разные задачи
Равномерное скользящее среднее — это расчёт по конечному окну. Каждый сохранённый отсчёт имеет одинаковый вес, пока не выходит из окна. Фильтр нижних частот первого порядка является рекурсивным: новый выходной сигнал объединяет последний входной сигнал с предыдущим выходом в соответствии с постоянной времени.
Скользящее среднее обеспечивает конечную и наглядную историю, сильное подавление на определённых частотах и переходную характеристику, достигающую конечного значения после заполнения окна. Фильтр первого порядка требует мало памяти и создаёт экспоненциальный отклик без периодических провалов, характерных для скользящего среднего.
Взвешенное скользящее среднее занимает промежуточное положение. Увеличение веса новых отсчётов может уменьшить кажущуюся задержку, но изменяет частотную характеристику и делает поведение менее очевидным для обслуживающего персонала. Веса необходимо нормировать, документировать и проверять.
Выбор должен соответствовать характеру возмущения и цели управления. Используйте скользящее среднее, когда конечное окно имеет смысл или необходимо ослабить стабильную периодическую составляющую. Используйте фильтр первого порядка, когда экспоненциальный отклик и документированная постоянная времени соответствуют контуру. Применяйте режекторный или другой специализированный фильтр только тогда, когда частота помехи известна и достаточно стабильна для такого решения.
Избегайте скрытых последовательных фильтров
Один измерительный сигнал может демпфироваться в передатчике, усредняться во входном модуле, повторно фильтроваться в логике ПЛК или DCS, сглаживаться на HMI и подвергаться сжатию в архиваторе. Каждый уровень по отдельности может казаться безвредным, но вся цепочка создаёт значительную задержку.
Создайте описание пути сигнала, включающее исходный электрический вход, масштабирование и фильтр модуля, фильтр контроллера, источник сигнализации, технологическую переменную ПИД-регулятора, отображаемое на HMI значение и тег архиватора. Определите, каким потребителям нужны исходные, проверенные или отфильтрованные данные. В диагностике технического обслуживания обычно следует сохранять доступ к исходному измерению, даже если операторы используют отфильтрованное отображение.
Внутренние ссылки на оборудование Honeywell Experion PKS C300 и серии ПЛК ABB дают представление о платформах, однако доступность и поведение фильтра необходимо проверять с учётом установленного контроллера, программного обеспечения и среды выполнения.
Для данных с низким качеством требуется определённая реакция
Скользящее среднее не должно превращать обрыв цепи, значение за пределами диапазона, устаревший результат обмена или недопустимое число с плавающей точкой в правдоподобную технологическую переменную. Передавайте или храните информацию о качестве отдельно от числового значения и определите поведение блока при ухудшении качества.
Возможные стратегии включают удержание последнего корректного отфильтрованного значения, немедленное объявление выхода недостоверным, очистку окна или повторную инициализацию по первому корректному отсчёту после восстановления. Правильный выбор зависит от того, используется ли значение для управления, сигнализации, отображения или отчётности. Это состояние должно быть видно операторам и последующей логике.
Важна инициализация. Заполнение пустого массива нулями создаёт ложный переход при запуске. Постепенное усреднение только тех корректных отсчётов, которые уже собраны, устраняет смещение к нулю, но изменяет эффективную длину окна во время прогрева. Инициализация выхода текущим корректным входным сигналом обеспечивает плавный запуск, но вначале не даёт подавления шума. Выберите и документируйте один вариант поведения.
Фильтрация изменяет характеристики ПИД-регулятора и сигнализации
Добавление фильтра изменяет измерительный тракт, который видит контроллер. Настройка ПИД-регулятора, ранее считавшаяся приемлемой, может стать вялой или вызвать колебания после внесения дополнительного запаздывания. Дифференциальная составляющая особенно чувствительна к измерительному шуму, однако фильтрация шума без пересмотра прежней настройки не является автоматически безопасной.
После изменения фильтра повторите испытание переходной характеристики контура в контролируемых условиях. Проверьте подавление возмущений, реакцию на задание, перемещение клапана, перерегулирование, время срабатывания сигнализации и время, необходимое для обнаружения реального отклонения процесса. Оценивайте контур при обычных скоростях изменения процесса, а не только в установившемся режиме.
Для сигнализации могут потребоваться отдельные исходный и отфильтрованный пути. От ложных срабатываний может помочь логика выдержки или задержки, тогда как защитному пределу могут потребоваться более быстрые проверенные данные. Не устраняйте дребезг сигнализации, незаметно замедляя измерение управления для всех потребителей.
Реализация и подтверждение при вводе в эксплуатацию
При пользовательской реализации в ПЛК применяйте массив ограниченного размера или кольцевой буфер и текущую сумму, чтобы заменять вклад самого старого отсчёта новым. Защитите индекс, определите точность вычислений и исключите выход за границы массива. Если выполнение задачи может прерываться, убедитесь, что буфер и сумма не смогут рассинхронизироваться.
Проводите ввод в эксплуатацию на известных постоянных значениях, контролируемой ступени, состояниях низкого качества, прерывании задачи, изменениях SampleEnable и изменениях запрашиваемой длины окна во время работы. Сравнивайте исходный и отфильтрованный тренды с временными метками в одном масштабе. Фиксируйте фактическую задержку и снижение шума, а не одобряйте фильтр только потому, что линия выглядит гладкой.
Редакционная позиция: фильтрация является частью проектирования измерительного тракта, а не косметическим форматированием тренда. Лучшее решение предоставляет исходное значение, отфильтрованное значение, качество, интервал между отсчётами и длину окна, чтобы другой инженер мог точно объяснить, что контроллер знал — и когда он это узнал.
Часто задаваемые вопросы
Сколько отсчётов должно использовать скользящее среднее?
Универсального числа нет. Выбирайте N вместе с интервалом между отсчётами, учитывая характеристики шума и самое быстрое реальное событие, которое должны обнаружить система управления или сигнализация, а затем проверяйте полученную задержку на процессе.
Всегда ли увеличение окна улучшает управление?
Нет. Оно сильнее уменьшает высокочастотные изменения, но увеличивает задержку измерения. Чрезмерная фильтрация может ухудшить подавление возмущений, задержать сигнализацию и создать впечатление, что правильно настроенный ПИД-регулятор работает медленно.
Следует ли отключать демпфирование передатчика?
Не автоматически. Документируйте каждый фильтр в сигнальной цепи и назначайте каждому из них конкретную цель. Избегайте наложения недокументированного демпфирования и фильтрации контроллера, создающего большее суммарное запаздывание, чем предусмотрено.
Что должно происходить при ухудшении качества входного сигнала?
Блок должен сообщать о низком качестве и следовать определённой политике удержания, признания значения недостоверным или повторной инициализации. Неисправный входной сигнал нельзя усреднять так, чтобы получить правдоподобное значение, выглядящее корректным.
Подходит ли скользящее среднее для измерений безопасности или отключения?
Только в рамках проверенной архитектуры, которая явно допускает дополнительную задержку и определённое диагностическое поведение. Нельзя считать, что обычная фильтрация управления соответствует требованиям по времени реакции защитной функции.