Regelungsgeschwindigkeit - SW-Niko/OpenDTU-OnBattery GitHub Wiki
Problem
Die DPL-Regelschleife läuft schon ziemlich schnell, aber an einigen Stellen gibt es noch Luft nach oben.
Stable-Time
Die Stable-Time verhindert ein unnötiges hochfrequentes Durchlaufen der DPL-Regelschleife, wenn kein Verstärker Limit verändert wurde. Aber … es gibt einen Fall ... bei dem die „Stable time“ eher stört und das ist wenn das Powermeter eine "hohe" Leistungsänderung meldet aber die DPL-Regelschleife noch die Stable-Time abwartet.
Die Idee ist, die Stable-Time zu überspringen, wenn eine ausreichende Leistungsänderung festgestellt wird. Damit verkürzt sich die Reaktionszeit zwischen einer Leistungsänderung und einem neuem Inverter Limit um 0-1 Sekunden.
- Bei einem Anstieg des Verbrauchs wird die Inverter-Leistung schneller erhöht und man reduziert die importierte Energie aus dem öffentlichen Netz.
- Bei einem Abfall des Verbrauchs wird die Inverter-Leistung schneller verringert und man reduziert die exportierte Energie in das öffentlichen Netz.
Eine Leitungsänderung wird als ausreichend betrachtet wenn:
- Die Änderung muss mindestens dem doppelten Target entsprechen.
- Die Änderung muss innerhalb des Regelbereichs sein oder zu mindestens dort starten oder enden.
Testweise habe ich zusätzlich eine Messung der eingesparten Zeit und der Energie eingebaut. Die Informationen werden alle 30 Sekunden im Logging angezeigt. Dazu muss die DPL Protokollierung auf Info oder höher gestellt werden.
dynamicPowerLimiter: [Controller] Stable-Time: save time total: 232s, less export energy: 0.678Wh, less import energy: 1.037Wh dynamicPowerLimiter: [Controller] Stable-Time: power range: 22W - 300W, minimum power change: 16W"
Auf meinem System wird eine Leistungsänderung aus ausreichend bewertet, wenn die Änderung mindestens 16W beträgt und wenn die Änderung innerhalb 22W-300W bleibt, beginnt oder endet. Zum Beispiel: Ein Sprung von 50W auf 2000W beginnt im Regelbereich und ist damit ausreichend. Ein Sprung von 500W auf 2000W ist nicht im Regelbereich und deshalb wird die Stable-Time auch nicht übersprungen.
Powermeter-Intervall-Time
Die Intervall-Time legt fest wie oft Daten ausgelesen werden. Generell gilt "Je schneller desto besser", aber zu schnell kann auch zu Problemen führen.
Ich habe an meinem Shelly-3em (Http+Json) einige Untersuchungen durchgeführt.
Soweit ich das beurteilen kann, misst das 3em über ein Zeitfenster von 1 Sekunde die Energie und berechnet daraus die Leistung. Man erhält also einen Leistungswert der über 1 Sekunde gemittelt wurde. Dieser Wert wird gespeichert und kann dann ausgelesen werden. Nach einer weiteren Sekunde stet der nächste Wert bereit. Es macht also keinen Sinn, die Messwerte mehrmals in einer Sekunde zu lesen, weil man immer den gleichen Wert erhalten würde.
Trotzdem würde ich beim 3em nicht empfehlen eine Intervall-Zeit von 1 Sekunden zu verwenden. Das liegt daran das Shelly-3em und die DTU sind nicht synchronisiert. Wenn beide mit der gleichen Frequenz laufen dann misst man immer zu gleichen Zeitpunkt oder er verschiebt sich langsam in eine oder in die andere Richtung. Besser ist es, wenn man die Intervall-Zeit leicht unterschiedlich zur Shelly Intervall-Zeit macht. 10% mehr oder weniger ist ein in der Technik üblicher Versatz. Ich verwende 0.9 Sekunden. Dann erhält man im Mittel einen Messwert der 0.5 Sekunden alt ist.
Jetzt wird aber nicht jeder ein Shelly-3em verwenden, darum habe ich die Powermeter Protokollierung etwas erweitert. Alle 30 Sekunden werden folgende Informationen ausgegeben.
powerMeter: [HTTP/JSON] Average interval time: 1018ms, [Min: 940, Max: 3877] powerMeter: [HTTP/JSON] Average poll time: 117ms, [Min: 39, Max: 2638] powerMeter: [HTTP/JSON] Poll/Http errors per day: 100.0 powerMeter: [HTTP/JSON] Identical data: 0.3% [18 of 5844 polls]
In Arbeit...
Settling-Time
Die Settling Time wird angewendet, wenn der Inverter ein neues Limit bekommen hat. Es ist die Zeit zwischen dem Einstellen eines neuen Limits und bis wir einen neuen Wert vom Powermeter akzeptieren.
Es gibt keinen einheitlichen Wert weil es abermals stark vom verwendeten Powermeter abhängt. Und genau dorthin gehört der Wert verschoben. Weg von einem festen Wert im DPL und hin zu einem individuellen Wert für das Powermeter. Notfalls auch konfigurierbar.
Beim Shelly-3em liegt die Settling-Time zwischen 1-2 Sekunden. Ich verwende den Mittelwert bei 1.5 Sekunden.