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