From 9edc2d20d388f7c458e9099e2455dcde5036aa05 Mon Sep 17 00:00:00 2001 From: Andreas Date: Sun, 22 Dec 2024 12:03:48 +0100 Subject: [PATCH] Soc 1 hour shift fixed + some german -> english translations in ems --- src/akkudoktoreos/prediction/ems.py | 129 ++--- tests/test_class_ems.py | 10 +- tests/test_class_ems_2.py | 12 +- tests/test_class_optimize.py | 4 +- tests/testdata/optimize_result_1.json | 2 +- tests/testdata/optimize_result_2.json | 124 ++--- tests/testdata/optimize_result_2_full.json | 562 ++++++++++----------- 7 files changed, 422 insertions(+), 421 deletions(-) diff --git a/src/akkudoktoreos/prediction/ems.py b/src/akkudoktoreos/prediction/ems.py index e9998d4..014385a 100644 --- a/src/akkudoktoreos/prediction/ems.py +++ b/src/akkudoktoreos/prediction/ems.py @@ -150,7 +150,7 @@ class EnergieManagementSystem: start_stunde = jetzt.hour return self.simuliere(start_stunde) - def simuliere(self, start_stunde: int) -> dict[str, Any]: + def simuliere(self, start_hour: int) -> dict[str, Any]: """hour. 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)}" # Optimized total hours calculation - ende = len(lastkurve_wh) - total_hours = ende - start_stunde + end_hour = len(lastkurve_wh) + total_hours = end_hour - start_hour # Pre-allocate arrays for the results, optimized for speed - last_wh_pro_stunde = np.full((total_hours), np.nan) - netzeinspeisung_wh_pro_stunde = np.full((total_hours), np.nan) - netzbezug_wh_pro_stunde = np.full((total_hours), np.nan) - kosten_euro_pro_stunde = np.full((total_hours), np.nan) - einnahmen_euro_pro_stunde = np.full((total_hours), np.nan) - akku_soc_pro_stunde = np.full((total_hours), np.nan) - eauto_soc_pro_stunde = np.full((total_hours), np.nan) - verluste_wh_pro_stunde = np.full((total_hours), np.nan) + loads_energy_per_hour = np.full((total_hours), np.nan) + feedin_energy_per_hour = np.full((total_hours), np.nan) + consumption_energy_per_hour = np.full((total_hours), np.nan) + costs_per_hour = np.full((total_hours), np.nan) + revenue_per_hour = np.full((total_hours), np.nan) + soc_per_hour = np.full((total_hours), np.nan) # Hour End State + soc_ev_per_hour = 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) electricity_price_per_hour = np.full((total_hours), np.nan) # 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: - 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): - stunde_since_now = stunde - start_stunde + # All States + 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 - verbrauch = self.gesamtlast[stunde] - verluste_wh_pro_stunde[stunde_since_now] = 0.0 + consumption = self.gesamtlast[hour] + losses_wh_per_hour[hour_since_now] = 0.0 if self.home_appliance: - ha_load = self.home_appliance.get_load_for_hour(stunde) - verbrauch += ha_load - home_appliance_wh_per_hour[stunde_since_now] = ha_load + ha_load = self.home_appliance.get_load_for_hour(hour) + consumption += ha_load + home_appliance_wh_per_hour[hour_since_now] = ha_load # E-Auto handling - if self.eauto and self.ev_charge_hours[stunde] > 0: - geladene_menge_eauto, verluste_eauto = self.eauto.energie_laden( - None, stunde, relative_power=self.ev_charge_hours[stunde] + if self.eauto and self.ev_charge_hours[hour] > 0: + loaded_energy_ev, verluste_eauto = self.eauto.energie_laden( + None, hour, relative_power=self.ev_charge_hours[hour] ) - verbrauch += geladene_menge_eauto - verluste_wh_pro_stunde[stunde_since_now] += verluste_eauto + consumption += loaded_energy_ev + 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 - erzeugung = self.pv_prognose_wh[stunde] - self.akku.set_charge_allowed_for_hour(self.dc_charge_hours[stunde], stunde) - netzeinspeisung, netzbezug, verluste, eigenverbrauch = ( - self.wechselrichter.energie_verarbeiten(erzeugung, verbrauch, stunde) + energy_produced = self.pv_prognose_wh[hour] + self.akku.set_charge_allowed_for_hour(self.dc_charge_hours[hour], hour) + energy_feedin_grid_actual, energy_consumption_grid_actual, losses, eigenverbrauch = ( + self.wechselrichter.energie_verarbeiten(energy_produced, consumption, hour) ) # AC PV Battery Charge - if self.ac_charge_hours[stunde] > 0.0: - self.akku.set_charge_allowed_for_hour(1, stunde) - geladene_menge, verluste_wh = self.akku.energie_laden( - None, stunde, relative_power=self.ac_charge_hours[stunde] + if self.ac_charge_hours[hour] > 0.0: + self.akku.set_charge_allowed_for_hour(1, hour) + battery_charged_energy_actual, battery_losses_actual = self.akku.energie_laden( + None, hour, relative_power=self.ac_charge_hours[hour] ) # print(stunde, " ", geladene_menge, " ",self.ac_charge_hours[stunde]," ",self.akku.ladezustand_in_prozent()) - verbrauch += geladene_menge - verbrauch += verluste_wh - netzbezug += geladene_menge - netzbezug += verluste_wh - verluste_wh_pro_stunde[stunde_since_now] += verluste_wh + consumption += battery_charged_energy_actual + consumption += battery_losses_actual + energy_consumption_grid_actual += battery_charged_energy_actual + energy_consumption_grid_actual += battery_losses_actual + losses_wh_per_hour[hour_since_now] += battery_losses_actual - netzeinspeisung_wh_pro_stunde[stunde_since_now] = netzeinspeisung - netzbezug_wh_pro_stunde[stunde_since_now] = netzbezug - verluste_wh_pro_stunde[stunde_since_now] += verluste - last_wh_pro_stunde[stunde_since_now] = verbrauch - electricity_price_per_hour[stunde_since_now] = self.strompreis_euro_pro_wh[stunde] + feedin_energy_per_hour[hour_since_now] = energy_feedin_grid_actual + consumption_energy_per_hour[hour_since_now] = energy_consumption_grid_actual + losses_wh_per_hour[hour_since_now] += losses + loads_energy_per_hour[hour_since_now] = consumption + electricity_price_per_hour[hour_since_now] = self.strompreis_euro_pro_wh[hour] # Financial calculations - kosten_euro_pro_stunde[stunde_since_now] = ( - netzbezug * self.strompreis_euro_pro_wh[stunde] + costs_per_hour[hour_since_now] = ( + energy_consumption_grid_actual * self.strompreis_euro_pro_wh[hour] ) - einnahmen_euro_pro_stunde[stunde_since_now] = ( - netzeinspeisung * self.einspeiseverguetung_euro_pro_wh_arr[stunde] + revenue_per_hour[hour_since_now] = ( + 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 - 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 out: Dict[str, Union[np.ndarray, float]] = { - "Last_Wh_pro_Stunde": last_wh_pro_stunde, - "Netzeinspeisung_Wh_pro_Stunde": netzeinspeisung_wh_pro_stunde, - "Netzbezug_Wh_pro_Stunde": netzbezug_wh_pro_stunde, - "Kosten_Euro_pro_Stunde": kosten_euro_pro_stunde, - "akku_soc_pro_stunde": akku_soc_pro_stunde, - "Einnahmen_Euro_pro_Stunde": einnahmen_euro_pro_stunde, + "Last_Wh_pro_Stunde": loads_energy_per_hour, + "Netzeinspeisung_Wh_pro_Stunde": feedin_energy_per_hour, + "Netzbezug_Wh_pro_Stunde": consumption_energy_per_hour, + "Kosten_Euro_pro_Stunde": costs_per_hour, + "akku_soc_pro_stunde": soc_per_hour, + "Einnahmen_Euro_pro_Stunde": revenue_per_hour, "Gesamtbilanz_Euro": gesamtkosten_euro, - "EAuto_SoC_pro_Stunde": eauto_soc_pro_stunde, - "Gesamteinnahmen_Euro": np.nansum(einnahmen_euro_pro_stunde), - "Gesamtkosten_Euro": np.nansum(kosten_euro_pro_stunde), - "Verluste_Pro_Stunde": verluste_wh_pro_stunde, - "Gesamt_Verluste": np.nansum(verluste_wh_pro_stunde), + "EAuto_SoC_pro_Stunde": soc_ev_per_hour, + "Gesamteinnahmen_Euro": np.nansum(revenue_per_hour), + "Gesamtkosten_Euro": np.nansum(costs_per_hour), + "Verluste_Pro_Stunde": losses_wh_per_hour, + "Gesamt_Verluste": np.nansum(losses_wh_per_hour), "Home_appliance_wh_per_hour": home_appliance_wh_per_hour, "Electricity_price": electricity_price_per_hour, } diff --git a/tests/test_class_ems.py b/tests/test_class_ems.py index 52867b1..c1518b6 100644 --- a/tests/test_class_ems.py +++ b/tests/test_class_ems.py @@ -244,7 +244,7 @@ def test_simulation(create_ems_instance): # 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( # ems.gesamtlast, @@ -330,11 +330,11 @@ def test_simulation(create_ems_instance): # Check the values in 'akku_soc_pro_stunde' assert ( - result["akku_soc_pro_stunde"][-1] == 28.675 - ), "The value at index -1 of 'akku_soc_pro_stunde' should be 28.675." + result["akku_soc_pro_stunde"][-1] == 42.151590909090906 + ), "The value at index -1 of 'akku_soc_pro_stunde' should be 42.151590909090906." assert ( - result["akku_soc_pro_stunde"][1] == 25.379090909090905 - ), "The value at index 1 of 'akku_soc_pro_stunde' should be 25.379090909090905." + result["akku_soc_pro_stunde"][1] == 60.08659090909091 + ), "The value at index 1 of 'akku_soc_pro_stunde' should be 60.08659090909091." # Check home appliances assert ( diff --git a/tests/test_class_ems_2.py b/tests/test_class_ems_2.py index cebb622..19d2c85 100644 --- a/tests/test_class_ems_2.py +++ b/tests/test_class_ems_2.py @@ -154,7 +154,7 @@ def test_simulation(create_ems_instance): ems = create_ems_instance # 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! --- # visualisiere_ergebnisse( @@ -224,12 +224,12 @@ def test_simulation(create_ems_instance): ), "The length of 'akku_soc_pro_stunde' should be 48." # 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 ( abs(result["akku_soc_pro_stunde"][10] - 10.0) < 1e-5 ), "'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 ( 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." assert ( - abs(result["akku_soc_pro_stunde"][20] - 98) < 1e-5 - ), "'akku_soc_pro_stunde[11]' should be 98." + abs(result["akku_soc_pro_stunde"][20] - 10) < 1e-5 + ), "'akku_soc_pro_stunde[20]' should be 10." assert ( abs(result["Last_Wh_pro_Stunde"][20] - 6050.98) < 1e-3 ), "'Netzeinspeisung_Wh_pro_Stunde[11]' should be 0.0." diff --git a/tests/test_class_optimize.py b/tests/test_class_optimize.py index 4a9d808..5cee674 100644 --- a/tests/test_class_optimize.py +++ b/tests/test_class_optimize.py @@ -62,8 +62,8 @@ def test_optimize( start_hour = 10 # Activate with pytest --full-run - if ngen > 10 and not is_full_run: - pytest.skip() + # if ngen > 10 and not is_full_run: + # pytest.skip() visualize_filename = str((DIR_TESTDATA / f"new_{fn_out}").with_suffix(".pdf")) diff --git a/tests/testdata/optimize_result_1.json b/tests/testdata/optimize_result_1.json index 6241fb2..de5c094 100644 --- a/tests/testdata/optimize_result_1.json +++ b/tests/testdata/optimize_result_1.json @@ -476,6 +476,7 @@ 0.0 ], "akku_soc_pro_stunde": [ + 80.0, 80.0, 79.91107093663912, 79.91107093663912, @@ -512,7 +513,6 @@ 100.0, 100.0, 100.0, - 96.84060778236915, 96.84060778236915 ], "Electricity_price": [ diff --git a/tests/testdata/optimize_result_2.json b/tests/testdata/optimize_result_2.json index 1e4999c..b4bef8e 100644 --- a/tests/testdata/optimize_result_2.json +++ b/tests/testdata/optimize_result_2.json @@ -170,7 +170,7 @@ 0.0, 0.5, 0.625, - 0.0, + 0.75, 0.0, 0.0, 0.0, @@ -211,7 +211,7 @@ 1103.78, 6373.12, 7733.71, - 1050.98, + 4299.98, 988.56, 912.38, 704.61, @@ -241,6 +241,7 @@ 592.97 ], "EAuto_SoC_pro_Stunde": [ + 5.0, 11.555, 11.555, 26.85, @@ -251,34 +252,33 @@ 74.92, 83.66, 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585, - 94.585 + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0, + 100.0 ], "Einnahmen_Euro_pro_Stunde": [ 0.0, @@ -320,7 +320,7 @@ 0.0, 0.0 ], - "Gesamt_Verluste": 9258.73062020124, + "Gesamt_Verluste": 9872.776074746695, "Gesamtbilanz_Euro": 12.332782378812306, "Gesamteinnahmen_Euro": 0.0, "Gesamtkosten_Euro": 12.332782378812306, @@ -495,7 +495,7 @@ 230.91336797704525, 880.0977272727268, 1026.818181818182, - 99.72409090909093, + 713.7695454545456, 133.72909090909081, 124.41545454545451, 96.08318181818186, @@ -525,6 +525,7 @@ 0.0 ], "akku_soc_pro_stunde": [ + 80.0, 62.54222623966943, 62.54222623966943, 75.04222623966943, @@ -535,34 +536,33 @@ 83.83265434833275, 64.76391295714818, 43.24187438965506, - 40.094017984696386, - 35.87277142822256, - 31.945515918580686, - 28.912587199572425, - 28.912587199572425, - 25.176146083869945, - 22.187423632079316, - 22.187423632079316, - 22.187423632079316, - 22.187423632079316, - 34.68742363207931, - 34.68742363207931, - 34.68742363207931, - 34.68742363207931, - 34.99947869620843, - 36.0696843420455, - 40.099841390631155, - 40.249843096950585, - 55.20257643028218, - 67.47251658502745, - 84.99550697329678, - 88.77022785443704, - 89.9213907145978, - 89.9213907145978, - 89.9213907145978, - 89.9213907145978, - 89.9213907145978, - 89.9213907145978 + 26.108997323539356, + 21.88775076706553, + 17.96049525742366, + 14.927566538415393, + 14.927566538415393, + 11.191125422712915, + 8.20240297092228, + 8.20240297092228, + 8.20240297092228, + 8.20240297092228, + 20.70240297092228, + 20.70240297092228, + 20.70240297092228, + 20.70240297092228, + 21.014458035051405, + 22.08466368088848, + 26.114820729474133, + 26.264822435793555, + 41.217555769125156, + 53.48749592387043, + 71.01048631213975, + 74.78520719328002, + 75.93637005344077, + 75.93637005344077, + 75.93637005344077, + 75.93637005344077, + 75.93637005344077 ], "Electricity_price": [ 0.000228, @@ -711,7 +711,7 @@ "kapazitaet_wh": 60000, "lade_effizienz": 0.95, "max_ladeleistung_w": 11040, - "soc_wh": 56751.0, + "soc_wh": 60000.0, "start_soc_prozent": 5 }, "start_solution": [ @@ -783,7 +783,7 @@ 0.0, 2.0, 3.0, - 0.0, + 4.0, 0.0, 0.0, 0.0, diff --git a/tests/testdata/optimize_result_2_full.json b/tests/testdata/optimize_result_2_full.json index 03c21ff..f580969 100644 --- a/tests/testdata/optimize_result_2_full.json +++ b/tests/testdata/optimize_result_2_full.json @@ -1,29 +1,15 @@ { "ac_charge": [ - 0.75, 0.0, 0.0, 0.0, - 0.0, - 0.0, - 0.0, - 0.375, - 0.0, 1.0, - 0.0, - 0.0, - 0.0, - 0.75, - 0.0, - 0.0, + 1.0, 0.75, 0.0, 0.0, 0.0, - 0.0, - 0.0, - 0.0, - 0.0, + 0.5, 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 ], "dc_charge": [ @@ -100,13 +100,13 @@ 1.0 ], "discharge_allowed": [ - 0, - 0, - 0, - 0, 0, 1, - 1, + 0, + 0, + 0, + 0, + 0, 0, 1, 0, @@ -115,6 +115,11 @@ 1, 0, 0, + 0, + 1, + 1, + 0, + 1, 1, 0, 1, @@ -123,26 +128,21 @@ 1, 1, 1, + 0, 1, 1, + 0, 1, 1, - 1, + 0, 1, 1, 1, 1, 0, - 1, - 0, 0, 1, 1, - 0, - 0, - 1, - 0, - 1, 1, 1, 1, @@ -150,50 +150,50 @@ 1 ], "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.625, - 1.0, - 0.0, - 0.375, - 0.0, 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.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, @@ -201,15 +201,15 @@ ], "result": { "Last_Wh_pro_Stunde": [ - 1053.07, - 4996.91, - 11808.56, - 4882.03, - 9029.67, - 7609.82, - 7466.22, - 5036.78, - 1129.12, + 4986.07, + 1063.91, + 1320.56, + 8876.029999999999, + 8907.67, + 7731.82, + 6460.22, + 6347.78, + 3629.12, 1178.71, 1050.98, 988.56, @@ -223,18 +223,18 @@ 488.89, 506.91, 804.89, - 3641.98, + 1141.98, 1056.97, 992.46, - 6399.99, + 5088.99, 827.01, - 6501.98, + 1257.98, 1232.67, - 871.26, + 4804.26, 860.88, 1158.03, - 1222.72, - 6465.04, + 7777.72, + 1221.04, 949.99, 987.01, 733.99, @@ -243,37 +243,37 @@ "EAuto_SoC_pro_Stunde": [ 5.0, 11.555, + 11.555, + 11.555, + 20.294999999999998, 29.035, - 29.035, - 42.144999999999996, + 39.96, 48.699999999999996, - 48.699999999999996, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, - 55.254999999999995, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, + 57.440000000000005, 63.995000000000005, 63.995000000000005, - 72.735, - 72.735, - 72.735, - 72.735, - 72.735, - 72.735, + 63.995000000000005, + 63.995000000000005, + 70.55, + 70.55, + 70.55, 81.475, 81.475, 81.475, @@ -320,13 +320,11 @@ 0.0, 0.0 ], - "Gesamt_Verluste": 10116.23845689936, - "Gesamtbilanz_Euro": 5.609399525190347, + "Gesamt_Verluste": 7755.845910804702, + "Gesamtbilanz_Euro": 4.690157296412734, "Gesamteinnahmen_Euro": 0.0, - "Gesamtkosten_Euro": 5.609399525190347, + "Gesamtkosten_Euro": 4.690157296412734, "Home_appliance_wh_per_hour": [ - 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 ], "Kosten_Euro_pro_Stunde": [ 0.0, 0.0, - 1.193390926, - 0.7064482052307314, - 0.5533942300000001, 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.182970359, 0.0, 0.0, + 0.26411047, 0.0, 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.005803838, - 0.0, 0.007989913613567745, - 1.06069824, 0.0, - 0.012914366999999916, - 4.174095896658514e-14, - 0.0003442778967139274, + 0.002459704740224363, 0.0, - 0.028137079449292023, 0.0, - 0.16027398000000012, + 0.05016012000000004, + 0.0076430797975209205, + 0.0, + 0.31687880399999996, 0.0, 0.0, 0.0, - 0.0 + 0.16722497978466921, + 0.16484566 ], "Netzbezug_Wh_pro_Stunde": [ 0.0, 0.0, - 5701.82, - 3759.703061366319, - 3010.8500000000004, 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, + 556.31, 0.0, 0.0, + 799.85, 0.0, 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 3306.3900000000003, - 0.0, 35.04348076126204, - 4795.2, 0.0, - 68.72999999999956, - 2.270998855635753e-10, - 1.7179535764168035, + 11.752053226107805, 0.0, - 123.95189184710142, 0.0, - 501.6400000000003, + 250.30000000000018, + 34.77288351920346, + 0.0, + 1057.3199999999997, 0.0, 0.0, 0.0, - 0.0 + 572.4922279516235, + 592.97 ], "Netzeinspeisung_Wh_pro_Stunde": [ 0.0, @@ -485,84 +485,84 @@ 0.0 ], "Verluste_Pro_Stunde": [ - 16.744090909090914, - 746.1354545454542, - 1233.818181818182, - 452.3948326360417, - 414.0, - 492.1022727272725, - 450.0, - 482.2936363636363, - 101.0335466817773, + 760.062272727273, + 2.817272727272737, + 29.157272727272726, + 276.0, + 276.0, + 345.0, + 615.5918181818183, + 730.0663636363638, + 373.0373243336329, 23.391818181818195, 99.72409090909093, - 133.72909090909081, + 0.0, 124.41545454545451, 96.08318181818186, 70.41409090909087, 118.37045454545455, 94.68272727272722, 83.01681818181817, - 75.86045454545456, + 0.0, 66.66681818181814, 69.12409090909085, - 109.0704545454546, - 300.0, + 0.0, + 109.96227272727276, 47.952272727272714, 11.233982308648535, - 276.0, - 161.62968357967037, - 957.818181818182, - 538.2983999999728, - 441.7178455708299, - 260.56941082122324, - 155.09737297834772, - 62.214291413756285, - 957.818181818182, + 682.1181818181817, + 160.0271308670193, + 21.962728535423857, + 538.2984000000038, + 207.0, + 255.8276539776955, + 171.99990368477063, + 1026.818181818182, + 35.132727272727266, 77.27590909090907, 134.59227272727276, - 100.08954545454549, - 80.85954545454547 + 22.022423461142267, + 0.0 ], "akku_soc_pro_stunde": [ - 79.4714617768595, + 80.0, + 62.54222623966943, 62.45329717630854, - 40.931258608815426, - 53.49778173759437, - 53.49778173759437, - 44.49834131059713, - 56.998341310597134, - 48.308516930431836, - 49.4536123554777, - 48.71523425630414, - 45.56737785134547, - 41.34613129487165, - 37.41887578522978, - 34.38594706622151, - 32.16328005520223, - 28.42683893949975, - 25.438116487709117, - 22.81763611580829, - 20.42305106071187, - 18.318669173659533, - 16.136721859609946, - 12.693841349968071, - 21.027174683301403, - 19.51352971084961, - 19.82558477497874, - 19.82558477497874, - 23.333518659720113, - 1.8114800922269987, - 16.764213425559575, - 29.03415358030485, - 35.990800633866854, - 40.29906099437652, - 40.79452851211402, - 19.272489944620908, - 16.833225137458374, - 12.584731680158098, - 9.425339462527244, - 6.872954820653964 + 61.532928719008275, + 61.532928719008275, + 61.532928719008275, + 61.532928719008275, + 50.81349001377411, + 36.480587121212125, + 46.842735019368604, + 46.10435692019505, + 42.95650051523637, + 42.95650051523637, + 39.029245005594504, + 35.996316286586236, + 33.77364927556696, + 30.03720815986448, + 27.048485708073848, + 24.428005336173022, + 24.428005336173022, + 22.32362344912068, + 20.141676135071094, + 20.141676135071094, + 16.670644798982938, + 15.156999826531148, + 15.469054890660274, + 0.471637535288375, + 4.030157048585656, + 4.180158754905081, + 19.132892088236673, + 19.132892088236673, + 26.239215809839333, + 30.01393669097958, + 8.49189812348647, + 7.382910520180684, + 4.9436457130181495, + 0.6951522557178741, + 0.0 ], "Electricity_price": [ 0.000228, @@ -715,103 +715,103 @@ "start_soc_prozent": 5 }, "start_solution": [ - 18.0, - 3.0, - 2.0, - 1.0, - 1.0, - 8.0, - 10.0, - 15.0, + 14.0, 13.0, - 20.0, - 12.0, - 9.0, - 13.0, - 18.0, 0.0, - 7.0, + 20.0, + 20.0, 18.0, - 7.0, + 5.0, + 3.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, 12.0, - 6.0, - 0.0, - 12.0, - 13.0, - 5.0, - 14.0, - 9.0, - 5.0, 13.0, 8.0, - 10.0, - 10.0, + 4.0, + 0.0, + 14.0, + 11.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, 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, 3.0, - 6.0, - 0.0, - 1.0, - 0.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, 0.0, 0.0, 0.0, 0.0, 0.0, - 2.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 } \ No newline at end of file