diff --git a/src/gems/input_converter/data/model_configuration/p2g_asservi.yml b/src/gems/input_converter/data/model_configuration/p2g_asservi.yml new file mode 100644 index 00000000..f787f78f --- /dev/null +++ b/src/gems/input_converter/data/model_configuration/p2g_asservi.yml @@ -0,0 +1,88 @@ +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +# Configuration file to convert a complex modelling artefact in an Antares study into an Andromede model. +# Description of the observed elements in BP25_AREF +# area z_P2G_asservi: UNSP = €4,000, +# load that is time- and scenario-dependent (pay attention to scenario group) +# thermal cluster z_p2g_asservi_asservi (no availability variation, no cost variation) +# linj {area}/z_P2G_asservi: no hurdle costs, +# time- and scenario-dependent direct capacity (pay attention to scenario group), indirect capacity = 0 + + +template: + name: p2g_asservi + generator-version-compatibility: X.Y #TODO: find this information + model: andromede_v1_models.dsr2 + template-parameters: + - name: area + description: "Area identifier for the P2G_asservi component" + # exclude: + + component: + id: p2g_asservi_${area} + #TO DO :scenario-group = ... ? + parameters: + - id: max_load + time-dependent: true + scenario-dependent: true + value: + object-properties: + type: link + link: ${area} / z_P2G_asservi + field: capacity_direct + - id: min_load + time-dependent: false + scenario-dependent: false + value: 0.0 + + - id: curtailment_cost + time-dependent: false + scenario-dependent: false + value: + object-properties: + type: thermal + area: z_P2G_asservi + cluster: z_p2g_asservi_asservi + field: marginal_cost + + - id: load_hurdle_cost + time-dependent: true + scenario-dependent: false + value: + object-properties: + type: link + link: ${area} / z_P2G_asservi + field: links_parameters + column: 0 + + # For full modeler mode + connections: + - component1: p2g_asservi_${area} + port1: balance_port + component2: ${area} + port2: balance_port + + # For hybrid mode + area-connections: + - component: p2g_asservi_${area} + port: balance_port + area: ${area} + + legacy-objects-to-delete: + - id: virtual_nodes + object-properties: + type: area + area: z_P2G_asservi + - id: virtual_links + object-properties: + type: link + link: ${area} / z_P2G_asservi diff --git a/src/gems/input_converter/data/model_configuration/p2g_base.yml b/src/gems/input_converter/data/model_configuration/p2g_base.yml new file mode 100644 index 00000000..a6f55620 --- /dev/null +++ b/src/gems/input_converter/data/model_configuration/p2g_base.yml @@ -0,0 +1,104 @@ +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +# Configuration file to convert a complex modelling artefact in an Antares study into an Andromede model. + +# Description of the observed elements in BP25_AREF +# z_P2G_base: UNSP = 4000 €/MWh, spillage cost = 0 €/MWh, +# load with a time series (scenario-independent), 1 cluster "z_p2g_base_base" +# Links: {area}/z_P2G_base. Hurdle cost = 0.1 in both directions, +# direct capacity (time series, scenario-independent), no indirect capacity +# Binding constraint: P2G_fatal_band_{area}. Hourly constraints, +# lower bound on the flow on the aforementioned link (time series, scenario-independent) +# For information, factor 2 between the two bounds. + +# Object to create: one P2G base object per area, +# which consumes between the lower and upper bounds. +# If consumption is not at the upper bound, a proportional shedding cost applies + + +template: + name: p2g_base + generator-version-compatibility: X.Y #TODO: find this information + model: andromede_v1_models.dsr2 #DSR model, number 2 -> includes a parameter "min_load" + template-parameters: + - name: area + description: "Area identifier for the P2G_base component" + # exclude: + + component: + id: p2g_base_${area} + parameters: + - id: max_load + time-dependent: true + scenario-dependent: false + value: + object-properties: + type: link + link: ${area} / z_p2g_base + field: capacity_direct + column: 0 + - id: min_load + time-dependent: true + scenario-dependent: false + value: + object-properties: + type: binding_constraint + binding-constraint-id: P2G_fatalband_{area} + field: gt #TODO : check this syntax. What I mean here is the constant term of the binding-constraint, which is a "greater than" constraint here + #Readable in : \input\bindingconstraints\p2g_fatalband_{area}_gt.txt + column: 0 + - id: curtailment_cost + time-dependent: false + scenario-dependent: false + value: + object-properties: + type: thermal + area: z_P2G_base + cluster: z_p2g_base_base + field: marginal_cost + - id: load_hurdle_cost + time-dependent: true + scenario-dependent: false + value: + object-properties: + type: link + link: ${area} / z_p2g_base + field: links_parameters + column: 0 + + + # For full modeler mode + connections: + - component1: p2g_base_${area} + port1: balance_port + component2: ${area} + port2: balance_port + + # For hybrid mode + area-connections: + - component: p2g_base_${area} + port: balance_port + area: ${area} + + legacy-objects-to-delete: + - id: virtual_nodes + object-properties: + type: area + area: z_P2G_base + - id: virtual_links + object-properties: + type: link + link: ${area} / z_P2G_base + - id: virtual_binding_constraint + object-properties: + type: binding_constraint + binding-constraint-id: P2G_fatalband_{area} diff --git a/src/gems/libs/reference_models/andromede_v1_models.yml b/src/gems/libs/reference_models/andromede_v1_models.yml index 293f8c9e..7f73a945 100644 --- a/src/gems/libs/reference_models/andromede_v1_models.yml +++ b/src/gems/libs/reference_models/andromede_v1_models.yml @@ -40,8 +40,34 @@ library: - port: balance_port field: flow definition: -max_load + curtailment - - + + - id: dsr2 + parameters: + - id: min_load + time-dependent: true + scenario-dependent: true + - id: max_load + time-dependent: true + scenario-dependent: true + - id: curtailment_price + time-dependent: false + scenario-dependent: false + - id: load_hurdle_cost # This parameter should be 0 in most of the cases. It is just added here to take into account the hurdle costs in the fivtive "p2g_base" links in the BP25 modelling + time-dependent: true + scenario-dependent: false + variables: + - id: curtailment + lower-bound: 0 + upper-bound: max_load-min_load + objective: expec(sum(curtailment * (curtailment_price - load_hurdle_cost) + load_hurdle_cost*max_load)) + ports: + - id: balance_port + type: flow + port-field-definitions: + - port: balance_port + field: flow + definition: -max_load + curtailment + - id: electrolyser parameters: - id: efficiency