TapHome

Interpolazione e soglie

Funzioni di interpolazione lineare LINEAR e di filtraggio a soglia HYSTERESIS per mappare e condizionare i valori di ingresso negli script TapHome.

LINEAR

Restituisce un valore regolato linearmente – interpolazione lineare.

LINEAR(input, value1_input, value1_output, value2_input, value2_output, [type])

Parametri

  • input… valore in ingresso
  • value1_input… valore all’ingresso al limite inferiore
  • value1_output… valore all’uscita al limite inferiore
  • value2_input… valore all’ingresso al limite superiore
  • value2_output… valore all’uscita al limite superiore
  • [type]… parametro opzionale. Definisce cosa accade al risultato quando il valore in ingresso è fuori dall’intervallo value1_input ↔︎ value2_input:
    • senza parametro (uguale a BOUNDS)… Se il valore in ingresso è fuori dall’intervallo definito, il valore in uscita sarà uno degli estremi (minimo o massimo)
    • INFINITE… Se il valore in ingresso è fuori dall’intervallo definito, il risultato è un valore di estrapolazione
    • STRICT… Se il valore in ingresso è fuori dall’intervallo definito, il valore in uscita sarà NaN (non è un numero)
LINEAR Function Graph

Esempi

Example 1: LINEAR(250,  0,0,  50,500)   (Risultato è 25°C)

Example 2: LINEAR(Co2,  400,0,  1200,1)
          (Se il valore dal sensore Co2 è 400ppm, l'output per il recupero aria sarà 0%. 
           Se Co2 è 1200, l'output sarà 100%. E se, ad esempio, Co2=800, l'output sarà 50%)

Esempi per differenti attributi [type]:

  • input = 11
  • value1_input = 0, value1_output = 400
  • value2_input = 10, value2_output = 2000
  • risultato per differenti parametri [type]:
    • BOUNDS (valore di default) = 2000
    • INFINITE = 2160
    • STRICT = NaN

HYSTERESIS

L’isteresi può essere utilizzata per filtrare segnali in modo che l’uscita reagisca meno rapidamente di quanto farebbe altrimenti, tenendo in considerazione la storia recente del sistema. Ad es. un termostato che controlla un riscaldatore può accendere il riscaldatore quando la temperatura scende al di sotto di A, ma non spegnerlo finché la temperatura non sale oltre B.

Restituisce 0 o 1.

HYSTERESIS(value, upper_bound, lower_bound, upper_output, lower_output, last_value)

Esempio: mantenere una temperatura di 20 °C entro una banda di isteresi di 2 °C. Accendere il riscaldatore quando la temperatura scende sotto i 18 °C e spegnerlo quando la temperatura supera i 22 °C.

heater := HYSTERESIS(temperature,   22, 18,   0, 1,   heater);