Обработка в канале FLOAT

  Масштабирование

  Экспоненциальное сглаживание

  Фильтрация пиков или фильтрация малых изменений в канале INPUT

  Линейное сглаживание и фильтрация малых изменений в канале OUTPUT

  Клиппирование в канале OUTPUT

В измерительном тракте (в общем случае датчик=>УСО=>контроллер) происходит преобразование реальной физической величины (температуры, давления и т.п.) в один из следующих "инженерных" видов:

   в число, соответствующее амплитуде некоторого электрического сигнала (в том числе унифицированного – 0-10V, 4-20mA и т.д.);

   в число, соответствующее проценту от диапазона изменения некоторого электрического сигнала;

   в двоичный код (после АЦП).

В управляющем тракте (в общем случае контроллер=>УСО=>исполнительный механизм) выполняется обратное преобразование.

При обработке данных, поступающих из измерительного тракта или передаваемых в управляющий, необходимо скорректировать различные погрешности трактов. Для отображения поступающих данных требуется переводить "инженерные" данные в реально измеряемые (например, если требуется отображать значение температуры в ее физических единицах – градусах). Управляющий сигнал во многих случаях требуется сглаживать. Для решения подобных задач канал FLOAT снабжен следующими встроенными алгоритмами обработки, параметры которых могут быть заданы как в редакторе, так и в реальном времени (см. Канал класса FLOAT ):

   канал INPUT:

   масштабирование;

   фильтрация одиночных пиков;

   фильтрация малых изменений (апертура);

   экспоненциальное сглаживание;

   канал OUTPUT:

   экспоненциальное сглаживание;

   линейное сглаживание;

   фильтрация малых изменений (апертура);

   клиппирование;

   масштабирование.

При использовании экспоненциального сглаживания фильтрация малых изменений в канале FLOAT не выполняется.

Если встроенных алгоритмов обработки данных недостаточно, в каналах FLOAT может быть использована процедура трансляции (см. Числовые каналы ) – например, для корректировки нелинейности передаточной характеристики измерительного/управляющего тракта.

Атрибуты Входное значение (2, In), Аппаратное значение (1, A), Реальное значение (0, R) и Выходное значение (9, Q) задействованы во внутренних алгоритмах канала FLOAT следующим образом:

   канал INPUT:

   канал OUTPUT:

В указанных на рисунках формулах масштабирования KX и Z являются значениями атрибутов Множитель (33, KX) и Смещение (34, Z Дрейф нуля, МРВ – ZERO – см. Канал класса FLOAT ).

Все алгоритмы обработки (за исключением клиппирования реального значения в канале OUTPUT) выполняются в том случае, если для канала установлен флаг (50, PRS) Использовать – такой канал является каналом FLOAT с обработкой. В профайлере канал FLOAT с обработкой индицируется как C5_FloatExt (атрибут 126, TsT).

Если флаг (50, PRS) Использовать не установлен, монитор не загружает атрибуты, конфигурирующие соответствующие алгоритмы обработки, и, соответственно, не исполняет эти алгоритмы – в этом случае канал является каналом FLOAT без обработки. В профайлере канал FLOAT без обработки индицируется как C4_Float.

Клиппирование реального значения канала OUTPUT выполняется в том случае, если установлены флаги (83, BNDR) Использовать и (53, LMT) Контроль границ (т.е. BNDR=0 и LMT=1). Выполнение этой процедуры не зависит от флага (50, PRS) Использовать.

Если флаг PRS не установлен и в канале не используется трансляция, монитор не использует аппаратное значение канала.

В нижеприведенных формулах алгоритмов In, A, R, Q, KX, Z, APert, DSmoot и DPic обозначают соответствующие атрибуты канала.

Масштабирование

Масштабирование в канале FLOAT выполняется по следующим законам (при PRS=1):

   в канале типа INPUT:

A = In*KX + Z

   в канале типа OUTPUT:

Q = (A + Z)*KX

Экспоненциальное сглаживание

При PRS=1 и DSmoot<>0 (0<DSmoot<=1) в канале FLOAT выполняется экспоненциальное сглаживание (индекс указывает номер такта пересчета):

   в канале типа INPUT:

Rn= Resultn*(1DSmootn) + DSmootn*Rn-1

Resultn обозначает результат фильтрации пиков;

   в канале типа OUTPUT:

RESULTn= Inn*(1DSmootn) + DSmootn*Rn-1

Результат экспоненциального сглаживания RESULTn далее обрабатывается процедурой линейного сглаживания.

При DSmoot<>0 фильтрация малых изменений в канале FLOAT не выполняется.

Фильтрация пиков или фильтрация малых изменений в канале INPUT

При PRS=1 в канале INPUT выполняется фильтрация пиков или фильтрация малых изменений (апертура).

Фильтрация пиков – это алгоритм, позволяющий игнорировать в течение одного такта пересчета изменение значения сверх установленной величины (DPic).

Фильтрация малых изменений – это алгоритм, позволяющий игнорировать изменение значения, если это изменение меньше заданной величины (APert).

При использовании экспоненциального сглаживания фильтрация малых изменений в канале FLOAT не выполняется.

При обработке значения в канале выполняется один из этих алгоритмов фильтрации (индекс указывает номер такта пересчета):

   если |RESnRn-1| <= DPicn, то выполняется фильтрация малых изменений:

   если |RESnRn-1| < APertn, то Resultn = Rn-1;

   если |RESnRn-1| >= APertn, то Resultn = RESn;

   если |RESnRn-1| > DPicn, то выполняется фильтрация одиночных пиков:

   если на такте (n-1) фильтрация пиков не использовалась, Resultn = Rn-1(первый пик фильтруется);

   если на такте (n-1) фильтрация пиков использовалась, Resultn = RESn(второй подряд пик не фильтруется).

Здесь RESn– результат процедуры трансляции или, в ее отсутствие, аппаратное значение канала; Resultn – результат описываемых алгоритмов (на n-ом такте пересчета).

Как следствие, APertn> DPicn не имеет смысла, поскольку не отрабатывается никогда.

Линейное сглаживание и фильтрация малых изменений в канале OUTPUT

При PRS=1 в канале OUTPUT выполняется линейное сглаживание и/или фильтрация малых изменений (индекс указывает номер такта пересчета):

   если |RESULTnRn-1| <= DPicn, то выполняется фильтрация малых изменений:

   если |RESULTnRn-1| <= APertn, то Resn= Rn-1;

   если |RESULTnRn-1| > APertn, то Resn= RESULTn;

   если |RESULTnRn-1| > DPicn, то вычисляется результат линейного сглаживания LINn = Rn-1 + DPicn (если RESULTn> Rn-1) или LINn = Rn-1DPicn (если RESULTn< Rn-1) и далее выполняется фильтрация малых изменений:

   если |LINnRn-1| <= APertn, то:Resn= Rn-1;

   если |LINnRn-1| > APertn, то:Resn= LINn;

RESULTn – результат предыдущей процедуры, Resn – результат описываемых алгоритмов на n-ом такте пересчета. Resnпри BNDR=0 и LMT=1 обрабатывается далее процедурой клиппирования.

При использовании экспоненциального сглаживания фильтрация малых изменений в канале FLOAT не выполняется.

Клиппирование в канале OUTPUT

Ограничение реального значения в канале FLOAT типа OUTPUT выполняется по следующим законам (при BNDR=0 и LMT=1):

   если Res > HL, то R = HL;

   если Res < LL, то R = LL;

   если LL <= Res <= HL, то R = Res.

Здесь Res – результат предыдущей процедуры обработки (линейного сглаживания и/или фильтрации малых изменений).