Andrew Rosemberg
Julia Python C C++ C# Java VS Code Linux Mac Microsoft Zsh

HydroPowerModels.jl

GitHub Stars
DOI Documentation Build Status Coverage Paper

HydroPowerModels.jl is an open-source tool for Hydrothermal Multistage Steady-State Power Network Optimization solved by Stochastic Dual Dynamic Programming (SDDP).

It is designed to be a flexible and extensible framework for modeling and solving hydrothermal scheduling problems. It is currently under active development and is being used in research projects at LAMPS.

Built as a Julia/JuMP package, it allows users to explore network formulations from PowerModels.jl and solve the resulting optimization problems using SDDP.jl.


The complete mathematical formulation of the LTHDP in one stage, will be represented by the function Qt(νt1,ωt)=\mathcal{Q}_t(\nu_{t-1},\omega_t) =

min: xtiICit pit+nNCntδ δnt+E[Qt+1(νt,ωt+1)]s.t.: iInpit+jHnujt ρjtmNnf(n,m)tnt+=Dntδnt, nNνjt+ujt+sjt=νj,t1+Aj,t(ωt)+kHjUukt+kHjSskt, jHf(n,m)tF(n,m)t, f(m,n)tF(n,m)t (n,m)L0pitPit iI0νjtΥjt jH0ujtUjt jHnt0 nNδnt0 nNxtXt.\begin{aligned} \hspace{-1cm}\underset{\mathbf{x}_t}{\text{min: }} & \sum_{i \in \mathcal{I}} C_{it} \, p_{it} + \sum_{n \in \mathcal{N}} C^{\delta}_{nt} \, \delta_{nt} + \mathbb{E}[\mathcal{Q}_{t+1}(\nu_{t}, \omega_{t+1})] \\ % + \sum_{j \in \mathcal{H}} C^{s}_{jt} \, s_j \\ \text{s.t.: } & \\ & \sum_{\substack{i \in I_n}} p_{it} + \sum_{\substack{j \in \mathcal{H}_n}} u_{jt} \, \rho_{jt} -\sum_{\substack{m \in \mathcal{N}_n}} f_{(n,m)t} - \ell_{nt} + \\ & \qquad = D_{nt} - \delta_{nt}, \;\; \forall n\in \mathcal{N} \\ & \nu_{jt} + u_{jt} + s_{jt} = \nu_{j,t-1} + A_{j,t}(\omega_t) + \\ & \qquad \sum_{\substack{k \in \mathcal{H}^U_j}} u_{kt} + \sum_{\substack{k \in \mathcal{H}^{S}_j}} s_{kt}, \;\; \forall j \in \mathcal{H} \\ & |f_{(n,m)t}| \leq F_{(n,m)t},\; |f_{(m,n)t}| \leq F_{(n,m)t} \;\; \forall (n,m) \in \mathcal{L} \\ % & |f_{(m,n)t}| \leq F_{(n,m)t} \;\; \forall (n,m) \in \mathcal{L} \\ & 0 \leq p_{it} \leq P_{it} \;\; \forall i \in I \\ & 0 \leq \nu_{jt} \leq \Upsilon_{jt} \;\; \forall j \in \mathcal{H} \\ & 0 \leq u_{jt} \leq U_{jt} \;\; \forall j \in \mathcal{H} \\ %& \mathbf{x}_t \in \mathbf{Proj}_{\mathbf{x}_t} \left(\mathcal{X}_t \right). & \ell_{nt} \geq 0 \;\; \forall n \in \mathcal{N} \\ & \delta_{nt} \geq 0 \;\; \forall n \in \mathcal{N} \\ & \mathbf{x}_t \in \mathcal{X}_t. \end{aligned}
Image 1 Image 2

In particular, in my master's thesis, I used HydroPowerModels.jl to assess the impact of network model assumptions on the operation of hydrothermal power systems. Planning under model simplifications can lead to (time)-inconsistent policies when operating the realistic system. The suboptimal decisions often cause higher operational costs, over-consumption of natural resources and increased environmental impacts. A simple but representative example of the such impact is shown below for realistic data from the Bolivian system.

PolicyPlanning Cost (10610^6)Implementation Cost (10610^6)Cost GAP (%)Time (min.)
NFA-AC0.586870.6873517.0674.67
SOC-AC0.608180.609350.193119.23
DC-AC0.587140.645239.8555.22
DCLL-AC0.613100.60941-0.60254.33

Linearizations of the power flow equations such as those in the Network-Flow Approximation (NFA) and the Direct-Current (DC) models are commonly used in the literature and in practice by system operators. However, these models can lead to drastically suboptimal decisions (with hight implementation cost) and optimistic estimations of the operational costs (a.k.a planning cost). The gap from expected to actual costs can be as high as 17% for the NFA model.

The results of this work were published in IEEE Transactions on Sustainable Energy and presented at INFORMS and PES General Meeting.

OptimalBids.jl

GitHub Stars
Documentation (Stable) Documentation (Dev) Coverage Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

OptimalBids.jl is a Julia package to help users build simple simulators for markets (with pontentially complicated rules). It is designed to be a flexible and extensible framework for modeling and solving market clearing problems.

Significant use cases are electricity markets. Complex and dynamic, the price of electricity is determined by grid physics besides the usual interaction of supply and demand.

Bellow is a small comparison example of bidding strategies for a generator in a spot market based on IEEE-188 system. Even with complete information of what other participants will offer and the demand bids placed by load (demand) agents, maximizing the profit of the generator is not a simple task.

optbids

City Image

CC BY-SA 4.0 Andrew Rosemberg. Last modified: October 11, 2023. Website built with Franklin.jl and the Julia programming language.