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]](_images/math/afc15fa3b5fbe5591f590a4613b9ac064abe26cd.png)
where:
= planning year
= region
= generation technology
= storage technology
= transmission link
= 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

Calculate the total cost

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}](_images/math/77d75b13e4429a3104b321fb29f9ed7b7c4ce761.png)
Dispatchable production limited by installed capacity

Variable renewables (must equal maximum output)

Use function

Technology emissions

Annual emissions limit

Max installed capacity

Capacity accounting

Storage constraints
Charge limit

Discharge limit

Storage balance (h>1)

Storage start (h=1)

Max storage level

Annual balance

Storage cost

Max storage capacity limit

Storage capacity accounting

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}](_images/math/bcb75a91df4ad7fc12598726168e88edff16d0eb.png)
Trade constraints
Import-export balance

Max import capacity

Total emission limit (model horizon)
