Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loadpoint: allow fine-grained battery boost #19385

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

Loadpoint: allow fine-grained battery boost #19385

wants to merge 9 commits into from

Conversation

andig
Copy link
Member

@andig andig commented Mar 3, 2025

Fix #19845

Currently, battery boost draw at least 1A per phase from grid, regardless if mA charging is available. This PR honors mA charging.

@andig andig added the backlog Things to do later label Mar 3, 2025
@premultiply
Copy link
Member

Da ich es momentan mangels Zeit nicht genauer analysieren kann hier meine Gedanken dazu:

Es braucht gewisse Toleranzen, da hier verschiedene Dinge gleichzeitig einwirken.

  • Die Regelung des Batteriespeichers muss stets ausreichend Bezug sehen (Offset) um seine die Boost-Leistung hochzufahren. Sonst ist er ja nur bestrebt ein Gleichgewicht herzustellen. Je geringer der Fehlbetrag Offset desto langsamer die Ausregelung durch den Batteriespeicher, manchmal wirken dabei sogar Totbereiche die nicht ausgeglichen werden.
  • Im Extremfall müssen 4,2 kW auf 22 kW hochgefahren werden. Mit 100W-Offset und 30 Sekunden Intervall würde das ein sehr langes Vorhaben - wenn keine sonstigen Störungen durch Verbrauchsschwankungen hinzukommen.
  • Nicht nur Ladepunkte müssen stufenlos regelbar sein, auch die Fahrzeuge. Wenn das angeschlossene Fahrzeug nur 1A-Sprünge macht oder anderweitig nicht gänzlich stufenlos steuerbar ist oder nichtlinearitäten auftreten muss das auch funktionieren. Über das genaue Verhalten der angeschlossenen Fahrzeuge wissen im Zweifelsfall zu wenig.

In meinem Test (Wallbe mit 0,1A Schritten, ZOE, SMA SBS) funktioniert dieser PR mit diesem Stand nicht.
Der Speicher regelt nicht (mehr) hoch.

Vielleicht haben @mfuchs1984 und @VolkerK62 auch noch eine Idee dazu.

Irgendwo hatten wir das schon mal analysiert und diskutiert woraus dann die aktuelle (funktionierende) Lösung entstand. Da ging es speziell auch um die Abhängigkeit mit der Phasenanzahl. Leider finde ich das nicht mehr.

@andig
Copy link
Member Author

andig commented Mar 5, 2025

Im Extremfall müssen 4,2 kW auf 22 kW hochgefahren werden. Mit 100W-Offset und 30 Sekunden Intervall würde das ein sehr langes Vorhaben - wenn keine sonstigen Störungen durch Verbrauchsschwankungen hinzukommen.

Das Hochfahren passiert ja schon vorher. Hier gehts nur ums nachsteuern.

Je geringer der Fehlbetrag Offset desto langsamer die Ausregelung durch den Batteriespeicher, manchmal wirken dabei sogar Totbereiche die nicht ausgeglichen werden.

Dann müssten wir ja jetzt einen plausiblem Totbereich raus finden. Schaffen wir das? Zumindest bei 3p sind 690W schon sehr heftig.

Wäre großartig wenn das jemand mit Akku testen könnte- ich kanns mangels Gerät leider nicht.

@VolkerK62
Copy link
Contributor

Der Totbereich spielst doch im normalen Betrieb auch eine Rolle?
Könnte man dafür nicht den Wert von residualpower nehmen?

@andig
Copy link
Member Author

andig commented Mar 5, 2025

Klingt plausibel. ...dann sollten die 100W aus diesem PR ja reichen. Egal wie man es dreht: es muss jemand schauen was da gerechnet wird und warum es nicht funktioniert.

@VolkerK62
Copy link
Contributor

Hier ist ein Fall, wo trotz boost, die Ladeleistung kontinuierlich sinkt
#19492 (reply in thread)

Welche residualpower Einstellung war dabei aktiv? Ich würde tippen 401W.

[site  ] DEBUG 2025/03/08 13:07:33 ----
[lp-1  ] DEBUG 2025/03/08 13:07:33 charge power: 5249W
[site  ] DEBUG 2025/03/08 13:07:33 grid power: 20W
[site  ] DEBUG 2025/03/08 13:07:33 battery 1 power: 1412W
[site  ] DEBUG 2025/03/08 13:07:33 site power: 1833W
[lp-1  ] DEBUG 2025/03/08 13:07:33 pv charge battery boost: -1642W = -1412W battery - 230W boost
[lp-1  ] DEBUG 2025/03/08 13:07:33 pv charge current: 21.6A = 22.4A + -0.83A (191W @ 1p)
[lp-1  ] DEBUG 2025/03/08 13:07:33 max charge current: 21.6A
[site  ] DEBUG 2025/03/08 13:07:48 ----

Auf die Batterieleistung wird 1A Ladeleistung aufgeschlagen (230W boost).
Der Wert battery boost wird mit site power verrechnet und ergibt das Regelungs-Delta.
site power = battery power + grid power + residualpower ergibt 1412W + 20W + 401W = 1833W
1833W + (-1642W) = 191W Regelungs-Delta. Um diesen Wert wird die Ladeleistung angepasst.

Müsste man zum delta nicht auch noch residualpower dazurechnen (damit es im Endeffekt unberücksichtigt bleibt)?

delta := lp.EffectiveStepPower()

@premultiply
Copy link
Member

premultiply commented Mar 10, 2025

Klingt logisch. Bei mir steht residualPower auf 100W und vermutlich deshalb funktioniert es damit bei mir gar nicht.
Da müssen wir also vorher noch an die Berechnung ran.

Vielleicht letztendlich mit + und - |residualPower| als Gesamtoffset arbeiten?

@andig
Copy link
Member Author

andig commented Mar 11, 2025

Night schön, aber probehalber umgesetzt

@VolkerK62
Copy link
Contributor

Das wirkt dann aber nur (passend zum PR) bei mA-Regelung.
Könnte man das nicht auch gleich auch noch für die LP anpassen, die nur in ganzen A geregelt werden können?
Wenn da residualpower zu hoch (positiv) eingestellt ist, funktioniert der boost auch nicht richtig.

@andig
Copy link
Member Author

andig commented Mar 13, 2025

Das wirkt dann aber nur (passend zum PR) bei mA-Regelung.

Bei ganzen A sind es soweiso mindestens 230W. Da damit bisher kein Problem bekannt ist auch keine Änderung- oder worauf willst du hinaus?

Wenn da residualpower zu hoch (positiv) eingestellt ist, funktioniert der boost auch nicht richtig.

Was schlägst Du vor?

@VolkerK62
Copy link
Contributor

siehe oben #19385 (comment)
Da waren 400W residualpower eingestellt, deshalb hat boost nicht richtig funktioniert. Die Ladeleistung wurde in jedem Intervall reduziert.
Idee ist, delta := lp.EffectiveStepPower() + residualpower
Damit wäre beim anschließenden Vergleich mit site Power der Einfluss von residualpower praktisch aufgehoben.

@andig
Copy link
Member Author

andig commented Mar 13, 2025

Verstehe ich nicht. Im normalen fall (nicht mA) werden zum "richtigen" Leistungsbedarf ja schon 1A drauf gerechnet. Wieso sollte man da residual Power nochmal rein rechnen? Die ist ja schon drin!

@andig andig marked this pull request as ready for review March 13, 2025 13:39
@andig
Copy link
Member Author

andig commented Mar 13, 2025

Im Zweifel: gerne PR direkt anpassen und ausprobieren.

@VolkerK62
Copy link
Contributor

[site  ] DEBUG 2025/03/08 13:07:33 site power: 1833W
[lp-1  ] DEBUG 2025/03/08 13:07:33 pv charge battery boost: -1642W = -1412W battery - 230W boost
[lp-1  ] DEBUG 2025/03/08 13:07:33 pv charge current: 21.6A = 22.4A + -0.83A (191W @ 1p)

pv charge battery boost wird mit site power verrechnet.
In site power sind 401W residualpower enthalten, deshalb wird die Ladeleistung reduziert.

Mit meine Idee wäre die Änderung bei pv charge current nicht +191W sondern -210W

@andig
Copy link
Member Author

andig commented Mar 13, 2025

Im Zweifel: gerne PR direkt anpassen und ausprobieren.

Ich verstehe nur bahnhof.

@VolkerK62
Copy link
Contributor

Wenn es mal wieder Sonne gibt und in meiner Batterie etwas drin ist, dann werde ich es mal ausprobieren.

@VolkerK62
Copy link
Contributor

da ich nur einen 1A-Charger habe, passt es nciht in diesen PR.
Ich mache zum Thema "residualpower & battery boost" ein neues Issue auf.

@@ -1330,7 +1337,7 @@ func (lp *Loadpoint) boostPower(batteryBoostPower float64) float64 {
}
}

res := batteryBoostPower + delta
res := batteryBoostPower + delta + lp.site.GetResidualPower()
Copy link
Member

@premultiply premultiply Mar 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anm: Hier wird (ggf. nochmals) residualPower addiert um dessen Offset an der site zu neutralisieren (sonst verschobener Arbeitspunkt, #19845).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich kann dir nicht folgen. Ist das so jetzt richtig? Dann müsste es noch getestet werden :O

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ja, sollte nun so richtig sein.
Gestern war leider für mich keine Testmöglichkeit in der Praxis mehr.

@premultiply
Copy link
Member

Ich habe einen neuen Commit zur kritischen Diskussion gemacht.
Glaube wir hatten da vorher schlicht einen kleinen Denkfehler drin und zusätzlich auch den Einfluss von residualPower auf die Boost-Funktion an der site nicht bedacht.

Co-authored-by: premultiply <4681172+premultiply@users.noreply.github.com>
@andig
Copy link
Member Author

andig commented Mar 21, 2025

Gabs schon eine Chance, das zu testen?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog Things to do later
Projects
None yet
Development

Successfully merging this pull request may close these issues.

residualpower verhindert battery boost, wenn zu hoch eingestellt
3 participants