Closed Alestrix closed 3 years ago
Mit anderen Worten: wenn ein Fahrzeug sich nicht Normkonform verhält liegt die Regelung um den Betrag der Abweichung daneben.
Warum regeln wir auf Ist-Ströme: weil dadurch ein Aufschwingen der Regelung vermieden wird. Phantomabweichungen werden immer auf Basis der Echtwerte bewertet. Refs https://github.com/evcc-io/evcc/pull/877
Einfacher Workaround: mit ResidualPower
kompensieren.
/cc @premultiply wie siehst Du das Thema Regelung?
Danke für den Change!
Ein Kommentar zur Normkonformität sei mir noch erlaubt: meines Wissens wird über das PWM Signal dem Fahrzeug der maximal erlaubte Strom kommuniziert. Ob das Fahrzeug diesen voll ausnutzt oder noch einen Sicherheitspuffer abzieht, ist wahrscheinlich im Ermessen des OBCs.
Versehentlich etwas zu früh geschlossen
Ich kann mich daran erinnern dass wir die implementierte Variante als das kleinere Übel angesehen hatten und damals schon klar war, dass es Probleme geben wird wenn eine größere Diskrepanz zwischen gewünschter Wirkleistung und tatsächlich durch den Ladepunkt geregelter Scheinleistung besteht.
Das ist bei der ZOE im 3P-Modus und zu niedrigen Ladestromvorgaben der Fall.
Das kaum lösbare Grundproblem ist: Es wird Wirkleistung gemessen aber Scheinleistung geregelt.
In #877 steht leider nicht, warum man damals diese Entscheidung getroffen hat.
Ich verstehe, wenn aus irgendeinem Grund das Auto bei einem niedrigeren Strom "stehen bleibt" als möglich, wird der eingestellte Strom mit jedem Regelzyklus immer höher gehen bis zum konfigurierten maxcurrent
. Wenn dann aus welchem Grund auch immer später der OBC entscheidet, nun doch der Vorgabe zu folgen (vielleicht weil die Batterie nun die gewünschte Temperatur hat oder warum auch immer), dann geht der Bezug plötzlich durch die Decke.
Daher mein Vorschlag in #1431, den eingestellten Current und den gemessenen nie mehr als einen bestimmten Wert auseinanderlaufen zu lassen. @andig meinte, dadurch könnte die Regelung für manche Fahrzeuge verlangsamt werden, das kann ich aber bisher nicht nachvollziehen. In meinen Gedankenspielen/"Schreibtischtests" ist eher das Gegenteil der Fall. @andig, kannst Du einen Beispielablauf skizzieren, wann die Regelung durch den Vorschlag verlangsamt wird?
Ich glaube Andi hat das im Eifer des Gefechts missverstanden und mit einem Ramping verwechselt welches pro Regelzyklus die Schrittweite limitiert. Oder?
Dein Vorschlag wäre vielleicht durchaus mal noch genauer zu betrachten und in der Praxis zu testen. Er würde sozusagen einen limitierten Overshoot erlauben.
Allerdings muss man da viele Aspekte betrachten und abwägen, insbesondere wenn es um das (sichere) Verhalten bei mehreren Ladepunkten geht, insbesondere wenn dort zukünftig Lastmanagementfunktionen greifen sollten.
Allerdings muss man da viele Aspekte betrachten und abwägen, insbesondere wenn es um das (sichere) Verhalten bei mehreren Ladepunkten geht, insbesondere wenn dort zukünftig Lastmanagementfunktionen greifen sollten.
D.h. man müsste den "Overshoot" Wert - in meinem Beispiel 3A - konfigurierbar halten und in dem von Dir genannten Fall sicherheitshalber auf 0A einstellen. Dann wird als effectiveCurrent immer der kleinere von eingestelltem und gemessenem Current genommen. Das müsste ja eigentlich immer der gemessene sein (d.h. identisch mit bisherigem Verhalten), da das Auto ja nie mehr ziehen darf als eingestellt.
Das ist bei der ZOE im 3P-Modus und zu niedrigen Ladestromvorgaben der Fall.
Leider ist das nicht darauf beschränkt. Die Logs oben zeigen eine 1P Ladung mit 17A (18A eingestellt).
Hier geht es erstmal darum ob wir auf Soll- oder Ist-Strom regeln. Alles Andere ist ein weiteres Thema.
Das kaum lösbare Grundproblem ist: Es wird Wirkleistung gemessen aber Scheinleistung geregelt.
Ich sehe das Problem nicht und die Aussage stimmt m.E. nicht. Wir regeln auf Wirkleistung am Netzpunkt. Die Frage hier ist ob die Regelungsschritte die richtigen Parameter als Anhaltspunkt nehmen. Warum? Weil wir das Delta trotz Istwerten gerade nicht ausgeregelt bekommen.
Wir könnten ja einfach mal den Sollstrom nehmen und das ein paar Tage beobachten. Mit Sollstrom ist sichergestellt, dass Ist-Delta durch Soll-Delta beeinflusst wird. Im Moment ist es eine Mischung.
Ist trotzdem so. Durch die PWM-Änderung wird eine Änderung bzw. Beschränkung des maximalen Phasenstroms bewirkt, somit bei AC-Systemen also Scheinleistung (VA), nicht Wirkleistung (W)!
Du berechnest aber abgeleitet von dem gemessenen Delta der Wirkleistung des Netzzählers ein Wirkleistungsdelta dass du dann einfach einem Scheinleistungsdelta gleichsetzt um dadurch eine Stromänderung zu berechnen. Dem folgt das Fahrzeug akkurat durch eine Anpassung der Scheinleistung. Nicht berücksichtigt ist dabei aber der mit der Scheinleistungsanpassung nichtlinear geänderte Blindleistungsanteil. Damit erhältst du einen überraschen Wirkleistungssprung und es verbleibt ein Delta. Das könnte man zwar wieder ausregeln wenn man sich an den Ist-Werten orientiert bzw. die ignoriert aber die Regelgröße wird immer ein Delta haben und daher nie wirklich stabil sein.
Ist eben so.
@premultiply Prinzipiell hast Du recht, Du sprichst aber schon das übernächste Problem an, nämlich das, das in #1395 und #1356 Thema ist. Das tritt aber vor allem bei kleinen Strömen auf.
Zumindest bei der Zoe ist nach meinen Erfahrungen der Blindleistungsanteil oberhalb 1x8A bzw. 3x10A so weit stabil, dass sich der Strom nach ein paar Zyklen korrekt einstellen sollte, wenn man den Sollstrom über das Wirkleistungsdelta am Netzanschlusspunkt regelt.
Die Grundursache ist in allen Fällen identisch aber eben kaum lösbar ohne andere Nachteile einzukaufen. Hier muss man sehen was das kleinste Übel sein wird (oder bleibt).
Ich versuche gerade noch zu verstehen, was - im Vergleich zur aktuellen Lösung - die angesprochenen Nachteile sind, wenn man das Delta auf den Sollstrom anwendet, aber sicherstellt, dass er sich nicht zu weit vom Iststrom entfernt.
Denk mal an mehrere LPs, LPs mit und ohne Zähler, unterschiedliche Delays, unterschiedliche Fahrzeuge.
Da ich nicht weiß, wie der zur Verfügung stehende Delta-Strom auf die LP verteilt wird (gleichmäßig? nach Prioritäten?), kann ich dazu wenig sagen. Man müsste wohl den insgesamt erlaubten "Overshoot"-Strom durch die Anzahl der aktiven Ladepunkte dividieren.
LP ohne Zähler: Da wird heute schon nur auf Sollstrom geregelt, wäre also keine Änderung.
Unterschiedliche Delays/Fahrzeuge: Sind das nicht prinzipielle Themen? Ich sehe noch nicht, in wieweit die Entscheidung, ob das Delta auf den Soll- oder den Iststrom addiert wird, hier eine (systematische) Verbesserung oder Verschlechterung bewirken sollte.
Werden wir mal fertig. Sollen wir probehalber auf Sollstrom umstellen? Bitte Daumen hoch/runter.
Ich wäre für Umstellung auf Sollstrom, daher mein Daumen hoch, aber unter Limitierung der Sollstrom-Iststrom Differenz, um zu vermeiden, dass der Sollstrom immer höher gesetzt wird, für den Fall, dass das Fahrzeug nicht höher als ein bestimmter Wert regeln "möchte"/kann.
Ich weiß nicht, ob das ein valides Beispiel wäre: 11kW OBC, es stehen 1x 18A zur Verfügung und maxcurrent ist 32A.
Danke @andig für den Change und dass Du bereit bist, das durchzutesten! Hier mal ein erster Bericht.
Ich habe die latest (mit konfigurierter Wallbox Strommessung) verglichen mit der 0.61 (die hatte ich hier zuvor am laufen) mal ohne und mal mit konfigurierter Wallbox-Strommessung in der evcc.yaml. WB-Leistungsmessung war immer konfiguriert.
Es verhalten sich wie erwartet latest und 0.61 ohne Strommessung gleich, während 0.61 mit Strommessung zu viel PV Strom ungenutzt lässt. Davon abgesehen ist noch auffällig, dass die 0.61+Strom - Linie wesentlich ruhiger läuft als die anderen beiden, wo die Regelung auf Basis des Soll-Stroms für wesentlich mehr Unruhe sorgt. Das hätte ich so nicht erwartet, würde für mich aber kein Problem darstellen. Weiß nicht, wie das andere sehen.
In allen Fällen habe ich auf dem MQTT Bus gemonitort, dass auch wirklich mA-genaue Ströme an die WB gesendet werden, was auch der Fall war (das Log lässt erst mal anderes vermuten: pv max charge current: 14.4A
gefolgt von max charge current: 14
)
Für einen Test mit 3P ist leider nicht genug Sonne da...
So viel von mir. Jetzt wäre noch interessant, wie das bei anderen aussieht.
Viele Grüße Alex
PS: Die Ruhigere Regelung bei "0.61+Strom" mag auch daran liegen, dass in dem Moment die PV-Erzeugung wesentlich konstanter war. Etwas später sah es dann so aus:
Davon abgesehen ist noch auffällig, dass die 0.61+Strom - Linie wesentlich ruhiger läuft als die anderen beiden, wo die Regelung auf Basis des Soll-Stroms für wesentlich mehr Unruhe sorgt. Das hätte ich so nicht erwartet, würde für mich aber kein Problem darstellen. Weiß nicht, wie das andere sehen.
Danke für die Info. Wird es ruhiger, wenn Du das Regelintervall verlängerst?
Wir können das ja immer noch zurück drehen wenn es keine gesamtheitlich überzeugende Lösung gibt.
In allen Fällen habe ich auf dem MQTT Bus gemonitort, dass auch wirklich mA-genaue Ströme an die WB gesendet werden, was auch der Fall war (das Log lässt erst mal anderes vermuten: pv max charge current: 14.4A gefolgt von max charge current: 14)
Das sieht blöd aus- gerne neues Ticket.
Danke für die Info. Wird es ruhiger, wenn Du das Regelintervall verlängerst?
Da auch bei einem 15s Intervall immer nur der Momentanwert und kein Durchschnitt genommen wird, glaube ich eigentlich nicht an eine Glättung. Die Unruhe stört mich auch nicht und es ist schon toll, wie gut die Regelung den Strom ausregelt:
Ich setze es aber trotzdem mal auf 15s, wobei mir die schnelle Reaktion schon gut gefällt. Wegen Schei$$wetter kann ich aber jetzt nicht mehr testen.
Mein Punkt ist: wir optimieren nicht auf Deinen Einzelfall, sondern auf die Masse.
Mein Punkt ist: wir optimieren nicht auf Deinen Einzelfall, sondern auf die Masse.
Das ist schon klar, aber wenn es meinen (*) Fall löst, ohne andere Probleme zu erzeugen, dann spricht ja nichts dagegen. Wie schon erwähnt, wurde etwas später die "legacy" Variante ja auch unruhig. Wenn man dann noch den erlaubten "Schlupf" konfigurierbar machen würde, könnte man durch Setzen des selben auf 0 wieder das vorherige Verhalten herbeiführen. Wenn mich Frau und Kinder mal ausreichend lange los lassen, würde ich mich auch mal an einem PR für die Konfigurierbarkeit heranwagen. Fragt sich halt, wann das mal der Fall sein wird :-/
(*) Wie schon an anderer Stelle erwähnt, gibt es keine Norm, die dem Auto vorschreibt, den gesamten zur Verfügung gestellten Strom auszunutzen. Daher denke ich nicht, dass meine Zoe ein Einzelfall ist. Auch ist vielleicht bei einigen der Effekt nur geringer und daher die Regelung zwar nicht so genau, aber "genau genug" (was ja sehr subjektiv ist).
Keine "Beruhigung" durch 15s Intervall:
Für mehr Tests haben leider Zeit und Sonne nicht gereicht. Ich nehme gerne Vorschläge für weitere Tests an. Z.B. wollte ich auch die Glättung per decay
probieren, habe es aber nicht zum Laufen gebracht ("[main ] FATAL 2021/08/30 15:43:03 cannot create meter 'grid': cannot create meter 'custom': 1 error(s) decoding: * '' has invalid keys: decay").
Bleibt die Frage so lassen oder zurück drehen?
Ich hab da nen Bias (bei mir läuft's mit dem Change ja besser), daher sollte das jemand anderes beantworten. @premultiply was denkst Du?
Das müsste mal jemand mit mehreren Ladepunkten bei paralleler Nutzung testen. Mit einem LP mit schneller und feingranularer PWM-Anpassung funktioniert es gut bzw. sogar vielleicht sogar tatsächlich besser. Mit NRGkick oder anderen lahmen Gerätschaften wird man aber da wohl weniger Freude als zuvor dran haben. Ich würde es aber jetzt erstmal so lassen.
Im Rahmen des Lastmanagements muss man das aber nochmal ganz genau betrachten und vermutlich auch nochmal nachjustieren. Aber da wird man um einen Zähler für die Ist-Leistung und die Ist-Ströme an jedem Punkt ohnehin nicht herum kommen wenn man es möglichst effizient machen will.
Habe mich mal an einer Konfiguraitonsoption versucht - #1472 . Durch Setzen von maxoffsetcurrent auf 0 kann man das alte Verhalten wiederherstellen.
Describe the bug
Wenn EVCC nur die Leistung am Netzanschlusspunkt zur Verfügung hat, wird der an die Wallbox gesendete Soll-Strom korrekt geregelt, so dass am Netzübergang im Schnitt 0W bzw die eingestellte
residualpower
anliegt - im Bild unten Bereich (1) (residualPower=100
).Zugehöriges Log:
Sobald aber ein Charger in der Konfiguration definiert ist, der EVCC den tatsächlich zum Auto fließenden Strom mitteilt, wird nicht mehr korrekt geregelt (Bereich (2),
residualPower=100
)Zugehöriges Log:
Das Bild zeigt die Leistung am Netzabschlusspunkt mit unterschiedlichen evcc Konfigurationen.
To Reproduce
Man benötigt ein Auto, dass sich nicht exakt an die Vorgabe durch die Wallbox hält (das dürften wohl die meisten Autos sein, bei Zoe ist es aber wohl ein Extremfall) und einen Wallbox-Charger, der die Ströme liefern kann. Dann beobachtet man die sitePower einmal mit konfigurierter Wallbox-Strommessung und mal ohne.
In meinem Fall:
Expected behavior
EVCC hat nur Einfluss auf den an die Wallbox per API gesendeten Sollstrom (=Regler) und versucht darüber zyklisch, die Regelgröße (=Netzbezug) auf einen Sollwert (0W bzw. residualpower) zu regeln. Ist der Netzbezug zu groß, muss der Regler heruntergedreht werden, ist der Netzbezug zu klein bzw. die Einspeisung zu groß, muss der Regler hochgedreht werden. EVCC sollte sich nicht von den Messwerten an der Wallbox "verwirren" lassen.
EVCC details: Show output of
evcc -v
:Git master von gestern (23.08.2021), da in der Release Version noch ganze Ampere an die Wallbox (WARP Charger) gesendet werden.
Show output of
evcc dump -c configfile
:Show evcc configuration file
evcc.yaml
:Show evcc log output with
--log debug
:Mitigation Es könnte ausreichen, EVCC nicht über die Ströme zu informieren (wie oben durch die Auskommentierung getan). Ich kann mir aber vorstellen, dass z.B. die automatische Unterscheidung zwischen 1P und 3P zuverlässiger funktioniert, wenn EVCC Zugriff auf die Ströme hat. Ob EVCC die Wallbox-Ströme noch für andere Zwecke nutzen kann, ist mir nicht bekannt.