TapHome

Interpolacija i pragovi

Funkcije LINEAR za linearnu interpolaciju i HYSTERESIS za filtriranje na temelju praga, za preslikavanje i prilagodbu ulaznih vrijednosti u skriptama TapHome.

LINEAR

Vraća linearno prilagođenu vrijednost – linearnu interpolaciju.

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

Parametri:

  • input… ulazna vrijednost
  • value1_input… ulazna vrijednost na donjoj granici
  • value1_output… izlazna vrijednost na donjoj granici
  • value2_input… ulazna vrijednost na gornjoj granici
  • value2_output… izlazna vrijednost na gornjoj granici
  • [type]… parametar koji nije obavezan. Određuje kakav treba biti rezultat kada je ulazna vrijednost izvan raspona value1_input ↔︎ value2_input:
    • bez parametra (isto kao s parametrom BOUNDS)… Ako je ulazna vrijednost izvan zadanog raspona, izlazna vrijednost bit će jedna od krajnjih vrijednosti (minimum ili maksimum)
    • INFINITE… Ako je ulazna vrijednost izvan zadanog raspona, rezultat je ekstrapolirana vrijednost
    • STRICT… Ako je ulazna vrijednost izvan zadanog raspona, izlazna vrijednost bit će NaN (nije broj)
Graf funkcije LINEAR

Primjeri

Example 1: LINEAR(250,  0,0,  500,50)   (Rezultat je 25°C)

Example 2: LINEAR(Co2,  400,0,  1200,1)
          (Ako je vrijednost sa senzora Co2 400ppm, izlaz za rekuperaciju bit će 0%. 
           Ako je Co2 1200, izlaz će biti 100 %. A ako je npr. Co2=800, izlaz će biti 50 %)

Primjeri za različite atribute [type]:

  • input = 11
  • value1_input = 0, value1_output = 400
  • value2_input = 10, value2_output = 2000
  • rezultat za različite parametre [type]:
    • BOUNDS (zadana vrijednost) = 2000
    • INFINITE = 2160
    • STRICT = NaN

HYSTERESIS

Histereza se može koristiti za filtriranje signala tako da izlaz reagira sporije nego što bi inače reagirao, jer uzima u obzir nedavnu povijest sustava. Na primjer, termostat koji upravlja grijačem može uključiti grijač kada temperatura padne ispod A, a isključiti ga tek kada temperatura poraste iznad B.

Vraća 0 ili 1.

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

Primjer: održavanje temperature od 20 °C s histerezom od ±2 °C. Grijač se uključuje kada temperatura padne ispod 18 °C, a isključuje kada temperatura prijeđe 22 °C.

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