Konfiguration: bat_mode=min_soc_bat_mode, min_bat_soc=85, max_bat_soc=95, bat_power_discharge=1000, bat_power_discharge_active=true
Beobachtetes Verhalten
Speicher bei 95 %, Fahrzeug startet im PV-Modus, Speicher wird bei nicht genug Überschuss bis 85 % entladen, Ladung endet — soweit wie vorgesehen. Danach läuft das Fahrzeug bei ~86 % jedoch erneut an, statt abzuwarten, bis der Speicher wieder bei max_bat_soc ist. Der Speicher pendelt ab da knapp oberhalb min_bat_soc und erreicht max_bat_soc nie wieder. Die Hysterese durchläuft damit genau einen Zyklus und bleibt danach dauerhaft im unteren Zustand. Die Pufferwirkung des Speichers ist futsch.
Erwartetes Verhalten
Nach dem Unterschreiten von min_bat_soc sollte der Speicher wieder bis max_bat_soc laden dürfen, bevor er erneut als Puffer für die Fahrzeugladung herangezogen wird — sonst ist die obere Schwelle wirkungslos.
Ursache
In BatAll._get_charging_power_left(), Zweig „Speicher zwischen min und max SoC":
if self.data.set.hysteresis_discharge is False: charging_power_left = self.data.get.power
hysteresis_discharge is False bedeutet an dieser Stelle „wir kommen von unterhalb min_bat_soc, der Speicher soll sich erholen". Trotzdem wird seine aktuelle Ladeleistung als für Fahrzeuge verfügbar gemeldet. Der Algorithmus zieht sie ans Fahrzeug, der Speicher wird auf ~0 W geregelt und steht still. hysteresis_discharge wird aber ausschließlich oberhalb max_bat_soc wieder gesetzt — was damit nicht mehr eintritt.
Vorschlag
In diesem Zweig dem Speicher Vorrang geben, bis max_bat_soc erreicht ist, analog zum Zweig unterhalb min_bat_soc:
if self.data.set.hysteresis_discharge is False: charging_power_left = 0 self.data.set.regulate_up = True
Das lässt den unteren Zweig und die Entladefreigabe unberührt und stellt nur den Rückweg der Hysterese her.
Konfiguration: bat_mode=min_soc_bat_mode, min_bat_soc=85, max_bat_soc=95, bat_power_discharge=1000, bat_power_discharge_active=true
Beobachtetes Verhalten
Speicher bei 95 %, Fahrzeug startet im PV-Modus, Speicher wird bei nicht genug Überschuss bis 85 % entladen, Ladung endet — soweit wie vorgesehen. Danach läuft das Fahrzeug bei ~86 % jedoch erneut an, statt abzuwarten, bis der Speicher wieder bei max_bat_soc ist. Der Speicher pendelt ab da knapp oberhalb min_bat_soc und erreicht max_bat_soc nie wieder. Die Hysterese durchläuft damit genau einen Zyklus und bleibt danach dauerhaft im unteren Zustand. Die Pufferwirkung des Speichers ist futsch.
Erwartetes Verhalten
Nach dem Unterschreiten von min_bat_soc sollte der Speicher wieder bis max_bat_soc laden dürfen, bevor er erneut als Puffer für die Fahrzeugladung herangezogen wird — sonst ist die obere Schwelle wirkungslos.
Ursache
In BatAll._get_charging_power_left(), Zweig „Speicher zwischen min und max SoC":
if self.data.set.hysteresis_discharge is False: charging_power_left = self.data.get.powerhysteresis_discharge is False bedeutet an dieser Stelle „wir kommen von unterhalb min_bat_soc, der Speicher soll sich erholen". Trotzdem wird seine aktuelle Ladeleistung als für Fahrzeuge verfügbar gemeldet. Der Algorithmus zieht sie ans Fahrzeug, der Speicher wird auf ~0 W geregelt und steht still. hysteresis_discharge wird aber ausschließlich oberhalb max_bat_soc wieder gesetzt — was damit nicht mehr eintritt.
Vorschlag
In diesem Zweig dem Speicher Vorrang geben, bis max_bat_soc erreicht ist, analog zum Zweig unterhalb min_bat_soc:
if self.data.set.hysteresis_discharge is False: charging_power_left = 0 self.data.set.regulate_up = TrueDas lässt den unteren Zweig und die Entladefreigabe unberührt und stellt nur den Rückweg der Hysterese her.