Soc 1 hour shift fixed + some german -> english translations in ems

This commit is contained in:
Andreas 2024-12-22 12:03:48 +01:00 committed by Andreas
parent 3c646fcd66
commit 9edc2d20d3
7 changed files with 422 additions and 421 deletions

View File

@ -150,7 +150,7 @@ class EnergieManagementSystem:
start_stunde = jetzt.hour start_stunde = jetzt.hour
return self.simuliere(start_stunde) return self.simuliere(start_stunde)
def simuliere(self, start_stunde: int) -> dict[str, Any]: def simuliere(self, start_hour: int) -> dict[str, Any]:
"""hour. """hour.
akku_soc_pro_stunde begin of the hour, initial hour state! akku_soc_pro_stunde begin of the hour, initial hour state!
@ -162,100 +162,101 @@ class EnergieManagementSystem:
), f"Array sizes do not match: Load Curve = {len(lastkurve_wh)}, PV Forecast = {len(self.pv_prognose_wh)}, Electricity Price = {len(self.strompreis_euro_pro_wh)}" ), f"Array sizes do not match: Load Curve = {len(lastkurve_wh)}, PV Forecast = {len(self.pv_prognose_wh)}, Electricity Price = {len(self.strompreis_euro_pro_wh)}"
# Optimized total hours calculation # Optimized total hours calculation
ende = len(lastkurve_wh) end_hour = len(lastkurve_wh)
total_hours = ende - start_stunde total_hours = end_hour - start_hour
# Pre-allocate arrays for the results, optimized for speed # Pre-allocate arrays for the results, optimized for speed
last_wh_pro_stunde = np.full((total_hours), np.nan) loads_energy_per_hour = np.full((total_hours), np.nan)
netzeinspeisung_wh_pro_stunde = np.full((total_hours), np.nan) feedin_energy_per_hour = np.full((total_hours), np.nan)
netzbezug_wh_pro_stunde = np.full((total_hours), np.nan) consumption_energy_per_hour = np.full((total_hours), np.nan)
kosten_euro_pro_stunde = np.full((total_hours), np.nan) costs_per_hour = np.full((total_hours), np.nan)
einnahmen_euro_pro_stunde = np.full((total_hours), np.nan) revenue_per_hour = np.full((total_hours), np.nan)
akku_soc_pro_stunde = np.full((total_hours), np.nan) soc_per_hour = np.full((total_hours), np.nan) # Hour End State
eauto_soc_pro_stunde = np.full((total_hours), np.nan) soc_ev_per_hour = np.full((total_hours), np.nan)
verluste_wh_pro_stunde = np.full((total_hours), np.nan) losses_wh_per_hour = np.full((total_hours), np.nan)
home_appliance_wh_per_hour = np.full((total_hours), np.nan) home_appliance_wh_per_hour = np.full((total_hours), np.nan)
electricity_price_per_hour = np.full((total_hours), np.nan) electricity_price_per_hour = np.full((total_hours), np.nan)
# Set initial state # Set initial state
akku_soc_pro_stunde[0] = self.akku.ladezustand_in_prozent() soc_per_hour[0] = self.akku.ladezustand_in_prozent()
if self.eauto: if self.eauto:
eauto_soc_pro_stunde[0] = self.eauto.ladezustand_in_prozent() soc_ev_per_hour[0] = self.eauto.ladezustand_in_prozent()
for stunde in range(start_stunde, ende): # All States
stunde_since_now = stunde - start_stunde for hour in range(start_hour, end_hour):
hour_since_now = hour - start_hour
# save begin states
soc_per_hour[hour_since_now] = self.akku.ladezustand_in_prozent()
if self.eauto:
soc_ev_per_hour[hour_since_now] = self.eauto.ladezustand_in_prozent()
# Accumulate loads and PV generation # Accumulate loads and PV generation
verbrauch = self.gesamtlast[stunde] consumption = self.gesamtlast[hour]
verluste_wh_pro_stunde[stunde_since_now] = 0.0 losses_wh_per_hour[hour_since_now] = 0.0
if self.home_appliance: if self.home_appliance:
ha_load = self.home_appliance.get_load_for_hour(stunde) ha_load = self.home_appliance.get_load_for_hour(hour)
verbrauch += ha_load consumption += ha_load
home_appliance_wh_per_hour[stunde_since_now] = ha_load home_appliance_wh_per_hour[hour_since_now] = ha_load
# E-Auto handling # E-Auto handling
if self.eauto and self.ev_charge_hours[stunde] > 0: if self.eauto and self.ev_charge_hours[hour] > 0:
geladene_menge_eauto, verluste_eauto = self.eauto.energie_laden( loaded_energy_ev, verluste_eauto = self.eauto.energie_laden(
None, stunde, relative_power=self.ev_charge_hours[stunde] None, hour, relative_power=self.ev_charge_hours[hour]
) )
verbrauch += geladene_menge_eauto consumption += loaded_energy_ev
verluste_wh_pro_stunde[stunde_since_now] += verluste_eauto losses_wh_per_hour[hour_since_now] += verluste_eauto
if self.eauto:
eauto_soc_pro_stunde[stunde_since_now] = self.eauto.ladezustand_in_prozent()
# Process inverter logic # Process inverter logic
erzeugung = self.pv_prognose_wh[stunde] energy_produced = self.pv_prognose_wh[hour]
self.akku.set_charge_allowed_for_hour(self.dc_charge_hours[stunde], stunde) self.akku.set_charge_allowed_for_hour(self.dc_charge_hours[hour], hour)
netzeinspeisung, netzbezug, verluste, eigenverbrauch = ( energy_feedin_grid_actual, energy_consumption_grid_actual, losses, eigenverbrauch = (
self.wechselrichter.energie_verarbeiten(erzeugung, verbrauch, stunde) self.wechselrichter.energie_verarbeiten(energy_produced, consumption, hour)
) )
# AC PV Battery Charge # AC PV Battery Charge
if self.ac_charge_hours[stunde] > 0.0: if self.ac_charge_hours[hour] > 0.0:
self.akku.set_charge_allowed_for_hour(1, stunde) self.akku.set_charge_allowed_for_hour(1, hour)
geladene_menge, verluste_wh = self.akku.energie_laden( battery_charged_energy_actual, battery_losses_actual = self.akku.energie_laden(
None, stunde, relative_power=self.ac_charge_hours[stunde] None, hour, relative_power=self.ac_charge_hours[hour]
) )
# print(stunde, " ", geladene_menge, " ",self.ac_charge_hours[stunde]," ",self.akku.ladezustand_in_prozent()) # print(stunde, " ", geladene_menge, " ",self.ac_charge_hours[stunde]," ",self.akku.ladezustand_in_prozent())
verbrauch += geladene_menge consumption += battery_charged_energy_actual
verbrauch += verluste_wh consumption += battery_losses_actual
netzbezug += geladene_menge energy_consumption_grid_actual += battery_charged_energy_actual
netzbezug += verluste_wh energy_consumption_grid_actual += battery_losses_actual
verluste_wh_pro_stunde[stunde_since_now] += verluste_wh losses_wh_per_hour[hour_since_now] += battery_losses_actual
netzeinspeisung_wh_pro_stunde[stunde_since_now] = netzeinspeisung feedin_energy_per_hour[hour_since_now] = energy_feedin_grid_actual
netzbezug_wh_pro_stunde[stunde_since_now] = netzbezug consumption_energy_per_hour[hour_since_now] = energy_consumption_grid_actual
verluste_wh_pro_stunde[stunde_since_now] += verluste losses_wh_per_hour[hour_since_now] += losses
last_wh_pro_stunde[stunde_since_now] = verbrauch loads_energy_per_hour[hour_since_now] = consumption
electricity_price_per_hour[stunde_since_now] = self.strompreis_euro_pro_wh[stunde] electricity_price_per_hour[hour_since_now] = self.strompreis_euro_pro_wh[hour]
# Financial calculations # Financial calculations
kosten_euro_pro_stunde[stunde_since_now] = ( costs_per_hour[hour_since_now] = (
netzbezug * self.strompreis_euro_pro_wh[stunde] energy_consumption_grid_actual * self.strompreis_euro_pro_wh[hour]
) )
einnahmen_euro_pro_stunde[stunde_since_now] = ( revenue_per_hour[hour_since_now] = (
netzeinspeisung * self.einspeiseverguetung_euro_pro_wh_arr[stunde] energy_feedin_grid_actual * self.einspeiseverguetung_euro_pro_wh_arr[hour]
) )
# Akku SOC tracking
akku_soc_pro_stunde[stunde_since_now] = self.akku.ladezustand_in_prozent()
# Total cost and return # Total cost and return
gesamtkosten_euro = np.nansum(kosten_euro_pro_stunde) - np.nansum(einnahmen_euro_pro_stunde) gesamtkosten_euro = np.nansum(costs_per_hour) - np.nansum(revenue_per_hour)
# Prepare output dictionary # Prepare output dictionary
out: Dict[str, Union[np.ndarray, float]] = { out: Dict[str, Union[np.ndarray, float]] = {
"Last_Wh_pro_Stunde": last_wh_pro_stunde, "Last_Wh_pro_Stunde": loads_energy_per_hour,
"Netzeinspeisung_Wh_pro_Stunde": netzeinspeisung_wh_pro_stunde, "Netzeinspeisung_Wh_pro_Stunde": feedin_energy_per_hour,
"Netzbezug_Wh_pro_Stunde": netzbezug_wh_pro_stunde, "Netzbezug_Wh_pro_Stunde": consumption_energy_per_hour,
"Kosten_Euro_pro_Stunde": kosten_euro_pro_stunde, "Kosten_Euro_pro_Stunde": costs_per_hour,
"akku_soc_pro_stunde": akku_soc_pro_stunde, "akku_soc_pro_stunde": soc_per_hour,
"Einnahmen_Euro_pro_Stunde": einnahmen_euro_pro_stunde, "Einnahmen_Euro_pro_Stunde": revenue_per_hour,
"Gesamtbilanz_Euro": gesamtkosten_euro, "Gesamtbilanz_Euro": gesamtkosten_euro,
"EAuto_SoC_pro_Stunde": eauto_soc_pro_stunde, "EAuto_SoC_pro_Stunde": soc_ev_per_hour,
"Gesamteinnahmen_Euro": np.nansum(einnahmen_euro_pro_stunde), "Gesamteinnahmen_Euro": np.nansum(revenue_per_hour),
"Gesamtkosten_Euro": np.nansum(kosten_euro_pro_stunde), "Gesamtkosten_Euro": np.nansum(costs_per_hour),
"Verluste_Pro_Stunde": verluste_wh_pro_stunde, "Verluste_Pro_Stunde": losses_wh_per_hour,
"Gesamt_Verluste": np.nansum(verluste_wh_pro_stunde), "Gesamt_Verluste": np.nansum(losses_wh_per_hour),
"Home_appliance_wh_per_hour": home_appliance_wh_per_hour, "Home_appliance_wh_per_hour": home_appliance_wh_per_hour,
"Electricity_price": electricity_price_per_hour, "Electricity_price": electricity_price_per_hour,
} }

View File

@ -244,7 +244,7 @@ def test_simulation(create_ems_instance):
# Simulate starting from hour 1 (this value can be adjusted) # Simulate starting from hour 1 (this value can be adjusted)
result = ems.simuliere(start_stunde=start_hour) result = ems.simuliere(start_hour=start_hour)
# visualisiere_ergebnisse( # visualisiere_ergebnisse(
# ems.gesamtlast, # ems.gesamtlast,
@ -330,11 +330,11 @@ def test_simulation(create_ems_instance):
# Check the values in 'akku_soc_pro_stunde' # Check the values in 'akku_soc_pro_stunde'
assert ( assert (
result["akku_soc_pro_stunde"][-1] == 28.675 result["akku_soc_pro_stunde"][-1] == 42.151590909090906
), "The value at index -1 of 'akku_soc_pro_stunde' should be 28.675." ), "The value at index -1 of 'akku_soc_pro_stunde' should be 42.151590909090906."
assert ( assert (
result["akku_soc_pro_stunde"][1] == 25.379090909090905 result["akku_soc_pro_stunde"][1] == 60.08659090909091
), "The value at index 1 of 'akku_soc_pro_stunde' should be 25.379090909090905." ), "The value at index 1 of 'akku_soc_pro_stunde' should be 60.08659090909091."
# Check home appliances # Check home appliances
assert ( assert (

View File

@ -154,7 +154,7 @@ def test_simulation(create_ems_instance):
ems = create_ems_instance ems = create_ems_instance
# Simulate starting from hour 0 (this value can be adjusted) # Simulate starting from hour 0 (this value can be adjusted)
result = ems.simuliere(start_stunde=start_hour) result = ems.simuliere(start_hour=start_hour)
# --- Pls do not remove! --- # --- Pls do not remove! ---
# visualisiere_ergebnisse( # visualisiere_ergebnisse(
@ -224,12 +224,12 @@ def test_simulation(create_ems_instance):
), "The length of 'akku_soc_pro_stunde' should be 48." ), "The length of 'akku_soc_pro_stunde' should be 48."
# Verfify DC and AC Charge Bins # Verfify DC and AC Charge Bins
assert (
abs(result["akku_soc_pro_stunde"][2] - 44.70681818181818) < 1e-5
), "'akku_soc_pro_stunde[2]' should be 44.70681818181818."
assert ( assert (
abs(result["akku_soc_pro_stunde"][10] - 10.0) < 1e-5 abs(result["akku_soc_pro_stunde"][10] - 10.0) < 1e-5
), "'akku_soc_pro_stunde[10]' should be 10." ), "'akku_soc_pro_stunde[10]' should be 10."
assert (
abs(result["akku_soc_pro_stunde"][11] - 79.275184) < 1e-5
), "'akku_soc_pro_stunde[11]' should be 79.275184."
assert ( assert (
abs(result["Netzeinspeisung_Wh_pro_Stunde"][10] - 3946.93) < 1e-3 abs(result["Netzeinspeisung_Wh_pro_Stunde"][10] - 3946.93) < 1e-3
@ -240,8 +240,8 @@ def test_simulation(create_ems_instance):
), "'Netzeinspeisung_Wh_pro_Stunde[11]' should be 0.0." ), "'Netzeinspeisung_Wh_pro_Stunde[11]' should be 0.0."
assert ( assert (
abs(result["akku_soc_pro_stunde"][20] - 98) < 1e-5 abs(result["akku_soc_pro_stunde"][20] - 10) < 1e-5
), "'akku_soc_pro_stunde[11]' should be 98." ), "'akku_soc_pro_stunde[20]' should be 10."
assert ( assert (
abs(result["Last_Wh_pro_Stunde"][20] - 6050.98) < 1e-3 abs(result["Last_Wh_pro_Stunde"][20] - 6050.98) < 1e-3
), "'Netzeinspeisung_Wh_pro_Stunde[11]' should be 0.0." ), "'Netzeinspeisung_Wh_pro_Stunde[11]' should be 0.0."

View File

@ -62,8 +62,8 @@ def test_optimize(
start_hour = 10 start_hour = 10
# Activate with pytest --full-run # Activate with pytest --full-run
if ngen > 10 and not is_full_run: # if ngen > 10 and not is_full_run:
pytest.skip() # pytest.skip()
visualize_filename = str((DIR_TESTDATA / f"new_{fn_out}").with_suffix(".pdf")) visualize_filename = str((DIR_TESTDATA / f"new_{fn_out}").with_suffix(".pdf"))

View File

@ -476,6 +476,7 @@
0.0 0.0
], ],
"akku_soc_pro_stunde": [ "akku_soc_pro_stunde": [
80.0,
80.0, 80.0,
79.91107093663912, 79.91107093663912,
79.91107093663912, 79.91107093663912,
@ -512,7 +513,6 @@
100.0, 100.0,
100.0, 100.0,
100.0, 100.0,
96.84060778236915,
96.84060778236915 96.84060778236915
], ],
"Electricity_price": [ "Electricity_price": [

View File

@ -170,7 +170,7 @@
0.0, 0.0,
0.5, 0.5,
0.625, 0.625,
0.0, 0.75,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
@ -211,7 +211,7 @@
1103.78, 1103.78,
6373.12, 6373.12,
7733.71, 7733.71,
1050.98, 4299.98,
988.56, 988.56,
912.38, 912.38,
704.61, 704.61,
@ -241,6 +241,7 @@
592.97 592.97
], ],
"EAuto_SoC_pro_Stunde": [ "EAuto_SoC_pro_Stunde": [
5.0,
11.555, 11.555,
11.555, 11.555,
26.85, 26.85,
@ -251,34 +252,33 @@
74.92, 74.92,
83.66, 83.66,
94.585, 94.585,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0,
94.585, 100.0
94.585
], ],
"Einnahmen_Euro_pro_Stunde": [ "Einnahmen_Euro_pro_Stunde": [
0.0, 0.0,
@ -320,7 +320,7 @@
0.0, 0.0,
0.0 0.0
], ],
"Gesamt_Verluste": 9258.73062020124, "Gesamt_Verluste": 9872.776074746695,
"Gesamtbilanz_Euro": 12.332782378812306, "Gesamtbilanz_Euro": 12.332782378812306,
"Gesamteinnahmen_Euro": 0.0, "Gesamteinnahmen_Euro": 0.0,
"Gesamtkosten_Euro": 12.332782378812306, "Gesamtkosten_Euro": 12.332782378812306,
@ -495,7 +495,7 @@
230.91336797704525, 230.91336797704525,
880.0977272727268, 880.0977272727268,
1026.818181818182, 1026.818181818182,
99.72409090909093, 713.7695454545456,
133.72909090909081, 133.72909090909081,
124.41545454545451, 124.41545454545451,
96.08318181818186, 96.08318181818186,
@ -525,6 +525,7 @@
0.0 0.0
], ],
"akku_soc_pro_stunde": [ "akku_soc_pro_stunde": [
80.0,
62.54222623966943, 62.54222623966943,
62.54222623966943, 62.54222623966943,
75.04222623966943, 75.04222623966943,
@ -535,34 +536,33 @@
83.83265434833275, 83.83265434833275,
64.76391295714818, 64.76391295714818,
43.24187438965506, 43.24187438965506,
40.094017984696386, 26.108997323539356,
35.87277142822256, 21.88775076706553,
31.945515918580686, 17.96049525742366,
28.912587199572425, 14.927566538415393,
28.912587199572425, 14.927566538415393,
25.176146083869945, 11.191125422712915,
22.187423632079316, 8.20240297092228,
22.187423632079316, 8.20240297092228,
22.187423632079316, 8.20240297092228,
22.187423632079316, 8.20240297092228,
34.68742363207931, 20.70240297092228,
34.68742363207931, 20.70240297092228,
34.68742363207931, 20.70240297092228,
34.68742363207931, 20.70240297092228,
34.99947869620843, 21.014458035051405,
36.0696843420455, 22.08466368088848,
40.099841390631155, 26.114820729474133,
40.249843096950585, 26.264822435793555,
55.20257643028218, 41.217555769125156,
67.47251658502745, 53.48749592387043,
84.99550697329678, 71.01048631213975,
88.77022785443704, 74.78520719328002,
89.9213907145978, 75.93637005344077,
89.9213907145978, 75.93637005344077,
89.9213907145978, 75.93637005344077,
89.9213907145978, 75.93637005344077,
89.9213907145978, 75.93637005344077
89.9213907145978
], ],
"Electricity_price": [ "Electricity_price": [
0.000228, 0.000228,
@ -711,7 +711,7 @@
"kapazitaet_wh": 60000, "kapazitaet_wh": 60000,
"lade_effizienz": 0.95, "lade_effizienz": 0.95,
"max_ladeleistung_w": 11040, "max_ladeleistung_w": 11040,
"soc_wh": 56751.0, "soc_wh": 60000.0,
"start_soc_prozent": 5 "start_soc_prozent": 5
}, },
"start_solution": [ "start_solution": [
@ -783,7 +783,7 @@
0.0, 0.0,
2.0, 2.0,
3.0, 3.0,
0.0, 4.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,

View File

@ -1,29 +1,15 @@
{ {
"ac_charge": [ "ac_charge": [
0.75,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0,
0.0,
0.0,
0.375,
0.0,
1.0, 1.0,
0.0, 1.0,
0.0,
0.0,
0.75,
0.0,
0.0,
0.75, 0.75,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.5,
0.0,
0.0,
0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
@ -47,6 +33,20 @@
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0 0.0
], ],
"dc_charge": [ "dc_charge": [
@ -100,13 +100,13 @@
1.0 1.0
], ],
"discharge_allowed": [ "discharge_allowed": [
0,
0,
0,
0,
0, 0,
1, 1,
1, 0,
0,
0,
0,
0,
0, 0,
1, 1,
0, 0,
@ -115,6 +115,11 @@
1, 1,
0, 0,
0, 0,
0,
1,
1,
0,
1,
1, 1,
0, 0,
1, 1,
@ -123,26 +128,21 @@
1, 1,
1, 1,
1, 1,
0,
1, 1,
1, 1,
0,
1, 1,
1, 1,
1, 0,
1, 1,
1, 1,
1, 1,
1, 1,
0, 0,
1,
0,
0, 0,
1, 1,
1, 1,
0,
0,
1,
0,
1,
1, 1,
1, 1,
1, 1,
@ -150,50 +150,50 @@
1 1
], ],
"eautocharge_hours_float": [ "eautocharge_hours_float": [
0.5,
0.375,
0.625,
0.75,
0.625,
0.5,
0.5,
0.75,
0.0,
0.5,
0.375,
0.0,
0.0,
0.5, 0.5,
0.5, 0.5,
0.625, 0.625,
1.0,
0.0,
0.375,
0.0,
0.5, 0.5,
0.75,
1.0,
0.0,
0.375,
1.0,
0.0,
0.75,
0.375,
0.0,
0.375,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.5,
0.0,
0.5, 0.5,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.5, 0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.375,
0.0,
0.0,
0.0,
0.375,
0.0,
0.0,
0.625,
0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
@ -201,15 +201,15 @@
], ],
"result": { "result": {
"Last_Wh_pro_Stunde": [ "Last_Wh_pro_Stunde": [
1053.07, 4986.07,
4996.91, 1063.91,
11808.56, 1320.56,
4882.03, 8876.029999999999,
9029.67, 8907.67,
7609.82, 7731.82,
7466.22, 6460.22,
5036.78, 6347.78,
1129.12, 3629.12,
1178.71, 1178.71,
1050.98, 1050.98,
988.56, 988.56,
@ -223,18 +223,18 @@
488.89, 488.89,
506.91, 506.91,
804.89, 804.89,
3641.98, 1141.98,
1056.97, 1056.97,
992.46, 992.46,
6399.99, 5088.99,
827.01, 827.01,
6501.98, 1257.98,
1232.67, 1232.67,
871.26, 4804.26,
860.88, 860.88,
1158.03, 1158.03,
1222.72, 7777.72,
6465.04, 1221.04,
949.99, 949.99,
987.01, 987.01,
733.99, 733.99,
@ -243,37 +243,37 @@
"EAuto_SoC_pro_Stunde": [ "EAuto_SoC_pro_Stunde": [
5.0, 5.0,
11.555, 11.555,
11.555,
11.555,
20.294999999999998,
29.035, 29.035,
29.035, 39.96,
42.144999999999996,
48.699999999999996, 48.699999999999996,
48.699999999999996, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995, 57.440000000000005,
55.254999999999995,
63.995000000000005, 63.995000000000005,
63.995000000000005, 63.995000000000005,
72.735, 63.995000000000005,
72.735, 63.995000000000005,
72.735, 70.55,
72.735, 70.55,
72.735, 70.55,
72.735,
81.475, 81.475,
81.475, 81.475,
81.475, 81.475,
@ -320,13 +320,11 @@
0.0, 0.0,
0.0 0.0
], ],
"Gesamt_Verluste": 10116.23845689936, "Gesamt_Verluste": 7755.845910804702,
"Gesamtbilanz_Euro": 5.609399525190347, "Gesamtbilanz_Euro": 4.690157296412734,
"Gesamteinnahmen_Euro": 0.0, "Gesamteinnahmen_Euro": 0.0,
"Gesamtkosten_Euro": 5.609399525190347, "Gesamtkosten_Euro": 4.690157296412734,
"Home_appliance_wh_per_hour": [ "Home_appliance_wh_per_hour": [
0.0,
0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
@ -362,87 +360,89 @@
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0,
0.0,
0.0 0.0
], ],
"Kosten_Euro_pro_Stunde": [ "Kosten_Euro_pro_Stunde": [
0.0, 0.0,
0.0, 0.0,
1.193390926,
0.7064482052307314,
0.5533942300000001,
0.0, 0.0,
0.880004468, 1.4495244859999996,
0.53097063,
0.44343509999999997,
0.0,
0.0,
0.8107800974767518,
0.0,
0.0,
0.291163892,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.182970359,
0.0, 0.0,
0.0, 0.0,
0.26411047,
0.0, 0.0,
0.0, 0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.005803838,
0.0,
0.007989913613567745, 0.007989913613567745,
1.06069824,
0.0, 0.0,
0.012914366999999916, 0.002459704740224363,
4.174095896658514e-14,
0.0003442778967139274,
0.0, 0.0,
0.028137079449292023,
0.0, 0.0,
0.16027398000000012, 0.05016012000000004,
0.0076430797975209205,
0.0,
0.31687880399999996,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0 0.16722497978466921,
0.16484566
], ],
"Netzbezug_Wh_pro_Stunde": [ "Netzbezug_Wh_pro_Stunde": [
0.0, 0.0,
0.0, 0.0,
5701.82,
3759.703061366319,
3010.8500000000004,
0.0, 0.0,
4003.66, 7714.339999999998,
2888.8500000000004,
2212.75,
0.0,
0.0,
2705.305630553059,
0.0,
0.0,
980.68,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
556.31,
0.0, 0.0,
0.0, 0.0,
799.85,
0.0, 0.0,
0.0, 0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
3306.3900000000003,
0.0,
35.04348076126204, 35.04348076126204,
4795.2,
0.0, 0.0,
68.72999999999956, 11.752053226107805,
2.270998855635753e-10,
1.7179535764168035,
0.0, 0.0,
123.95189184710142,
0.0, 0.0,
501.6400000000003, 250.30000000000018,
34.77288351920346,
0.0,
1057.3199999999997,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0 572.4922279516235,
592.97
], ],
"Netzeinspeisung_Wh_pro_Stunde": [ "Netzeinspeisung_Wh_pro_Stunde": [
0.0, 0.0,
@ -485,84 +485,84 @@
0.0 0.0
], ],
"Verluste_Pro_Stunde": [ "Verluste_Pro_Stunde": [
16.744090909090914, 760.062272727273,
746.1354545454542, 2.817272727272737,
1233.818181818182, 29.157272727272726,
452.3948326360417, 276.0,
414.0, 276.0,
492.1022727272725, 345.0,
450.0, 615.5918181818183,
482.2936363636363, 730.0663636363638,
101.0335466817773, 373.0373243336329,
23.391818181818195, 23.391818181818195,
99.72409090909093, 99.72409090909093,
133.72909090909081, 0.0,
124.41545454545451, 124.41545454545451,
96.08318181818186, 96.08318181818186,
70.41409090909087, 70.41409090909087,
118.37045454545455, 118.37045454545455,
94.68272727272722, 94.68272727272722,
83.01681818181817, 83.01681818181817,
75.86045454545456, 0.0,
66.66681818181814, 66.66681818181814,
69.12409090909085, 69.12409090909085,
109.0704545454546, 0.0,
300.0, 109.96227272727276,
47.952272727272714, 47.952272727272714,
11.233982308648535, 11.233982308648535,
276.0, 682.1181818181817,
161.62968357967037, 160.0271308670193,
957.818181818182, 21.962728535423857,
538.2983999999728, 538.2984000000038,
441.7178455708299, 207.0,
260.56941082122324, 255.8276539776955,
155.09737297834772, 171.99990368477063,
62.214291413756285, 1026.818181818182,
957.818181818182, 35.132727272727266,
77.27590909090907, 77.27590909090907,
134.59227272727276, 134.59227272727276,
100.08954545454549, 22.022423461142267,
80.85954545454547 0.0
], ],
"akku_soc_pro_stunde": [ "akku_soc_pro_stunde": [
79.4714617768595, 80.0,
62.54222623966943,
62.45329717630854, 62.45329717630854,
40.931258608815426, 61.532928719008275,
53.49778173759437, 61.532928719008275,
53.49778173759437, 61.532928719008275,
44.49834131059713, 61.532928719008275,
56.998341310597134, 50.81349001377411,
48.308516930431836, 36.480587121212125,
49.4536123554777, 46.842735019368604,
48.71523425630414, 46.10435692019505,
45.56737785134547, 42.95650051523637,
41.34613129487165, 42.95650051523637,
37.41887578522978, 39.029245005594504,
34.38594706622151, 35.996316286586236,
32.16328005520223, 33.77364927556696,
28.42683893949975, 30.03720815986448,
25.438116487709117, 27.048485708073848,
22.81763611580829, 24.428005336173022,
20.42305106071187, 24.428005336173022,
18.318669173659533, 22.32362344912068,
16.136721859609946, 20.141676135071094,
12.693841349968071, 20.141676135071094,
21.027174683301403, 16.670644798982938,
19.51352971084961, 15.156999826531148,
19.82558477497874, 15.469054890660274,
19.82558477497874, 0.471637535288375,
23.333518659720113, 4.030157048585656,
1.8114800922269987, 4.180158754905081,
16.764213425559575, 19.132892088236673,
29.03415358030485, 19.132892088236673,
35.990800633866854, 26.239215809839333,
40.29906099437652, 30.01393669097958,
40.79452851211402, 8.49189812348647,
19.272489944620908, 7.382910520180684,
16.833225137458374, 4.9436457130181495,
12.584731680158098, 0.6951522557178741,
9.425339462527244, 0.0
6.872954820653964
], ],
"Electricity_price": [ "Electricity_price": [
0.000228, 0.000228,
@ -715,103 +715,103 @@
"start_soc_prozent": 5 "start_soc_prozent": 5
}, },
"start_solution": [ "start_solution": [
18.0, 14.0,
3.0,
2.0,
1.0,
1.0,
8.0,
10.0,
15.0,
13.0, 13.0,
20.0,
12.0,
9.0,
13.0,
18.0,
0.0, 0.0,
7.0, 20.0,
20.0,
18.0, 18.0,
7.0, 5.0,
3.0,
9.0, 9.0,
9.0,
10.0,
12.0,
10.0,
11.0,
13.0,
8.0,
12.0,
12.0,
10.0,
10.0,
7.0,
8.0,
16.0, 16.0,
12.0, 12.0,
6.0,
0.0,
12.0,
13.0,
5.0,
14.0,
9.0,
5.0,
13.0, 13.0,
8.0, 8.0,
10.0, 4.0,
10.0, 0.0,
14.0,
11.0,
9.0, 9.0,
16.0,
8.0,
9.0,
5.0,
10.0,
13.0,
13.0,
8.0,
8.0,
9.0,
5.0,
10.0,
7.0, 7.0,
2.0, 2.0,
8.0,
12.0,
2.0,
9.0,
11.0,
10.0,
10.0,
6.0,
1.0,
12.0,
9.0,
12.0,
13.0,
10.0,
13.0,
11.0,
2.0,
1.0,
3.0,
4.0,
3.0,
2.0,
2.0,
4.0,
0.0,
2.0,
1.0,
0.0,
0.0,
2.0,
2.0, 2.0,
3.0, 3.0,
6.0,
0.0,
1.0,
0.0,
2.0, 2.0,
4.0,
6.0,
0.0,
1.0,
6.0,
0.0,
4.0,
1.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
2.0,
0.0,
2.0, 2.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
2.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
0.0, 0.0,
15.0 0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
3.0,
0.0,
0.0,
0.0,
0.0,
0.0,
13.0
], ],
"washingstart": 15 "washingstart": 13
} }