Фильтр аналоговых сигналов — АСУ ТП: сообщество инженеров

Фильтр аналоговых сигналов

Коротко о статье

В статье разобраны два подхода к сглаживанию аналоговых сигналов в АСУ ТП: апериодическое звено первого порядка и фильтр Калмана. Приведены разностные формулы и примеры их программной реализации на STL в функциональных блоках для контроллера Omron CJ1M.

Главное
  • Аналоговый сигнал от датчика перепада давления на расходомерной шайбе может резко меняться, поэтому его необходимо фильтровать.
  • Первый вариант — фильтр низких частот на базе апериодического звена первого порядка, текущее значение рассчитывается через предыдущее.
  • Для апериодического звена приведена формула с постоянной времени фильтра Tf и периодом расчета Tcalc, а также реализация на STL для Omron CJ1M.
  • При периоде расчета 0,5 секунды применяется упрощенная формула, где число входных параметров функционального блока уменьшается на один.
  • Второй вариант — фильтр Калмана с коэффициентом К, который подбирается под сигнал: чем меньше К, тем сильнее сглаживание.
  • Оба фильтра подходят для беспокойных аналоговых сигналов, просты в расчетах и были реализованы даже на языке LD.
Термины и технологии
  • АСУ ТП
  • STL
  • Omron CJ1M
  • LD
  • REAL

Кому полезно: Разработчикам ПО для АСУ ТП, сталкивающимся с обработкой аналоговых сигналов

По теме на сайте

Первоисточник: asutpby.ru

Выжимка составлена редакцией сайта с помощью ИИ по тексту статьи.

Перед разработчиком программного обеспечения для АСУ ТП частенько стоит вопрос обработки аналогового сигнала, подверженного резким изменениям. Например, при измерении расхода на расходомерной шайбе, аналоговый сигнал, приходящий от датчика расхода (перепада давления) выглядит примерно вот так:

А это не есть хорошо.

Поэтому такой сигнал нужно фильтровать.

Существует немало способов отфильтровать аналоговый сигнал, но мы рассмотрим с вами два: фильтр низких частот на основе апериодического звена первого порядка и на основе фильтра Калмана.

В теорию я вдаваться не буду. Просто приведу формулы и примеры их реализации в контроллере.

Да, в контроллерах вся обработка и расчеты ведутся циклично . Поэтому и формулы для расчетов используются разностные. Т.е. значение текущее рассчитывается из предыдущего.

Итак, первая формула:

Хтек = (Тф*Хпр+tр*Хсч)/(Тф+tр), где

Хтек – искомое на данном шаге значение сигнала (OutValue);

Хпр – значение сигнала, полученное на предыдущем шаге (memIn);

Хсч – значение сигнала, полученное из модуля на данном шаге (inValue);

Тф – постоянная времени фильтра (Tf);

Tр – период расчета (Tcalc).

Программная реализация на STL в виде функционального блока (ФБ) для контроллера Omron CJ1M:

OutValue:= (Tf*memIn+Tcalc*inValue)/( Tf+Tcalc);

memIn:= OutValue;

где inValue, Tf и Tcalc – входные параметры ФБ типа REAL, а OutValue – выходной параметр типа REAL, он же – фильтрованное значение входного сигнала. ВременнЫе сигналы Tf и Tcalc задаются в секундах.

Я, чаще всего, обрабатываю аналоговые сигналы в цикле 0,5 секунды. Тогда использую формулу попроще:

OutValue:= (2,0*Tf*memIn+inValue)/(2,0*Tf+1,0);

memIn:= OutValue;

В этом случае количество входных параметров сокращается на один.

Вторая формула :

Хтек = К*Хсч +(1-К)* Хпр, где

Хтек – искомое на данном шаге значение сигнала (OutValue);

Хпр – значение сигнала, полученное на предыдущем шаге (memIn);

Хсч – значение сигнала, полученное из модуля на данном шаге (inValue);

К – коэффициент Калмана, от которого зависит степень сглаживания сигнала. Чем он меньше, тем сильнее будет сглажен сигнал. И его нужно подбирать «под сигнал».

Программная реализация на том же STL в виде функционального блока (ФБ) для контроллера Omron CJ1M:

OutValue:= K* inValue +(1-K)*memIn;

memIn:= OutValue;

где inValue и К– входные параметры ФБ типа REAL, а OutValue – выходной параметр типа REAL, он же – фильтрованное значение входного сигнала.

Вот, собственно, и все.

Оба фильтра работают замечательно для беспокойных аналоговых сигналов. И достаточно просты для расчетов. Я их реализовывал сначала даже на языке LD. Тот еще квест.

Источник: https://asutpby.ru/plc/filtr-analogovyx-signalov

🔗 Фильтр аналоговых сигналов

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх