This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Long-term Hydrothermal Bid-based Market Simulator

Joaquim Dias Garcia\scalerel —{}^{\href https://orcid.org/0000-0002-7721-8564}, Alexandre Street\scalerel —{}^{\href https://orcid.org/0000-0003-1569-030X}, Mario Veiga Pereira Joaquim Dias Garcia ([email protected]) is with PSR and LAMPS at PUC-Rio. Alexandre Street ([email protected]) is with LAMPS at PUC-Rio. Mario Veiga Pereira ([email protected]) is with PSR. The authors thank PSR’s team for contributing with ideas, software, data, and infrastructure. Joaquim Dias Garcia was partially supported by the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Brasil (CAPES) - Finance Code 001. Alexandre Street was also partially supported by FAPERJ and CNPq. The work was partially funded by the project P&D ANEEL PD-00403-0050/2020, sponsored by ENGIE BRASIL ENERGIA S.A.
Abstract

Simulating long-term hydrothermal bid-based markets considering strategic agents is a challenging task. The representation of strategic agents considering intertemporal constraints within a stochastic framework brings additional complexity to the already difficult single-period bilevel, thus, non-convex, optimal bidding problem. Thus, we propose a simulation methodology that effectively addresses these challenges for large-scale hydrothermal power systems. We demonstrate the effectiveness of the framework through a case study with real data from the large-scale Brazilian power system. In the case studies, we show the effects of market concentration in power systems and how contracts can be used to mitigate them. In particular, we show how market power might affect the current setting in Brazil. The developed method can strongly benefit policymakers, market monitors, and market designers as simulations can be used to understand existing power systems and experiment with alternative designs.

Index Terms:
Power System Simulation, Strategic Bidding, SDDP, Hydrothermal dispatch, Brazil, Contracts, Market Power.

Nomenclature

Sets and Indices

II

Set of agents indexed by ii.

IiI_{-i}

Set of agents excluding agent ii.

IMI^{M}

Set of price-maker agents, indexed by ii.

ITI^{T}

Set of price-taker agents, indexed by ii.

JGJ^{G}

Set of thermal plants indexed by jj.

JHJ^{H}

Set of hydro plants indexed by jj.

JLJ^{L}

Set of lags of autoregressive model, indexed by ll.

JRJ^{R}

Set of renewable plants indexed by jj.

JU(j)J^{U}(j)

Set of hydro plants upstream plant jj, indexed by yy.

JVJ^{V}

Set of vertices (points) representing a convex hull.

SS

Set of sampled scenario indices, indexed by ss.

TT

Set of time indices, indexed by tt.

JiJ_{i}

Subset of a set JJ with the indices of elements that belong to agent ii.

Subscripts related to stage, tt, and scenario, ss, will be omitted for simplicity when they are not essential for the reader’s understanding of sampling and chronological relations.

Constants

𝒜\mathcal{A}

Vector of inflows of all hydros for all stages and sampled scenarios.

CjC_{j}

Operating cost of thermal jj.

EjQ{E}^{Q}_{j}

Energy quantity for an element jj of a convex hull.

EjR{E}^{R}_{j}

Revenue for an element jj of a convex hull.

GjG_{j}

Maximum generation of thermal jj.

PiP_{i}

Price offer of agent ii.

𝒫\mathcal{P}

Vector price offer of all agents for all stages and sampled scenarios.

PFP^{F}

Forward contract price.

QiQ_{i}

Quantity offer of agent ii.

𝒬\mathcal{Q}

Vector of quantity offer of all agents for all stages and sampled scenarios.

QFQ^{F}

Forward contract quantity.

R~j(ω)\tilde{R}_{j}(\omega)

Maximum generation of renewable kk at scenario ω\omega.

\mathcal{R}

Vector of maximum generation of all renewables for all stages and sampled scenarios.

UjU_{j}

Maximum flow through turbine of hydro jj.

VjV_{j}

Maximum storage of hydro jj.

ε~it(ω)\tilde{\varepsilon}_{i}^{t}(\omega)

Inflow noise coefficient of hydro jj, stage tt and scenario ω\omega.

ϕj,l\phi_{j,l}

Inflow autoregressive coefficient of hydro jj, lag ll.

π\pi

Spot price.

Π\mathit{\Pi}

Vector of spot prices for all stages and sampled scenarios.

\mathcal{M}

Vector of transition probabilities matrices, for all stages.

Indexing vectors in calligraphic (𝒫,𝒬\mathcal{P},\mathcal{Q}) by ii stands for the vector where elements belong to agent ii and by i-i stands for the vector where elements belong to all agents except ii.

Optimization Variables

ajta_{j}^{t}

Inflow at hydro jj, stage tt. a[t]a^{[t]} stands for the vector of all inflows before stage tt.

a[t]\textbf{a}^{[t]}

Vector of inflows at all hydros, for all stages before stage tt.

ee

Energy offer.

gjg_{j}

Generation of thermal jj.

qq

Bid quantity accepted in a dispatch.

rjr_{j}

Generation of renewable jj.

uju_{j}

Turbine flow at hydro jj.

vjtv_{j}^{t}

Storage at hydro jj, at the beginning of stage tt, and at the end of stage t1t-1.

vt\textbf{v}^{t}

Vector of storage at all hydros, at the beginning of stage tt, and the end of stage t1t-1.

zjz_{j}

Spill flow at hydro jj.

λj\lambda_{j}

Convex hull value for vertex jj.

Indexing vectors in bold (a,v\textbf{a},\textbf{v}) by ii stands for the sub-vector where elements belong to agent ii.

Functions and Functionals

𝔼ω[]\mathbb{E}_{\omega}[\cdot]

Expected value over the random variable ω\omega.

B~(,)\tilde{B}(\cdot,\cdot)

Future cost as a function of states and uncertainty.

Λ~(,)\tilde{\Lambda}(\cdot,\cdot)

Revenue as a function of energy, ee and scenario ω\omega.

ρ()\rho(\cdot)

Hydro generation as a function of turbine flow. It can also be a function of volume.

|||\cdot|

Cardinality of a set.

I Introduction

Hydro power is one of the most widely used energy sources around the globe, the most used renewable energy source responsible for over four thousand TWh per year according to the International Energy Agency [1]. Many countries rely on hydro plants for a meaningful share of their generation, but some countries have hydropower as their main energy source, for instance, Brazil, New Zealand, Colombia, and Norway.

Many countries were initially centrally operated in a cost-based market design. In this market design, the water values and the dispatch of all units are centrally calculated based on audited costs by the system operator. This cost-based market is still the case in the Brazilian, Chilean, Mexican, Vietnamese, and South Korean power markets, to mention a few.

The changes in the regulation of power systems in the last decades have led to liberalized bid-based power markets, including the hydrothermal ones [2]. Norway, Colombia, New Zealand, and many other countries have implemented this market design change. In the Brazilian case, since the 2000 crisis, many waves of proposals for changing from an audited cost to a bid-based market design have been made starting with the power sector revitalization committee [3]. More recently, in 2017, a public call for contributions named CP33 was made in this country with the leadership of the system planner (EPE) [4], and guidelines for market reforms were established. The study of a bid-based market design in Brazil constitutes one of the key aspects of the new guidelines. This led to a working group in 2019 [5] conducted by the market operator (CCEE), with the participation of the power system operator (ONS), the system planner (EPE) and the energy ministry (MME). Finally, there is an ongoing discussion around a law project from 2021 [6] that includes a market liberalization pathway.

The complexity in assessing the potential of market power abuse within the large-scale setting of the Brazilian system with realistic data has always constituted a barrier to further discussion (see [7] for more details). The main difficulty is the simulation of hydrothermal bid-based markets that combines the challenge of assessing the opportunity costs of water and the interactions among players in a uniform-price-based system. The bidding problem for hydrothermal power systems was reviewed in [8], which contrasts techniques required in two main dimensions: 1) the need to represent hydro plants as opposed to the purely thermal case; 2) the representation (or not) of strategic agents that can manipulate markets.

The operation of systems with large penetration of hydropower is very challenging due to the need to model long time horizons and random variables. The first challenge is due to hydro reservoirs, which are long-duration energy storage devices that create a strong time coupling in the problem because water can be used for cheap generation or saved for future use. Saving too much water might lead to spillages, while excessive usage might lead to energy deficits. The second challenge is due to the uncertainty of inflows and renewable generation (such as solar and wind). These two aspects give rise to an opportunity cost of using the water today, known as the water value. Multi-stage stochastic Optimization (MSO) is the most used framework to handle this type of problem, and the key algorithm is Stochastic Dual Dynamic Programming, SDDP [9], initially motivated by the optimal operation of the centralized hydrothermal systems.

On the other hand, the interaction between agents in a market requires simulation tools from Game Theory [10]. Modeling a single agent capable of market power involves the usage of Stackelberg Games modeled through a Bilevel Optimization [11] that is a powerful framework but leads to non-convex optimization problems. The interaction of multiple agents leads to even more complex models that usually rely on Nash Equilibrium on top of the previous Stackelberg Games [12, 13].

Due to all this complexity, previous research has focused on simplifying parts of the problem to simulate systems. Multi-agent hydrothermal markets were simulated through equilibrium modeling in the work [14] that applied Equilibrium Problems with Equilibrium Constraints (EPEC) but only considered 7 stages. EPECs were also used in [15] that modeled one year of operation by was limited to 4 scenarios, while [16] considers two stages and ten scenarios, [17] considers four stages and 20 scenarios, [18] considers 24 stages and one scenario. The early works [19] and [20] apply variations of Dynamic Programming (DP) to consider more stages and scenarios but require simple models of each stage that have analytical solutions. [21] and [22] also employ DP, but in a deterministic equilibrium case study with few stages, while [23] used a modified DP in a case study with 15 scenarios. SDDP was first used in this setting to model a single strategic agent where the remainder of the market is purely thermal was developed in the seminal work [24] and subsequently by [25, 26].

As per the previously reported works, simulating multiple agents in a realistic hydrothermal bid-based market is exceptionally challenging. To that end, one must handle multiple decision-making stages under uncertainty and the interplay of various agents, leading to non-convexities. Consequently, most works strongly limit the number of stages, agents, or scenarios. Although some of the above methods can handle all these features, in theory, the simulations are done in small problems, preventing us from deriving relevant practical studies of real large hydrothermal power systems, such as the Brazilian one.

Therefore, the main contributions of this work are:

  • Developing a methodology that can handle, at the same time, multiple stages, agents, and uncertainty scenarios to enable realistic studies on large hydrothermal power systems. Such methodology will be based on solving multi-stage stochastic strategic bidding problems for each strategic agent, while the coupling between agents is achieved by an iterative procedure based on diagonalization. Although SDDP and Game Theory were previously applied in this area, the uncertainty modeling of unknown bids from competing agents and an effective simulator based on the diagonalization method are novel.

  • Simulating and analyzing the competition of multiple price-maker agents in the large-scale Brazilian power system with real data. In this sense, we provide new numerical studies and insights that may help in current discussions on possible changes toward a bid-based market in Brazil. Within this context, we also derive quantitative results on how agents’ market share and forward involvement can mitigate market power abuse.

The remainder of this work is organized as follows: Section II presents important fundamentals that will be necessary for the following sections. Section III introduces basic notation describing a centralized model for hydrothermal power systems. Section IV describes the optimization of a single price-maker agent and highlights how to incorporate contracts. Section V details an algorithm to combine the above models to simulate long-term hydrothermal bid-based markets in the presence of multiple strategic agents. Section VI presents case studies to test the proposed algorithm. Section VII presents the simulation of a real case of the Brazilian power system. Finally, Section VIII exposes the main conclusions.

II Methodological background

II-A Electricity markets

Electricity markets are usually divided into two main groups: centralized markets (also known as cost-based) and liberalized markets (also known as bid-based). In the following, we present two figures to help contrast these two designs. Other market designs are possible [7], and some systems might mix the two (to some extent), like Brazil, which is cost-based but allows for flexible demand bids (small compared to the total load).

II-A1 Centralized cost-based markets

Their structure and information scheme are depicted in Figure 1. In this design, agents have their costs, cc, available capacity, GG, and other relevant data audited by the system operator and/or regulator. With this information, the Independent System Operator (ISO) will optimize the system economic dispatch, which will lead to prices, π\pi, that are, consequently, functions of cc and GG. The main drawbacks are the burden of the auditing process and the lack of incentives for agents to improve and maintain their equipment and even to disclose information to the system operator. Centralization also creates the issue of single models and views, which, if mistaken or imprecise, can be questioned by agents and lead to a massive judicialization in the market. Thus, the decentralization of responsibility also supports the decentralization process towards a bid-based market design.

Refer to caption
Figure 1: Centralized cost-based markets.

II-A2 Liberalized bid-based markets

Their structure and information scheme is depicted in Figure 2. In this case, there might be two main types of agents: price takers and price makers. Both send price, pp, and quantity, qq, bids to the ISO, which uses the bids to optimize the economic dispatch and define the spot price. Thus, in this market design, dispatch decisions and spot prices are functions of the offered pairs p,qp,q. Differences between these agent types will be described next.

Refer to caption
Figure 2: Bid-based market.

II-B Agent behavior in liberalized bid-based markets

The two types of agents introduced in Section II-A2, price takers and price makers (see Figure 2), aim to optimize their bids and maximize profits, but using different approaches and methods.

II-B1 Price-taker agents

These are non-strategic agents that are either too small to affect market prices by changing their operation or, despite being large, they make their offer assuming the price as given. In this context, we assume the latter for generality. Thus, this type of agent develops his bidding strategy, (p,q)(p,q), to maximize profits assuming the prices, π^\hat{\pi}, as exogenous scenarios. Under mild conditions, markets with only price-taker thermal agents are solved in the literature with offers based on generators’ variable costs and their total capacity [27, 28]. Meanwhile, hydro agents should bid based on their water values, which can be calculated from the operator’s perspective [9] or from the agent’s perspective [29].

II-B2 Price-maker agents

Are also named strategic agents and can be defined as the generators that can potentially change prices by changing their offers and, consequently, their operation. These agents are those that can potentially exercise market power abuse (the main drawback of a bid-based market). In this case, if a strategic agent considers the price response, π(p,q)\pi(p,q), when developing its offers to maximize profits, and the offer actually changes the price, we say that the agent has exercised market power abuse. Hence, the feedback loop in Figure 2 highlights this possible relation between price marker bids that depend on their belief of the bid of other agents, (pi,qi)(p_{-i},q_{-i}), and the final prices. In the purely thermal case, [12, 30] model the Nash equilibrium using Karush-Kuhn-Tucker optimality conditions (KKT) conditions of the market operation leading to a large-scale mixed-integer problem (MIP).

II-C Equilibrium simulation

We present two equilibrium models and associated solution methods that will be instrumental for our developments.

II-C1 Stackelberg equilibrium

It is applicable when there is a single price-maker agent. In this case, the price maker is known as the leader agent, and the rest of the agents are the followers. The leader will attempt to optimize its revenue by strategically choosing a bid that will affect prices. This equilibrium is modeled with Bilevel Optimization [11]. It was extended to the hydro case by [24] that embeds a bilevel program in the SDDP algorithm but convexifies each sub-problem to follow the convexity assumption of SDDP (see next Section II-D). A variant of [24] was proposed in [25] that handles the non-convexity with Lagrangian relaxation combined with SDDP. [26] uses a purely Lagrangian decomposition scheme to solve a multi-stage MIP for a price-maker demand side agent.

II-C2 Nash Equilibrium

It applies to a more general setting with multiple price-maker agents. This state of equilibrium is defined as a set of offers for all agents such that no agent can improve the revenue by unilaterally deviating from this point [10, 12]. Mathematically, it can be modeled as an Equilibrium Problem with Equilibrium Constraints (EPEC) derived from the KKT conditions of each agent revenue maximization problem. Analytical formulas can be found in special cases, as in [19] and [20], facilitating hydro players’ multi-stage analysis through DP decomposition schemes. Another possibility is to apply MIP-based reformulations to single-stage equilibrium problems in the lines of [12]: [22] and [23] model the hydro case by solving MIP within DP. For small hydro problems with few scenarios and stages, [14, 15], EPECs (and multi-stage EPECS) can be solved by specialized solvers such as PATH [31].

II-C3 The diagonalization method

Is sometimes referred to as nonlinear Gauss-Seidel or agent-based simulation, and it is especially well documented in [13] (see also [32] and [33]). In general terms, the method aims to solve an equilibrium problem by optimizing one agent at a time. Hence, the first agent optimizes its strategy with the strategy of the other agents fixed. Then, the second agent is optimized in the same way, but now, considering the strategy of the first agent fixed to the previously obtained value. If the first agent’s strategy has changed, the second’s current strategy may also change. An iteration of the algorithm is completed once all agents have been optimized. The iterations continue until the strategies from all agents do not change anymore. This method has been applied to very limited-sized hydrothermal equilibrium problems in [15], [16], [18], [21], as mentioned in the introduction.

II-D Multi-stage stochastic programming and SDDP

MSO is a framework to handle problems that are coupled in time and depend on random variables. We can formulate the linear programming version through its Bellman recursion, which depicts the problem being solved in each stage and how they are coupled through state variables xt\textbf{x}^{t}:

B~t(xt,ωt)=\displaystyle\tilde{B}^{t}\big{(}\textbf{x}^{t},\omega^{t}\big{)}=
minytY(ωt),xt+1c(ωt)yt+𝔼ωt+1[B~t+1(xt+1,ωt+1)]\displaystyle\min_{\textbf{y}^{t}\in Y(\omega^{t}),\textbf{x}^{t+1}}c(\omega^{t})^{\top}\textbf{y}^{t}+\mathbb{E}_{\omega^{t+1}}\left[\tilde{B}^{t+1}\big{(}\textbf{x}^{t+1},\omega^{t+1}\big{)}\right] (1)
s.t.xt+1+Ax(ωt)xt+Ay(ωt)yt=b(ωt)\displaystyle s.t.\ \ \textbf{x}^{t+1}+A_{x}(\omega^{t})\textbf{x}^{t}+A_{y}(\omega^{t})\textbf{y}^{t}=b(\omega^{t}) (2)

SDDP is a fundamental algorithm for effectively solving MSO and is applicable as long as they follow two main assumptions: 1) convexity of stage problems (which is trivial in the above linear case); 2) stagewise independence, that is, for all tt, ωt\omega^{t} is independent of ωτ\omega^{\tau} if τ<t\tau<t.

To apply the SDDP to the above problem, we need to reformulate it. The reformulation consists of replacing the future cost function (FCF) – the second term in the objective function (3) – by its piece-wise linear formulation, which is represented by the epigraph variable, α\alpha, and cuts (5) as follows:

B~t(xt,ωt)=\displaystyle\tilde{B}^{t}\big{(}\textbf{x}^{t},\omega^{t}\big{)}= minytY(ωt),xt+1,αc(ωt)yt+α\displaystyle\min_{\textbf{y}^{t}\in Y(\omega^{t}),\textbf{x}^{t+1},\alpha}c(\omega^{t})^{\top}\textbf{y}^{t}+\alpha (3)
s.t.xt+1+Ax(ωt)xt+Ay(ωt)yt=b(ωt)\displaystyle s.t.\ \ \textbf{x}^{t+1}+A_{x}(\omega^{t})\textbf{x}^{t}+A_{y}(\omega^{t})\textbf{y}^{t}=b(\omega^{t}) (4)
αβk+χkxt+1,k𝒦\displaystyle\alpha\geq\beta^{k}+{\chi^{k}}^{\top}\textbf{x}^{t+1},\quad\forall k\in\mathcal{K} (5)

The above model considers a theoretical representation of the true model, as all the cuts representing the FCF in (5) are not known in advance. Therefore, the SDDP relaxes the set of all cuts, 𝒦\mathcal{K}, to a subset [K][K] that is iteratively updated. In this case, B~t\tilde{B}^{t} is also replaced by B~Kt\tilde{B}^{t}_{K} as it will only be a lower approximation of B~t\tilde{B}^{t} (at iteration KK).

In a very high-level description, the SDDP algorithm starts sampling a scenario, ωt\omega^{t}, for each tTt\in T, then solves the stage subproblems in chronological order, generating a feasible solution, this phase is called the forward step. After that, in the so-called backward step, problems are solved in the reverse order of time, generating Benders cuts to improve the representation of the FCF and, thus, propagating information from the future to the present. By averaging multiple feasible solutions for forward passes, we compute a statistical upper bound, while the solution of the first stage problem gives a deterministic lower bound. These steps are repeated until a specified stopping criterion is reached. This process is also known as policy optimization (or training). For algorithm details, the reader is directed to [9, 34]. After convergence is achieved, it is usual to proceed with a final forward pass in which we sample scenarios sSs\in S, and for each of them, we solve all stage subproblems in chronological order. This last procedure, known as simulation, results in a solution for each primal and dual variable. In other words, we finish with values for each stage in TT and sample scenario in SS for all optimization variables.

In this section, we focused our presentation on the expected value case of MSO for simplicity. However, it is relevant to mention that the methodological developments considered in this paper hold for other risk measures, such as the conditional value at risk, that can be consistently represented in the SDDP scheme (see [35, 36, 37]).

II-D1 Uncertainty representation in SDDP with auto-regressive processes

It is a technique to handle stagewise-dependent uncertainty. This technique requires that the uncertainty only affects the right-hand side (RHS) of (4), d(ω)d(\omega), and it can be represented by an auto-regressive stochastic process with stagewise independent noise. In this case, we expand the state variables to include lagged observations of the uncertainty and add a constraint representing the evolution of the process in the model. Therefore, the final model will have the same form as (3)–(5) but with more variables and constraints. The uncertainty will be restricted to the RHS of (4) and stagewise independent. This is the case of inflows modeled this way since the first appearance of SDDP [9].

II-D2 Uncertainty representation in SDDP with Markov processes

It is a second technique to handle stagewise-dependent uncertainty. While the previous method effectively handles RHS uncertainty, it does not apply to the cases where stagewise dependent uncertainty affects objective or left-hand side coefficients (coefficients that multiply variables). To handle these cases, an alternative version of SDDP that combined ideas from SDDP and Stochastic Dynamic Programming (SDP) was developed (in the context of price-taker optimal hydro bidding) by [29]. More recently, this approach has been termed Markovian SDDP [38] as the time dependency of the uncertainty is handled by a Markov Chain model. For a given stage, tt, and Markov state, μ\mu, the uncertainty is now considered independent of the past, but the dependency structure is preserved in the transition probabilities. The reformulated model contains multiple FCFs, one FCF for each possible future Markov state, mm, represented by the epigraph variable αm\alpha_{m}, and the respective cuts in (8):

B~μ,Kt(xt,ωμt)=\displaystyle\tilde{B}^{t}_{\mu,K}\big{(}\textbf{x}^{t},\omega^{t}_{\mu}\big{)}=
minytY(ωt),xt+1,αmc(ωt)yt+mJMMμ|mαm\displaystyle\min_{\textbf{y}^{t}\in Y(\omega^{t}),\textbf{x}^{t+1},\alpha_{m}}c(\omega^{t})^{\top}\textbf{y}^{t}+\sum_{m\in J^{M}}M_{\mu|m}\alpha_{m} (6)
s.t.xt+1+Ax(ωt)xt+Ay(ωt)yt=b(ωt)\displaystyle s.t.\ \ \textbf{x}^{t+1}+A_{x}(\omega^{t})\textbf{x}^{t}+A_{y}(\omega^{t})\textbf{y}^{t}=b(\omega^{t}) (7)
αmβmk+χmkxt+1,mJM,k𝒦\displaystyle\alpha_{m}\geq\beta^{k}_{m}+{\chi^{k}_{m}}^{\top}\textbf{x}^{t+1},\quad\forall m\in J^{M},k\in\mathcal{K} (8)

Where Mμ|mM_{\mu|m} is the transition probability from Markov state mm to μ\mu and JMJ^{M} is the set of Markov states.

The uncertainty representation methods described above are not mutually exclusive. A model might represent some uncertainties with the auto-regressive reformulation and some with the Markovian.

III Centralized long-term hydrothermal dispatch and SDDP

The hydrothermal power system dispatch is a very complex problem because it is a multi-stage stochastic optimization problem that includes many physical and policy-driven constraints. From now on, we will also refer to the market design where generation dispatch orders and spot prices are derived based on centralized long-term dispatch calculations as a centralized audited-cost-based market.

We present a simple yet general optimization model with all the main core features required in the market simulator proposed in this work. We describe the problem as a Bellman recursion as in Section II-D. Therefore, (9)–(15) presents the objective function and constraints of a given stage, tt, and random event ωt\omega^{t}. Index tt is omitted from most variables when easily understood from context aiming at a lighter notation.

The first formula, (9), states that the future cost of stage t1t-1, namely B~t\tilde{B}^{t}, given the states {vt,a[t1]}\{\textbf{v}^{t},\textbf{a}^{[t-1]}\} (vector of water stored and observed past inflows in each reservoir) and the random event ωt\omega^{t}, is defined as the minimization of the problem (9)–(15). In this model, the objective function can be split into two pieces. The first piece is the immediate cost in the form of a thermal cost (load shedding accounted for as an additional artificial expensive generator), while the second piece is the expected value of the future cost B~t+1\tilde{B}^{t+1}, where B~|T|+1()=0\tilde{B}^{|T|+1}(\cdot)=0. The equation (10) represents the load balance of the system. We have generation and energy flows on the left-hand side and demand on the right-hand side. Demand is considered deterministic to simplify the developments, but everything that follows can be trivially extended to the stochastic demand case. (11) describes the water mass balance: storage at the end of stage tt equals the storage at the beginning plus the net sum of incoming water and outflows. (12) constrains hydro storage, turbine flow, and spillage, while (13) limits the thermal generation and (14) limits the renewable generation that has a stochastic upper bound depending on events like sun and wind. Finally, (15) describes the inflow autoregressive stochastic process as in Section II-D1 and [9, 39].

B~t(vt,a[t1],ωt)=\displaystyle\tilde{B}^{t}\big{(}\textbf{v}^{t},\textbf{a}^{[t-1]},\omega^{t}\big{)}=
minjJGCjgj+𝔼ωt+1[B~t+1(vt+1,a[t],ωt+1)]\displaystyle\min\ \ \sum_{j\in J^{G}}C_{j}g_{j}+\mathbb{E}_{\omega^{t+1}}\left[\tilde{B}^{t+1}\big{(}\textbf{v}^{t+1},\textbf{a}^{[t]},\omega^{t+1}\big{)}\right] (9)
s.t.\displaystyle s.t.
jJGgj+jJHρj(uj)+jJRrj=D\displaystyle\sum_{j\in J^{G}}g_{j}+\sum_{j\in J^{H}}\rho_{j}(u_{j})+\sum_{j\in J^{R}}r_{j}={D} (10)
vjt+1=vjtujzj+nJU(j)(un+zn)+ajt,jJH\displaystyle v^{t+1}_{j}=v^{t}_{j}-u_{j}-z_{j}+\sum_{n\in J^{U}(j)}(u_{n}+z_{n})+a_{j}^{t},\quad\forall j\in J^{H} (11)
0vjVj, 0ujUj, 0zj,jJH\displaystyle 0\leq v_{j}\leq V_{j},\ \ 0\leq u_{j}\leq U_{j},\ \ 0\leq z_{j},\quad\forall j\in J^{H} (12)
0gjGj,jJG\displaystyle 0\leq g_{j}\leq G_{j},\quad j\in J^{G} (13)
0rjR~j(ωt),jJR\displaystyle 0\leq r_{j}\leq\tilde{R}_{j}(\omega^{t}),\quad\forall j\in J^{R} (14)
ajt=lJLϕj,lajtl+ε~j(ωt),jJH\displaystyle a_{j}^{t}=\sum_{l\in J^{L}}\phi_{j,l}a_{j}^{t-l}+\tilde{\varepsilon}_{j}(\omega^{t}),\quad\forall j\in J^{H} (15)

In the above model, the main sources of uncertainty are variable renewable energy (VRE) generation and inflows. The first has a very weak time dependency structure and is considered stagewise independent. The latter, inflows, have a stage-wise dependency that can be modeled using the autoregressive formulation above. The stochastic model of inflows follows the standard Periodic Auto-Regressive (PAR) used by the Brazilian ISO, but here for individualized hydros (in opposition to the aggregated ones used by the ISO) [40]. More details of the generation of the joint VRE and inflow scenarios can be obtained in [41].

The model fits the general form (1)–(2) and can be solved by SDDP. We describe the result of an SDDP simulation as follows. Once optimized, we can perform a simulaton (see Section II-D) and store results as sets vector. For example, 𝒱={vt,s}tT,sS\mathcal{V}=\{\textbf{v}_{t,s}\}_{t\in T,s\in S}, Π={πt,s}tT,sS\mathit{\Pi}=\{\pi_{t,s}\}_{t\in T,s\in S} represent, respectively, volumes and spot prices, (dual variables of the load balance, (10)), meaning that we have solutions for each sampled scenario sSs\in S and stage tTt\in T.

The main simplification in this section is to consider the hydro generation function, ρ\rho, in (11), as a purely linear function of the turbine flow [42, 38, 43], nonlinear models that also consider the dependency of the net-head can also be used, but would require approximations to satisfy the requirements of SDDP [44].

IV Strategic agents

The optimization of an independent agent, or owner, can also be modeled as a multi-stage stochastic optimization problem. In this section, we describe the dynamic model that will considered, introducing features such as the Markovian approach, convexification, and contracts step-by-step.

IV-A The dynamic model

The first version of the single price-maker hydro owner agent was modeled and solved with SDDP in [24], but it did not consider uncertain bids from other agents. Hence, we present an extension of the technique that handles the uncertainty from other agents’ bids with a Markov model. Model (16)–(22), representing the optimization of an individual agent, ii, is very similar to (9)–(15), the centralized operation model. (16) represents a Bellman recursion analogous to the one of the centralized dispatch. The main difference in the objective function is that there is a new term to describe the agent’s revenue in the given stage tt for a random event ωt\omega^{t} as a function of the electricity ee produced by the agent. (17) states that ee equals the total generation among all resources of a given agent ii. Finally, (18)–(22) are almost the same as (11)–(15) but only accounting for generators owned by agent ii.

B~t(vit,ai[t1],ωt)=minΛ~(e,ωt)+jJiGCjgj+\displaystyle\tilde{B}^{t}\big{(}\textbf{v}^{t}_{i},\textbf{a}^{[t-1]}_{i},\omega^{t}\big{)}=\min\ \ -\tilde{\Lambda}(e,\omega^{t})+\sum_{j\in J^{G}_{i}}C_{j}g_{j}+
𝔼ωt+1[B~t+1(vit+1,ai[t],ωt+1)]\displaystyle\hskip 93.95122pt\mathbb{E}_{\omega^{t+1}}\left[\tilde{B}^{t+1}\big{(}\textbf{v}^{t+1}_{i},\textbf{a}^{[t]}_{i},\omega^{t+1}\big{)}\right] (16)
s.t.\displaystyle s.t.
e=jJiGgj+jJiHρj(uj)+jJiRrj\displaystyle e=\sum_{j\in J^{G}_{i}}g_{j}+\sum_{j\in J^{H}_{i}}\rho_{j}(u_{j})+\sum_{j\in J^{R}_{i}}r_{j} (17)
vjt+1=vjtujzj+yJU(j)(uy+zy)+ajt,jJiH\displaystyle v^{t+1}_{j}=v^{t}_{j}-u_{j}-z_{j}+\sum_{y\in J^{U}(j)}(u_{y}+z_{y})+a_{j}^{t},\forall j\in J^{H}_{i} (18)
0vjVj, 0ujUj, 0zj,jJiH\displaystyle 0\leq v_{j}\leq V_{j},\ \ 0\leq u_{j}\leq U_{j},\ \ 0\leq z_{j},\forall j\in J^{H}_{i} (19)
0gjGj,jJiH\displaystyle 0\leq g_{j}\leq G_{j},\quad\forall j\in J^{H}_{i} (20)
0rjR~j(ωt),jJiR\displaystyle 0\leq r_{j}\leq\tilde{R}_{j}(\omega^{t}),\quad\forall j\in J^{R}_{i} (21)
ajt=lJLϕj,lajtl+ε~jt(ωt),jJiH\displaystyle a_{j}^{t}=\sum_{l\in J^{L}}\phi_{j,l}a_{j}^{t-l}+\tilde{\varepsilon}_{j}^{t}(\omega^{t}),\quad\forall j\in J^{H}_{i} (22)

Although renewable energy generation is still considered stagewise independent and the inflow dependency is still handled by the auto-regressive process of Section II-D1, the revenue function uncertainty is not restricted to the RHS. Hence, as highlighted in Section II-D2, the solution of the above model will require the Markovian SDDP, in fact, a mixed auto-regressive (for inflows) and a Markovian (for the revenue) SDDP. The uncertainty representation will be detailed in the next paragraphs.

A second fundamental challenge in this procedure is requiring all hydro plants in the same cascade to belong to a single agent. This hypothesis is also assumed in previous works like [25]. Handling different owners in the same river system can be done by considering a water wholesale market besides the electricity market as done in [45]. Alternatively, other market designs can be used. Two possible alternative designs are: 1) hydro slicing, in which agents own fractions of the cascade and, consequently, can optimize their strategies as if they did not share the cascade, and 2) virtual hydro reservoirs, in which all hydro plants of a system are aggregated in a single reservoir which is then split proportionally among all agents. The interested reader is referred to [28] for more details.

IV-B Endogenous spot prices and convexification of the revenue function

In the case of price-taker agents, their operation can be optimized by considering the revenue function, as in [29]:

Λ~(e,ω)=π(ω)e\displaystyle\tilde{\Lambda}(e,\omega)=\pi(\omega)e (23)

where π(ω)\pi(\omega) is a scenario of spot prices that might be obtained from any model. In particular, we could consider spot price scenarios Π\mathit{\Pi} produced by the simulation from Section III.

On the other hand, price-maker agents have the ability to affect spot prices with their energy offers, as in the Stackelberg Equilibrium of Section II-C1. In other words, π\pi is no longer an exogenous input data, it is a function of the energy offer of agent ii, i.e., ee. In this case, price and quantity bids from other agents are considered random variables depending on the uncertainty ω\omega, and are given {(Pj(ω),Qj(ω)),jIi}\{(P_{j}(\omega),Q_{j}(\omega)),j\in I_{-i}\}. With those bids, we follow the same rationale of [24, 25]. Therefore, we write the following model that expresses a simple bid-based dispatch problem:

π(e,ω)argminq,π\displaystyle\pi(e,\omega)\in\arg\min_{q,\pi} jIiPj(ω)qj\displaystyle\sum_{j\in I_{-i}}P_{j}(\omega)q_{j} (24)
s.t.\displaystyle s.t. jIqj=D:π\displaystyle\sum_{j\in I}q_{j}={D}\ \ :\ \pi (25)
0qie\displaystyle 0\leq q_{i}\leq e (26)
0qjQj(ω),jIi\displaystyle 0\leq q_{j}\leq Q_{j}(\omega),\quad\forall j\in I_{-i} (27)

This is analogous to a market clearing problem, in which a system operator selects the optimal amounts of energy to attain the demand in (25), under the limits (26)–(27) given by the offers of the current agent and the other players. The main result is the spot prices (the dual variable of (25)). Now we define:

Λ~(e,ω)=π(e,ω)e\displaystyle\tilde{\Lambda}(e,\omega)=\pi(e,\omega)e (28)

However, this strategic agent revenue function is a non-convex piece-wise linear discontinuous function as detailed in [24, 25]. Thus, to satisfy the SDDP convexity requirements, we follow the method proposed in [24] and represent the convex hull of Λ~(e,ω)\tilde{\Lambda}(e,\omega) with respect to ee for a fixed ω\omega:

chull(Λ~(e,ω))=maxλj0\displaystyle chull(\tilde{\Lambda}(e,\omega))=\max_{\lambda_{j}\geq 0} jJVλjEjR(ω)\displaystyle\sum_{j\in J^{V}}\lambda_{j}E^{R}_{j}(\omega) (29)
s.t.\displaystyle s.t. jJVλjEjQ(ω)=e,jJVλj=1\displaystyle\sum_{j\in J^{V}}\lambda_{j}E^{Q}_{j}(\omega)=e,\sum_{j\in J^{V}}\lambda_{j}=1 (30)

where each pair (EjQ(ω),EjR(ω))(E^{Q}_{j}(\omega),E^{R}_{j}(\omega)) represents a vertex (in the set of vertices JVJ^{V}) of the convex hull of the hypo-graph of Λ~(e,ω){\tilde{\Lambda}}(e,\omega). We keep the vertices indexed by ω\omega to make it clear that they depend on the random variables of the problem. Theoretically, it would be possible to exactly represent the non-convex revenue function with methods like SDDiP [46]. However, this would come with the cost of a considerably larger computational burden. Because we are accounting for many computationally intensive features in this work, we adopted the convex hull representation.

IV-C Accounting for forward contracts in the dynamic model

As one of the key mechanisms to mitigate market power, we must also be able to represent forward contracts [20]. This was not described in the previous MSO models solved by SDDP. However, it is simple to modify the revenue function to consider two additional terms as follows:

Λ~(e,ω)=PFQFπ(e,ω)QF+π(e,ω)e\displaystyle\tilde{\Lambda}(e,\omega)=P^{F}Q^{F}-\pi(e,\omega)Q^{F}+\pi(e,\omega)e (31)

the first term is the fixed revenue of the forward contract, the second represents the energy that must be delivered due to the contract, and the third is the previously represented earnings from the spot market. The constants PFP^{F} and QFQ^{F} are input data. Consequently, the first term is constant and does not affect the optimization of a risk-neutral (strategic or not) agent. On the other hand, agents are discouraged from generating below contracted quantities (where eQF<0e-Q^{F}<0) as they will have to buy energy to match their obligations, thereby losing money. This has an effect that opposes the willingness of price-maker agents to withhold energy (reducing ee) to increase spot prices.

Figure 3 shows revenue curves for a simple case where PF=0P^{F}=0$/MWh, D=40D=40MWh, and we consider 33 price-quantity offers from the other agents: (3$/MWh,10MWh), (2$/MWh,15MWh), (1$/MWh,20MWh). Note that the total quantity from the sum of the other agents’ offers is 4545MWh, which is higher than the demand, and, hence, no deficit occurs even if e=0e=0MWh. This function is also non-convex, but we can represent its convex hull in the optimization problem in the exact same way as the previously described case with no contracts. For instance, we consider QF=0Q^{F}=0MWh for which we only have the last term of (31). In this case, the revenue is a linear function of ee, with a slope equal to the spot price, π\pi. The most expensive accepted bid sets the spot price, then a bid e<5e<5MWh for the strategic hydro leads to π=3\pi=3$/MWh. When the strategic hydro offers more than 55MWh, it displaces the bid previously defining the spot price, and the price drops to the variable cost immediately below, i.e., 22$/MWh. So, from this point on, the curve has a smaller slope, and the first break appears. The other curves and breaks follow the same rationale but for different values of QFQ^{F} and ee. For more details, we refer the reader to [24], which only considers the last term in (31). We emphasize that for different values of QFQ^{F}, the first term in (31) does not affect this example; as for simplicity, we considered PF=0P^{F}=0$/MWh. However, the second term subtracts a piece-wise constant function from the revenue function as QFQ^{F} is constant for each curve and π(e,ω)\pi(e,\omega) is a piece-wise constant function. Because PF=0P^{F}=0$/MWh, the blue curve, which considers no contract, is the highest. In more realistic cases, these curves can cross each other.

Refer to caption
Figure 3: Revenue curves, Λ~(e,ω)\tilde{\Lambda}(e,\omega), for various values of QFQ^{F}, and PF=0P^{F}=0.

IV-D Markovian uncertainty representation

We remark that in both [24] and [25], the revenue function is not stochastic since it only considers thermal bids in the form of thermal installed capacities and operating costs and does not require the Markovian SDDP from Section II-D2.

In contrast, we allow stochastic and time-dependent uncertainty in the two cases: 1) spot prices in the price-taker case and 2) energy bids from other agents in the price-maker case. In both cases, we assume we have scenarios of either spot prices, Π\mathit{\Pi}, or price and quantity bids, (𝒫,𝒬)(\mathcal{P},\mathcal{Q}). Such sets of scenarios are jointly distributed with the inflow, 𝒜\mathcal{A}, and renewable energy, \mathcal{R} scenarios if they were generated by SDDP simulations.

Given all these jointly distributed scenarios, we apply the same Expectation Maximization (EM) algorithm as [47] to obtain the transition probabilities of the Markov model for all stages, \mathcal{M}, and the classification of each sample, ss, of each stage, tt in a Markov state.

V Multiple agents equilibrium simulation

In this section, we combine the methodologies presented in Section II with the ones developed in Sections III and IV to describe a novel algorithm to simulate the interaction among multiple price-maker and price-taker agents in a power system with high storage capacity. The interactions among agents will be in terms of price and quantity bid offers as in a realistic competitive electricity market. In terms of a game theoretical model, we have two types of agents, price takers and price makers, whose actions are price and quantity bids, as in Section II-C2. The complete algorithm is based on the diagonalization procedure of Section II-C3 and is depicted in the flowchart of Figure 4. All details of the algorithm are presented next.

V-A Initialization via Centralized Operation

To start the diagonalization-based algorithm, we need an initial set of actions for all agents. Such actions will be obtained from a simulation of the centralized audited-cost-based market design of the power system through the typical cost-minimization model, (9)–(15), from Section III solved with SDDP from Sections II-D and II-D1. Besides the physical description of the system, the main input data for this model are the inflows and renewable generation scenarios, (𝒜,)(\mathcal{A},\mathcal{R}). The main results from the simulation procedure are, at a given stage tt and scenario ss: 1) the generation decisions of all units of a generation agent ii, which lead quantity part of the bid, Qi,t,sQ_{i,t,s}, and 2) the spot prices of the system (πs,t\pi_{s,t}) that will be to the price parcel of the bids. We denote the set of price and quantity bids of an agent ii as (𝒫i,𝒬i)={Pi,t,s,Qi,t,s}tT,sS(\mathcal{P}_{i},\mathcal{Q}_{i})=\{P_{i,t,s},Q_{i,t,s}\}_{t\in T,s\in S} and the spot prices as Π\mathit{\Pi}. We will refer to this procedure as CentralizedOperation(𝒜,)CentralizedOperation(\mathcal{A},\mathcal{R}).

V-B The main loop

In this step, the actions of each agent will be updated, while the actions of the other ones will be fixed until the convergence criterion is satisfied. The main goal is to simulate the power market in an agent-based fashion. If convergence is strictly attained, we might have reached a Nash equilibrium. However, such an equilibrium might not even exist in this setting. The convergence criterion considered in this work is assuring that the maximum absolute variation of the price and quantity bids of all agents between two subsequent iterations vary less than 1% of their values in the centralized operation.

V-B1 Markov Chain Estimation

This is the very first part of the main loop because the optimization algorithms presented in the following steps will need a Markov Chain representation of uncertainty of the joint process that includes inflows, renewable generation, bids, and spot prices. The methodology for estimating such Markov Chains, \mathcal{M}, was presented in Section IV-D. We will refer to this procedure as EstimateMarkovChain(𝒜,,Π,𝒫,𝒬)EstimateMarkovChain(\mathcal{A},\mathcal{R},\mathit{\Pi},\mathcal{P},\mathcal{Q}).

V-B2 Price-Taker Loop

This loop consists of the self-optimization of all price-taker agents, iITi\in I^{T}. The model of price takers, from Section IV, is given by (16)–(22) with the revenue function (23) and it is optimized with a Markovian SDDP from Section II-D2. The uncertainty scenarios are given by the inflows, 𝒜\mathcal{A}, renewable generation, \mathcal{R}, and the exogenous spot prices, Π\mathit{\Pi}. For the agent ii, the simulation that succeeds the policy optimization will return offered energy, et,se_{t,s}, that together with the input spot prices will define the bid (𝒫i,𝒬i)(\mathcal{P}_{i},\mathcal{Q}_{i}). We name this procedure PriceTakerBid(𝒜,,Π,)PriceTakerBid(\mathcal{A},\mathcal{R},\mathit{\Pi},\mathcal{M})

V-B3 Price-Maker Loop

This loop is analogous to the previous one. The model of each agent iIMi\in I^{M} is still given by (16)–(22), but the revenue function will be the convex reformulation of the prime-maker revenue function (29)–(30). The model is optimized with a Markovian SDDP from Section II-D2. However, the uncertainty contains the bid from other agents (𝒫i,𝒬i)(\mathcal{P}_{-i},\mathcal{Q}_{-i}). For the agent ii, the simulation that succeeds the policy optimization will return offered energy, et,se_{t,s}, that together with the endogenous spot price, computed from (24)–(27), will define the bid (𝒫i,𝒬i)(\mathcal{P}_{i},\mathcal{Q}_{i}). We name this procedure StrategicBid(𝒜,,𝒫i,𝒬i,)StrategicBid(\mathcal{A},\mathcal{R},\mathcal{P}_{i},\mathcal{Q}_{i},\mathcal{M})

V-B4 Market Clearing

This is the last step of the main loop and is responsible for computing update spot prices Π\mathit{\Pi} by clearing the market for each stage and scenario given bids from all agents, (𝒫,𝒬)(\mathcal{P},\mathcal{Q}). The model used here is given by (24), (25) and (27), but with IiI_{-i} replaced by II. We label this procedure as ClearMarket(𝒫,𝒬)ClearMarket(\mathcal{P},\mathcal{Q}).

Refer to caption
Figure 4: Algorithm for multiple agents equilibrium flowchart.

VI Computational Experiments with The Brazilian Southeastern System

In this section, we provide quantitative simulated results for the Brazilian power system. We begin with a sensitivity analysis based on the Brazilian Southeast subsystem, which accounts for about 55%55\% of the Brazilian hydro resources and about 50%50\% of the system’s total installed capacity. We analyze different market concentrations and contracting schemes based on the procedure developed in Section V.

VI-A Dataset, infrastructure, and system configuration

This system was constructed from real data from the Brazilian system expansion scenario for 20252025 (based on the Brazilian market operator data [48]) and contains 4646 thermal plants and 2121 hydro plants with a simplified system topology. Note that this is already more than the current 1313 aggregated reservoirs considered in the official model. The overall hydro installed capacity represents 70%70\% of the system’s installed capacity. To illustrate the algorithm’s functioning, first, we consider three main hydro generation companies, one considered as a price-taker agent, and the other two as price makers. The 2121 hydro plants are split into the 33 aforementioned hydro generation companies, 77 plants for each one. The three different agents do not share cascades as mentioned in Section IV. All thermal plants are considered individual price-taker agents. We considered a single load block for the sake of simplicity, that is, a constant demand for the entire month. The following simulations were carried out in a 55-year monthly horizon, that is, 6060 stages. We considered 10001000 sampled scenarios. The large-scale simulations were performed in a PSRCloud cluster of 88 servers, each one with 6464 cores and 128128GB of RAM. Each simulation took approximately 33 hours. All algorithms were coded in the Julia language [49], and the optimization models were coded with JuMP [50] and solved with the Xpress solver[51].

VI-B Impact of Market Concentration on Market Power

Refer to caption
(a)
Refer to caption
(b)
Refer to caption
(c)
Refer to caption
(d)
Figure 5: Results for simulations of Brazil’s Southeast under different market concentrations. All plots have the same template and contain average values of: (a) Spot Prices, (b) Normalized Revenue, (c) Spillage, and (d) Storage Level. Averages are with respect to all stages and scenarios. Spillage and Storage %\% are with respect to the maximum amount of water that can be stored in the system. All plots include a first bar (in green) with the result for the centralized case. In parentheses in the horizontal axis, we have the percent share of each price-maker agent, defining the database used. For each database, we have 3 bars, one for a case with no contracts (in red) and another two for cases with 75% of contracting level (in purple) and 100% of contracting level (in blue).
Note that some red bars in (a), (b), and (d) are too high and do not fit the plot area, so they contain the values beside the top of the bar.

In this section, we present five controlled simulation experiments to understand the effect of different market concentrations on market power abuse. We adjust the hydro plants so that we have different databases defined by tuples (share1%,share2%)({share}_{1}\%,{share}_{2}\%). In each case, share1{share}_{1} and share2{share}_{2} represent the shares (in percentage) of the hydro system belonging to each of the two price-maker companies (agents). The number of plants of each hydro agent is fixed as mentioned in Section VI-A. We multiplied and installed capacities and reservoir sizes by scalars to adjust the hydro system size of each agent in each database. The remainder of the hydro system is assumed to be of price-taker agents.

Refer to caption
Figure 6: Convergence profile from Brazil’s southeast with (25%,50%)(25\%,50\%) and no contracts. See Figure 5. Average spot price absolute and relative differences between two consecutive iterations: (i+1)(i+1)(i)(i).

Figure 6 presents a typical convergence profile of the proposed iterative method. These profiles were taken from the case study with price-maker shares of (25%,50%)(25\%,50\%) and no contracts. Figure 6 shows both average absolute and relative differences between two consecutive iterations. First, absolute (or relative) differences are computed for each stage and scenario, and then, they are averaged.

Figure 5 contains results from this first study and from the next study for better understanding. For now, we shall focus on the centralized cases (in green) and the multiple cases with no contracts (all in red). In Figure 5a, we show the average spot prices as a function of the market distributions in a bar plot. We add the first bar with the spot price of the centralized dispatch. As expected, the spot prices rapidly grow as the concentration increases. Figure 5b depicts the captured price, i.e., the average value of energy sold, which is the total revenue of each agent divided by its total generated energy. We present results in such normalized forms to compare the results of different-sized agents. Figures 5c and 5d show additional results with average reservoir levels of the price-maker agents throughout the study period and the average spillage. Interestingly, market power abuse is mostly characterized by excess spillage, whereas, on average, the total reservoir levels do not vary much compared to the benchmark (centralized dispatch with audited costs).

VI-C Impact of Contracts on Market Power

In this section, we repeat the above analyses but with contracts. To come up with monthly contract quantities, we take average generation values from the centralized dispatch and prices from the average spot prices in the centralized dispatch. This will stimulate the agents to produce energy and reduce the spot prices since being short in the contract together with high spot prices will lead the agent to have expenses due to the second term in (31).

Now we look again to Figures 5a, 5b, 5c and 5d described in the previous section but we also will focus on the cases of agents that are 75%75\% (purple) and 100%100\% (blue) contracted, respectively. In the case studies, we can clearly see that the contracts almost completely eradicated the market power, and the resulting spot prices are very close to the ones obtained in the centralized dispatch. At the same time, the captured revenues and spillage levels were shrunk to values close to the ones observed on the centralized dispatch with audited costs. By analyzing Figure 5d, we can see that spillage is a relevant marker for market power abuse.

VII Case Study: The Brazilian Power System

In this section, we provide results for a case study considering the complete Brazilian power system. We contrast results from simulations with and without contracts and provide a first quantitative measurement of the market power abuse potential in this system.

VII-A Dataset, infrastructure, and system configuration

This dataset was created from the original data of the Brazilian system obtained from the Brazilian market operator webpage [48]. The dataset contains 137137 thermal plants representing 18%18\% of the installed capacity, 364364 renewable energy plants (wind and solar) representing 19%19\% of the installed capacity and 3232 hydropower plants representing the remaining 63%63\% of the installed capacity. Here, we improve the load duration curve accuracy and consider 55 load blocks [52, 53] instead of just one (from the previous section) to better represent peak demand hours, 55 is more than the 33 currently used in the Brazilian official planning tools [48]. Like in previous studies, we consider 55 years (6060 monthly stages), 10001000 scenarios, and the same PSRCloud cluster configuration.

In this study, we consider an approximation of the real market concentration in the system. We represent three companies as price-maker agents, with respectively 32%32\%, 9%9\%, and 7%7\% of the resources in terms of firm energy representing the three largest generation owners. The firm energy metric is used as hydro and renewable capacity is not fully available all the time, so this is a proxy of their average available generation, see [54]. Meanwhile, the remaining 55%55\% of the generators are distributed among one price-taker hydro company, and each thermoelectric generator is considered another small price-taker agent. For completeness, we computed the Herfindahl-Hirschman Index (HHI) of the system, which led to the value of 0.1250.125, which is below 0.150.15, a number that typically represents a small concentration. However, as will be empirically demonstrated in the next study, there is clear room for market power in the system in question. We believe that it is yet another indication of the limitations of HHI that were already highlighted by [55, 20].

Each simulation from this study took approximately 1111 hours using the same code and computational infrastructure of the previous study.

VII-B Market Power in the Brazilian Power System as a Function of the Contracting Level

First, we simulated the centralized operation and the bid-based market without contracts. Then, we considered agents with multiple contracting levels in the bid-based market. In particular, we analysed the cases of: 25%25\%, 50%50\%, 75%75\% and 100%100\% of contracting level. The key results from each of the 66 simulations are depicted in Figures 7 and 8.

Figure 7 shows the spot price under the above 66 conditions. We can see the progression from the case with the highest spot prices, where no contracts are considered, until the fully contracted case, where the average spot price is much closer to the one obtained from the centralized operation with audited costs. Given the number of resources allocated to the price-maker agents, 45%45\%, we note that a 75%75\% contracting level effectively reduces the gap to the centralized operation. This closely follows what we have seen in the previous section with the southeastern system. In such case, 75%75\% was also effective in containing market power in the case where the first price-maker agent had 15%15\% and the second price maker had 30%30\% of the resources, resulting in a 45%45\% share of the system in the hands of price-maker agents. Finally, we note that even low contracting levels, such as 25%25\%, significantly reduce the final average spot prices. So, we highlight the empirical evidence in our case study that the typical contracting levels observed in practice, ranging from 75%75\% to 100%100\%, can be seen as a relevant instrument to prevent market power abuse in the Brazilian power system.

Figure 8 presents the overall revenue, including operation and contract costs and spot and contract revenue throughout the 55-year horizon for each of the three price-maker agents. Overall, the figure reproduces information already verified in Figure 7 with excessive revenues for all agents for the bid-based cases with no contracts. Notably, the 100%100\% contracting case leads to revenues that are very similar to the ones from the centralized dispatch. Interestingly, 75%75\% seems to be a relevant threshold value as it induces behaviors resulting in revenues and spot prices relatively close to the ones obtained in the centralized case. This observation is also relevant because when generators are risk-averse, it is expected that their optimal forward involvement should be slightly below the 100% case (see [56] and references therein).

Figure 9 presents the seasonal average spot price profile. Spot price changes are driven by both withheld and spilled hydro water. Noticeable, the spot-price peaks caused by the market power abuse are concentrated at the end of the dry season, when reservoirs are at their lowest levels (September-December), and in the month with the highest inflow (March), in which strategic agents can easily spill.

Refer to caption
Figure 7: Average Spot Price ($/MWh) for the Brazilian system under different contracting levels. Averages with respect to stages and scenarios.
Refer to caption
Figure 8: Average normalized revenue ($/MWh) for each of the 33 price-maker agents under different contracting levels. Averages with respect to stages and scenarios.
Refer to caption
Figure 9: Spot price annual profile (MWh).

VIII Conclusion

Based on previous works on long-term hydrothermal power markets, we combined three key methodologies to develop a new and effective market simulator, namely: 1) SDDP applied to the centralized hydrothermal dispatch to initialize and benchmark the process, 2) a multi-stage bilevel stochastic model to model the strategic bidding strategy for eachprice-maker agent, and 3) an iterative diagonalization-based method to simulate the interactions among agents in a market equilibrium. In contrast to the existing literature on the subject, with our new algorithm, we could jointly consider multiple reservoirs (32), multiple stages (60) and scenarios (1,000), and multiple price-maker agents (3). Therefore, a realistic large-scale case study based on the Brazilian power system (one of the largest in the world) could be addressed, and relevant insights could be obtained.

On the other hand, some simplifications were necessary. In particular, the hydro generation function was considered as a purely linear function of the turbine flow (a standard assumption commented in Section III); agents did not share cascades, as mentioned in Section IV-A; revenue curves were convexified in the SDDP policy optimization, as described in Section IV-B. We believe that these simplifications can be explored in future works and lead to relevant new insights. So, we believe our simulator and methodology pave the way for relevant new studies.

Within the limitations of the presented computational experiments and case study, which include all assumptions of the proposed model and the specific data, the results and analyses carried out in this work allow us to convey the following concluding remarks for the Brazilian power system:

  1. 1.

    We found evidence that the market concentrations observed in the current Brazilian electricity market are capable of enabling market power abuse.

  2. 2.

    The spillage level is a relevant market for market power abuse.

  3. 3.

    Contracts are relevant instruments to prevent market power abuse in this country. Our results indicate a significant increase in long-term average spot prices due to market power abuse in cases of lower contracting levels.

We highlight that the developed market analysis tool can help regulators and market/system operators in market monitoring activities, expansion studies, and understanding the impact of new market rules and instruments. For instance, based on the above remarks, low contracting levels combined with high spillages can be relevant markers of potential market power abuse. On the algorithmic side, the method is suitable for parallel computing and can be extended to consider other physical and regulatory details. Finally, we showcase that a real-world problem formulated as a multi-stage bilevel stochastic problem can be solved under reasonable assumptions and provide relevant insights to decision-makers and regulators. We highlight the following as relevant research avenues: 1) studying the effects and incentives of agents’ risk aversion on the equilibrium, 2) studying generators’ incentives to contract through a joint spot and long-term forward market equilibrium, and 3) analyzing the impact of different forecast model accuracies on the equilibrium, representing the diversity of views among agents.

References

  • [1] IEA, “Hydropower,” https://www.iea.org/reports/hydropower, June 2022.
  • [2] “Conversations on Designs – Wholesale Electricity Markets,” IEEE Power and Energy Magazine, vol. 17, pp. 1–108, January 2019.
  • [3] MME - Brazilian Ministry of Mines and Energy, “Power sector revitalization committee, progress report 2 (in Portuguese),” antigo.mme.gov.br/c/document_library/get_file?uuid=b0d5c219-ec17-11f0-9e39-48e73fd19641&groupId=36131 (visited on Sep. 12, 2024)., pp. 1–148, 2 2002.
  • [4] EPE - Empresa de Pesquisa Energética - Brazilian Energy Planner, “Public Request for Comments 33, CP33/2017 (in Portuguese),” www.epe.gov.br/sites-pt/publicacoes-dados-abertos/publicacoes/PublicacoesArquivos/publicacao-232/topico-353/Nota%20T%C3%A9cnica%20EPE-PR-003-2017.pdf (visited on Sep. 12, 2024).
  • [5] CCEE - Câmara de Comercialização de Energia Elétrica - Brazilian Power Market Operator, “Price Formation Mechanisms (in Portuguese),” www.gov.br/mme/pt-br/assuntos/secretarias/secretaria-executiva/modernizacao-do-setor-eletrico/arquivos/pasta-geral-publicada/formacao-de-precos.pdf (visited on Sep. 12, 2024)., pp. 1–48, 7 2019.
  • [6] Câmara dos Deputados - Brazilian Parliament, “Law Project n.414/2021 (in Portuguese),” www.camara.leg.br/proposicoesWeb/prop_mostrarintegra?codteor=1962928&filename=PL%20414/2021%20(N%C2%BA%20Anterior:%20PLS%20232/2016) (visited on Sep. 12, 2024)., 2021.
  • [7] L. Ribeiro, A. Street, D. Valladão, A. C. Freire, and L. Barroso, “Technical and economical aspects of wholesale electricity markets: An international comparison and main contributions for improvements in brazil,” Electric Power Systems Research, vol. 220, p. 109364, 2023.
  • [8] G. Steeger, L. A. Barroso, and S. Rebennack, “Optimal bidding strategies for hydro-electric producers: A literature survey,” Power Systems, IEEE Transactions on, vol. 29, no. 4, pp. 1758–1766, 2014.
  • [9] M. V. Pereira and L. M. Pinto, “Multi-stage stochastic optimization applied to energy planning,” Mathematical Programming, vol. 52, no. 1-3, pp. 359–375, 1991.
  • [10] D. Fudenberg and J. Tirole, “Game theory, 1991,” Cambridge, Massachusetts, vol. 393, 1991.
  • [11] D. Pozo, E. Sauma, and J. Contreras, “Basic theoretical foundations and insights on bilevel models and their applications to power systems,” Annals of Operations Research, vol. 254, no. 1-2, pp. 303–334, 2017.
  • [12] L. A. Barroso, R. D. Carneiro, S. Granville, M. V. Pereira, and M. Fampa, “Nash equilibrium in strategic bidding: a binary expansion approach,” Power Systems, IEEE Transactions on, vol. 21, no. 2, p. 629, 2006.
  • [13] S. A. Gabriel, A. J. Conejo, J. D. Fuller, B. F. Hobbs, and C. Ruiz, Complementarity modeling in energy markets, vol. 180. Springer Science & Business Media, 2012.
  • [14] J. Bushnell, “A Mixed Complementarity Model of Hydrothermal Electricity Competition in the Western United States,” Operations Research, vol. 51, no. 1, pp. 80–93, 2003.
  • [15] K. C. Almeida and A. J. Conejo, “Medium-Term Power Dispatch in Predominantly Hydro Systems: An Equilibrium Approach,” IEEE Transactions on Power Systems, vol. 28, no. 3, pp. 2384–2394, 2013.
  • [16] Y. Liang, Q. Lin, S. He, Q. Liu, Z. Chen, and X. Liu, “Power Market Equilibrium Analysis with Large-scale Hydropower System Under Uncertainty,” 2020 IEEE PES Innovative Smart Grid Technologies Europe (ISGT-Europe), vol. 00, pp. 329–333, 2020.
  • [17] E. Moiseeva and M. R. Hesamzadeh, “Bayesian and Robust Nash Equilibria in Hydrodominated Systems Under Uncertainty,” IEEE Transactions on Sustainable Energy, vol. 9, no. 2, pp. 818–830, 2018.
  • [18] M. Cruz, E. Finardi, V. d. Matos, and J. Luna, “Strategic bidding for price-maker producers in predominantly hydroelectric systems,” Electric Power Systems Research, vol. 140, pp. 435–444, 2016.
  • [19] T. J. Scott and E. G. Read, “Modelling hydro reservoir operation in a deregulated electricity market,” International Transactions in Operational Research, vol. 3, no. 3-4, pp. 243–253, 1996.
  • [20] R. Kelman, L. A. N. Barroso, and M. V. F. Pereira, “Market power assessment and mitigation in hydrothermal systems,” Power Systems, IEEE Transactions on, vol. 16, no. 3, pp. 354–359, 2001.
  • [21] J. Villar and H. Rudnick, “Hydrothermal market simulator using game theory: assessment of market power,” Power Systems, IEEE Transactions on, vol. 18, no. 1, pp. 91–98, 2003.
  • [22] G. Steeger and S. Rebennack, “Strategic bidding for multiple price-maker hydroelectric producers,” IIE Transactions, vol. 47, no. 9, pp. 1013–1031, 2015.
  • [23] M. Löschenbrand, W. Wei, and F. Liu, “Hydro-thermal power market equilibrium with price-making hydropower producers,” Energy, vol. 164, pp. 377–389, 2018.
  • [24] B. Flach, L. Barroso, and M. Pereira, “Long-term optimal allocation of hydro generation for a price-maker company in a competitive market: latest developments and a stochastic dual dynamic programming approach,” IET generation, transmission & distribution, vol. 4, no. 2, pp. 299–314, 2010.
  • [25] G. Steeger and S. Rebennack, “Dynamic convexification within nested Benders decomposition using Lagrangian relaxation: An application to the strategic bidding problem,” European Journal of Operational Research, vol. 257, no. 2, pp. 669–686, 2017.
  • [26] M. Habibian, A. Downward, and G. Zakeri, “Multistage stochastic demand-side management for price-making major consumers of electricity in a co-optimized energy and reserve market,” European Journal of Operational Research, vol. 280, no. 2, pp. 671–688, 2020.
  • [27] G. Gross and D. Finlay, “Generation supply bidding in perfectly competitive electricity markets,” Computational & Mathematical Organization Theory, vol. 6, no. 1, pp. 83–98, 2000.
  • [28] L. Barroso, S. Granville, P. Jackson, M. Pereira, and E. Read, “Overview of Virtual Models for Reservoir Management in Competitive Markets,” in Proceedings 4th IEEE/Cigré International Workshop on Hydro Scheduling in Competitive Markets, Bergen, Norway, 2012.
  • [29] A. Gjelsvik, M. M. Belsnes, and A. Haugstad, “An algorithm for stochastic medium-term hydrothermal scheduling under spot price uncertainty,” in Proceedings of 13th Power Systems Computation Conference, 1999.
  • [30] B. Fanzeres, A. Street, and D. Pozo, “A Column-and-Constraint Generation Algorithm to Find Nash Equilibrium in Pool-Based Electricity Markets,” Electric Power Systems Research, vol. 189, p. 106806, 2020.
  • [31] S. P. Dirkse and M. C. Ferris, “The path solver: a nommonotone stabilization scheme for mixed complementarity problems,” Optimization methods and software, vol. 5, no. 2, pp. 123–156, 1995.
  • [32] M. T. Devine and S. Siddiqui, “Strategic investment decisions in an oligopoly with a competitive fringe: An equilibrium problem with equilibrium constraints approach,” European Journal of Operational Research, vol. 306, no. 3, pp. 1473–1494, 2023.
  • [33] A. Hori and M. Fukushima, “Gauss–seidel method for multi-leader–follower games,” Journal of Optimization Theory and Applications, vol. 180, no. 2, pp. 651–670, 2019.
  • [34] A. Shapiro, “Analysis of stochastic dual dynamic programming method,” European Journal of Operational Research, vol. 209, no. 1, pp. 63–72, 2011.
  • [35] A. Shapiro, W. Tekaya, J. P. da Costa, and M. P. Soares, “Risk neutral and risk averse stochastic dual dynamic programming method,” European Journal of Operational Research, vol. 224, no. 2, pp. 375–391, 2013.
  • [36] B. Rudloff, A. Street, and D. M. Valladão, “Time consistency and risk averse dynamic decision models: Definition, interpretation and practical consequences,” European Journal of Operational Research, vol. 234, no. 3, pp. 743–750, 2014.
  • [37] O. Dowson, D. P. Morton, and B. K. Pagnoncelli, “Incorporating convex risk measures into multistage stochastic programming algorithms,” Annals of Operations Research, pp. 1–25, 2022.
  • [38] N. Löhndorf and A. Shapiro, “Modeling time-dependent randomness in stochastic dual dynamic programming,” European Journal of Operational Research, vol. 273, no. 2, pp. 650–661, 2019.
  • [39] G. Infanger and D. P. Morton, “Cut sharing for multistage stochastic linear programs with interstage dependency,” Mathematical Programming, vol. 75, no. 2, pp. 241–256, 1996.
  • [40] D. Jardim, M. Maceira, and D. Falcao, “Stochastic streamflow model for hydroelectric systems using clustering techniques,” in 2001 IEEE Porto Power Tech Proceedings, vol. 3, pp. 6–pp, IEEE, 2001.
  • [41] J. A. Dias, G. Machado, A. Soares, and J. D. Garcia, “Modeling multiscale variable renewable energy and inflow scenarios in very large regions with nonparametric bayesian networks,” arXiv preprint arXiv:2003.04855, 2020.
  • [42] A. W. Rosemberg, A. Street, J. D. Garcia, D. M. Valladão, T. Silva, and O. Dowson, “Assessing the Cost of Network Simplifications in Long-Term Hydrothermal Dispatch Planning Models,” IEEE Transactions on Sustainable Energy, vol. 13, no. 1, pp. 196–206, 2021.
  • [43] S. Debia, P.-O. Pineau, and A. S. Siddiqui, “Strategic storage use in a hydro-thermal power system with carbon constraints,” Energy Economics, vol. 98, p. 105261, 2021.
  • [44] G. L. M. Fredo, E. C. Finardi, and V. L. de Matos, “Assessing solution quality and computational performance in the long-term generation scheduling problem considering different hydro production function approaches,” Renewable energy, vol. 131, pp. 45–54, 2019.
  • [45] P. Lino, L. A. N. Barroso, M. V. Pereira, R. Kelman, and M. H. Fampa, “Bid-based dispatch of hydrothermal systems in competitive markets,” Annals of Operations Research, vol. 120, no. 1-4, pp. 81–97, 2003.
  • [46] J. Zou, S. Ahmed, and X. A. Sun, “Stochastic dual dynamic integer programming,” Mathematical Programming, vol. 175, no. 1-2, pp. 461–502, 2019.
  • [47] T. Silva, D. Valladão, and T. Homem-de Mello, “A data-driven approach for a class of stochastic dynamic optimization problems,” Computational Optimization and Applications, vol. 80, pp. 687–729, 2021.
  • [48] CCEE - Câmara de Comercialização de Energia Elétrica, “Brazilian price formation data set for the Newave model, January 2024,” www.ccee.org.br/documents/80415/26534941/DES_202401.zip/f1eea7e8-2f70-fbc5-830a-8cd1790e6d4b from www.ccee.org.br/acervo-ccee?especie=44884 (visited on Jan 2024).
  • [49] J. Bezanson, A. Edelman, S. Karpinski, and V. B. Shah, “Julia: A fresh approach to numerical computing,” SIAM review, vol. 59, no. 1, pp. 65–98, 2017.
  • [50] M. Lubin, O. Dowson, J. Dias Garcia, J. Huchette, B. Legat, and J. P. Vielma, “JuMP 1.0: Recent improvements to a modeling language for mathematical optimization,” Mathematical Programming Computation, vol. 15, p. 581–589, 2023.
  • [51] FICO, “FICO Xpress Optimizer Reference Manual,” 2023.
  • [52] J. H. Roh, M. Shahidehpour, and L. Wu, “Market-based generation and transmission planning with uncertainties,” IEEE Transactions on Power Systems, vol. 24, no. 3, pp. 1587–1598, 2009.
  • [53] S. Wogrin, P. Duenas, A. Delgadillo, and J. Reneses, “A new approach to model load levels in electric power systems with high renewable penetration,” IEEE Transactions on Power Systems, vol. 29, no. 5, pp. 2210–2218, 2014.
  • [54] E. Faria, L. A. Barroso, R. Kelman, S. Granville, and M. V. Pereira, “Allocation of firm-energy rights among hydro plants: An Aumann–Shapley approach,” IEEE Transactions on Power Systems, vol. 24, no. 2, pp. 541–551, 2009.
  • [55] S. Borenstein, J. Bushnell, and C. R. Knittel, “Market power in electricity markets: Beyond concentration measures,” The Energy Journal, vol. 20, no. 4, pp. 65–88, 1999.
  • [56] S. Maier, A. Street, and K. McKinnon, “Risk-averse portfolio selection of renewable electricity generator investments in brazil: An optimised multi-market commercialisation strategy,” Energy, vol. 115, pp. 1331–1343, 2016.