From a98cfc2c4e9ab7fa007b2bd49dc2e65bc9f25e8c Mon Sep 17 00:00:00 2001 From: Jiayin Fu <jiayin.fu@rwth-aachen.de> Date: Tue, 27 Jun 2023 17:48:28 +0200 Subject: [PATCH] rest 9 simulations --- rest simulation/run runme_21.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_22.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_23.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_24.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_25.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_26.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_27.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_28.py | 52 +++++++++++++++++++++++++++++++++ rest simulation/run runme_29.py | 52 +++++++++++++++++++++++++++++++++ 9 files changed, 468 insertions(+) create mode 100644 rest simulation/run runme_21.py create mode 100644 rest simulation/run runme_22.py create mode 100644 rest simulation/run runme_23.py create mode 100644 rest simulation/run runme_24.py create mode 100644 rest simulation/run runme_25.py create mode 100644 rest simulation/run runme_26.py create mode 100644 rest simulation/run runme_27.py create mode 100644 rest simulation/run runme_28.py create mode 100644 rest simulation/run runme_29.py diff --git a/rest simulation/run runme_21.py b/rest simulation/run runme_21.py new file mode 100644 index 0000000000..e31b6e2238 --- /dev/null +++ b/rest simulation/run runme_21.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [40] # 18.4, 22, 30 are too small for driving consumption + charging_power = [3.7] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + # 'V2X_V2H_PS_FCR_aFRR_SMT_', + 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_22.py b/rest simulation/run runme_22.py new file mode 100644 index 0000000000..91c27ca532 --- /dev/null +++ b/rest simulation/run runme_22.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [40] # 18.4, 22, 30 are too small for driving consumption + charging_power = [11] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + # 'V2X_V2H_PS_FCR_aFRR_SMT_', + 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_23.py b/rest simulation/run runme_23.py new file mode 100644 index 0000000000..6f1ebcb0c1 --- /dev/null +++ b/rest simulation/run runme_23.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [40] # 18.4, 22, 30 are too small for driving consumption + charging_power = [22] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + # 'V2X_V2H_PS_FCR_aFRR_SMT_', + 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_24.py b/rest simulation/run runme_24.py new file mode 100644 index 0000000000..96fc77b464 --- /dev/null +++ b/rest simulation/run runme_24.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [60] # 18.4, 22, 30 are too small for driving consumption + charging_power = [3.7] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + # 'V2X_V2H_PS_FCR_aFRR_SMT_', + 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_25.py b/rest simulation/run runme_25.py new file mode 100644 index 0000000000..1815b4696c --- /dev/null +++ b/rest simulation/run runme_25.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [60] # 18.4, 22, 30 are too small for driving consumption + charging_power = [22] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + # 'V2X_V2H_PS_FCR_aFRR_SMT_', + 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_26.py b/rest simulation/run runme_26.py new file mode 100644 index 0000000000..f177929301 --- /dev/null +++ b/rest simulation/run runme_26.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [80] # 18.4, 22, 30 are too small for driving consumption + charging_power = [11] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + # 'V2X_V2H_PS_FCR_aFRR_SMT_', + 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_27.py b/rest simulation/run runme_27.py new file mode 100644 index 0000000000..722857b087 --- /dev/null +++ b/rest simulation/run runme_27.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [80] # 18.4, 22, 30 are too small for driving consumption + charging_power = [22] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + # 'V2X_V2H_PS_FCR_aFRR_SMT_', + 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_28.py b/rest simulation/run runme_28.py new file mode 100644 index 0000000000..d34d0fa540 --- /dev/null +++ b/rest simulation/run runme_28.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [40] # 18.4, 22, 30 are too small for driving consumption + charging_power = [11] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + 'V2X_V2H_PS_FCR_aFRR_SMT_', + # 'V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file diff --git a/rest simulation/run runme_29.py b/rest simulation/run runme_29.py new file mode 100644 index 0000000000..63993ff109 --- /dev/null +++ b/rest simulation/run runme_29.py @@ -0,0 +1,52 @@ +""" +This script is to run scenarios automatically +""" + +import os +import datetime +import pandas as pd +from runme import run_V2X_scenario + + +def run_different_scenarios(): + battery_size = [60] # 18.4, 22, 30 are too small for driving consumption + charging_power = [11] + strategies = [ # 'V2X_PS_', + # 'V2X_V2H_PS_', + 'V2X_V2H_PS_FCR_aFRR_SMT_', + # V2X_PS_FCR_aFRR_SMT_' + ] + + file_path = '../input_files/models/prosumer_models/V2X_jfu/' + file_name = 'components.csv' + new_file_name = 'components2.csv' + components_df = pd.read_csv(r'' + file_path + file_name, index_col=False) + + # run different parameters + for bat in battery_size: + for power in charging_power: + components_df.loc[components_df['name'] == 'battery', 'min_size'] = bat + components_df.loc[components_df['name'] == 'battery', 'max_size'] = bat + components_df.loc[components_df['name'] == 'inv_bat', 'min_size'] = power + components_df.loc[components_df['name'] == 'inv_bat', 'max_size'] = power + components_df.to_csv(file_path + new_file_name, index=False) + os.remove(file_path + file_name) + os.rename(file_path + new_file_name, file_path + file_name) + + #run different weeks + t_starts = [] + start_date = datetime.datetime(2022, 1, 1) # start from the second week + days_to_first_monday = (7 - start_date.weekday()) % 7 + monday_start = start_date + datetime.timedelta(days=days_to_first_monday) + # ********************* 2022 ********************************************************* + while monday_start.year == 2022: + t_starts.append(monday_start.strftime('%Y-%m-%d %H:%M:%S')) + monday_start += datetime.timedelta(days=7) + + #for t_start_str in t_starts: + for strategy in strategies: + t_start = pd.Timestamp('2022-07-04 00:00:00') + run_V2X_scenario(bat, power, t_start, strategy) + + +run_different_scenarios() \ No newline at end of file -- GitLab