FO_DFT

Este bloco implementa um filtro digital de 1ª ordem, segundo a seguinte equação:

Y(k) = Y(k-1) + ( X(k) - Y(k-1)) * (Ts/Tf)   onde:

Y(k)   = saída do filtro no instante k
Y(k-1) = saída do filtro no instante anterior
X(k)   = valor da entrada no instante k
Ts     = período de amostragem do sinal
Tf     = constante de tempo do filtro

Bloco

            FO_DFT
        +-------------+
BOOL ---|RUN       OUT|--- REAL
        |             |
REAL ---|INP       UPD|--- BOOL
        |             |
TIME ---|TAU          |
        |             |
TIME ---|CYC          |
        +-------------+
  • Quando a entrada RUN estiver inativa o valor da saida OUT segue o valor da entrada INP

  • Quando a entrada RUN estiver ativa o valor da saída OUT será o resultado da equação descrita.

  • O valor da entrada INP é do tipo REAL, mesmo tipo de saída OUT.

  • A saída UPD gera um pulso no instante em que o valor OUT for atualizado pelo bloco.

Importante

O valor de TAU deve ser maior que o tempo de amostragem definido (CYC). Se o valor de TAU for menor ou igual a CYC é considerado TAU = CYC.

Parâmetros

Nome

Classe

Tipo

V. Ini.

Descrição

RUN

Entrada

BOOL

TRUE

Habilita calculo da saida

INP

Entrada

REAL

Sinal de entrada a ser filtrado

TAU

Entrada

TIME

T#5s

Constante de tempo do filtro

CYC

Entrada

TIME

T#200ms

tempo de amostragem do sinal

OUT

Saída

REAL

saída filtrada

UPD

Saída

BOOL

Valor de saida atualizado (pulso)

Exemplo

Declaração de Variáveis

Nome

Tipo

Descrição

my_FO_DFT

HILS.FO_DFT

Instancia do filtro

Clique aqui para baixar a tabela de variáveis

Código ST

(* Exemplo de ativação do bloco dentro da POU *)
(* ... *)

my_FO_DFT(  // FO_DFT
  RUN := TRUE,     // [BOOL] Habilita calculo da saida
  INP := 1.5,      // [REAL] Sinal de entrada a ser filtrado
  TAU := T#2s,     // [TIME] Constante de tempo do filtro
  CYC := T#50ms    // [TIME] tempo de amostragem do sinal
  //OUT => ,       // [REAL] saída filtrada
  //UPD =>         // [BOOL] Valor de saida atualizado (pulso)
  );