diff --git a/modules/class_inverter.py b/modules/class_inverter.py index becaca7..bfa2f06 100644 --- a/modules/class_inverter.py +++ b/modules/class_inverter.py @@ -1,74 +1,54 @@ class Wechselrichter: def __init__(self, max_leistung_wh, akku): - self.max_leistung_wh = max_leistung_wh # Maximale Leistung, die der Wechselrichter verarbeiten kann - self.akku = akku # Verbindung zu einem Akku-Objekt + self.max_leistung_wh = max_leistung_wh # Maximum power that the inverter can handle + self.akku = akku # Connection to a battery object def energie_verarbeiten(self, erzeugung, verbrauch, hour): - verluste = 0 - netzeinspeisung = 0 - netzbezug = 0.0 - eigenverbrauch = 0.0 - #eigenverbrauch = min(erzeugung, verbrauch) # Direkt verbrauchte Energie + verluste = 0 # Losses during processing + netzeinspeisung = 0 # Grid feed-in + netzbezug = 0.0 # Grid draw + eigenverbrauch = 0.0 # Self-consumption if erzeugung >= verbrauch: if verbrauch > self.max_leistung_wh: - + # If consumption exceeds maximum inverter power verluste += erzeugung - self.max_leistung_wh - restleistung_nach_verbrauch = self.max_leistung_wh - verbrauch - netzbezug = -restleistung_nach_verbrauch + restleistung_nach_verbrauch = self.max_leistung_wh - verbrauch + netzbezug = -restleistung_nach_verbrauch # Negative indicates feeding into the grid eigenverbrauch = self.max_leistung_wh + else: + # Remaining power after consumption + restleistung_nach_verbrauch = erzeugung - verbrauch - else: - # if hour==10: - # print("PV:",erzeugung) - # print("Load:",verbrauch) - # print("Max Leist:",self.max_leistung_wh) - # PV > WR Leistung dann Verlust - - # Load - restleistung_nach_verbrauch = erzeugung-verbrauch #min(self.max_leistung_wh - verbrauch, erzeugung-verbrauch) - # Akku + # Load battery with excess energy geladene_energie, verluste_laden_akku = self.akku.energie_laden(restleistung_nach_verbrauch, hour) - rest_überschuss = restleistung_nach_verbrauch - (geladene_energie+verluste_laden_akku) - # if hour == 1: - # print("Erzeugung:",erzeugung) - # print("Last:",verbrauch) - # print("Akku:",geladene_energie) - # print("Akku:",self.akku.ladezustand_in_prozent()) - # print("RestÜberschuss"," - ",rest_überschuss) - # print("RestLesitung WR:",self.max_leistung_wh - verbrauch) - # Einspeisung, restliche WR Kapazität - + rest_überschuss = restleistung_nach_verbrauch - (geladene_energie + verluste_laden_akku) + + # Feed-in to the grid based on remaining capacity if rest_überschuss > self.max_leistung_wh - verbrauch: netzeinspeisung = self.max_leistung_wh - verbrauch verluste += rest_überschuss - netzeinspeisung else: netzeinspeisung = rest_überschuss - #if hour ==14: - # print("Erz:",erzeugung," Last:",verbrauch, " RestPV:",rest_überschuss," ",restleistung_nach_verbrauch, " Gela:",geladene_energie," Ver:",verluste_laden_akku," Einsp:",netzeinspeisung) + verluste += verluste_laden_akku + eigenverbrauch = verbrauch # Self-consumption is equal to the load - - - eigenverbrauch = verbrauch - else: - benötigte_energie = verbrauch - erzeugung - max_akku_leistung = self.akku.max_ladeleistung_w + benötigte_energie = verbrauch - erzeugung # Energy needed from external sources + max_akku_leistung = self.akku.max_ladeleistung_w # Maximum battery discharge power - #rest_ac_leistung = max(max_akku_leistung - erzeugung,0) - rest_ac_leistung = max(self.max_leistung_wh - erzeugung,0) + # Calculate remaining AC power available + rest_ac_leistung = max(self.max_leistung_wh - erzeugung, 0) + # Discharge energy from the battery based on need if benötigte_energie < rest_ac_leistung: aus_akku, akku_entladeverluste = self.akku.energie_abgeben(benötigte_energie, hour) - else: + else: aus_akku, akku_entladeverluste = self.akku.energie_abgeben(rest_ac_leistung, hour) - - - verluste += akku_entladeverluste - - netzbezug = benötigte_energie - aus_akku - eigenverbrauch = erzeugung + aus_akku + verluste += akku_entladeverluste # Include losses from battery discharge + netzbezug = benötigte_energie - aus_akku # Energy drawn from the grid + eigenverbrauch = erzeugung + aus_akku # Total self-consumption return netzeinspeisung, netzbezug, verluste, eigenverbrauch