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 |
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)
);