diff --git a/Model_Library b/Model_Library index bd5068ea7d42868c7187c4afe4fa4e4b48daf1c5..62dc4f5784caab6ad6bfe3f0103ef2255d5884eb 160000 --- a/Model_Library +++ b/Model_Library @@ -1 +1 @@ -Subproject commit bd5068ea7d42868c7187c4afe4fa4e4b48daf1c5 +Subproject commit 62dc4f5784caab6ad6bfe3f0103ef2255d5884eb diff --git a/runme.py b/runme.py index 83df58a6253dc361e8473b96d56eb16ec1e2812a..92de9c74ed0cd6c183bb39ed7d3043d6d4a2f69f 100644 --- a/runme.py +++ b/runme.py @@ -9,7 +9,6 @@ class SimulationScope(Enum): PROSUMER = 1 COMMUNITY = 2 -start_time = time.time() simulation_scope = SimulationScope.COMMUNITY t_start = pd.Timestamp("2019-05-10 00:00:00") # start time of simulation t_horizon = 240 # number of time steps to be simulated @@ -32,9 +31,10 @@ input_profile_dict = {'irradiance_1': ['irradiance', 'input_files/data/irradianc 'demand_hot_water_3': ['hot_water_demand', 'generate', 0, 'temperature_3'], 'elec_price_1': ['elec_price', 'input_files/data/prices/day-ahead/hourly_price.csv']} +before = time.time() input_profiles = Tooling.input_profile_processor.input_profile_processor.process_input_profiles(input_profile_dict, t_start, t_horizon, t_step) -after_input_processing_time = time.time() -print("runme:\t\t\tProfile Processing [s]: \t" + str(after_input_processing_time - start_time)) +after = time.time() +print("runme:\t\t\tProfile Processing [s]: \t" + str(after - before)) # 'config_path': path to global configurations like prices, injection prices, emission costs, etc. # 'topology_path': path to directory that contains the matrices that define the prosumer topology @@ -50,43 +50,57 @@ prosumer_dict = {'SCN2_CAT1_PV11_3000_6000':{'config_path': 'input_files/models/ 'therm_cns': 'demand_heat_2', 'dhw_dmd': 'demand_hot_water_2'}}} -prosumer_strategy = 'annuity' -before_optimization_time = time.time() -print("runme:\t\t\tProsumer Setup [s]: \t\t" + str(before_optimization_time - after_input_processing_time)) - +before = time.time() prosumer_main = main.Main(prosumer_dict, input_profiles, t_horizon, t_step) +after = time.time() +print("runme:\t\t\tProsumer Construction [s]: \t" + str(after - before)) -prosumer_main.run_optimization(prosumer_strategy) +before = time.time() +prosumer_sizing_strategy = 'annuity' +prosumer_main.optimize_sizing(prosumer_sizing_strategy) +after = time.time() +print("runme:\t\t\tProsumer Size Optimization [s]: " + str(after - before)) -prosumer_main.show_results() +before = time.time() +prosumer_main.save_results() +after = time.time() +print("runme:\t\t\tProsumer Results Saving [s]: \t" + str(after - before)) prosumers = prosumer_main.prosumers -after_optimization_time = time.time() -print("runme:\t\t\tProsumer Optimization [s]: \t" + str(after_optimization_time - before_optimization_time)) if simulation_scope == SimulationScope.PROSUMER: exit() -start_community_time = time.time() community_assets_dict = {'ca_bat': {'config_path': 'input_files/models/district_models/example_CA/config.csv', 'topology_path': 'input_files/models/district_models/example_CA', 'profiles': {'elec_cns_ca_bat': 'demand_electric_3'}}} -community_assets_strategy = 'sizing_max_operational_profit' -before_community_assets_time = time.time() -print("runme:\t\t\tCommunity Assets Setup [s]: \t" + str(before_community_assets_time - start_community_time)) - +before = time.time() community_assets = main.Main_CA(community_assets_dict, input_profiles, t_horizon, t_step).community_assets -after_community_assets_time = time.time() -print("runme:\t\t\tCommunity Assets Constr. [s]: \t" + str(after_community_assets_time - before_community_assets_time)) +after = time.time() +print("runme:\t\t\tCommunity Assets Constr. [s]: \t" + str(after - before)) community_dict = {'community': {'config_path': 'input_files/models/district_models/example_community/config.csv', 'profiles': {'elec_price': 'elec_price_1'}}} -community_strategy = 'max_operational_profit' -before_community_optimization_time = time.time() -print("runme:\t\t\tComm. Optimization Setup [s]: \t" + str(before_community_optimization_time - after_community_assets_time)) - -community_main = main_district.MainDistrict(community_dict, prosumers, community_assets, input_profiles, t_horizon, t_step, community_assets_strategy, community_strategy) -after_community_optimization_time = time.time() -print("runme:\t\t\tCommunity Optimization [s]: \t" + str(after_community_optimization_time - before_community_optimization_time)) +before = time.time() +community_main = main_district.MainDistrict(community_dict, prosumers, community_assets, input_profiles, t_horizon, t_step) +after = time.time() +print("runme:\t\t\tCommunity Construction [s]: \t" + str(after - before)) + +before = time.time() +community_sizing_strategy = 'sizing_max_operational_profit' +community_main.optimize_sizing(community_sizing_strategy) +after = time.time() +print("runme:\t\t\tCommunity Size Opt. [s]: \t" + str(after - before)) + +before = time.time() +community_operation_strategy = 'max_operational_profit' +community_main.optimize_operation(t_horizon, community_operation_strategy) +after = time.time() +print("runme:\t\t\tCommunity Operation Opt. [s]: \t" + str(after - before)) + +before = time.time() +community_main.save_results() +after = time.time() +print("runme:\t\t\tCommunity Results Saving [s]: \t" + str(after - before))