Supplement A - Mathematical Formulation

3.1 Modelling Approach

scope

3.2 Mathematical Formulation

  • Decision variables, parameter..

3.3 Objective function

Objective Function

The objective is to minimize the total discounted system cost, which includes generation, storage, and transmission costs, while subtracting the discounted salvage values at the end of the planning horizon:

\min \; Z =
\sum_{y \in \text{year}}
\left[
    \sum_{r \in \text{regions}}
    \left(
        \sum_{t \in \text{technologies}}
        \frac{\text{TotalCost}_{y,r,t}}{(1+\text{DiscountRate})^{(y - \min(\text{year}))}}
        +
        \sum_{s \in \text{storages}}
        \frac{\text{TotalStorageCost}_{y,r,s}}{(1+\text{DiscountRate})^{(y - \min(\text{year}))}}
    \right)
    +
    \sum_{l \in \text{links}}
    \frac{\text{TotalTransmissionCost}_{y,l}}{(1+\text{DiscountRate})^{(y - \min(\text{year}))}}
\right]

-
\sum_{y \in \text{year}}
\left[
    \sum_{r \in \text{regions}}
    \left(
        \sum_{t \in \text{technologies}}
        \frac{\text{SalvageValue}_{y,r,t}}{(1+\text{DiscountRate})^{(y - \min(\text{year}))}}
        +
        \sum_{s \in \text{storages}}
        \frac{\text{StorageSalvageValue}_{y,r,s}}{(1+\text{DiscountRate})^{(y - \min(\text{year}))}}
    \right)
    +
    \sum_{l \in \text{links}}
    \frac{\text{TransmissionSalvageValue}_{y,l}}{(1+\text{DiscountRate})^{(y - \min(\text{year}))}}
\right]

where:

  • y = planning year

  • r = region

  • t = generation technology

  • s = storage technology

  • l = transmission link

  • \text{DiscountRate} = annual discount rate

This objective function ensures that all future costs are discounted to their present value, and that salvage values from remaining asset life are properly subtracted to obtain the net present system cost.


Model implementation in Julia:

@objective(ESM, Min,
      sum(TotalCost[y,r,t]/ (1+DiscountRate)^(y - minimum(year)) for t in technologies for r in regions, y in year)
    + sum(TotalStorageCost[y,r,s]/ (1+DiscountRate)^(y - minimum(year)) for s in storages for r in regions, y in year)
    + sum(TotalTransmissionCost[y,l] / (1+DiscountRate)^(y - minimum(year)) for l in links, y in year)
    - sum(SalvageValue[y, r, t] / (1+DiscountRate)^(y - minimum(year)) for t in technologies for r in regions, y in year)
    - sum(StorageSalvageValue[y, r, s] / (1+DiscountRate)^(y - minimum(year)) for s in storages for r in regions, y in yea

3.4 Constraints

Generation must meet demand

\sum_{t \in T} FuelProductionByTechnology_{y,r,h,t,f}
+ \sum_{s \in S} StorageDischarge_{y,r,s,h,f}
+ \sum_{rr \in R} Import_{y,r,rr,h,f}

=
Demand_{y,r,f} \cdot DemandProfile_{r,h,f}
+ \sum_{t \in T} FuelUseByTechnology_{y,r,h,t,f}
+ Curtailment_{y,r,h,f}
+ \sum_{s \in S} StorageCharge_{y,r,s,h,f}
+ \sum_{rr \in R} Export_{y,r,rr,h,f}

Calculate the total cost

\left( \sum_{f \in F} \sum_{h \in H} FuelProductionByTechnology_{y,r,h,t,f} \right)
\cdot VariableCost_{y,t} \cdot YearlyDifferenceMultiplier_{y}
+ NewCapacity_{y,r,t} \cdot InvestmentCost_{y,t}
=
TotalCost_{y,r,t}

Salvage value (zero and positive cases)

SalvageValue_{y,r,t} =
\begin{cases}
   0, & \text{si } y + OperationalLife_t - 1 \leq \max(Y) \\[6pt]
   NewCapacity_{y,r,t} \cdot InvestmentCost_{y,t}
   \cdot \left(1 - \dfrac{\max(Y) - y + 1}{OperationalLife_t}\right),
   & \text{si } y + OperationalLife_t - 1 > \max(Y)
\end{cases}

Dispatchable production limited by installed capacity

FuelProductionByTechnology_{y,r,h,t,f}
\leq OutputRatio_{t,f} \cdot AccumulatedCapacity_{y,r,t} \cdot CapacityFactor_{r,h,t}

Variable renewables (must equal maximum output)

FuelProductionByTechnology_{y,r,h,t,f}
= OutputRatio_{t,f} \cdot AccumulatedCapacity_{y,r,t} \cdot CapacityFactor_{r,h,t}

Use function

FuelUseByTechnology_{y,r,h,t,f}
= InputRatio_{t,f} \cdot \sum_{ff \in F} FuelProductionByTechnology_{y,r,h,t,ff}

Technology emissions

\sum_{f \in F} \sum_{h \in H} FuelProductionByTechnology_{y,r,h,t,f} \cdot EmissionRatio_{t}
= AnnualTechnologyEmissions_{y,r,t}

Annual emissions limit

\sum_{t \in T} \sum_{r \in R} AnnualTechnologyEmissions_{y,r,t}
\leq AnnualEmissionLimit_{y}

Max installed capacity

AccumulatedCapacity_{y,r,t} \leq MaxCapacity_{y,r,t}

Capacity accounting

\sum_{\substack{yy \in Y \\ yy \leq y, \; yy + OperationalLife_t > y}} NewCapacity_{yy,r,t}
+ ResidualCapacity_{y,r,t}
= AccumulatedCapacity_{y,r,t}

Storage constraints

  1. Charge limit

StorageCharge_{y,r,s,h,f} \leq \frac{AccumulatedStorageEnergyCapacity_{y,r,s,f}}{E2PRatio_s}

  1. Discharge limit

StorageDischarge_{y,r,s,h,f} \leq \frac{AccumulatedStorageEnergyCapacity_{y,r,s,f}}{E2PRatio_s}

  1. Storage balance (h>1)

StorageLevel_{y,r,s,h,f}
=
StorageLevel_{y,r,s,h-1,f} \cdot StorageLosses_{s,f}
+ StorageCharge_{y,r,s,h,f} \cdot StorageChargeEfficiency_{s,f}
- \frac{StorageDischarge_{y,r,s,h,f}}{StorageDischargeEfficiency_{s,f}}

  1. Storage start (h=1)

StorageLevel_{y,r,s,1,f}
=
0.5 \cdot AccumulatedStorageEnergyCapacity_{y,r,s,f} \cdot StorageLosses_{s,f}
+ StorageCharge_{y,r,s,1,f} \cdot StorageChargeEfficiency_{s,f}
- \frac{StorageDischarge_{y,r,s,1,f}}{StorageDischargeEfficiency_{s,f}}

  1. Max storage level

StorageLevel_{y,r,s,h,f} \leq AccumulatedStorageEnergyCapacity_{y,r,s,f}

  1. Annual balance

StorageLevel_{y,r,s,n\_hour,f} = 0.5 \cdot AccumulatedStorageEnergyCapacity_{y,r,s,f}

  1. Storage cost

TotalStorageCost_{y,r,s} = \sum_{f \in F} NewStorageEnergyCapacity_{y,r,s,f} \cdot InvestmentCostStorage_{y,s}

  1. Max storage capacity limit

\sum_{f \in F} AccumulatedStorageEnergyCapacity_{y,r,s,f} \leq MaxStorageCapacity_{y,r,s}

  1. Storage capacity accounting

\sum_{\substack{yy \in Y \\ yy \leq y}} NewStorageEnergyCapacity_{yy,r,s,f}
= AccumulatedStorageEnergyCapacity_{y,r,s,f}

  1. Storage salvage value

StorageSalvageValue_{y,r,s} =
\begin{cases}
   0, & \text{si } y + StorageOperationalLife_s - 1 \leq \max(Y) \\[6pt]
   InvestmentCostStorage_{y,s} \cdot
   \left(1 - \dfrac{\max(Y) - y + 1}{StorageOperationalLife_s}\right),
   & \text{si } y + StorageOperationalLife_s - 1 > \max(Y)
\end{cases}

  1. Trade constraints

  1. Import-export balance

Import_{y,r,rr,h,f}
=
Export_{y,rr,r,h,f} \cdot (1 - TradeLossFactor_f \cdot TradeDistance_{r,rr})

  1. Max import capacity

Import_{y,r,rr,h,f} \leq MaxTradeCapacity_{y,r,rr,f}

  1. Total emission limit (model horizon)

\sum_{y \in Y} \sum_{r \in R} \sum_{t \in T} \sum_{f \in F} \sum_{h \in H}
FuelProductionByTechnology_{y,r,h,t,f} \cdot EmissionRatio_t \cdot YearlyDifferenceMultiplier_y
\leq ModelPeriodEmissionLimit