Funzione che permette di cogliere sia il fronte di salita di una condizione che il fronte di discesa di una condizione impostando dei filtri in spazio o tempo.
Al rilevamento del fronte di salita della condizione viene memorizzato il valore della variabile di filtro (varFilt) corrispondente.
Finché la differenza tra il valore attuale della variabile di filtro e quello memorizzato è inferiore alla soglia specificata (thrTrue) la funzione rende FALSE, mentre quando la differenza diventa maggiore della soglia specificata la funzione rende TRUE.
Solo quando la funzione sta rendendo TRUE, al rilevamento del fronte di discesa della condizione viene memorizzato il valore della variabile di filtro (varFilt) corrispondente.
Finché la differenza tra il valore attuale della variabile di filtro e quello memorizzato è inferiore alla soglia specificata (thrFalse) la funzione continua a rendere TRUE, mentre quando la differenza diventa maggiore della soglia specificata la funzione rende FALSE.
|
|
bool onoff_filt (bool cond, real varFilt, real thrTrue [, real thrFalse=thrTrue])
|
|
Condizione da valutare per la ricerca del fronte.
|
|
Grandezza evolvente (tipicamente tempo (tfb) o spazio ip(n)).
|
|
Quantità di varFilt in cui si deve vedere stabilmente la condizione vera.
|
|
Quantità di varFilt in cui si deve vedere stabilmente la condizione falsa. (opzionale, default thrTrue)
|
|
Rende:
|
|
FALSE
|
All'avvio se cond = FALSE.
|
cond = FALSE e si è superato la soglia thrFalse.
|
cond = TRUE ma non si è superato la soglia thrTrue.
|
TRUE
|
cond = TRUE e si è superato la soglia thrTrue.
|
cond = FALSE ma non si è superata la soglia thrFalse.
|
|
|
Rule, Task.
|
|
|
Fornendo come variabile di filtro ad esempio ip(n) si avrà un filtro in spazio, mentre fornendo come variabile di filtro tfb si avrà un filtro in tempo (unità secondi).
Esempio di utilizzo:
bool reso = false
bool reso2 = false
reso = onoff_filt(rEnaFilt, tfb, 0.5, 1)
reso2 = onoff_filt(rEnaFilt, tfb, 1.5)
|
|