From 0e8c1f97305fbaed130b5f192d555fb072c07752 Mon Sep 17 00:00:00 2001 From: "christoph.von.oy" <christoph.von.oy@rwth-aachen.de> Date: Thu, 11 Apr 2024 15:18:21 +0200 Subject: [PATCH] Refactored additional model logic --- Model_Library | 2 +- examples/BusChargingDepot/depot.json | 36 +++++++-------- examples/BusChargingDepot/runme.py | 12 ++--- examples/BusChargingHPC/HPC.json | 66 ++++++++++++++-------------- examples/BusChargingHPC/runme.py | 48 ++++++++++---------- examples/BusChargingIMC/IMC.json | 40 ++++++++--------- examples/BusChargingIMC/runme.py | 24 +++++----- 7 files changed, 114 insertions(+), 114 deletions(-) diff --git a/Model_Library b/Model_Library index 7fb211d58a..309aba58c3 160000 --- a/Model_Library +++ b/Model_Library @@ -1 +1 @@ -Subproject commit 7fb211d58a0ef773b36c6fbc4b4ca4d7d2c904e0 +Subproject commit 309aba58c30a46e20112da48b3e9413ac13c8de3 diff --git a/examples/BusChargingDepot/depot.json b/examples/BusChargingDepot/depot.json index e73e351756..f7fa54c353 100644 --- a/examples/BusChargingDepot/depot.json +++ b/examples/BusChargingDepot/depot.json @@ -15,28 +15,28 @@ "model": "depot_inverter.json", "min_capacity": 0, "max_capacity": 5000, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "depot_inverter_2": { "type": "BiPowerElectronic", "model": "depot_inverter.json", "min_capacity": 0, "max_capacity": 5000, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "bus_1_battery": { "type": "LiionBattery", @@ -47,12 +47,12 @@ "sense": ">=", "value": [1.0, "first_soe"] }, - "additional_model_logic" : [ - { + "additional_model_logic": { + "input_penalty": { "type": "additional_operational_objective", "value": [0.2, "input_1"] } - ] + } }, "bus_1_consumption": { "type": "ElectricalConsumption" @@ -69,12 +69,12 @@ "sense": ">=", "value": [1.0, "first_soe"] }, - "additional_model_logic" : [ - { + "additional_model_logic": { + "input_penalty": { "type": "additional_operational_objective", "value": [0.2, "input_1"] } - ] + } }, "bus_2_consumption": { "type": "ElectricalConsumption" @@ -173,24 +173,24 @@ "planning_horizon": 20, "price_change_factor": 1.02, "interest_factor": 1.05, - "additional_model_logic": [ - { + "additional_model_logic": { + "battery_capacities": { "type": "EqualCapacity", "components": ["bus_1_battery", "bus_2_battery"] }, - { + "charging_capacities": { "type": "EqualCapacity", "components": ["depot_inverter_1", "depot_inverter_2"] }, - { + "charger_1_enable": { "type": "ConnectorEnable", "component": "depot_inverter_1", "connector": "output_1" }, - { + "charger_2_enable": { "type": "ConnectorEnable", "component": "depot_inverter_2", "connector": "output_1" } - ] + } } \ No newline at end of file diff --git a/examples/BusChargingDepot/runme.py b/examples/BusChargingDepot/runme.py index 6c9e909cb4..82fafbb481 100644 --- a/examples/BusChargingDepot/runme.py +++ b/examples/BusChargingDepot/runme.py @@ -65,12 +65,12 @@ prosumer_dict["LaTreille"]["components"]["bus_1_generation"][ prosumer_dict["LaTreille"]["components"]["bus_2_generation"][ "generation" ] = input_profiles["bus_2_recuperation"] -prosumer_dict["LaTreille"]["additional_model_logic"][2]["enable"] = input_profiles[ - "bus_1_connected" -].values -prosumer_dict["LaTreille"]["additional_model_logic"][3]["enable"] = input_profiles[ - "bus_2_connected" -].values +prosumer_dict["LaTreille"]["additional_model_logic"]["charger_1_enable"][ + "enable" +] = input_profiles["bus_1_connected"].values +prosumer_dict["LaTreille"]["additional_model_logic"]["charger_2_enable"][ + "enable" +] = input_profiles["bus_2_connected"].values prosumer_main = ProsumerMain(prosumer_dict, dynamic) diff --git a/examples/BusChargingHPC/HPC.json b/examples/BusChargingHPC/HPC.json index 5ec5410899..effc76c19d 100644 --- a/examples/BusChargingHPC/HPC.json +++ b/examples/BusChargingHPC/HPC.json @@ -15,70 +15,70 @@ "model": "depot_inverter.json", "min_capacity": 0, "max_capacity": 10, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "depot_inverter_2": { "type": "BiPowerElectronic", "model": "depot_inverter.json", "min_capacity": 0, "max_capacity": 10, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "HPC_1": { "type": "BiPowerElectronic", "model": "depot_inverter.json", "min_capacity": 0, "max_capacity": 5000, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "HPC_2": { "type": "BiPowerElectronic", "model": "depot_inverter.json", "min_capacity": 0, "max_capacity": 5000, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "HPC_3": { "type": "BiPowerElectronic", "model": "depot_inverter.json", "min_capacity": 0, "max_capacity": 5000, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "bus_1_battery": { "type": "LiionBattery", @@ -89,12 +89,12 @@ "sense": ">=", "value": [1.0, "first_soe"] }, - "additional_model_logic" : [ - { + "additional_model_logic": { + "input_penalty": { "type": "additional_operational_objective", "value": [0.2, "input_1"] } - ] + } }, "bus_1_consumption": { "type": "ElectricalConsumption" @@ -111,12 +111,12 @@ "sense": ">=", "value": [1.0, "first_soe"] }, - "additional_model_logic" : [ - { + "additional_model_logic": { + "input_penalty": { "type": "additional_operational_objective", "value": [0.2, "input_1"] } - ] + } }, "bus_2_consumption": { "type": "ElectricalConsumption" @@ -322,26 +322,26 @@ "planning_horizon": 20, "price_change_factor": 1.02, "interest_factor": 1.05, - "additional_model_logic": [ - { + "additional_model_logic": { + "battery_capacities": { "type": "EqualCapacity", "components": ["bus_1_battery", "bus_2_battery"] }, - { + "charging_capacities": { "type": "EqualCapacity", "components": ["depot_inverter_1", "depot_inverter_2"] }, - { + "charger_1_enable": { "type": "ConnectorEnable", "component": "depot_inverter_1", "connector": "output_1" }, - { + "charger_2_enable": { "type": "ConnectorEnable", "component": "depot_inverter_2", "connector": "output_1" }, - { + "HPC_1_bus_1_enable": { "type": "ConnectionEnable", "connections": [ { @@ -358,7 +358,7 @@ } ] }, - { + "HPC_1_bus_2_enable": { "type": "ConnectionEnable", "connections": [ { @@ -375,7 +375,7 @@ } ] }, - { + "HPC_2_bus_1_enable": { "type": "ConnectionEnable", "connections": [ { @@ -392,7 +392,7 @@ } ] }, - { + "HPC_2_bus_2_enable": { "type": "ConnectionEnable", "connections": [ { @@ -409,7 +409,7 @@ } ] }, - { + "HPC_3_bus_1_enable": { "type": "ConnectionEnable", "connections": [ { @@ -426,7 +426,7 @@ } ] }, - { + "HPC_3_bus_2_enable": { "type": "ConnectionEnable", "connections": [ { @@ -443,5 +443,5 @@ } ] } - ] + } } \ No newline at end of file diff --git a/examples/BusChargingHPC/runme.py b/examples/BusChargingHPC/runme.py index 4773ee5746..1636365ce2 100644 --- a/examples/BusChargingHPC/runme.py +++ b/examples/BusChargingHPC/runme.py @@ -65,30 +65,30 @@ prosumer_dict["LaTreille"]["components"]["bus_1_generation"][ prosumer_dict["LaTreille"]["components"]["bus_2_generation"][ "generation" ] = input_profiles["bus_2_recuperation"] -prosumer_dict["LaTreille"]["additional_model_logic"][2]["enable"] = input_profiles[ - "bus_1_connected" -].values.loc[:, "Connected to depot"] -prosumer_dict["LaTreille"]["additional_model_logic"][3]["enable"] = input_profiles[ - "bus_2_connected" -].values.loc[:, "Connected to depot"] -prosumer_dict["LaTreille"]["additional_model_logic"][4]["enable"] = input_profiles[ - "bus_1_connected" -].values.loc[:, "Connected to HPC 1"] -prosumer_dict["LaTreille"]["additional_model_logic"][5]["enable"] = input_profiles[ - "bus_1_connected" -].values.loc[:, "Connected to HPC 2"] -prosumer_dict["LaTreille"]["additional_model_logic"][6]["enable"] = input_profiles[ - "bus_1_connected" -].values.loc[:, "Connected to HPC 3"] -prosumer_dict["LaTreille"]["additional_model_logic"][7]["enable"] = input_profiles[ - "bus_2_connected" -].values.loc[:, "Connected to HPC 1"] -prosumer_dict["LaTreille"]["additional_model_logic"][8]["enable"] = input_profiles[ - "bus_2_connected" -].values.loc[:, "Connected to HPC 2"] -prosumer_dict["LaTreille"]["additional_model_logic"][9]["enable"] = input_profiles[ - "bus_2_connected" -].values.loc[:, "Connected to HPC 3"] +prosumer_dict["LaTreille"]["additional_model_logic"]["charger_1_enable"][ + "enable" +] = input_profiles["bus_1_connected"].values.loc[:, "Connected to depot"] +prosumer_dict["LaTreille"]["additional_model_logic"]["charger_2_enable"][ + "enable" +] = input_profiles["bus_2_connected"].values.loc[:, "Connected to depot"] +prosumer_dict["LaTreille"]["additional_model_logic"]["HPC_1_bus_1_enable"][ + "enable" +] = input_profiles["bus_1_connected"].values.loc[:, "Connected to HPC 1"] +prosumer_dict["LaTreille"]["additional_model_logic"]["HPC_1_bus_2_enable"][ + "enable" +] = input_profiles["bus_1_connected"].values.loc[:, "Connected to HPC 2"] +prosumer_dict["LaTreille"]["additional_model_logic"]["HPC_2_bus_1_enable"][ + "enable" +] = input_profiles["bus_1_connected"].values.loc[:, "Connected to HPC 3"] +prosumer_dict["LaTreille"]["additional_model_logic"]["HPC_2_bus_2_enable"][ + "enable" +] = input_profiles["bus_2_connected"].values.loc[:, "Connected to HPC 1"] +prosumer_dict["LaTreille"]["additional_model_logic"]["HPC_3_bus_1_enable"][ + "enable" +] = input_profiles["bus_2_connected"].values.loc[:, "Connected to HPC 2"] +prosumer_dict["LaTreille"]["additional_model_logic"]["HPC_3_bus_2_enable"][ + "enable" +] = input_profiles["bus_2_connected"].values.loc[:, "Connected to HPC 3"] prosumer_main = ProsumerMain(prosumer_dict, dynamic) diff --git a/examples/BusChargingIMC/IMC.json b/examples/BusChargingIMC/IMC.json index cee3627507..a28793f4c6 100644 --- a/examples/BusChargingIMC/IMC.json +++ b/examples/BusChargingIMC/IMC.json @@ -40,26 +40,26 @@ "sense": ">=", "value": [1.0, "first_soe"] }, - "additional_model_logic" : [ - { + "additional_model_logic": { + "input_penalty": { "type": "additional_operational_objective", "value": [0.2, "input_1"] } - ] + } }, "bus_1_motor_inverter": { "type": "PowerElectronic", "model": "motor_inverter.json", "min_capacity": 0, "max_capacity": 5000, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "bus_1_consumption": { "type": "ElectricalConsumption" @@ -85,26 +85,26 @@ "sense": ">=", "value": [1.0, "first_soe"] }, - "additional_model_logic" : [ - { + "additional_model_logic": { + "input_penalty": { "type": "additional_operational_objective", "value": [0.2, "input_1"] } - ] + } }, "bus_2_motor_inverter": { "type": "PowerElectronic", "model": "motor_inverter.json", "min_capacity": 0, "max_capacity": 5000, - "additional_model_logic": [ - { + "additional_model_logic": { + "ramp_penalty": { "type": "RampPenalty", "variable": "output_1", "variable_ub": "capacity", "objective_factor": 0.001 } - ] + } }, "bus_2_consumption": { "type": "ElectricalConsumption" @@ -262,16 +262,16 @@ "planning_horizon": 20, "price_change_factor": 1.02, "interest_factor": 1.05, - "additional_model_logic": [ - { + "additional_model_logic": { + "battery_capacities": { "type": "EqualCapacity", "components": ["bus_1_battery", "bus_2_battery"] }, - { + "charging_capacities": { "type": "EqualCapacity", "components": ["bus_1_converter", "bus_2_converter"] }, - { + "bus_1_connected": { "type": "ConnectionEnable", "connections": [ { @@ -288,7 +288,7 @@ } ] }, - { + "bus_2_connected": { "type": "ConnectionEnable", "connections": [ { @@ -305,13 +305,13 @@ } ] }, - { + "bus_1_moter_inverter_capacity": { "type": "FixedCapacity", "component": "bus_1_motor_inverter" }, - { + "bus_2_moter_inverter_capacity": { "type": "FixedCapacity", "component": "bus_1_motor_inverter" } - ] + } } \ No newline at end of file diff --git a/examples/BusChargingIMC/runme.py b/examples/BusChargingIMC/runme.py index 84e95446a8..e9b43ab89d 100644 --- a/examples/BusChargingIMC/runme.py +++ b/examples/BusChargingIMC/runme.py @@ -65,12 +65,12 @@ prosumer_dict["LaTreille"]["components"]["bus_1_generation"][ prosumer_dict["LaTreille"]["components"]["bus_2_generation"][ "generation" ] = input_profiles["bus_2_recuperation"] -prosumer_dict["LaTreille"]["additional_model_logic"][2]["enable"] = input_profiles[ - "bus_1_connected" -].values -prosumer_dict["LaTreille"]["additional_model_logic"][3]["enable"] = input_profiles[ - "bus_2_connected" -].values +prosumer_dict["LaTreille"]["additional_model_logic"]["bus_1_connected"][ + "enable" +] = input_profiles["bus_1_connected"].values +prosumer_dict["LaTreille"]["additional_model_logic"]["bus_2_connected"][ + "enable" +] = input_profiles["bus_2_connected"].values max_driving_consumpion = max( max(input_profiles["bus_1_demand"].values), max(input_profiles["bus_1_demand"].values), @@ -79,16 +79,16 @@ with open( prosumer_dict["LaTreille"]["components"]["bus_1_motor_inverter"]["model"] ) as f: inverter_1_efficiency = json.load(f)["efficiency"] -prosumer_dict["LaTreille"]["additional_model_logic"][4]["capacity"] = ( - max_driving_consumpion / inverter_1_efficiency -) +prosumer_dict["LaTreille"]["additional_model_logic"]["bus_1_moter_inverter_capacity"][ + "capacity" +] = (max_driving_consumpion / inverter_1_efficiency) with open( prosumer_dict["LaTreille"]["components"]["bus_2_motor_inverter"]["model"] ) as f: inverter_2_efficiency = json.load(f)["efficiency"] -prosumer_dict["LaTreille"]["additional_model_logic"][5]["capacity"] = ( - max_driving_consumpion / inverter_2_efficiency -) +prosumer_dict["LaTreille"]["additional_model_logic"]["bus_2_moter_inverter_capacity"][ + "capacity" +] = (max_driving_consumpion / inverter_2_efficiency) prosumer_main = ProsumerMain(prosumer_dict, dynamic) -- GitLab