From 9b7817e3dcdb8a20ceb17f3e4a7cdedb148c87f0 Mon Sep 17 00:00:00 2001 From: Andreas Date: Sun, 6 Oct 2024 14:29:23 +0200 Subject: [PATCH] - Home Appliances fixed - Unittest with Home Appliances --- modules/class_ems.py | 6 +++-- modules/class_haushaltsgeraet.py | 8 +++---- modules/class_optimize.py | 4 ++-- single_test_optimization.py | 6 ++--- tests/test_class_ems.py | 37 ++++++++++++++++++------------- visualization_results.pdf | Bin 46283 -> 49201 bytes 6 files changed, 34 insertions(+), 27 deletions(-) diff --git a/modules/class_ems.py b/modules/class_ems.py index f4c744b..133658d 100644 --- a/modules/class_ems.py +++ b/modules/class_ems.py @@ -96,9 +96,11 @@ class EnergieManagementSystem: # Accumulate loads and PV generation verbrauch = self.gesamtlast[stunde] + if self.haushaltsgeraet: - verbrauch += self.haushaltsgeraet.get_last_fuer_stunde(stunde) - haushaltsgeraet_wh_pro_stunde[stunde_since_now] = verbrauch + ha_load = self.haushaltsgeraet.get_last_fuer_stunde(stunde) + verbrauch += ha_load + haushaltsgeraet_wh_pro_stunde[stunde_since_now] = ha_load # E-Auto handling if self.eauto: diff --git a/modules/class_haushaltsgeraet.py b/modules/class_haushaltsgeraet.py index e1a37da..a3f4536 100644 --- a/modules/class_haushaltsgeraet.py +++ b/modules/class_haushaltsgeraet.py @@ -2,10 +2,10 @@ import numpy as np class Haushaltsgeraet: - def __init__(self, hours=None, verbrauch_kwh=None, dauer_h=None): + def __init__(self, hours=None, verbrauch_wh=None, dauer_h=None): self.hours = hours # Total duration for which the planning is done - self.verbrauch_kwh = ( - verbrauch_kwh # Total energy consumption of the device in kWh + self.verbrauch_wh = ( + verbrauch_wh # Total energy consumption of the device in kWh ) self.dauer_h = dauer_h # Duration of use in hours self.lastkurve = np.zeros(self.hours) # Initialize the load curve with zeros @@ -24,7 +24,7 @@ class Haushaltsgeraet: raise ValueError("The start time is earlier than the available time frame.") # Calculate power per hour based on total consumption and duration - leistung_pro_stunde = self.verbrauch_kwh / self.dauer_h # Convert to watt-hours + leistung_pro_stunde = self.verbrauch_wh / self.dauer_h # Convert to watt-hours # Set the power for the duration of use in the load curve array self.lastkurve[start_hour : start_hour + self.dauer_h] = leistung_pro_stunde diff --git a/modules/class_optimize.py b/modules/class_optimize.py index 8d82883..49b8033 100644 --- a/modules/class_optimize.py +++ b/modules/class_optimize.py @@ -288,9 +288,9 @@ class optimization_problem: spuelmaschine = ( Haushaltsgeraet( hours=self.prediction_hours, - verbrauch_kwh=parameter["haushaltsgeraet_wh"], + verbrauch_wh=parameter["haushaltsgeraet_wh"], dauer_h=parameter["haushaltsgeraet_dauer"], - ).set_startzeitpunkt(start_hour) + ) if parameter["haushaltsgeraet_dauer"] > 0 else None ) diff --git a/single_test_optimization.py b/single_test_optimization.py index b78f586..178afb8 100644 --- a/single_test_optimization.py +++ b/single_test_optimization.py @@ -355,13 +355,13 @@ parameter = { # Initial solution for the optimization "start_solution": start_solution, # Household appliance consumption (Wh) - "haushaltsgeraet_wh": 937, + "haushaltsgeraet_wh": 5000, # Duration of appliance usage (hours) - "haushaltsgeraet_dauer": 0, + "haushaltsgeraet_dauer": 2, } # Initialize the optimization problem -opt_class = optimization_problem(prediction_hours=48, strafe=10, optimization_hours=24) +opt_class = optimization_problem(prediction_hours=48, strafe=10, optimization_hours=24, verbose=True) # Perform the optimisation based on the provided parameters and start hour ergebnis = opt_class.optimierung_ems(parameter=parameter, start_hour=start_hour) diff --git a/tests/test_class_ems.py b/tests/test_class_ems.py index dc37b1d..a812001 100644 --- a/tests/test_class_ems.py +++ b/tests/test_class_ems.py @@ -6,7 +6,7 @@ from modules.class_inverter import Wechselrichter # Example import from modules.class_haushaltsgeraet import Haushaltsgeraet prediction_hours = 48 optimization_hours = 24 - +start_hour = 1 # Example initialization of necessary components @pytest.fixture @@ -22,11 +22,11 @@ def create_ems_instance(): # Household device (currently not used, set to None) home_appliance = Haushaltsgeraet( hours=prediction_hours, - verbrauch_kwh=2000, + verbrauch_wh=2000, dauer_h=2, - ).set_startzeitpunkt(2) + ) + home_appliance.set_startzeitpunkt(2) - # Example initialization of electric car battery eauto = PVAkku(kapazitaet_wh=26400, start_soc_prozent=10, hours=48) @@ -206,7 +206,7 @@ def test_simulation(create_ems_instance): ems = create_ems_instance # Simulate starting from hour 1 (this value can be adjusted) - start_hour = 1 + result = ems.simuliere(start_stunde=start_hour) # Assertions to validate results @@ -262,11 +262,11 @@ def test_simulation(create_ems_instance): # Verify specific values in the 'Last_Wh_pro_Stunde' array assert ( - result["Last_Wh_pro_Stunde"][1] == 23759.13 - ), "The value at index 1 of 'Last_Wh_pro_Stunde' should be 23759.13." + result["Last_Wh_pro_Stunde"][1] == 24759.13 + ), "The value at index 1 of 'Last_Wh_pro_Stunde' should be 24759.13." assert ( - result["Last_Wh_pro_Stunde"][2] == 996.88 - ), "The value at index 2 of 'Last_Wh_pro_Stunde' should be 996.88." + result["Last_Wh_pro_Stunde"][2] == 1996.88 + ), "The value at index 2 of 'Last_Wh_pro_Stunde' should be 1996.88." assert ( result["Last_Wh_pro_Stunde"][12] == 1132.03 ), "The value at index 12 of 'Last_Wh_pro_Stunde' should be 1132.03." @@ -284,21 +284,21 @@ def test_simulation(create_ems_instance): result["Netzbezug_Wh_pro_Stunde"][0] == 0.0 ), "The value at index 0 of 'Netzbezug_Wh_pro_Stunde' should be None." assert ( - result["Netzbezug_Wh_pro_Stunde"][1] == 20239.13 - ), "The value at index 1 of 'Netzbezug_Wh_pro_Stunde' should be 20239.13." + result["Netzbezug_Wh_pro_Stunde"][1] == 21239.13 + ), "The value at index 1 of 'Netzbezug_Wh_pro_Stunde' should be 21239.13." # Verify the total balance assert ( - abs(result["Gesamtbilanz_Euro"] - 8.434942129454546) < 1e-5 - ), "Total balance should be 8.434942129454546." + abs(result["Gesamtbilanz_Euro"] - 9.091642129454547) < 1e-5 + ), "Total balance should be 9.091642129454547." # Check total revenue and total costs assert ( abs(result["Gesamteinnahmen_Euro"] - 1.237432954545454) < 1e-5 ), "Total revenue should be 1.237432954545454." assert ( - abs(result["Gesamtkosten_Euro"] - 9.672375084) < 1e-5 - ), "Total costs should be 9.672375084." + abs(result["Gesamtkosten_Euro"] - 10.329075084000001 ) < 1e-5 + ), "Total costs should be 10.329075084000001 ." # Check the losses assert ( @@ -314,8 +314,13 @@ def test_simulation(create_ems_instance): ), "The value at index 1 of 'akku_soc_pro_stunde' should be 0.0." # Check home appliances + assert ( + sum(ems.haushaltsgeraet.get_lastkurve()) == 2000 + ), "The sum of 'ems.haushaltsgeraet.get_lastkurve()' should be 2000." + assert ( sum(result["Haushaltsgeraet_wh_pro_stunde"]) == 2000 - ), "The value at index -1 of 'Haushaltsgeraet_wh_pro_stunde' should be 2000." + ), "The sum of 'Haushaltsgeraet_wh_pro_stunde' should be 2000." + print("All tests passed successfully.") diff --git a/visualization_results.pdf b/visualization_results.pdf index d614eeaa3de62671961a8c6ca71406b69c4e1e9f..7f4d49906135662bca2fc2547c75d6ccd52b22b5 100644 GIT binary patch delta 25146 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 delta 22199 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