Um eine Schätzung der Umgebungstemperatur zu erhalten, misst das Gerät alle 5 Minuten die Vorlauftemperatur und bildet einen gleitenden Mittelwert über die letzten 30 Minuten. Es führt dann die folgende Berechnung durch:
Mathblock |
---|
|
--uriencoded--\text%7BUmgebungstemperatur%7D = \frac {%7B\text{Ambienttext%7BUmgebungssensor Sensor Raw Value}^{2.2}} {\text{Flow Sensor Raw Values Moving Average}^{1.2}} |
Nachdem eine Schätzung der Umgebungstemperatur erstellt wurde, vergleicht das Gerät diese Schätzung mit der vom Benutzer angeforderten Umgebungstemperatur. Sind sie gleich oder bewegt sich die Umgebungstemperatur bereits in Richtung der gewünschten Temperatur, bewegt das Gerät den Motor nicht. Andernfalls wendet das Gerät einen proportionalen Controller-Verstärkungsalgorithmus an, um die Motorbewegung zu berechnen:
Mathblock |
---|
(P * \text{Temperature Difference} * 4) \text{ %} |
...
Roh Wert%7D%5e%7B2.2%7D%7D %7B\text%7BVorlaufsensor Roh Wert Gleitender Durchschnitt%7D%5e%7B1.2%7D%7D |
Um die vorgegebene Raumtemperatur zu erreichen, wendet das Gerät den PI-Algorithmus an.
Wenn innerhalb der letzten 5 Minuten über Port 0x01 Downlink eine Raumtemperatur übermittelt wurde, verwendet das Gerät diese; andernfalls verwendet es die geschätzte Raumtemperatur.
Mathblock |
---|
|
--uriencoded--e = \text%7BSolltemperatur%7D - \text%7BUmgebungstemperatur%7D |
Mathblock |
---|
|
--uriencoded--\text%7BVentilprozent%7D = \text%7Bvorheriges Ventilprozent%7D + K_p * e + K_I * \sum e |
Die PI-Koeffizienten können durch Senden eines Port 0x07 Downlink geändert werden.
Das Gerät erwägt, den Motor alle 5 Minuten zu bewegen.