Mathematical Formulation

Here we present the mathematical formulation of the optimization problem solved by the openTEPES model. See also some TEP-related publications:

  • E.F. Alvarez, L. Olmos, A. Ramos, K. Antoniadou-Plytaria, D. Steen, and L.A. Tuan “Values and Impacts of Incorporating Local Flexibility Services in Transmission Expansion Planning” Electric Power Systems Research 212, July 2022. 10.1016/j.epsr.2022.108480

  • A. Ramos, E. Quispe, S. Lumbreras “OpenTEPES: Open-source Transmission and Generation Expansion PlanningSoftwareX 18: June 2022. 10.1016/j.softx.2022.101070

    1. Lumbreras, H. Abdi, A. Ramos, and M. Moradi “Introduction: The Key Role of the Transmission Network” in the book S. Lumbreras, H. Abdi, A. Ramos (eds.) “Transmission Expansion Planning: The Network Challenges of the Energy Transition” Springer, 2020 ISBN 9783030494278 10.1007/978-3-030-49428-5_1

    1. Lumbreras, F. Banez-Chicharro, A. Ramos “Optimal Transmission Expansion Planning in Real-Sized Power Systems with High Renewable Penetration” Electric Power Systems Research 49, 76-88, Aug 2017 10.1016/j.epsr.2017.04.020

    1. Lumbreras, A. Ramos “The new challenges to transmission expansion planning. Survey of recent practice and literature review” Electric Power Systems Research 134: 19-29, May 2016 10.1016/j.epsr.2015.10.013

    1. Ploussard, L. Olmos and A. Ramos “A search space reduction method for transmission expansion planning using an iterative refinement of the DC Load Flow model” IEEE Transactions on Power Systems 35 (1): 152-162, Jan 2020 10.1109/TPWRS.2019.2930719

    1. Ploussard, L. Olmos and A. Ramos “An efficient network reduction method for transmission expansion planning using multicut problem and Kron” reduction IEEE Transactions on Power Systems 33 (6): 6120-6130, Nov 2018 10.1109/TPWRS.2018.2842301

    1. Ploussard, L. Olmos and A. Ramos “An operational state aggregation technique for transmission expansion planning based on line benefits” IEEE Transactions on Power Systems 32 (4): 2744-2755, Oct 2017 10.1109/TPWRS.2016.2614368

Indices

\(p\)

Period (e.g., year)

\(\omega\)

Scenario

\(n\)

Load level (e.g., hour)

\(g\)

Generator (thermal or hydro unit or energy storage system)

\(t\)

Thermal unit

\(e\)

Energy Storage System (ESS)

\(h\)

Hydro or pumped-storage hydro power plant (associated to a reservoir modeled in water units)

\(e',e''\)

Reservoir (modeled in water units, natural inflows in m3/s and volume in hm3)

\(h \in up(e')\)

Hydro or pumped-storage hydro power plant \(h\) upstream of reservoir \(e'\)

\(h \in dw(e')\)

Hydro or pumped-storage hydro power plant \(h\) downstream of reservoir \(e'\)

\(e'' \in up(e')\)

Reservoir \(e''\) upstream of reservoir \(e'\)

\(i, j\)

Node

\(z\)

Zone. Each node belongs to a zone \(i \in z\)

\(a\)

Area. Each zone belongs to an area \(z \in a\)

\(r\)

Region. Each area belongs to a region \(a \in r\)

\(c\)

Circuit

\(ijc\)

Line (initial node, final node, circuit)

\(EG, CG\)

Set of existing and candidate generators

\(EE, CE\)

Set of existing and candidate ESS

\(ER, CR\)

Set of existing and candidate reservoirs

\(EL, CL\)

Set of existing and non-switchable, and candidate and switchable lines

\(EP, CP\)

Set of existing and candidate pipelines

Parameters

They are written in uppercase letters.

General

\(T\)

Base period (year)

year

\(\nu\)

Time step. Duration of the load levels (e.g., 2 h, 3 h)

\(\delta\)

Annual discount rate

p.u.

\(WG^p\)

Period (year) weight

p.u.

\(DF^p\)

Discount factor for each period (year)

p.u.

Electricity demand

\(D^p_{\omega ni}\)

Electricity demand in each node

GW

\(PD_{pa}\)

Peak demand in each area

GW

\(DUR_n\)

Duration of each load level

h

\(CENS\)

Cost of energy not served. Value of Lost Load (VoLL)

€/MWh

Hydrogen demand

\(DH^p_{\omega ni}\)

Hydrogen demand in each node

tH2

\(CHNS\)

Cost of hydrogen not served

€/tH2

Heat demand

\(DHt^p_{\omega ni}\)

Heat demand in each node

Tcal/h

\(CHtNS\)

Cost of heat not served

€/Gcal

Scenarios

\(P^p_{\omega}\)

Probability of each scenario in each period

p.u.

Operating reserves

\(URA, DRA\)

Upward and downward reserve activation

p.u.

\(\underline{DtUR}, \overline{DtUR}\)

Minimum and maximum ratios downward to upward operating reserves

p.u.

\(UR^p_{\omega na}, DR^p_{\omega na}\)

Upward and downward operating reserves for each area

GW

Adequacy system reserve margin

\(RM_{pa}\)

Minimum adequacy system reserve margin for each period and area

p.u.

Maximum CO2 emission

\(EL_{pa}\)

Maximum CO2 emission for each period, scenario, and area

MtCO2

Minimum RES energy

\(RL_{pa}\)

Minimum RES energy for each period, scenario, and area

GWh

System inertia

\(SI^p_{\omega na}\)

System inertia for each area

s

Generation system

\(CFG_g\)

Annualized fixed cost of a candidate generator

M€/yr

\(CFR_g\)

Annualized fixed cost of a candidate generator to be retired

M€/yr

\(A_g\)

Availability of each generator for adequacy reserve margin

p.u.

\(\underline{GP}_g, \overline{GP}_g\)

Rated minimum load and maximum output of a generator

GW

\(\underline{GP}^p_{\omega ng}, \overline{GP}^p_{\omega ng}\)

Minimum load and maximum output of a generator

GW

\(\underline{GC}^p_{\omega ne}, \overline{GC}^p_{\omega ne}\)

Minimum and maximum consumption of an ESS

GW

\(CF^p_{\omega ng}, CV^p_{\omega ng}\)

Fixed (no load) and variable cost of a generator. Variable cost includes fuel and O&M

€/h, €/MWh

\(CE^p_{\omega ng}\)

Emission cost of a generator

€/MWh

\(ER_g\)

Emission rate of a generator

tCO2/MWh

\(CV_e\)

Variable cost of an ESS or pumped-storage hydro power plant when charging

€/MWh

\(RU_g, RD_g\)

Ramp up/down of a non-renewable unit or maximum discharge/charge rate for ESS discharge/charge

MW/h

\(TU_t, TD_t\)

Minimum uptime and downtime of a thermal unit

h

\(ST_e\)

Maximum shift time of an ESS unit (in particular, for demand side management)

h

\(CSU_g, CSD_g\)

Startup and shutdown cost of a committed unit

M€

\(\tau_e\)

Storage cycle of the ESS (e.g., 1, 24, 168, 8736 h -for daily, weekly, monthly, yearly-)

h

\(\rho_e\)

Outflow cycle of the ESS (e.g., 1, 24, 168, 8736 h -for hourly, daily, weekly, monthly, yearly-)

h

\(\sigma_g\)

Energy cycle of the unit (e.g., 24, 168, 672, 8736 h -for daily, weekly, monthly, yearly-)

h

\(GI_g\)

Generator inertia

s

\(EF_e\)

Round-trip efficiency of the pump/turbine cycle of a pumped-storage hydro power plant or charge/discharge of a battery

p.u.

\(PF_h\)

Production function from water inflows to energy

kWh/m3

\(PF'_h\)

Production function from energy to hydrogen

kWh/kgH2`

\(PF''_h\)

Production function from energy to heat

kWh/Mcal`

\(\underline{I}^p_{\omega ne}, \overline{I}^p_{\omega ne}\)

Minimum and maximum capacity of an ESS (e.g., hydro power plant, closed-/open-loop pumped-storage hydro)

GWh

\(\underline{E}^p_{\omega ne}, \overline{E}^p_{\omega ne}\)

Minimum and maximum energy produced by a unit in an interval defined

GW

\(EI^p_{\omega ne}\)

Energy inflows of an ESS (e.g., hydro power plant)

GW

\(EO^p_{\omega ne}\)

Energy outflows of an ESS (e.g., hydrogen, electric vehicle, hydro power plant, demand response)

GW

Hydro system

\(CFE_{e'}\)

Annualized fixed cost of a candidate reservoir

M€/yr

\(\underline{I'}^p_{\omega ne'}, \overline{I'}^p_{\omega ne'}\)

Minimum and maximum volume of a reservoir

hm3

\(HI^p_{\omega ne'}\)

Natural hydro inflows of a reservoir

m3/s

\(HO^p_{\omega ne'}\)

Hydro outflows of a reservoir (e.g., irrigation)

m3/s

Electric transmission system

\(CFT_{ijc}\)

Annualized fixed cost of a candidate electric transmission line

M€/yr

\(\overline{F}_{ijc}\)

Net transfer capacity (total transfer capacity multiplied by the security coefficient) of a transmission line

GW

\(\overline{F}'_{ijc}\)

Maximum flow used in the Kirchhoff’s 2nd law constraint (e.g., disjunctive constraint for the candidate AC lines)

GW

\(L_{ijc}, X_{ijc}\)

Loss factor and reactance of a transmission line

p.u.

\(SON_{ijc}, SOF_{ijc}\)

Minimum switch-on and switch-off state of a line

h

\(S_B\)

Base power

GW

The net transfer capacity of a transmission line can be different in each direction. However, here it is presented as equal for simplicity.

Hydrogen transmission system

\(CFH_{ijc}\)

Annualized fixed cost of a candidate transmission pipeline

M€/yr

\(\overline{FH}_{ijc}\)

Net transfer capacity (total transfer capacity multiplied by the security coefficient) of a pipeline

tH2

Heat transmission system

\(CFP_{ijc}\)

Annualized fixed cost of a candidate heat pipe

M€/yr

\(\overline{FP}_{ijc}\)

Net transfer capacity (total transfer capacity multiplied by the security coefficient) of a heat pipe

Tcal/h

The net transfer capacity of a transmission pipeline can be different in each direction. However, here it is presented as equal for simplicity.

Variables

They are written in lowercase letters.

Electric demand

\(ens^p_{\omega ni}\)

Energy not served

GW

Hydrogen demand

\(hns^p_{\omega ni}\)

Hydrogen not served

GW

Heat demand

\(htns^p_{\omega ni}\)

Heat not served

GW

Generation system

\(icg^p_g\)

Candidate generator or ESS installed or not

{0,1}

\(rcg^p_g\)

Candidate generator or ESS retired or not

{0,1}

\(gp^p_{\omega ng}, gc^p_{\omega ng}\)

Generator output (discharge if an ESS) and consumption (charge if an ESS)

GW

\(go^p_{\omega ne}\)

Generator outflows of an ESS

GW

\(p^p_{\omega ng}\)

Generator output of the second block (i.e., above the minimum load)

GW

\(c^p_{\omega ne}\)

Generator charge

GW

\(ur^p_{\omega ng}, dr^p_{\omega ng}\)

Upward and downward operating reserves of a non-renewable generating unit

GW

\(ur'^p_{\omega ne}, dr'^p_{\omega ne}\)

Upward and downward operating reserves of an ESS as a consumption unit

GW

\(ei^p_{\omega ne}\)

Variable energy inflows of a candidate ESS (e.g., hydro power plant)

GW

\(i^p_{\omega ne}\)

ESS stored energy (inventory, reservoir energy, state of charge)

GWh

\(s^p_{\omega ne}\)

ESS spilled energy

GWh

\(uc^p_{\omega ng}, su^p_{\omega ng}, sd^p_{\omega ng}\)

Commitment, startup and shutdown of generation unit per load level

{0,1}

\(uc'_g\)

Maximum commitment of a generation unit for all the load levels

{0,1}

Hydro system

\(icr^p_{e'}\)

Candidate reservoir installed or not

{0,1}

\(hi^p_{\omega ne'}\)

Variable hydro inflows of a candidate reservoir (e.g., hydro power plant)

m3/s

\(ho^p_{\omega ne'}\)

Hydro outflows of a reservoir

m3/s

\(i'^p_{\omega ne'}\)

Reservoir volume

hm3

\(s'^p_{\omega ne'}\)

Reservoir spilled water

hm3

Electric transmission system

\(ict^p_{ijc}\)

Candidate line installed or not

{0,1}

\(swt^p_{\omega nijc}, son^p_{\omega nijc}, sof^p_{\omega nijc}\)

Switching state, switch-on and switch-off of a line

{0,1}

\(f^p_{\omega nijc}\)

Power flow through a line

GW

\(l^p_{\omega nijc}\)

Half ohmic losses of a line

GW

\(\theta^p_{\omega ni}\)

Voltage angle of a node

rad

Hydrogen pipeline transmission system

\(ich^p_{ijc}\)

Candidate pipeline installed or not

{0,1}

\(fh^p_{\omega nijc}\)

Hydrogen flow through a line

tH2

Heat pipe transmission system

\(icp^p_{ijc}\)

Candidate heat pipe installed or not

{0,1}

\(fp^p_{\omega nijc}\)

Heat flow through a line

Tcal/h

Equations

The names between parenthesis correspond to the names of the constraints in the code.

Objective function: minimization of total (investment and operation) cost for the multi-period scope of the model

Generation, (energy and reservoir) storage and (electric, hydrogen, and heat) network investment cost plus retirement cost [M€] «eTotalFCost»

\(\sum_{pg} DF^p CFG_g icg^p_g + \sum_{pg} DF^p CFR_g rcg^p_g + \sum_{pijc} DF^p CFT_{ijc} ict^p_{ijc} + \sum_{pijc} DF^p CFH_{ijc} ich^p_{ijc} + \sum_{pijc} DF^p CFP_{ijc} icp^p_{ijc} + \sum_{pe'} DF^p CFE_{e'} icr^p_{e'} +\)

Generation operation cost [M€] «eTotalGCost»

\(\sum_{p \omega ng} {[DF^p P^p_{\omega} DUR_n (CV^p_{\omega ng} gp^p_{\omega ng} + CF^p_{\omega ng} uc^p_{\omega ng}) + DF^p CSU_g su^p_{\omega ng} + DF^p CSD_g sd^p_{\omega ng}]} +\)

Generation emission cost [M€] «eTotalECost»

\(\sum_{p \omega ng} {DF^p P^p_{\omega} DUR_n CE^p_{\omega ng} gp^p_{\omega ng}} +\)

Variable consumption operation cost [M€] «eTotalCCost»

\(\sum_{p \omega ne}{DF^p P^p_{\omega} DUR_n CV_e gc^p_{\omega ne}} +\)

Electricity, hydrogen, and heat reliability cost [M€] «eTotalRCost»

\(\sum_{p \omega ni}{DF^p P^p_{\omega} DUR_n CENS ens^p_{\omega ni}} + \sum_{p \omega ni}{DF^p P^p_{\omega} DUR_n CHNS hns^p_{\omega ni}} `\sum_{p \omega ni}{DF^p P^p_{\omega} DUR_n CHtNS htns^p_{\omega ni}}\)

All the periodical (annual) costs of a period \(p\) are updated considering that the period (e.g., 2030) is replicated for a number of years defined by its weight \(WG^p\) (e.g., 5 times) and discounted to the base year \(T\) (e.g., 2020) with this discount factor \(DF^p = \frac{(1+\delta)^{WG^p}-1}{\delta(1+\delta)^{WG^p-1+p-T}}\).

Constraints

Generation and network investment and retirement

Investment and retirement decisions in consecutive years «eConsecutiveGenInvest» «eConsecutiveGenRetire» «eConsecutiveRsrInvest» «eConsecutiveNetInvest» «eConsecutiveNetH2Invest»

\(icg^{p-1}_g \leq icg^p_g \quad \forall pg, g \in CG\)

\(rcg^{p-1}_g \leq rcg^p_g \quad \forall pg, g \in CG\)

\(icr^{p-1}_{e'} \leq icr^p_{e'} \quad \forall pe', e' \in CR\)

\(ict^{p-1}_{ijc} \leq ict^p_{ijc} \quad \forall pijc, ijc \in CL\)

\(ich^{p-1}_{ijc} \leq ich^p_{ijc} \quad \forall pijc, ijc \in CH\)

\(icp^{p-1}_{ijc} \leq icp^p_{ijc} \quad \forall pijc, ijc \in CP\)

Generation operation

Commitment decision bounded by the investment decision for candidate committed units (all except the VRE units) [p.u.] «eInstalGenComm»

\(uc^p_{\omega ng} \leq icg^p_g \quad \forall p \omega ng, g \in CG\)

Commitment decision bounded by the investment decision for candidate ESS [p.u.] «eInstalESSComm»

\(uc^p_{\omega ne} \leq icg^p_e \quad \forall p \omega ne, e \in CE\)

Output and consumption bounded by investment decision for candidate ESS [p.u.] «eInstalGenCap» «eInstalConESS»

\(\frac{gp^p_{\omega ne}}{\overline{GP}^p_{\omega ne}} \leq icg^p_e \quad \forall p \omega ne, e \in CE\)

\(\frac{gc^p_{\omega ne}}{\overline{GP}^p_{\omega ne}} \leq icg^p_e \quad \forall p \omega ne, e \in CE\)

Adequacy system reserve margin [p.u.] «eAdequacyReserveMargin»

\(\sum_{g \in a, EG} \overline{GP}_g A_g + \sum_{g \in a, CG} icg^p_g \overline{GP}_g A_g \geq PD_{pa} RM_{pa} \quad \forall pa\)

Maximum CO2 emission [MtC02] «eMaxSystemEmission»

\(\sum_{ng} {DUR_n CE^p_{\omega ng} gp^p_{\omega ng}} \leq EL_{pa} \quad \forall p \omega a\)

Minimum RES energy [GW] «eMinSystemRESEnergy»

\(\frac{\sum_{ng} {DUR_n gp^p_{\omega ng}}}{\sum_{n} {DUR_n}} \geq \frac{RL_{pa}}{\sum_{n} {DUR_n}} \quad \forall p \omega a\)

Balance of electric generation and demand at each node with ohmic losses [GW] «eBalance»

\(\sum_{g \in i} gp^p_{\omega ng} - \sum_{e \in i} gc^p_{\omega ne} + ens^p_{\omega ni} = D^p_{\omega ni} + \sum_{jc} l^p_{\omega nijc} + \sum_{jc} l^p_{\omega njic} + \sum_{jc} f^p_{\omega nijc} - \sum_{jc} f^p_{\omega njic} \quad \forall p \omega ni\)

The sum of the inertia of the committed units must satisfy the system inertia for each area [s] «eSystemInertia»

\(\sum_{g \in a} GI_g uc^p_{\omega ng} \geq SI^p_{\omega na} \quad \forall p \omega na\)

Upward and downward operating reserves provided by non-renewable generators, and ESS when charging for each area [GW] «eOperReserveUp» «eOperReserveDw»

\(\sum_{g \in a} ur^p_{\omega ng} + \sum_{e \in a} ur'^p_{\omega ne} = UR^p_{\omega na} \quad \forall p \omega na\)

\(\sum_{g \in a} dr^p_{\omega ng} + \sum_{e \in a} dr'^p_{\omega ne} = DR^p_{\omega na} \quad \forall p \omega na\)

Ratio between downward and upward operating reserves provided by non-renewable generators, and ESS when charging for each area [GW] «eReserveMinRatioDwUp» «eReserveMaxRatioDwUp» «eRsrvMinRatioDwUpESS» «eRsrvMaxRatioDwUpESS»

\(\underline{DtUR} \: ur^p_{\omega ng} \leq dr^p_{\omega ng} \leq \overline{DtUR} \: ur^p_{\omega ng} \quad \forall p \omega ng\)

\(\underline{DtUR} \: ur'^p_{\omega ne} \leq dr'^p_{\omega ne} \leq \overline{DtUR} \: ur'^p_{\omega ne} \quad \forall p \omega ne\)

VRES units (i.e., those with linear variable cost equal to 0 and no storage capacity) do not contribute to the the operating reserves.

Operating reserves from ESS can only be provided if enough energy is available for producing [GW] «eReserveUpIfEnergy» «eReserveDwIfEnergy»

\(ur^p_{\omega ne} \leq \frac{ i^p_{\omega ne}}{DUR_n} \quad \forall p \omega ne\)

\(dr^p_{\omega ne} \leq \frac{\overline{I}^p_{\omega ne} - i^p_{\omega ne}}{DUR_n} \quad \forall p \omega ne\)

or for storing [GW] «eESSReserveUpIfEnergy» «eESSReserveDwIfEnergy»

\(ur'^p_{\omega ne} \leq \frac{\overline{I}^p_{\omega ne} - i^p_{\omega ne}}{DUR_n} \quad \forall p \omega ne\)

\(dr'^p_{\omega ne} \leq \frac{ i^p_{\omega ne}}{DUR_n} \quad \forall p \omega ne\)

Maximum and minimum relative inventory of ESS candidates (only for load levels multiple of 1, 24, 168, 8736 h depending on the ESS storage type) constrained by the ESS commitment decision times the maximum capacity [p.u.] «eMaxInventory2Comm» «eMinInventory2Comm»

\(\frac{i^p_{\omega ne}}{\overline{I}^p_{\omega ne}} \leq uc^p_{\omega ne} \quad \forall p \omega ne, e \in CE\)

\(\frac{i^p_{\omega ne}}{\underline{I}^p_{\omega ne}} \geq uc^p_{\omega ne} \quad \forall p \omega ne, e \in CE\)

Energy inflows of ESS candidates (only for load levels multiple of 1, 24, 168, 8736 h depending on the ESS storage type) constrained by the ESS commitment decision times the inflows data [p.u.] «eInflows2Comm»

\(\frac{ei^p_{\omega ne}}{EI^p_{\omega ne}} \leq uc^p_{\omega ne} \quad \forall p \omega ne, e \in CE\)

ESS energy inventory (only for load levels multiple of 1, 24, 168 h depending on the ESS storage type) [GWh] «eESSInventory»

\(i^p_{\omega,n-\frac{\tau_e}{\nu},e} + \sum_{n' = n-\frac{\tau_e}{\nu}}^n DUR_n' (EI^p_{\omega n'e} - go^p_{\omega n'e} - gp^p_{\omega n'e} + EF_e gc^p_{\omega n'e}) = i^p_{\omega ne} + s^p_{\omega ne} \quad \forall p \omega ne, e \in EE\)

\(i^p_{\omega,n-\frac{\tau_e}{\nu},e} + \sum_{n' = n-\frac{\tau_e}{\nu}}^n DUR_n' (ei^p_{\omega n'e} - go^p_{\omega n'e} - gp^p_{\omega n'e} + EF_e gc^p_{\omega n'e}) = i^p_{\omega ne} + s^p_{\omega ne} \quad \forall p \omega ne, e \in CE\)

The initial inventory of the ESS candidates divided by their initial storage \(I^p_{\omega,0,e}\) (given in the input data) is fixed to the commitment decision [p.u.] «eIniInventory».

\(\frac{i^p_{\omega,0,e}}{I^p_{\omega,0,e}} = uc^p_{\omega ne} \quad \forall p \omega ne, e \in CE\)

Maximum shift time of stored energy [GWh]. It is thought to be applied to demand side management «eMaxShiftTime»

\(DUR_n EF_e gc^p_{\omega ne} \leq \sum_{n' = n+1}^{n+\frac{ST_e}{\nu}} DUR_n' gp^p_{\omega n'e} \quad \forall p \omega ne\)

ESS outflows (only for load levels multiple of 1, 24, 168, 672, and 8736 h depending on the ESS outflow cycle) must be satisfied [GWh] «eEnergyOutflows»

\(\sum_{n' = n-\frac{\tau_e}{\rho_e}}^n (go^p_{\omega n'e} - EO^p_{\omega n'e}) DUR_n' = 0 \quad \forall p \omega ne, n \in \rho_e\)

Maximum and minimum energy production (only for load levels multiple of 24, 168, 672, 8736 h depending on the unit energy type) must be satisfied [GWh] «eMaximumEnergy» «eMinimumEnergy»

\(\sum_{n' = n-\sigma_g}^n (gp^p_{\omega n'g} - \overline{E}^p_{\omega n'g}) DUR_n' \leq 0 \quad \forall p \omega ng, n \in \sigma_g\)

\(\sum_{n' = n-\sigma_g}^n (gp^p_{\omega n'g} - \underline{E}^p_{\omega n'g}) DUR_n' \geq 0 \quad \forall p \omega ng, n \in \sigma_g\)

Maximum and minimum output of the second block of a committed unit (all except the VRES units) [p.u.] «eMaxOutput2ndBlock» «eMinOutput2ndBlock»

  • D.A. Tejada-Arango, S. Lumbreras, P. Sánchez-Martín, and A. Ramos “Which Unit-Commitment Formulation is Best? A Systematic Comparison” IEEE Transactions on Power Systems 35 (4): 2926-2936, Jul 2020 10.1109/TPWRS.2019.2962024

    1. Gentile, G. Morales-España, and A. Ramos “A tight MIP formulation of the unit commitment problem with start-up and shut-down constraints” EURO Journal on Computational Optimization 5 (1), 177-201, Mar 2017. 10.1007/s13675-016-0066-y

    1. Morales-España, A. Ramos, and J. Garcia-Gonzalez “An MIP Formulation for Joint Market-Clearing of Energy and Reserves Based on Ramp Scheduling” IEEE Transactions on Power Systems 29 (1): 476-488, Jan 2014. 10.1109/TPWRS.2013.2259601

    1. Morales-España, J.M. Latorre, and A. Ramos “Tight and Compact MILP Formulation for the Thermal Unit Commitment Problem” IEEE Transactions on Power Systems 28 (4): 4897-4908, Nov 2013. 10.1109/TPWRS.2013.2251373

\(\frac{p^p_{\omega ng} + ur^p_{\omega ng}}{\overline{GP}^p_{\omega ng} - \underline{GP}^p_{\omega ng}} \leq uc^p_{\omega ng} - su^p_{\omega ng} - sd^p_{\omega,n+\nu,g} \quad \forall p \omega ng\)

\(p^p_{\omega ng} - dr^p_{\omega ng} \geq 0 \quad \forall p \omega ng\)

Maximum and minimum charge of an ESS [p.u.] «eMaxCharge» «eMinCharge»

\(\frac{c^p_{\omega ne} + dr'^p_{\omega ne}}{\overline{GC}^p_{\omega ne} - \underline{GC}^p_{\omega ne}} \leq 1 \quad \forall p \omega ne\)

\(c^p_{\omega ne} - ur'^p_{\omega ne} \geq 0 \quad \forall p \omega ne\)

Incompatibility between charge and discharge of an ESS [p.u.] «eChargeDischarge»

\(\frac{p^p_{\omega ne} + URA \: ur'^p_{\omega ne}}{\overline{GP}^p_{\omega ne} - \underline{GP}^p_{\omega ne}} + \frac{c^p_{\omega ne} + DRA \: dr'^p_{\omega ne}}{\overline{GC}^p_{\omega ne} - \underline{GC}^p_{\omega ne}} \leq 1 \quad \forall p \omega ne, e \in EE, CE\)

Total output of a committed unit (all except the VRES units) [GW] «eTotalOutput»

\(\frac{gp^p_{\omega ng}}{\underline{GP}^p_{\omega ng}} = uc^p_{\omega ng} + \frac{p^p_{\omega ng} + URA \: ur^p_{\omega ng} - DRA \: dr^p_{\omega ng}}{\underline{GP}^p_{\omega ng}} \quad \forall p \omega ng\)

Total charge of an ESS [GW] «eESSTotalCharge»

\(\frac{gc^p_{\omega ne}}{\underline{GC}^p_{\omega ne}} = 1 + \frac{c^p_{\omega ne} + URA \: ur'^p_{\omega ne} - DRA \: dr'^p_{\omega ne}}{\underline{GC}^p_{\omega ne}} \quad \forall p \omega ne, e \in EE, CE\)

Incompatibility between charge and outflows use of an ESS [p.u.] «eChargeOutflows»

\(\frac{go^p_{\omega ne} + c^p_{\omega ne}}{\overline{GC}^p_{\omega ne} - \underline{GC}^p_{\omega ne}} \leq 1 \quad \forall p \omega ne, e \in EE, CE\)

Logical relation between commitment, startup and shutdown status of a committed unit (all except the VRES units) [p.u.] «eUCStrShut»

\(uc^p_{\omega ng} - uc^p_{\omega,n-\nu,g} = su^p_{\omega ng} - sd^p_{\omega ng} \quad \forall p \omega ng\)

Maximum commitment of a committable unit (all except the VRES units) [p.u.] «eMaxCommitment»

\(uc^p_{\omega ng} \leq uc'_g \quad \forall p \omega ng\)

Maximum commitment of any unit [p.u.] «eMaxCommitGen»

\(\sum_{p \omega n} \frac{gp^p_{\omega ng}}{\overline{GP}_g} \leq uc'_g \quad \forall p \omega ng\)

Mutually exclusive \(g\) and \(g'\) units (e.g., thermal, ESS, VRES units) [p.u.] «eExclusiveGens»

\(uc'_g + uc'_{g'} \leq 1 \quad \forall g, g'\)

Initial commitment of the units is determined by the model based on the merit order loading, including the VRES and ESS units.

Maximum ramp up and ramp down for the second block of a non-renewable (thermal, hydro) unit [p.u.] «eRampUp» «eRampDw»

    1. Damcı-Kurt, S. Küçükyavuz, D. Rajan, and A. Atamtürk, “A polyhedral study of production ramping,” Math. Program., vol. 158, no. 1–2, pp. 175–205, Jul. 2016. 10.1007/s10107-015-0919-9

\(\frac{- p^p_{\omega,n-\nu,g} - dr^p_{\omega,n-\nu,g} + p^p_{\omega ng} + ur^p_{\omega ng}}{DUR_n RU_g} \leq uc^p_{\omega ng} - su^p_{\omega ng} \quad \forall p \omega ng\)

\(\frac{- p^p_{\omega,n-\nu,g} + ur^p_{\omega,n-\nu,g} + p^p_{\omega ng} - dr^p_{\omega ng}}{DUR_n RD_g} \geq - uc^p_{\omega,n-\nu,g} + sd^p_{\omega ng} \quad \forall p \omega ng\)

Maximum ramp down and ramp up for the charge of an ESS [p.u.] «eRampUpCharge» «eRampDwCharge»

\(\frac{- c^p_{\omega,n-\nu,e} - ur^p_{\omega,n-\nu,e} + c^p_{\omega ne} + dr^p_{\omega ne}}{DUR_n RD_e} \leq 1 \quad \forall p \omega ne\)

\(\frac{- c^p_{\omega,n-\nu,e} + dr^p_{\omega,n-\nu,e} + c^p_{\omega ne} - ur^p_{\omega ne}}{DUR_n RU_e} \geq - 1 \quad \forall p \omega ne\)

Minimum up time and down time of thermal unit [h] «eMinUpTime» «eMinDownTime»

\(\sum_{n'=n+\nu-TU_t}^n su^p_{\omega n't} \leq uc^p_{\omega nt} \quad \forall p \omega nt\)

\(\sum_{n'=n+\nu-TD_t}^n sd^p_{\omega n't} \leq 1 - uc^p_{\omega nt} \quad \forall p \omega nt\)

Reservoir operation

Maximum and minimum relative volume of reservoir candidates (only for load levels multiple of 1, 24, 168, 8736 h depending on the reservoir volume type) constrained by the hydro commitment decision times the maximum capacity [p.u.] «eMaxVolume2Comm» «eMinVolume2Comm»

\(\frac{i'^p_{\omega ne'}}{\overline{I'}^p_{\omega ne'}} \leq \sum_{h \in dw(e')} uc^p_{\omega nh} \quad \forall p \omega ne', e' \in CR\)

\(\frac{i'^p_{\omega ne'}}{\underline{I'}^p_{\omega ne'}} \geq \sum_{h \in dw(e')} uc^p_{\omega nh} \quad \forall p \omega ne', e' \in CR\)

Operating reserves from a hydro power plant can only be provided if enough energy is available for turbining at the upstream reservoir [GW] «eTrbReserveUpIfEnergy» «eTrbReserveDwIfEnergy»

\(ur^p_{\omega nh} \leq \frac{\sum_{e' \in up(h)} i'^p_{\omega ne'}}{DUR_n} \quad \forall p \omega nh\)

\(dr^p_{\omega nh} \leq \frac{\sum_{e' \in up(h)} \overline{I'}^p_{\omega ne'} - i'^p_{\omega ne'}}{DUR_n} \quad \forall p \omega nh\)

or for pumping [GW] «ePmpReserveUpIfEnergy» «ePmpReserveDwIfEnergy»

\(ur'^p_{\omega nh} \leq \frac{\sum_{e' \in up(h)} \overline{I'}^p_{\omega ne'} - i'^p_{\omega ne'}}{DUR_n} \quad \forall p \omega nh\)

\(dr'^p_{\omega nh} \leq \frac{\sum_{e' \in up(h)} i'^p_{\omega ne'}}{DUR_n} \quad \forall p \omega nh\)

Water volume for each hydro reservoir (only for load levels multiple of 1, 24, 168 h depending on the reservoir storage type) [hm3] «eHydroInventory»

\(i'^p_{\omega,n-\frac{\tau_e'}{\nu},e'} + \sum_{n' = n-\frac{\tau_e'}{\nu}}^n DUR_n' (0.0036 HI^p_{\omega n'e'} - 0.0036 ho^p_{\omega n'e'} - \sum_{h \in dw(e')} gp^p_{\omega n'h} / PF_h + \sum_{h \in up(e')} gp^p_{\omega n'h} / PF_h +\) \(+ \sum_{h \in up(e')} EF_e' gc^p_{\omega n'h} / PF_h - \sum_{h \in dw(h)} EF_e' gc^p_{\omega n'h} / PF_h) = i'^p_{\omega ne'} + s'^p_{\omega ne'} - \sum_{e'' \in up(e')} s'^p_{\omega ne''} \quad \forall p \omega ne', e' \in ER\)

\(i'^p_{\omega,n-\frac{\tau_e'}{\nu},e'} + \sum_{n' = n-\frac{\tau_e'}{\nu}}^n DUR_n' (0.0036 hi^p_{\omega n'e'} - 0.0036 ho^p_{\omega n'e'} - \sum_{h \in dw(e')} gp^p_{\omega n'h} / PF_h + \sum_{h \in up(e')} gp^p_{\omega n'h} / PF_h +\) \(+ \sum_{h \in up(e')} EF_e' gc^p_{\omega n'h} / PF_h - \sum_{h \in dw(h)} EF_e' gc^p_{\omega n'h} / PF_h) = i'^p_{\omega ne'} + s'^p_{\omega ne'} - \sum_{e'' \in up(e')} s'^p_{\omega ne''} \quad \forall p \omega ne', e' \in CR\)

Hydro outflows (only for load levels multiple of 1, 24, 168, 672, and 8736 h depending on the ESS outflow cycle) must be satisfied [m3/s] «eHydroOutflows»

\(\sum_{n' = n-\frac{\tau_e'}{\rho_e'}}^n (ho^p_{\omega n'e'} - HO^p_{\omega n'e'}) DUR_n' = 0 \quad \forall p \omega ne', n \in \rho_e'\)

Electric network operation

Logical relation between transmission investment and switching {0,1} «eLineStateCand»

\(swt^p_{\omega nijc} \leq ict^p_{ijc} \quad \forall p \omega nijc, ijc \in CL\)

Logical relation between switching state, switch-on and switch-off status of a line [p.u.] «eSWOnOff»

\(swt^p_{\omega nijc} - swt^p_{\omega,n-\nu,ijc} = son^p_{\omega nijc} - sof^p_{\omega nijc} \quad \forall p \omega nijc\)

The initial status of the lines is pre-defined as switched on.

Minimum switch-on and switch-off state of a line [h] «eMinSwOnState» «eMinSwOffState»

\(\sum_{n'=n+\nu-SON_{ijc}}^n son^p_{\omega n'ijc} \leq swt^p_{\omega nijc} \quad \forall p \omega nijc\)

\(\sum_{n'=n+\nu-SOF_{ijc}}^n sof^p_{\omega n'ijc} \leq 1 - swt^p_{\omega nijc} \quad \forall p \omega nijc\)

Flow limit in transmission lines [p.u.] «eNetCapacity1» «eNetCapacity2»

\(- swt^p_{\omega nijc} \leq \frac{f^p_{\omega nijc}}{\overline{F}_{ijc}} \leq swt^p_{\omega nijc} \quad \forall p \omega nijc\)

DC Power flow for existing and non-switchable, and candidate and switchable AC-type lines (Kirchhoff’s second law) [rad] «eKirchhoff2ndLaw1» «eKirchhoff2ndLaw2»

\(\frac{f^p_{\omega nijc}}{\overline{F}'_{ijc}} - (\theta^p_{\omega ni} - \theta^p_{\omega nj})\frac{S_B}{X_{ijc}\overline{F}'_{ijc}} = 0 \quad \forall p \omega nijc, ijc \in EL\)

\(-1+swt^p_{\omega nijc} \leq \frac{f^p_{\omega nijc}}{\overline{F}'_{ijc}} - (\theta^p_{\omega ni} - \theta^p_{\omega nj})\frac{S_B}{X_{ijc}\overline{F}'_{ijc}} \leq 1-swt^p_{\omega nijc} \quad \forall p \omega nijc, ijc \in CL\)

Half ohmic losses are linearly approximated as a function of the flow [GW] «eLineLosses1» «eLineLosses2»

\(- \frac{L_{ijc}}{2} f^p_{\omega nijc} \leq l^p_{\omega nijc} \geq \frac{L_{ijc}}{2} f^p_{\omega nijc} \quad \forall p \omega nijc\)

Hydrogen network operation

Balance of hydrogen generation and demand at each node [tH2] «eBalanceH2»

\(\sum_{e \in i} \frac{DUR_n}{PF'_e} gc^p_{\omega ne} + hns^p_{\omega ni} = DUR_n DH^p_{\omega ni} + \sum_{jc} fh^p_{\omega nijc} - \sum_{jc} fh^p_{\omega njic} \quad \forall p \omega ni\)

Heat network operation

Balance of heat generation and demand at each node [Tcal/h] «eBalanceHeat»

\(\sum_{e \in i} \frac{DUR_n}{PF''_e} gc^p_{\omega ne} + htns^p_{\omega ni} = DUR_n DF^p_{\omega ni} + \sum_{jc} fp^p_{\omega nijc} - \sum_{jc} fp^p_{\omega njic} \quad \forall p \omega ni\)

Bounds on generation and ESS variables [GW]

\(0 \leq gp^p_{\omega ng} \leq \overline{GP}^p_{\omega ng} \quad \forall p \omega ng\)

\(0 \leq go^p_{\omega ne} \leq \max(\overline{GP}^p_{\omega ne},\overline{GC}^p_{\omega ne}) \quad \forall p \omega ne\)

\(0 \leq gc^p_{\omega ne} \leq \overline{GC}^p_{\omega ne} \quad \forall p \omega ne\)

\(0 \leq ur^p_{\omega ng} \leq \overline{GP}^p_{\omega ng} - \underline{GP}^p_{\omega ng} \quad \forall p \omega ng\)

\(0 \leq ur'^p_{\omega ne} \leq \overline{GC}^p_{\omega ne} - \underline{GC}^p_{\omega ne} \quad \forall p \omega ne\)

\(0 \leq dr^p_{\omega ng} \leq \overline{GP}^p_{\omega ng} - \underline{GP}^p_{\omega ng} \quad \forall p \omega ng\)

\(0 \leq dr'^p_{\omega ne} \leq \overline{GC}^p_{\omega ne} - \underline{GC}^p_{\omega ne} \quad \forall p \omega ne\)

\(0 \leq p^p_{\omega ng} \leq \overline{GP}^p_{\omega ng} - \underline{GP}^p_{\omega ng} \quad \forall p \omega ng\)

\(0 \leq c^p_{\omega ne} \leq \overline{GC}^p_{\omega ne} \quad \forall p \omega ne\)

\(\underline{I}^p_{\omega ne} \leq i^p_{\omega ne} \leq \overline{I}^p_{\omega ne} \quad \forall p \omega ne\)

\(0 \leq s^p_{\omega ne} \quad \forall p \omega ne\)

\(0 \leq ens^p_{\omega ni} \leq D^p_{\omega ni} \quad \forall p \omega ni\)

Bounds on reservoir variables [m3/s, hm3]

\(0 \leq ho^p_{\omega ne'} \leq \sum_{h \in dw(e')} \overline{GP}^p_{\omega nh} / PF_h \quad \forall p \omega ne'\)

\(\underline{I'}^p_{\omega ne'} \leq i'^p_{\omega ne'} \leq \overline{I'}^p_{\omega ne'} \quad \forall p \omega ne'\)

\(0 \leq s'^p_{\omega ne'} \quad \forall p \omega ne'\)

Bounds on electric network variables [GW]

\(0 \leq l^p_{\omega nijc} \leq \frac{L_{ijc}}{2} \overline{F}_{ijc} \quad \forall p \omega nijc\)

\(- \overline{F}_{ijc} \leq f^p_{\omega nijc} \leq \overline{F}_{ijc} \quad \forall p \omega nijc, ijc \in EL\)

Voltage angle of the reference node fixed to 0 for each scenario, period, and load level [rad]

\(\theta^p_{\omega n,node_{ref}} = 0\)

Bounds on hydrogen network variables [tH2]

\(- \overline{FH}_{ijc} \leq fh^p_{\omega nijc} \leq \overline{FH}_{ijc} \quad \forall p \omega nijc, ijc \in EP\)

Bounds on heat network variables [Tcal/h]

\(- \overline{FP}_{ijc} \leq fp^p_{\omega nijc} \leq \overline{FP}_{ijc} \quad \forall p \omega nijc, ijc \in EP\)