Dokumentáció
Interpoláció és küszöbértékek
LINEAR lineáris interpoláció és HYSTERESIS küszöbszűrő függvények bemeneti értékek leképezéséhez és kondicionálásához a TapHome szkriptekben.
LINEAR
Visszaadja a lineárisan igazított értéket – lineáris interpolációt végez.
LINEAR(input, value1_input, value1_output, value2_input, value2_output, [type])Paraméterek
- input … bemeneti érték
- value1_input … a bemeneti érték az alsó határnál
- value1_output … a kimeneti érték az alsó határnál
- value2_input … a bemeneti érték a felső határnál
- value2_output … a kimeneti érték a felső határnál
- [type] … opcionális paraméter. Meghatározza, mi legyen az eredmény, ha a bemeneti érték kívül esik a value1_input ↔︎ value2_input tartományon:
- paraméter nélkül (ugyanaz, mint a BOUNDS) … Ha a bemeneti érték a definiált tartományon kívül van, a kimeneti érték az egyik szélsőérték (minimum vagy maximum) lesz
- INFINITE … Ha a bemeneti érték a meghatározott tartományon kívül van, az eredmény extrapolált érték
- STRICT … Ha a bemeneti érték a meghatározott tartományon kívül van, a kimeneti érték NaN.
Példák
Example 1: LINEAR(250, 0,0, 50,500) (Result is 25°C)
Example 2: LINEAR(Co2, 400,0, 1200,1)
(If value from Co2 sensor is 400ppm, output for air recovery will be 0%.
If Co2 is 1200, output will be 100%. And if e.g. Co2=800, output will be 50%)Példa [type] attribútumokra:
- input = 11
- value1_input = 0, value1_output = 400
- value2_input = 10, value2_output = 2000
- eredmény különböző [type] paramétereknél:
- BOUNDS (alapértelmezett) = 2000
- INFINITE = 2160
- STRICT = NaN
HISTERÉZIS
A hiszterézis használható a jelek szűrésére, hogy a kimenet ne reagáljon olyan gyorsan, hanem figyelembe vegye a rendszer előző állapotát. Például egy termosztát fűtést vezérel: bekapcsolja, ha a hőmérséklet A alá esik, de csak akkor kapcsolja ki, ha a hőmérséklet B fölé emelkedik.
0‑t vagy 1‑et ad vissza.
HYSTERESIS(value, upper_bound, lower_bound, upper_output, lower_output, last_value)Példa: tartsunk 20 °C-os hőmérsékletet 2 °C hiszterézissel. Kapcsolja be a fűtést, ha a hőmérséklet 18 °C alá süllyed, és kapcsolja ki, amikor a hőmérséklet meghaladja a 22 °C‑ot.
heater := HYSTERESIS(temperature, 22, 18, 0, 1, heater);