VC21LPFilter
V = Variabili
C = Funzioni di Calcolo
La funzione VC21LPFilter implementa un filtro digitale passa basso del primo ordine per valori compresi nel range da -999999 a +999999. E' prevista anche l'opzione di precarica del filtro.
IMPLEMENTAZIONE
VC20LPFilter (Mode, Tsample, Tau, FilterIn, FilterOut)
Parametri:
IN/OUT | TIPO VARIABILE | NOME DI ESEMPIO | DIM | |
---|---|---|---|---|
IN | CONST / GLOBAL | Mode | F | Modo di funzionamento (0=precarica, 1=esecuzione filtro). |
IN | CONST / SYSTEM | Tsample | W | Tempo di campionamento filtro (msec) [0÷32767]. |
IN | CONST / SYSTEM | Tau | W | Costante di tempo del filtro(ms) [0÷32767] |
IN | GLOBAL | FilterIn | L | Valore della variabile da filtrare [-999999÷999999] |
OUT | GLOBAL | FilterOut | L | Valore della variabile filtrata [-999999÷999999] |
Descrizione
La funzione VC21LPFilter implementa un filtro passa basso digitale del primo ordine la cui costante di tempo (Tau) è definita nei parametri passati alla funzione stesso. Supponendo di partire da un valore della variabile di ingresso pari a zero, l'uscita del filtro assume un valore pari al 63% dell'ingresso dopo il tempo Tau. Allo stesso modo la frequenza di taglio del filtro è . L'argomento Mode se vale zero permette di precaricare il filtro ad un valore impostabile con l'argomento FilterIn.
Esempio
;--------------------------------------------- ; Project : REG_012 ; Module Name : ReadTemp ; Author : ; Description : Read temperature & filter ;--------------------------------------------- MAIN: CALL ReadTemp swTsample = 100 ;100 ms tempo campionamento filtro swTau = 5000 ;5 sec costante di tempo filtro gfMode = 1 ; normale esecuzione VC21LPFilter (gfMode,swTsample, swTau, gwFilterIn, gwFilterOut) WAIT 1 JUMP MAIN
Note
-
La funzione contiene all'interno un timer per eseguire effettivamente il filtro ogni Tempo di campionamento (Tsample). La funzione deve essere quindi eseguita ad una frequenza superiore rispetto al Tempo di campionamento (Tsample), in genere ad ogni ciclo task.