Vorgehensweise gesucht mit Kostenvorschau (algorithmus)

melmager

Erfahrenes Mitglied
gegeben ist ein Dynamischer Strompreis (jede Stunde ein neuer mit forcast für den Tag)
dann habe ich eine Wallbox wo ich die Stromabnahme steuern kann und gebe auch vor vor welcher Uhrzeit wann das ding voll sein soll (mit Lademenge Wh die dazu gebraucht wird)
Die einfachste Version ist ja : preiswerteste zeit ermitteln, und dann Maximal zulässigen Strom rein laden ...
Allerdings währe es schön wenn die Last auch auf die verfügbare zeit verteilt wird ...
da ist ja die einfachste version: Lademenge / Zeit = Lade Strom
Dazu fällt mir kein sinnvoller algorithmus ein um beides irgendwie zu kombinieren :-(
Um Kosten gering zu halten, aber die volle verfügbare zeit ausnutzen ...

Also sammele ich hier ein paar ideen :-)
 
Zuletzt bearbeitet:
gegeben ist ein Dynamischer Strompreis (jede Stunde ein neuer mit forcast für den Tag)
Okay, lassen wir den Algo laufen (00:00 Uhr) gibt es also 24 Werte für den Strompreis (die wohl geschätzt sind, aber sagen wir einfach mal die stimmen).

dann habe ich eine Wallbox wo ich die Stromabnahme steuern kann und gebe auch vor vor welcher Uhrzeit wann das ding voll sein soll (mit Lademenge Wh die dazu gebraucht wird)
Ich vermute E-Auto? Ist aber im Grunde egal, wichtig ist: Wenn der Algorithmus ausgeführt wird, müssen wir bis Mitternacht eine bestimmte Menge Ladung/Energie L übertragen haben.
Und du kannst die Förderung von der Wallbox steuern? Beliebig, oder gibt's Grenzen?

Die einfachste Version ist ja : preiswerteste zeit ermitteln, und dann Maximal zulässigen Strom rein laden ...
Achso, gibt also einen Maximalstrom I_max. Gibt es auch ein I_min?

Allerdings währe es schön wenn die Last auch auf die verfügbare zeit verteilt wird ...
Du willst also explizit nicht den Preis minimieren, sondern etwas anderes. Was genau, durchschnittlicher Strom? Oder willst du die Ladezeit maximieren?

Hab ich das alles richtig verstanden?
 
jepp alles soweit richtig:
die Vorgaben zum Strompreis sind fix: 24 Stunden Werte mit kWh/cent
und ja es gibt ein Minimalwert 1000W (0W als Lade Pause ist auch machbar) und ein Max Wert 11000W in stufen von 500W

Wenn Mein Auto sagt ich hätte gern 8000W damit ich voll bin
dann könnte ich das ja in einer knappen Stunde erledigen
aber ich habe ja Zeit - sagen wir einfach mal 6 Stunden ... um es mal Konkret zu machen

eigentlich versuche ich grob grade Zeit = Geld zu machen :)
das irgendwie gleichwertig behandeln - frage wie ....

heute z.B Durchschnittspreis über alle Daten : 26.45 cent
minimal preis : {'date': '2025-07-09T12:00:00.000Z', 'price': 20.36} -
max habe ich noch nicht drin im Datensatz, aber das ist ja das kleinste Problem ....

und 360 Minuten Zeit ...
 
Zuletzt bearbeitet:
ich glaube ich muss einfach ein festen satz für zeit als preis hinterlegen
Minute kostet 0,0025 Cent die richtung -
preis für kWh habe ich ja
nachtrag:
ich bau mal code mit der vorgabe
minute_cost = durchschnitt kwh / 100 (100 weil :-) )
und hangle mich damit zur Lademenge durch - falls noch einer andere Vorschläge hat - gerne :-)
 
Zuletzt bearbeitet:
Ich persönlich mag es nicht besonders mit Kontinua zu arbeiten. Es macht meiner Erfahrung nach die Algorithmen nur unnötig komplizierter, auch wenn manchmal nicht anders geht.

Hier geht es aber anders. Mein Vorschlag wäre, den Tag einfach in 1440 (= 24 * 60) Slot von je einer Minute einzuteilen.
Ich glaube es wäre eh nicht so gesund für dein Ladegerät im Sub-Minuten-Takt umzuschalten ;)
Jedenfalls erlaubt uns diese Unterteilung immerhin schonmal formal zu definieren welche Aufgabe der Algorithmus lösen soll: Weiße jedem der 1440 Slots einen Wert für die Ladeleistung zu.
Als Input brauchen wir also eine Liste S von 1440 Slots, eine Liste P mit stündlichen Strompreisen, und eine Liste L mit möglichen Ladeleistungen (inklusive 0 für AUS), die dein Gerät kann. Ah, und natürlich die Gesamtladung G, die wir übertragen wollen.

Zwei der, nennen wir sie mal trivialen, Algorithmen hast du dir schon selbst überlegt:


ALGO 1: Minimierung der Kosten
  1. Für die Stunde h in P mit dem niedrigsten Preis:
  2. | Setze die Leistung in allen Slots, die zu h gehören, auf Maximalleistung.
  3. | Subtrahiere 60 * L_max von G.
  4. | Falls G > 0, springe wieder zu 1.
Im Endeffekt lädst du damit immer wenn es am günstigsten ist mit Maximalgeschwindigkeit.


ALGO 2: Minimierung des Ladestroms
  1. Ermittle den niedrigsten Wert l in L, für den 1440 * l >= G.
  2. Setze die Leistung aller Slots auf l.
Langsamer kannst du nicht laden.


In beiden Versionen bin ich davon ausgegangen, dass deine Wallbox selbständig abschaltet sobald vollgeladen ist.

Ich glaube anhand von ALGO 1 und ALGO 2 sieht man schon, wie ich hier grundsätzlich den Algorithmus entwerfen würde. Im nächsten Schritt müsste man jetzt halt genauer ausformulieren, was mit der Balance zwischen Zeit und Kosten gemeint ist.

Gruß Technipion
 
ich denke ich werde 40% Zeitkosten und 60% Stromkosten ansetzen ...
wenn das Ding erstmal läuft kann ich ja immer noch am Verhältnis schrauben :-)
aber gut das du es auch so siehst das man eine Gewichtung braucht und Zeit ein Kostenwert braucht um überhaupt was programmtechnisch regeln zu können.

und auswertungs takt werde auf ne Stunde setzen - auch weil sich der Strompreis nur im Stundentakt ändert.
trigger wenn neuer strompreis vorhanden ist.
Rechnungsbasis intern wird die Minute werden.
denke Montag werde ich ne Betaverion am Start haben :-)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück