Skip to main content
Erschienen in: Optimization and Engineering 1/2024

Open Access 09.08.2023 | Research Article

Predicer: abstract stochastic optimisation model framework for multi-market operation

verfasst von: Esa Pursiheimo, Dennis Sundell, Juha Kiviluoma, Helmi Hankimaa

Erschienen in: Optimization and Engineering | Ausgabe 1/2024

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

An open-source modelling framework Predicer, standing for Predictive Decider, for multi-market day-ahead market operation purposes is described in this paper. The Predicer model uses scenario-based stochastic optimisation to obtain decision variables and bid matrixes for energy and reserve markets by maximising the risk-adjusted expected value of the profit during the model time frame. The modelled energy system structure is abstract, that is, based on basic elements such as nodes representing different energy types and processes representing flows between nodes. The abstract model structure enables user to construct arbitrary energy systems and define links between assets, commodities, energy markets and reserve markets. Predicer model can include properties such as unit ramp rates, online units, dynamic energy storages, market realisation and market bidding requirements. The aggregation of unit-based energy and reserve opportunities into a virtual power plant allows the asset owner to make optimized portfolio-level bids for different market products. The model scenarios consist of user defined forecasts for market prices, renewable energy supply, energy demand and other system related time series. Predicer is implemented in Julia programming language and uses the JuMP optimisation package.
Hinweise

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Abkürzungen
\(t\in T\)
Time steps
\(s\in S\)
Scenarios
\(n\in N\)
Nodes
\(n\in {N}^{state}\)
Nodes with dynamic state
\(n\in {N}^{comm}\)
Commodity nodes
\(n\in {N}^{res}\)
Reserve nodes
\(n\in {N}^{market}\)
Market nodes
\(n\in {N}^{inflow}\)
Nodes with inflow
\(p\in P\)
Processes
\(p\in {P}^{unit}\)
Unit type process
\(p\in {P}^{online}\)
Online processes
\(p\in {P}^{res}\)
Reserve processes
\(p\in {P}^{cf}\)
Processes with capacity factor
\(p\in {P}^{cf\_up}\)
Processes with upper capacity factor
\(p\in {P}^{cf\_fix}\)
Processes with fixed capacity factor
\(p\in {P}^{eff\_fix}\)
Processes with fixed efficiency
\(p\in {P}^{eff\_ts}\)
Processes with time series-based efficiency
\(p\in {P}^{eff\_piece}\)
Processes with fixed piecewise linear efficiency
\(p\in {P}^{cha}\)
Processes functioning in storage charging or discharging
\(so\in N\cup P\)
Source in unit type process
\(si\in N\cup P\)
Sink in unit type process
\(r\in R\)
Reserve markets
\(rt\in RT\)
Reserve market types (up, down, up_down)
\(rp\in RP\)
Reserve speed types
\(rd\in RD\)
Reserve directions (up, down)
\(op\in OP\)
Piecewise linear efficiency related operative ranges
\(\left\{p,so,si\right\}\in PRO\)
Tuple representing process/node topology
\(\left\{r,n,rt,rp\right\}\in RES\)
Tuple representing reserve properties
\(\left\{r,n,rp\right\}\in {RES}^{up}\)
Tuple representing reserve properties with up direction
\(\left\{r,n,rp\right\}\in {RES}^{down}\)
Tuple representing reserve properties with down direction
\(gc\in G\)
Generic constraints
\(\left\{gc,p,so,si\right\}\in GEN\)
Tuple linking flow variables to generic constraint

1 Introduction

The introduction of variable renewable energy (VRE) production and small-scale energy technologies into energy systems around the world has emphasised the role of decentralised energy production and has formed various small-scale energy communities functioning as prosumers (i.e. producers/consumers) in the energy market. The development of prosumer activity has set pressure on legislation, market mechanisms and energy policies (see e.g. Horstink et al. 2021 or Wittmayer et al. 2022 for prosumer related development). Furthermore, it is relevant to notice that prosumers will participate more and more in energy and reserve markets as energy communities transform to more complex energy systems. Therefore, it is essential to develop open-source tools for the prosumer and energy community level for them to operate rationally in the energy and reserve markets.
The electricity markets in the Nordic countries, as well as in many other parts of the world, can be divided into power markets and reserve markets. Most of the electricity that is produced and consumed is traded in different power markets, while different reserve products traded on the reserve markets are used to maintain system balance. The power markets in the Nordic and Baltic countries, the UK, Germany, Poland, the Netherlands, France, Belgium, Austria, and Luxembourg are operated by Nordpool. A day-ahead spot electricity market is active in the UK, while both a day-ahead spot and continuous intraday markets are active in the rest of the countries in the Nordpool market area. Electricity reserve markets are operated by the transmission system operators. The purpose of the reserve markets is to ensure that the frequency of the electricity grid does not deviate from the nominal grid frequency. This is done by procuring reserve capacity in the system, i.e. paying for the availability of production or consumption capacity that can be activated to counter system imbalances or other disturbances. A detailed description of the reserve markets in the Nordic countries is available in Modig et al. (2022). The types of reserve products in the Nordic countries can be divided into fast frequency reserves activating in a few seconds, frequency containment reserves activating in seconds or a few minutes, and frequency restoration reserves activating in several minutes. The reserve products can be further divided based on the direction of the system balance when the reserve capacity is activated; up and down.
An increasing share of VRE and small-scale generation in the electricity system sets increasing demands on functioning electricity markets. Being able to navigate through the multi-market landscape and to be able to handle the uncertainties inherently found in systems with larger shares of VRE production is essential for optimal market decision making. In our paper we are concentrating on the situation where producer/prosumer is acting as a price-taker and sends bidding information to market operator via bidding curves based on stochastic modelling. Our paper does not thus concern market balance or trading modelling such as examined in e.g. Huangfu and Hall (2018) or Weber and Overbye (1999).

1.1 Literary review

First, here are listed selected studies concerning stochastic optimisation models related to single actor energy market operation in terms of methodology. The authors of Fleten and Kristoffersen (2007) present a stochastic optimisation model concerning day-ahead spot-market bidding for hydro-power system. This paper provides the theoretical background for combining physical production and market bidding and provides method for creating bidding curves based on arbitrary price levels. The authors of Akbari et al. (2019) present a model structure and a case study for stochastic programming-based optimal bidding concerning an energy system including compressed air energy storage and thermal units. The results indicate that the stochastic optimisation method is efficient for optimal bidding in the example case. The authors of Campos et al. (2016) examine a methodology to obtain an optimised bidding curve for the secondary reserve market including an application to the Spanish secondary reserve market. In addition, this paper lists a variety of optimisation models related to reserve market modelling. The authors of Silva et al. (2022) present a multistage stochastic modelling approach to day-ahead, balancing market and intra-day markets based on linear optimisation. This modelling approach provides the optimal bidding strategy for a virtual power plant with wind power, solar photovoltaics (PV), and energy storages. The results presented in this paper indicate that participating in multiple markets increases profits by 10% in the case study. This paper also lists a variety of optimisation models related to optimal bidding of VREs in the electricity markets. The authors of Xiao et al. (2020) present a stochastic bi-level optimisation model to be utilised in strategic bidding in energy and regulation markets aggregated prosumers. A case study based on Australian prosumers indicate that aggregated strategic bidding decreases operation costs by 7.5%. The authors of Wong and Fuller (2007) examine stochastic optimisation modelling as a tool for pricing in day-ahead energy and reserve markets. Finally, the authors of Parvar and Nazaripouya (2022) use another approach to model PV and battery based multi-market operation under uncertain pricing by utilising robust optimisation which minimises the cost function over a worst-case scenario.
The papers examined above, however, do not provide any general tools for the model user to construct freely any energy system for multi-market operation. The energy modelling community provides several modelling frameworks to construct arbitrary energy systems. TIMES (The Integrated Markal Efom System) model framework (see Loulou and Labriet 2007) for methodology details) provides a technology-rich economic model generator for multi-regional and multi-sector energy systems, in which the user can define the model structure by setting input data. In Finland, the TIMES-VTT model, presented in Koljonen and Lehtilä (2012), has been used for several governmental studies in terms of national climate and energy strategy. However, as a partial equilibrium model and designed for sector analysis, the TIMES model framework cannot be utilised for single-actor multi-market optimisation purposes. The open-source FlexTool model framework presented in Taibi et al. (2018) is an investment and dispatch optimisation model designed for exploring flexibility issues concerning power systems with renewable energy. The FlexTool model structure can be set up by using input data and handles reserves from the system point of view. The open-source OMEGAlpes model generation tool is described in Hodencq et al. (2021). This district scale tool aims at making energy models understandable and easy to use. OMEGAlpes tool has vast library of use cases listed in Hodencq et al. (2021). The Open Energy Modelling Framework (oemof) is an open source modelling system described in Hilpert et al. (2018). This Python based flexible, generic and modular modelling framework has been used in several energy system research studies such as in Röder et al. (2020). Another data-driven energy system model framework is Backbone, documented in detail in Helistö et al. (2019). The open-source Backbone model framework is highly adaptable and has features such as stochastic parameters, multiple reserves and multiple energy sectors. Even though Backbone can be somewhat utilised to examine operation in energy markets from a single-actor point of view, reserve market operation is not handled in the Backbone model structure. The SpineOpt energy system modelling framework, introduced in Ihlemann et al. (2022), includes generic data structure, stochastic uncertainties and flexible temporal structure. These features of the SpineOpt model enable diverse implementations of energy systems.
While the papers and energy modelling frameworks presented above provide an important contribution to the research field, they either lack the detailed functionalities or abstract data structure required for modelling market and operational decision-making from the point of one actor on the markets. Predicer has been developed with these shortcomings in mind; a generic modelling framework capable of detailed energy multi-market decision-making and multi-asset operation from the perspective of one actor in a stochastic multi-scenario environment.

1.2 Contribution

Our contribution in this paper is based on the presentation of the new open-source modelling framework which enables the creation of an arbitrary data-driven energy system and ability to optimise the multi-market interaction between the operator of this energy system and the energy and reserve market operators under uncertainty of required system data. Our new open-source tool Predicer, standing for Predictive Decider, is aimed at variable scale energy systems participating simultaneously in energy and reserve markets by creating bidding curves based on stochastic optimisation. This modelling tool supports multi-stage operation of a single-actor energy producer with easy data insertion and model topology creation. In terms of reserve market related operation, our new model framework provides a functional connection between different reserve market products and producing/consuming units participating in the reserve markets.
The Predicer model is implemented by using Julia programming language and specifically the JuMP optimisation package, and the current version uses the open-source HiGHS optimisation solver (Huangfu and Hall 2018), although the solver option can be easily modified within the model code. According to Weibezahn and Kendziorski (2019) a Julia JuMP based energy system model is significantly faster than Python based Pyomo optimisation modelling environment and at a similar level with the commercial GAMS modelling tool in terms of non-solving related speed. The current working version of the Predicer model source code is available in Github (Pursiheimo et al. 2022).

2 Methods

In the literary review of this paper we have listed several studies which indicate that stochastic optimisation can be used effectively in order to form bidding curves for energy markets. For example, in Fleten and Kristoffersen (2007) it is implied that using stochastic optimisation provides more profitable bidding curves when compared to the deterministic approach. It should be noted that recently, such as in Khodadadi et al. (2022), robust optimisation based approaches have been introduced in terms of optimal day-ahead energy market bidding. However, we have decided to implement market and energy system related uncertainties in the Predicer model by using stochastic optimisation, since this approach suits well for bidding curve structure and enables modelling features such as Conditional Value at Risk (CVaR) measure.
The basic structure of the stochastic optimisation method used in the Predicer model is illustrated in Fig. 1. In the Predicer model there are several scenarios defined by the user representing uncertainty and, from the optimisation point of view, the operation in terms of scenario-based decision variables subject to each scenario must be feasible and consistent. This horizontal procedure would in fact stand for multi-scenario deterministic optimisation, but however, in stochastic optimisation based approach these separate scenarios must be linked to each other in order to make the stochastic modelling relevant. Therefore, the bidding curves for each market during each time step must be consistent and this requirement provides the vertical linking between the scenarios as illustrated in Fig. 1. These rules applying to the bidding curves are illustrated in Fig. 2 by using a simple example. Basically, there are price forecast based scenarios for each market and therefore there is a vector of prices for each time step. Since the model produces bid volumes based on the optimisation for each scenario and time step, for each market and each time step there exists vector of price and bid volume pairs. Therefore, the vertical requirement from the stochastic optimisation point of view is that the bidding curve based on these price/volume pairs must be increasing (the details of the bid curve requirement are described in the following Chapter). In summary, the stochastic optimisation model in Predicer minimises the expected total costs with scenario specific energy system constrains applying and bidding curve requirements applying by using mixed integer linear programming.
It is important to notice that the Predicer is an energy system modelling framework which enables construction of arbitrary energy systems for single-actor optimisation targeting multiple markets. The main feature of the Predicer model is to provide a stochastic optimisation tool for bidding curve creation purposes subject to corresponding markets, however, since the model framework is highly flexible and modifiable, the Predicer model can also be utilised in deterministic optimisation by using merely one scenario. It is up to the model user to decide how to use the modelling framework.

3 Model description

3.1 Principles and structures of the model

The basic features of the stochastic optimisation model framework Predicer are described in this chapter. It should be first noted that there are several important terms, used in the model definition, which are briefly clarified in Table 1. The abstract energy system model inside the Predicer basically consists of two elements, nodes and processes, which are linked to each other and have properties and parameter data attached. The main elements can be defined as follows:
1.
Node elements represent different energy types used in the model. Examples for nodes can be electricity, district heat, hydrogen etc. Nodes can have properties, which are considered when constructing the model, such as reserve status, inflow (external consumption or inflow depending on the sign), storage state (can node be used as an energy storage) etc. Energy balance is formed for each node, except for commodity nodes (e.g. fuels purchased for power plants) or market nodes (e.g. Spot market for electricity) which are linked out of the examined energy system.
 
2.
Process elements represent flow of energy between the nodes. Examples for processes can be power plant, transmission line etc. There are three different processes in the model (see Fig. 3):
a.
Unit type process in which energy flow into a unit and transformed energy flows from the unit to another node. Efficiency is considered for input and output flows. There can be multiple input and output flows in this process. One specific type of unit type process is capacity factor (CF) based units (e.g., variable renewable energy units such as PVs or wind turbines) which have merely an output flow variable.
 
b.
Transfer process in which energy is transformed from node A to node B without losses. There can be only one flow variable, that is, from node A to node B. Transfer process always has efficiency of 100%.
 
c.
Market process in which energy is transferred without losses from node A to node B or from node B to node A. Therefore, there are exactly two flow variables required and one of the two nodes must be a market node.
 
 
Table 1
Descriptions of the model related terms
Model term
Description
Scenarios
Scenarios are an integral part of the stochastic optimisation models, and they consist of forecasts for numerous energy system related time series: market prices, variable renewable energy (VRE), weather based technical parameters etc. In the Predicer model, these forecasts are assumed to be independent scenarios with given probabilities and expected value of the total system cost is optimised (with added risk component). In the model, system constraints apply for each scenario independently, however, the scenarios are linked to each other via the requirements for the market bid curves
Multi-market
Multi-market operation stands for optimising the system subject to ability to make trades with several different markets (energy and/or reserve markets) simultaneously for next two days (D-1 and D-2). The different closure times of markets are handled by fixing the net selling volume for closed market in the model
Bid curves
Bid curves for markets are the main output from the model as these curves are sent to the market operator before market closure. These bid curves are series of sorted price–volume pairs (see Fig. 2), which are used by the energy market operator (for example Nordpool in Northern Europe) to ensure market balance and generate electricity market prices for each time step of the day. After the market closes, the user must comply with the market balance by fixing the market volume to the balance value of each bid curve
Balance markets
Balance markets are an integral part of the energy market bid curves. as they make scenario optimisation more flexible while forcing the requirements of the bid curves. Bid volumes for each scenario and time step consist of physical production volume and balance market (up and down) volumes. In order to keep the market model feasible, up-balance market prices must be higher than spot prices and down-balance market prices lower than spot prices
Abstract model
An abstract model structure is the basis for the Predicer, and the user of the model can define the model structure by providing topological data. The abstract model structure consists of nodes, processes and markets, with several parameters defining these model elements
The flow variables related to processes have topology set according to Fig. 3. Each flow variable is identified by the process it is attached to, as well as the source and the sink, which can be either a node or a process as illustrated in Fig. 3. In the unit type process, the combination of the source and the sink must be a combination of a node and a process, whereas in the case of the transfer process and the market process, both source and the sink must be nodes.
The participation of the Predicer model in the reserve markets (concerning multitude of different reserve market products) requires a complex modelling framework in order to bind together reserve markets, energy markets and properties of the used abstract energy system. Therefore, the reserve market handling must be examined in greater detail here. The abstract model in the Predicer handles the reserves as visualised in Fig. 4. There are three levels of reserve variables ensuring that reserve operation is distributed correctly to processes capable of reserve commitment. These reserve variables in accordance with Fig. 4 are as follows:
1.
Process level reserve potential is a variable ensuring there will be reserve available subject to maximum and minimum limit of the process. Reserve potential is separated by direction (up and down) and activation speed (user defined). Direction of the reserve potential depends on whether the process is a consumer or a producer of the node. Only a unit type processes can have reserve potential and therefore participate in reserve market.
 
2.
Node level aggregated reserve potential is a variable in which all the process level reserve potential variables separated by direction and activation speed are gathered.
 
3.
Final reserve product is a variable representing actual reserve sold to the market. In the model, node level aggregated reserve potential is allocated for this final reserve product, depending on the direction and activation speed. It should be noted that symmetric reserve product (up/down) has to allocate equal amount of up and down based reserve potential.
 
The link between reserve potential and final reserve product in an example with producer and consumer process and four different reserve products is illustrated in Fig. 5. It illustrates how up and down reserve potential directions relate to the load of producer and consumer processes. In the case of producer process, up direction represents operative reserve to increase load and down direction represents reserve to decrease load. In the case of consumer process, it is vice versa. It should be noticed that reserve potentials with different activation speeds are treated cumulatively. Also, Fig. 5 illustrates how symmetric reserve product (UP/DOWN) allocates aggregated reserve potential equally from both UP and DOWN reserve pools.
In the Predicer model, the ramp rates, representing limitations for the flexibility of the processes, are considered as illustrated in Fig. 6. Basically, the ramp rate parameter limits the alteration in process load between two timesteps, e.g., if the ramp rate of a process is 20%/h and production capacity is 1 MW, the load can alter 200 kW per hour and 50 kW per 15 min. However, there are factors affecting the modelling of the ramp rate:
1.
Reserves limit the flexibility of a process load in terms of ramp rate, since some of the leeway in terms of load must be allocated for potential reserve activation. For example, if a process with 200 kW per hour ramp rate has 100 kW of reserve-up potential with one hour activation speed allocated, it limits the realised ramp of the process to 100 kW per hour (see Fig. 6). Furthermore, the activation speed of the reserve potential affects the available ramp of the process according to Fig. 7.
 
2.
Unit type processes with online functionality and a minimum load value pose a potential issue for process ramp. When a process is shut down in the model, the load decreases during one time step for an amount of minimum load. For example, shutting down a unit with 1 MW capacity and 40% minimum load level results with ramp of minimum 400 kW per hour, and if the unit has ramp rate of 300 kW per hour, it cannot be shut down in a feasible manner. Therefore, the model adds an incremental ramp rate (100 kW per hour in the example here) during the time step of the shutdown to enable feasible change in online status. Obviously, this logic applies to start up too.
 
The risk factor should be included in the stochastic optimisation model, and in Predicer, risk is involved by adding a Conditional Value at Risk (CVaR) element into the objective the model tries to minimise (seeKrokhmal et al. 2001; Fleten and Kristoffersen 2007 for CVaR related details). CVaR can be defined as the expected value of the scenario-based cost higher than (1−α) quantile of the scenario-based cost distribution. In the model, the expected value of the total cost of the system and the CVaR variable representing risk are weighed as the objective function to be minimised.
There are requirements for bid curves at each time step that affect the stochastic modelling structure and basically link the scenario paths to each other. Since bid curves are formed for each time step separately from scenario-based results (see Fig. 2), these price–volume pairs should be sorted in order to produce coherent bid curves. Therefore, the following bid curve requirements (ensuring that each bid curve is of increasing nature) are included in the model:
1.
During each time step, if the market price in scenario s1 is lower than in scenario s2, the market volume in scenario s1 must be lower than in scenario s2.
 
2.
During each time step, if the market price in scenario s1 is equal to price in scenario s2, the market volume in scenario s1 must be equal to the volume in scenario s2.
 
This bid curve requirement ensures that each scenario is not optimised independently, but there is a model-based link between each scenario, and therefore, for example the risk component is not trivial from the stochastic model point of view. These bid curve requirements apply to both energy and reserve markets.
Finally, it is important to note that multi-market optimisation tool is usually operated in cycles such as in the Fig. 8, that is, market bids are not sent to the operators simultaneously, but one market will close before another market. Therefore, closed markets are implemented in the model by setting the bid volume (and prices) to a fixed value and then proceeding to optimise the bid curve for other markets. In fact, bids for D-2 from day before current day-ahead optimisation must be taken into account by using fixed volumes, since they still affect the target day optimised. The Predicer model enables fixing market bids by setting time-series values in the input data.

3.2 Model equations

The equations of the stochastic optimisation model are defined in this chapter. First, it should be noted that flow variables \({v}^{flow}\left(p,so,si,s,t\right)\) have index based on the process topology tuple \(\left\{p,so,si\right\}\in PRO\) and scenario (s) and time indices (t). This process topology index applies also to reserve potential variables \({v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\) and \({v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\), in accordance with principles from Fig. 3 and Fig. 4.
The balance of non-market or non-commodity nodes must be enforced by balance Eq. (1). The balance of nodes n includes the following components:
1.
Flow variables \(\sum_{si=n}{v}^{flow}\left(p,so,si,s,t\right)\) from processes into node n (positive).
 
2.
Flow variables \(\sum_{so=n}{v}^{flow}\left(p,so,si,s,t\right)\) to processes from node n (negative).
 
3.
Inflow parameter \({d}^{inflow}\left(n,s,t\right)\) of node n (positive value represents inflow and negative value represents demand) is non-zero if \(n\in {N}^{inflow}\).
 
4.
Expected value \({v}^{res\_real}\left(n,s,t\right)\) of realised reserve variables concerning node n (positive value for UP reserves and negative value DOWN reserves, symmetric UP/DOWN reserves are assumed to have zero expected realisation). See Eq. (2).
 
5.
Dummy variables \({vq}^{state\_up}\left(n,s,t\right)\) (increase) and \({vq}^{state\_down}\left(n,s,t\right)\) (decrease) to ensure feasibility.
 
6.
The dynamic change in terms of the node state \({v}^{state}\left(n,s,t\right)-\left(1-{d}^{state\_loss}\left(n\right)\right)\times {v}^{state}\left(n,s,t-1\right)\) representing charging excess energy into storage or discharging energy from storage in order to fill balance. This term is zero if there is no storage in the node.
 
It should be noted that all the elements in the left side (points 1–5 above) of the balance Eq. (1) are represented in terms of power (MW) and storage state is represented in terms of energy (MWh) and therefore time step length dt must be used. Also, it is important to notice that the time step length can be shorter than one hour as long as the time frame is a full fraction of an hour. For example, if the time step is 15 min, the time step length dt used in the model equations is defined as 0.25.
$$\begin{aligned} & dt\times \left(\sum_{si=n}{v}^{flow}\left(p,so,si,s,t\right) -\sum_{so=n}{v}^{flow}\left(p,so,si,s,t\right)+{v}^{res\_real}\left(n,s,t\right)\right.\\ &\qquad\left. +{d}^{inflow}\left(n,s,t\right)+{vq}^{state\_up}\left(n,s,t\right)-{vq}^{state\_down}\left(n,s,t\right)\right)\\ &\quad ={v}^{state}\left(n,s,t\right)-\left(1-{d}^{state\_loss}\left(n\right)\right)\times {v}^{state}\left(n,s,t-1\right), \forall n\notin {N}^{comm}\bigcup {N}^{market},s,t \end{aligned}$$
(1)
$$v^{res\_real} \left( {n,s,t} \right) = \mathop \sum \limits_{{\left\{ {r,n,rp} \right\} \in RES^{up} }} d^{real\_res} \left( r \right) \times v^{res\_final} \left( {r,s,t} \right) - \mathop \sum \limits_{{\left\{ {r,n,rp} \right\} \in RES^{down} }} d^{real\_res} \left( r \right) \times v^{res\_final} \left( {r,s,t} \right),{ }\forall n \in N^{res} ,s,t$$
(2)
Amount of energy charged to or discharged from node storage is limited by node specific parameters \({d}^{state\_max\_out}(n)\) and \({d}^{state\_max\_in}(n)\) in Eq. (3). Furthermore, the state of node storage is limited by storage size \({d}^{state\_max}(n)\) in Eq. (4).
$$-{d}^{state\_max\_out}(n)\times dt\le {v}^{state}\left(n,s,t\right)-\left(1-{d}^{state\_loss}\left(n\right)\right)\times {v}^{state}\left(n,s,t-1\right)\le {d}^{state\_max\_in}(n)\times dt, \forall {n\in N}^{state},s,t$$
(3)
$$v^{state} \left( {n,s,t} \right) \le d^{state\_max} \left( n \right),{ }\qquad\forall n \in N^{state} ,s,t$$
(4)
Each process with reserve operation enabled subject to node n has reserve potential variables based on the operative load with respect to minimum and maximum limits of the process. Reserve potential is divided into up and down categories (rd) and also into categories based on the activation speed (rp). For example in the case of up direction, these process-based reserve potential variables \({v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\) are aggregated for each node used in the reserve market as \({v}^{res\_up}\left(rp,n,s,t\right)\). See Eqs. (5)–(6) for node aggregation.
$${v}^{res\_up}\left(rp,n,s,t\right)=\sum_{so=n \cup si=n}{v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right), \forall n\in {N}^{res},rp,s,t$$
(5)
$$v^{res\_down} \left( {rp,n,s,t} \right) = \mathop \sum \limits_{{so = n{ } \cup { }si = n}} v^{res\_pot\_down} \left( {rp,p,so,si,s,t} \right),{ }\forall n \in N^{res} ,rp,s,t$$
(6)
On the other side, the reserve products \({v}^{res\_final}\left(r,s,t\right)\) sold to the market are formed from the aggregated reserve potential pool(s) \({v}^{res\_up}\left(rp,n,s,t\right)\) and/or \({v}^{res\_down}\left(rp,n,s,t\right)\) with respective reserve directions and speeds, according to Eqs. (7)–(8). It should be noted that symmetrical reserve product (UP-DOWN) uses reserve potential equally from the UP and DOWN reserve potential pools.
$${v}^{res\_up}\left(rp,n,s,t\right)=\sum_{rt=up \cup rt=up\_down}{v}^{res\_final}\left(r,s,t\right), \forall \left\{r,n,rt,rp\right\}\in RES$$
(7)
$$v^{res\_down} \left( {rp,n,s,t} \right) = \mathop \sum \limits_{{rt = down{ } \cup { }rt = up\_down}} v^{res\_final} \left( {r,s,t} \right),{ }\forall \left\{ {r,n,rt,rp} \right\} \in RES$$
(8)
There are six different cases concerning process flow properties depending on (1) online capability, (2) flow type (consumer or producer) and (3) reserve participation (these combinations are identified in Table 2). In terms of minimum and maximum constraints and ramp up and ramp down constraints, these cases require different equation formulations. It should be noted that since transfer processes cannot be online processes and cannot participate in the reserve market, they are only concerned subject to the Case 1 in Table 2.
Table 2
The identification of the cases used in equations concerning maximum load, minimum load, ramp-up and ramp-down
Case no
Online unit
Reserve unit
Flow type
Maximum equation no
Minimum equation no
Ramp-up equation no
Ramp-down equation no
1
  
Pro/Con
9
15
32
38
2
×
 
Pro/Con
10
16
33
39
3
 
×
Producer
11
17
34
40
4
 
×
Consumer
12
18
35
41
5
×
×
Producer
13
19
36
42
6
×
×
Consumer
14
20
37
43
The maximum operative limit equations concerning unit type processes are defined for six different cases of Table 2 in detail in Table 3 as Eqs. (9)–(14).
Table 3
The model equations concerning maximum limit constraints for processes
Case
Equation
Eq. No.
1
\({v}^{flow}\left(p,so,si,s,t\right)\le {d}^{cap}(p,so,si,s,t)\)
(9)
2
\({v}^{flow}\left(p,so,si,s,t\right)\le {d}^{cap}(p,so,si,s,t)\times {v}^{online}\left(p,s,t\right)\)
(10)
3
\({v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\le {d}^{cap}(p,so,si,s,t)\)
(11)
4
\({v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\le {d}^{cap}(p,so,si,s,t)\)
(12)
5
\({v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\le {d}^{cap}(p,so,si,s,t)\times {v}^{online}\left(p,s,t\right)\)
(13)
6
\({v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\le {d}^{cap}(p,so,si,s,t)\times {v}^{online}\left(p,s,t\right)\)
(14)
Furthermore, the minimum operative limit equations of unit type processes are defined in Table 4 for similar cases as in the maximum limit equation table.
Table 4
The model equations concerning minimum limit constraints for processes
Case
Equation
Eq. No.
1
\({v}^{flow}\left(p,so,si,s,t\right)\ge 0\)
(15)
2
\({v}^{flow}\left(p,so,si,s,t\right)\ge {d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,so,si,s,t)\times {v}^{online}\left(p,s,t\right)\)
(16)
3
\({v}^{flow}\left(p,so,si,s,t\right)-\sum_{rp}{v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\ge 0\)
(17)
4
\({v}^{flow}\left(p,so,si,s,t\right)-\sum_{rp}{v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\ge 0\)
(18)
5
\({v}^{flow}\left(p,so,si,s,t\right)-\sum_{rp}{v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\ge {d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,so,si,s,t)\times {v}^{online}\left(p,s,t\right)\)
(19)
6
\({v}^{flow}\left(p,so,si,s,t\right)-\sum_{rp}{v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\ge {d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,so,si,s,t)\times {v}^{online}\left(p,s,t\right)\)
(20)
In the model there are processes with capacity factor (e.g. variable renewable energy units) which have only output flow and volume of this flow \({v}^{flow}\left(p,so,si,s,t\right)\) depends on the capacity factor time series \({d}^{cf\_fix}(p,s,t)\). There are two types of CF processes: fixed flow (see Eq. 21) and upper limit flow (see Eq. 22).
$${v}^{flow}\left(p,so,si,s,t\right)={d}^{cf\_fix}(p,s,t)\times {d}^{cap}(p,so,si,s,t), \forall p\in {P}^{cf}$$
(21)
$$v^{flow} \left( {p,so,si,s,t} \right) \le d^{cf\_up} \left( {p,s,t} \right) \times d^{cap} \left( {p,so,si,s,t} \right),{ }\forall p \in P^{cf\_up}$$
(22)
The efficiency of the unit type process is modelled in two styles: fixed efficiency and piece-wise efficiency. The fixed efficiency \({d}^{eff}(p,s,t)\) defines how the sum of flows to the process relates to the sum of flows from the process. See Eq. (23).
$$\sum_{si}{v}^{flow}\left(p,so,si,s,t\right)={d}^{eff}(p,s,t)\times \sum_{so}{v}^{flow}\left(p,so,si,s,t\right)$$
(23)
The piece-wise efficiency relation is based on different efficiency values for different operative load intervals. In this measure, the production capacity is divided into operative slots (op) with minimum load value \({d}^{op\_min}(p,op)\) and maximum load value \({d}^{op\_max}(p,op)\) as stated in Eq. (24). Each slot has an input flow \({v}^{flow\_op\_in}\left(p,s,t,op\right)\) and output flow \({v}^{flow\_op\_out}\left(p,s,t,op\right)\) related via the efficiency Eq. (25). Also, for each operative slot there is binary variable \({v}^{flow\_op\_bin}\left(p,s,t,op\right)\) representing whether the slot is active (as stated in Eq. (28), sum of these binary variables must be 1). Actual input and output flows are calculated as sums of slot flows, see Eqs. (26)–(27).
$${d}^{op\_min}(p,op)\times \sum_{si}{d}^{cap}(p,so,si,s,t)\times {v}^{flow\_op\_bin}\left(p,s,t,op\right)\le {v}^{flow\_op\_out}\left(p,s,t,op\right)\le {d}^{op\_max}(p,op)\times \sum_{si}{d}^{cap}(p,so,si,s,t)\times {v}^{flow\_op\_bin}\left(p,s,t,op\right)$$
(24)
$$v^{flow\_op\_out} \left( {p,s,t,op} \right) = d^{eff\_op} \left( {p,op} \right) \times v^{flow\_op\_in} \left( {p,s,t,op} \right)$$
(25)
$$\sum_{si}{v}^{flow}\left(p,so,si,s,t\right)=\sum_{op}{v}^{flow\_op\_out}\left(p,s,t,op\right)$$
(26)
$$\mathop \sum \limits_{so} v^{flow} \left( {p,so,si,s,t} \right) = \mathop \sum \limits_{op} v^{flow\_op\_in} \left( {p,s,t,op} \right)$$
(27)
$$\sum_{op}{v}^{flow\_op\_bin}\left(p,s,t,op\right)=1$$
(28)
Processes with online/offline status (\(p\in {P}^{online}\)) have binary online variables \({v}^{online}\left(p,s,t\right)\) which follow the dynamic Eq. (29). The status of online process is changed via binary start variable \({v}^{start}\left(p,s,t\right)\) and stop variables \({v}^{stop}\left(p,s,t\right)\). Furthermore, minimum length of the online and offline periods is constrained via Eqs. (30) and (31), so that \({v}^{online}\left(p,s,t\right)\) must be 1 for a period after unit is started and \({v}^{online}\left(p,s,t\right)\) must be 0 for a period after unit is stopped.
$${v}^{online}\left(p,s,t\right)={v}^{online}\left(p,s,t-1\right)+{v}^{start}\left(p,s,t\right)-{v}^{stop}\left(p,s,t\right), \forall p\in {P}^{online},s,t$$
(29)
$$v^{online} \left( {p,s,t{^{\prime}}} \right) \ge v^{start} \left( {p,s,t} \right),{ }t \le t{^{\prime}} \le min\left\{ {t^{max} ,t + d^{min\_online} \left( p \right)/dt} \right\},{ }\forall p \in P^{online} ,s,t$$
(30)
$${v}^{online}\left(p,s,t{\prime}\right)\le \left(1-{v}^{stop}\left(p,s,t\right)\right), t\le t{\prime}\le min\left\{{t}^{max},t+{d}^{min\_offline}(p)/dt\right\}, \forall p\in {P}^{online},s,t$$
(31)
The ramp rate of a process defines how fast operative load of the process can change from time step to next. When assessing ramp rate constraints, reserves (and activation speeds of the reserves) and minimum load must be taken into account as illustrated in Figs. 6 and 7, using cases from Table 2. The ramp up equations are defined in Table 5.
Table 5
The model equations concerning ramp up constraints for processes
Case
Equation
Eq. No.
1
\({v}^{flow}\left(p,so,si,s,t\right)-{v}^{flow}\left(p,so,si,s,t-1\right)\le {d}^{ramp\_rate}\left(p,so,si\right)\)
(32)
2
\({v}^{flow}\left(p,so,si,s,t\right)-{v}^{flow}\left(p,so,si,s,t-1\right)\le {d}^{ramp\_rate}\left(p,so,si\right)+max\left\{{0,d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,s,t)-{d}^{ramp\_rate}\left(p,so,si\right)\right\}\times {v}^{start}\left(p,s,t\right)\)
(33)
3
\({v}^{flow}\left(p,so,si,s,t\right)-{v}^{flow}\left(p,so,si,s,t-1\right)+\sum_{rp}{{d}^{ramp\_fac}\left(rp\right)\times v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)\)
(34)
4
\({v}^{flow}\left(p,so,si,s,t\right)-{v}^{flow}\left(p,so,si,s,t-1\right)+\sum_{rp}{d}^{ramp\_fac}\left(rp\right)\times {v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)\)
(35)
5
\({v}^{flow}\left(p,so,si,s,t\right)-{v}^{flow}\left(p,so,si,s,t-1\right)+\sum_{rp}{d}^{ramp\_fac}\left(rp\right)\times {v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)\)
(36)
6
\({v}^{flow}\left(p,so,si,s,t\right)-{v}^{flow}\left(p,so,si,s,t-1\right)+\sum_{rp}{d}^{ramp\_fac}\left(rp\right)\times {v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)+max\left\{{0,d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,s,t)-{d}^{ramp\_rate}\left(p,so,si\right)\right\}\times {v}^{start}\left(p,s,t\right)\)
(37)
Same applies to the ramp down constraints as stated in Table 6:
Table 6
The model equations concerning ramp down constraints for processes
Case
Equation
Eq. No.
1
\({v}^{flow}\left(p,so,si,s,t-1\right)-{v}^{flow}\left(p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)\)
(38)
2
\({v}^{flow}\left(p,so,si,s,t-1\right)-{v}^{flow}\left(p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)+max\left\{{0,d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,s,t)-{d}^{ramp\_rate}\left(p,so,si\right)\right\}\times {v}^{stop}\left(p,s,t\right)\)
(39)
3
\({v}^{flow}\left(p,so,si,s,t-1\right)-{v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{d}^{ramp\_fac}\left(rp\right)\times {v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)\)
(40)
4
\({v}^{flow}\left(p,so,si,s,t-1\right)-{v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{d}^{ramp\_fac}\left(rp\right)\times {v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)\)
(41)
5
\({v}^{flow}\left(p,so,si,s,t-1\right)-{v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{d}^{ramp\_fac}\left(rp\right)\times {v}^{res\_pot\_down}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)+max\left\{{0,d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,s,t)-{d}^{ramp\_rate}\left(p,so,si\right)\right\}\times {v}^{stop}\left(p,s,t\right)\)
(42)
6
\({v}^{flow}\left(p,so,si,s,t-1\right)-{v}^{flow}\left(p,so,si,s,t\right)+\sum_{rp}{d}^{ramp\_fac}\left(rp\right)\times {v}^{res\_pot\_up}\left(rp,p,so,si,s,t\right)\le {d}^{ramp\_rate}\left(p,so,si\right)+max\left\{{0,d}^{\mathrm{min}\_load}(p)\times {d}^{cap}(p,s,t)-{d}^{ramp\_rate}\left(p,so,si\right)\right\}\times {v}^{stop}\left(p,s,t\right)\)
(43)
In the case of charging processes (\(p\in {P}^{cha}\)) participating as reserves (\(p\in {P}^{res}\)) the state of the storage must be considered when allocating reserve potential for these units. If the discharging process has reserve potential in UP direction, there must be adequate energy in the storage to cover this reserve potential (Eq. 44). Also, if the charging process has reserve potential in DOWN direction, there must be adequate empty space in the storage to cover this reserve potential (Eq. 45). The logical structure between reserve potential and storage state in the case of storage participating in the reserve market is illustrated in Fig. 9.
$$\sum_{rp}{v}^{res\_pot\_up}\left(rp,p,p,si,s,t\right)\times dt\le {v}^{state}\left(n,s,t\right), \forall \{p\in {P}^{cha}\cap {P}^{res},n\in {N}^{state}\}\in PRO,si\in {N}^{res}$$
(44)
$$\mathop \sum \limits_{rp} v^{res\_pot\_down} \left( {rp,p,so,p,s,t} \right) \times dt \le { }d^{state\_max} \left( n \right) - v^{state} \left( {n,s,t} \right),{ }\forall \left\{ {p \in P^{cha} \cap P^{res} ,n \in N^{state} } \right\} \in PRO,{ }so \in N^{res}$$
(45)
There are requirements for the charging processes in terms of input data: (1) there can be merely one input and one output, (2) efficiency must be 100% and (3) one of the nodes must be a state node. It should be noted that separate charging/discharging processes are necessary in the model only if these processes participate in the reserve market. If this is not the case, the node can just be defined as a state node without any separate charging processes (see the example case in the next chapter). In addition, it should be noted that these separate charging/discharging processes can be used in the storage modelling if the user needs to define ramp rates for charging or discharging.
There are two rules for scenario-based bidding curves in bid markets. Since bidding curve is formed for each time step and prices are scenario-based for these time steps, the volume sold to the market in scenario s1 must be lower than in scenario s2 if market price in scenario s1 is lower than in scenario s2. See Eqs. (47) and (49). Also, if the prices in scenarios are equal, the market volumes must be equal too. See Eqs. (48) and (50). This rule applies to both energy and reserve markets with bidding curves. However, in the case of energy market, the bid consists of energy flow from and to the market added with up and down balance market volumes. See Eq. (46).
$${v}^{ene\_bid}(n,s,t)= {v}^{flow}\left(p,so,n,s,t\right)+{v}^{bal\_up}\left(n,s,t\right)-{v}^{flow}\left(p,n,si,s,t\right)-{v}^{bal\_down}\left(n,s,t\right), \forall n\in {N}^{market}$$
(46)
$$v^{ene\_bid} \left( {n,s,t} \right) \le v^{ene\_bid} \left( {n,s{^{\prime}},t} \right),{ }if{ }c^{ene\_market} \left( {n,s,t} \right) \le c^{ene\_market} \left( {n,s{^{\prime}},t} \right),{ }\forall n \in { }N^{market} ,{ }s \in S,{ }s{^{\prime}} \in S$$
(47)
$${v}^{ene\_bid}(n,s,t)={v}^{ene\_bid}(n,s{\prime},t), if {c}^{ene\_market}(n,s,t)={c}^{ene\_market}(n,s{\prime},t), \forall n\in {N}^{market}, s\in S, s{\prime}\in S$$
(48)
In the case of reserve market, the bid is formed directly from the sold reserve product:
$${v}^{res\_final}\left(r,s,t\right)\le {v}^{res\_final}\left(r,s{\prime},t\right), \mathrm{if} {c}^{res\_market}(r,s,t)\le {c}^{res\_market}(r,s{\prime},t), s\in S, s{\prime}\in S$$
(49)
$$v^{res\_final} \left( {r,s,t} \right) = v^{res\_final} \left( {r,s{^{\prime}},t} \right),{\text{ if }}c^{res\_market} \left( {r,s,t} \right) = c^{res\_market} \left( {r,s{^{\prime}},t} \right),{ }s \in S,{ }s{^{\prime}} \in S$$
(50)
The model enables the construction of generic linear equality (Eq. 51) or inequality (Eq. 52) constraints concerning arbitrary flow variables (though from same time step and scenario):
$$\sum_{\left\{gc,p,so,si\right\}}\left({d}^{gc\_fac}(gc,p,so,si,s,t)\times {v}^{flow}\left(p,so,si,s,t\right)\right)+{d}^{gc\_con}(gc,s,t)=0, \forall gc,s,t$$
(51)
$$\mathop \sum \limits_{{\left\{ {gc,p,so,si} \right\}}} \left( {d^{gc\_fac} \left( {gc,p,so,si,s,t} \right) \times v^{flow} \left( {p,so,si,s,t} \right)} \right) + d^{gc\_con} \left( {gc,s,t} \right) \ge 0,{ }\forall gc,s,t$$
(52)
The costs (or profits) of each scenario are calculated for the following items: commodities, energy markets, reserve markets, variable operation costs and start costs. Total cost \({vc}^{total}(s)\) for each scenario is calculated as sum of these items.
$${vc}^{comm}(s)=\sum_{t}\sum_{n\in {N}^{comm}}dt\times {c}^{comm}(n,s,t)\times {v}^{flow}\left(p,n,si,s,t\right)$$
(53)
$$vc^{market\_profit} \left( s \right) = \mathop \sum \limits_{t} \mathop \sum \limits_{{n \in N^{market} }} dt \times c^{{ene_{market} }} \left( {n,s,t} \right) \times v^{{ene_{bid} }} \left( {n,s,t} \right)$$
(54)
$$vc^{balance\_cost} \left( s \right) = \mathop \sum \limits_{t} \mathop \sum \limits_{{n \in N^{market} }} dt \times c^{bal\_up} \left( {n,s,t} \right) \times v^{bal\_up} \left( {n,s,t} \right)$$
(55)
$$vc^{balance\_profit} \left( s \right) = \mathop \sum \limits_{t} \mathop \sum \limits_{{n \in N^{market} }} dt \times c^{{ba{\text{l}}\_down}} \left( {n,s,t} \right) \times v^{bal\_down} \left( {n,s,t} \right)$$
(56)
$$vc^{reserve\_profit} \left( s \right) = \mathop \sum \limits_{t} \mathop \sum \limits_{r} c^{res\_market} \left( {r,s,t} \right) \times v^{res\_final} \left( {r,s,t} \right)$$
(57)
$$vc^{vom} \left( s \right) = \mathop \sum \limits_{t} \mathop \sum \limits_{p} dt \times c^{vom} \left( {p,so,si} \right) \times v^{flow} \left( {p,so,si,s,t} \right)$$
(58)
$$vc^{start} \left( s \right) = \mathop \sum \limits_{t} \mathop \sum \limits_{p} c^{start} \left( p \right) \times v^{start} \left( {p,s,t} \right)$$
(59)
$$vc^{feasibility} \left( s \right) = \mathop \sum \limits_{t} \mathop \sum \limits_{n} dt \times c^{feasibility} \times \left( {vq^{state\_up} \left( {n,s,t} \right) + vq^{state\_down} \left( {n,s,t} \right)} \right)$$
(60)
$${vc}^{total}(s)={vc}^{comm}(s)- {vc}^{market\_profit}(s)+ {vc}^{balance\_cost}(s)- {vc}^{balance\_profit}(s)-{vc}^{reserve\_profit}(s)+{vc}^{vom}(s)+{vc}^{start}(s)+{vc}^{feasibility}(s)$$
(61)
The risk element in the model is calculated by using Conditional Value at Risk (CVaR) by using total costs \({vc}^{total}(s)\) from each scenario:
$$rc^{cvar} = \varphi + \frac{1}{{\left( {1 - \alpha } \right)}}\mathop \sum \limits_{s} \pi \left( s \right) \times z\left( s \right)$$
(62)
$$z\left( s \right) \ge vc^{total} \left( s \right) - \varphi ,{ }\forall s$$
(63)
The objective function of the stochastic optimisation problem to be minimised consists of weighted sum of expected total costs and CVaR element as follows:
$$v^{obj} = \left( {1 - \beta } \right) \times \left( {\mathop \sum \limits_{s} \pi \left( s \right) \times vc^{total} \left( s \right)} \right) + \beta \times \left( {rc^{cvar} } \right)$$
(64)
In conclusion, the main principle of the Predicer model is to utilise mixed integer linear programming in order to minimise the objective function (64) so that all the model constraints (1)–(63) apply.

4 Example case presentation

First, it is highly important to note that the example model presented in this Chapter is merely of exemplar nature, that is, the model structure is fictional and merely purposed for showing structural abilities of the Predicer model and, furthermore, the model data is randomly generated in order to provide some scenario-based test case. Therefore, these case results should be interpreted here as merely a demonstrative case study instead of a scientific result.
The basic structure and functionality of an example model depicting an imaginary energy system are described in this section. The goal of the optimization is to minimize the costs (or reversely, maximizing the profits) of the system, while operating on the electricity spot market, balance market and a reserve market for upwards capacity. The operation of the system is optimized over 10 one-hour timesteps, with 4 separate scenarios for price and production forecasts.
The modelled system illustrated in Fig. 10 consists of three nodes: “NG”, “ELC” and “M”. “NG” represents a commodity node, from which natural gas can be purchased for a given price for each timestep. “M” represents a market node, in which electricity can be bought or sold from the electricity spot market. “ELC” represents a node for electricity, and a balance for production and consumption is thus maintained over the node. The electricity node contains a storage (with capacity of 4 MWh and input/output capacity of 2 MW), and the node participates in the spot and reserve markets. The nodes in the model are connected through three processes “GT”, “WT” and “SPOT”.
The process “GT” represents a gas turbine unit, in which natural gas from the “NG” node can be converted to electricity to the “ELC” node. The unit has an online functionality, with minimum online and offline times after a start or stop. The efficiency of the unit depends on the load of the unit, modelled as a piecewise linear approximation. The process “WT” represents a wind turbine unit, in which the production depends on capacity factor forecasts. In practice this means, that the load for any hour can be between zero and the forecast value for that hour. The process “SPOT” connects the “ELC” and “M” nodes and represents the flow of electricity to or from the electricity market.
The used time series data for the wind turbine capacity factor and the electric spot market price is generated to induce fluctuations within the model time horizon. It is ensured that the generated values differ between the scenarios. The values of the balance market up and down prices are set to 1.05 and 0.95, respectively, of the electricity spot market price. The price for natural gas from the node “NG” is set to a constant value of 20 €/MWh. See Fig. 11 for model data.
The probability of each of the scenarios occurring is 0.25. The beta value of the CVaR risk assessment is set to zero, and the CVaR risk assessment is as such not used in this model.
The results from the test case are illustrated in Fig. 12 with normalised market prices, that is each scenario price is normalised to average price of each timestep. It is evident that bidding curves for energy market (Fig. 12a) are of more increasing nature due to the efficiency curve of the “GT” unit. However, the bidding curves for reserve-up market (Fig. 12b) appear flat when compared to the energy market. The model finds optimal and consistent bidding curves for both energy and reserve markets by operating the gas-fired unit and utilising the electricity storage in order to find optimal system path for each scenario. The details of system operation can be examined from Fig. 13. Gas turbine operation varies with electricity market price, considering the variable efficiency curve, and also leaving reserve-up potential for the reserve market. It is also evident that model utilises the balance markets (see Fig. 13c, d) in order to maintain the order of the bidding curves under variable wind power generation.

5 Discussion and conclusions

Even though the Predicer model already has many features required by a stochastic optimisation model for market purposes, there are still more development to be implemented. For example, the participation in the reserve market can be a more complex procedure, requiring e.g. a minimum offer for reserve product. Also, the realisation of the reserve is a complex issue which requires more attention in the future development. Furthermore, modelling of complex hydropower systems requires utilisation of delayed processes representing e.g. the flow of water between hydro reservoirs. This development may though require modifications to the flow variable definition. General constraint could be expanded to apply to other than flow variables, for e.g. state variables. Furthermore, the bidding curves based on arbitrary price levels according to Fleten and Kristoffersen (2007) can be included in the model framework. Also, block bidding described in Fleten and Kristoffersen (2007) should be examined as a development option. There are numerous modelling approaches which should be considered in the model development since the abstract model structure enables various new model components. Also, it is highly important to improve performance of the model, since increasing number of timesteps and scenarios will increase the model size dramatically and slow down model runs. This is especially important since the model results must be always available before the market closes.
Finally, we conclude that it is highly beneficial to have an available open-source optimisation tool for multi-market operation to be an option for commercial energy market simulation platforms such as Plexos (see EnergyExemplar 2022 for details). Since the abstract model structure enables data-based model construction, the Predicer tool should be easy to adopt for e.g. small-scale prosumers. For the reference of this ease-of-use, the test case example presented in this paper was constructed by using data of a single excel file. In a nutshell, only the data matter. Also, the structure of the Predicer model is such that it can be operated in e.g. cloud environment, since only input data is required for model generation. Another important aspect about the Predicer model framework is that by using the model with only one scenario, it can be used for deterministic energy system model analysis or operative analysis tool for any arbitrary energy system. Overall, The Predicer model provides flexibility and ease-of-use of any data-driven energy system model and detailed features in terms of multi-market operation.

Acknowledgements

The authors of this paper gratefully acknowledge the public financing of Business Finland for the “HOPE” project and Finnish Academy for the “EasyDR” project.

Declarations

Conflict of interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://​creativecommons.​org/​licenses/​by/​4.​0/​.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Literatur
Zurück zum Zitat Loulou R, Labriet M (2007) ‘ETSAP-TIAM: the TIMES integrated assessment model Part I: model structure. In: Computational management science. Springer Science and Business Media LLC, pp 7–40 Loulou R, Labriet M (2007) ‘ETSAP-TIAM: the TIMES integrated assessment model Part I: model structure. In: Computational management science. Springer Science and Business Media LLC, pp 7–40
Zurück zum Zitat Modig N et al (2022) Overview of frequency control in the nordic power system Modig N et al (2022) Overview of frequency control in the nordic power system
Zurück zum Zitat Taibi E, et al (2018) ‘Power system flexibility for the energy transition: part 2, IRENA FlexTool methodology. International Renewable Energy Agency IRENA Taibi E, et al (2018) ‘Power system flexibility for the energy transition: part 2, IRENA FlexTool methodology. International Renewable Energy Agency IRENA
Metadaten
Titel
Predicer: abstract stochastic optimisation model framework for multi-market operation
verfasst von
Esa Pursiheimo
Dennis Sundell
Juha Kiviluoma
Helmi Hankimaa
Publikationsdatum
09.08.2023
Verlag
Springer US
Erschienen in
Optimization and Engineering / Ausgabe 1/2024
Print ISSN: 1389-4420
Elektronische ISSN: 1573-2924
DOI
https://doi.org/10.1007/s11081-023-09824-w

Weitere Artikel der Ausgabe 1/2024

Optimization and Engineering 1/2024 Zur Ausgabe

    Marktübersichten

    Die im Laufe eines Jahres in der „adhäsion“ veröffentlichten Marktübersichten helfen Anwendern verschiedenster Branchen, sich einen gezielten Überblick über Lieferantenangebote zu verschaffen.