HP_DFT

Implementa um filtro digital passa-alta sobre um sinal REAL, aplicando um ganho calculado em função da frequência de corte especificada; enquanto a entrada START estiver inativa a saída acompanha diretamente a entrada. É um bloco de função (mantém estado entre scans; requer instância).

Biblioteca: HI_STD · Namespace: HILS · Tipo: bloco de função

Bloco de função

              HP_DFT
         +---------------+
BOOL ----|START       OUT|---- REAL
         |               |
REAL ----|INP         UPD|---- BOOL
         |               |
TIME ----|C_TME          |
         |               |
REAL ----|CUT_OFF        |
         +---------------+

Enquanto START estiver inativa, a saída OUT segue diretamente o valor da entrada INP. Com o bloco ativo, o filtro atenua as componentes de baixa frequência do sinal, mantendo (ganho ˜ 1) as componentes acima da frequência de corte CUT_OFF.

O bloco emprega a seguinte equação:

rc = 1.0 / (2 * PI * cf)    onde:

  rc = constante de tempo do filtro
  cf = frequência de corte do filtro

Y(k) = (rc / (rc + ts)) * (Y(k-1) + X(k) - X(k-1))   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
  X(k-1) = valor da entrada no instante anterior
  ts     = período de amostragem do sinal

Importante

Quando o bloco estiver ativo (START = TRUE), alterações nos valores de C_TME e CUT_OFF não afetam o cálculo. Para que esses parâmetros sejam reavaliados, a entrada START deve sofrer uma transição de OFF para ON.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

TRUE

—

Habilita a filtragem do sinal de entrada quando ativo. Inativo, OUT segue INP.

INP

IN

REAL

0.0

—

Valor corrente do dado a ser filtrado.

C_TME

IN

TIME

T#20ms

—

Tempo de ciclo (período de amostragem do sinal).

CUT_OFF

IN

REAL

0.0

Hz

Frequência de corte do filtro.

OUT

OUT

REAL

0.0

—

Sinal de saída filtrado (se START = FALSE, OUT = INP).

UPD

OUT

BOOL

FALSE

—

Pulso indicando que o valor de saída foi atualizado.

Pré-condições

  • C_TME deve refletir o período de amostragem real do sinal para que o cálculo do ganho seja consistente.

  • Para reavaliar C_TME e CUT_OFF, aplique uma transição OFF?ON em START.

Observações

  • Com START inativa, o bloco opera em bypass: OUT = INP.

  • A saída UPD sinaliza, por pulso, cada atualização do valor filtrado.

Ver também

LP_DFT, FO_DFT, MA_DFT

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    my_HP_DFT : HILS.HP_DFT; (* Instancia do filtro *)
END_VAR

(* Exemplo de ativacao do bloco dentro da POU *)
my_HP_DFT(
  START   := TRUE,     (* [BOOL] Habilita filtro do sinal de entrada quando ativo *)
  INP     := 1.5,      (* [REAL] valor corrente do dado a ser filtrado *)
  C_TME   := T#50ms,   (* [TIME] Tempo de ciclo *)
  CUT_OFF := 500.0     (* [REAL] Frequencia de corte em Hz *)
  );

(* Saidas disponiveis: my_HP_DFT.OUT (REAL), my_HP_DFT.UPD (BOOL) *)