1 Introduction

In the electricity industry, a challenging problem deals with the economic scheduling of generating plants, where several plant-specific aspects and technical requirements have to be taken into account. System-wide constraints such as a steady equilibrium between electricity provision and consumption are of great importance. Hence, a sufficient amount of electricity to cover the customer demands at any point in time must be ensured for a prescribed planning horizon. The corresponding optimization problem is known as unit commitment problem (UCP); see e.g., Soliman and Mantawy (2012).

Definition 1

The UCP determines the production levels of generating plants with different characteristics over a prescribed planning horizon in order to meet the electricity demands of customers. These demands may vary over time. Possible objective functions are the minimization of operating costs or the maximization of profit (cf. Wood et al. 2013).

The problem is not only of considerable interest from a theoretical perspective, but also from a practical point of view. A solution can help to find a cost-efficient energy schedule which avoids deficits in energy supply.

Most research on the UCP focuses on short-term planning horizons (e.g., 1 day up to 1 week). In short-term, production control activities are performed, where shifts of demands or unexpected outages are included in real time (cf., e.g., Bartsch et al. 2008). In contrast, long-term problems aim at production planning, where plant performances concerning full-load hours, fuel demand, or operating costs are analyzed. In what follows, we consider long-term planning horizons (e.g., 1 year) in order to provide tactical and strategic information for supervisory institutions like, e.g., system operators and generating companies. Those institutions are then in a position to estimate fuel demands and maintenance activities as well as to determine the economic and environmental performance of the whole generation portfolio.

The increasing share of renewable energies (e.g., in Germany about 35 % of the gross electricity consumption is supplied by renewables) leads to new challenges for generating companies and system operators. Due to the volatile characteristic of renewable feed-ins, highly flexible but cost-efficient power plant operations are required. The power output for these plants must be determined in the scheduling process (cf. Definition 1). Energy storages, mainly hydro storages, are promising means to support the flexible requirements and to level the remaining (i.e., the residual) demand for thermal power plants. Both, storage activities and the sharp rise of the renewable feed-in lead to clean energy solutions ensuring great progress toward the European energy and climate objectives. Hence, the scheduling of generating plants should be enhanced by energy storages (and their coordination with generating plants) as well as renewable sources. Moreover, it should not only address economic goals. In addition, a minimization of the emission of harmful substances such as \(\hbox {CO}_2\) is necessary. In this way, the trade-off between production costs and emissions, e.g., for the German electricity market, can be analyzed. The resulting problem may be described as a UCP with hydrothermal (HT) coordination (i.e., the UCP–HT, cf. Wood et al. 2013) and environmental aspects (e.g., Raglend and Padhy 2006; Saravanan et al. 2014).

Definition 2

The UCP-HT is an UCP in which not only power plants, but also energy storages are taken into account in order to meet customer demands. In addition, environmental aspects may be considered in the objective function through a combined minimization of operating and emission costs.

Generally, an exact solution of the proposed problem can be obtained (particularly for small-scale instances) by using mixed-integer linear programming (MILP). However, practitioners require fast algorithms for long-term, large-scale, volatile, and non-convex electricity systems in order to solve various scenarios dealing with, e.g., different renewable feed-ins (cf. Viana 2004). Hence, heuristics are necessary to provide near-optimal solutions in reasonable time. Simple procedures are based on priority lists or truncated dynamic programming. In recent years, Lagrange relaxation or fix-and-optimize methods based directly on the mathematical model of the problem have become standard (e.g., Ongsakul and Petcharaks 2004; Gollmer et al. 1999; Franz et al. 2019). Metaheuristics have also been developed for UCPs, but typically without pump storages (e.g., Kazarlis et al. 1996; Viana et al. 2008). A survey of solution methods for the UCP can be found, e.g., in Padhy (2004).

Within this article, we consider a heuristic approach for large-scale UCP–HT applications with environmental aspects. Our heuristic is characterized, in particular, by its fast solution finding. A two-stage hierarchical methodology is used in contrast to the often monolithic solution methods for pure UCPs (e.g., Kazarlis et al. 1996; Carrión and Arroyo 2006; Delarue et al. 2013; Morales-España et al. 2013, or the survey in Saravanan et al. 2013). The problem is divided into the optimization of thermal plants as well as the planning and coordination of hydro storages (see Franz and Zimmermann 2018b).

The remainder of this paper is organized as follows. In Sect. 2, we propose a mixed-integer linear programming formulation for the UCP–HT in order to describe the problem structure. Moreover, an approach for the extension toward emission minimization is treated. The novel two-stage heuristic approach for the UCP–HT with and without emission costs is explained in detail in Sect. 3. Section 4 is devoted to the results of an experimental performance analysis. In addition, a sophisticated case study for the German electricity market is presented. Finally, conclusions are given in Sect. 5.

2 Specification of the problem

The aim of planning and scheduling thermal, renewable, and storage units is to determine the operation status of each unit in order to meet a given demand over a prescribed planning horizon at minimum total production costs (e.g., Wood et al. 2013). Due to substantially low marginal costs (compared to thermal electricity provision), renewable feed-ins are typically prioritized (e.g., Delarue et al. 2013).Footnote 1 Hence, without any loss of generality, we consider the residual demand instead of the real customer demand while solving the problem at hand.

Definition 3

The residual demand is the energy demand minus the volatile feed-in of renewables.

As a consequence, only thermal plants and energy storages have to be tackled. In Sect. 2.1, a mixed-integer linear model for the UCP–HT is presented, where the economic goal of minimizing the operating costs is considered. In Sect. 2.2, the objective function is extended by environmental aspects.

2.1 Unit commitment problem with hydrothermal coordination

The basic idea of our model formulation comes from Carrión and Arroyo (2006), Ostrowski et al. (2012) and Morales-España et al. (2013), who formulated the problem without energy storages. Particularly, the latter model is characterized as tight, due to a relatively small integrality gap, i.e., the LP relaxation is close to the convex hull of the feasible integer solutions. Therefore, we extended this tight model in order to manage the coordination between thermal and storage units (cf. Franz et al. 2019, where also explanations for the tightness of the described model are given). Furthermore, a reformulation and an adjustment of constraints (i.e., constraints for start-up processes and reserve capacity) are performed so that the resulting model provides near-optimal solutions significantly faster than the model formulation presented by Morales-España et al. (2013).

Let \(\mathcal {I}\) be the set of thermal plants and \(\mathcal {J}\) be the set of energy storages. For each thermal plant \(i\in {\mathcal {I}}\), we define the continuous power generation level \(p_{it}\) as well as the binary on/off status \(u_{it}\) at each point in time \(t\in {\mathcal {T}}\), where \(\mathcal {T}\) represents the set of hourly time periods \(({\mathcal {T}}:= \{1,\,2,\,\ldots ,\,T\})\). The power generation level \(p_{it}\) denotes the power level above the minimum power output \({\underline{P}}_i\). For each energy storage \(j\in {\mathcal {J}}\), we specify the continuous power generation level \(p^{{\text {g}}}_{jt}\) as well as the continuous pumping level \(p^{{\text {p}}}_{jt}\). We assume that \(p \ge 0\) is satisfied for all power-related decision variables.

The objective function of the problem is firstly chosen as the minimization of total operating costs, which covers thermal production costs, thermal start-up costs, and non-served energy costs. The thermal production cost for each unit \(i\in \mathcal {I}\) and point in time \(t\in \mathcal {T}\) is typically modeled using the convex heat consumption function \(Q(\cdot )\) for the overall power output \(p'_{it}=p_{it}+{\underline{P}}_i\), e.g., as

$$\begin{aligned} c^{\text {pc}}_{i} \, Q_{it}\left( p'_{it}, u_{it}\right) \,{\text { with }}\, Q_{it}\left( p'_{it}, u_{it}\right) = {\left\{ \begin{array}{ll} q^{\text {a}}_{i} + q^{\text {b}}_{i} \, p'_{it} + q^{\text {c}}_{i} \, {p'_{it}}^2, &{}\quad \text {if } u_{it} = 1 \\ 0, &{}\quad \text {otherwise.} \end{array}\right. } \end{aligned}$$

\(c^{\text {pc}}_{i}\) represents a unit-specific fuel cost coefficient and \(q^{\text {a}}_{i}\), \(q^{\text {b}}_{i}\) as well as \(q^{\text {c}}_{i}\) are nonnegative heat coefficients relating to the respective technical efficiency of unit i. Please note that no further cost additives (e.g., for maintenance, lubricants etc.) are taken into account.

Function (1) can be linearized, where fixed operation costs \(c^{{{\text {fix}}}}\) and variable production costs \(c^{{{\text {var}}}}\) in accordance to the power output are used. A sophisticated linearization approach is, e.g., presented by Carrión and Arroyo (2006). In our study, we set \(q^{\text {c}}_{i} := 0\) for all plants \(i \in \mathcal {I}\), similar to Gollmer et al. (2000) and Martinez Diaz (2008), since the curvature of function (1) is typically quite small. As costs for generating the minimum power level can be integrated in the fixed costs (they always occur if a generator is running), function (1) simplify to

$$\begin{aligned} c^{{{\text {fix}}}}_{i} \, u_{it} + c^{{{\text {var}}}}_{i} \, p_{it}, \end{aligned}$$

where variable costs \(c^{{{\text {var}}}}_{i}\) have to be considered for each megawatt \(p_{it}\) that is delivered above the minimum power level \({\underline{P}}_i\) [cf. constraints (6)]. Therefore, the variable and fixed cost components can be defined as \(c^{{{\text {var}}}}_{i}:=c^{\text {pc}}_{i} q^{\text {b}}_{i}\) and \(c^{{\text {fix}}}_{i}:= c^{\text {pc}}_{i} ( q^{\text {a}}_{i} + q^{\text {b}}_{i} \, {\underline{P}}_i )\), respectively.

The thermal start-up costs usually vary between warm and cold starts (cold starts of \(i \in \mathcal {I}\) are necessary after a downtime of at least \(\beta _i\) time periods). We introduce binary decision variables indicating whether or not plant i is started \((u^{\text {s}}_{it}=1)\) and performs a cold start \((u^{{\text {cs}}}_{it}=1)\) in \(t\in \mathcal {T}\). Then, start-up costs may be formulated as \(c^{{\text {ws}}}_{i} \, u^{\text {s}}_{it} + c^{{\varDelta }}_{i} \, u^{\text {cs}}_{it},\) where \(c^{{\text {ws}}}_{i}\) indicates warm start costs and \(c^{{\varDelta }}_{i}\) represents additional costs for a cold start. Both cost components result from reheating the plant’s boiler. An extension to continuously modeled start-up costs using an exponential heat consumption approach instead of the two-piece linearized one can be found in Wood et al. (2013).

A feasible solution must ensure that the net energy provision delivered by thermal plants and storages is equal to the (residual) demand \(D_t\), \(t\in \mathcal {T}\) [cf. constrains (4)]. In order to relax the demand balance conditions, a demand overfulfillment is permitted but penalized by higher production costs. Furthermore, non-served energy (e.g., in case of undercapacity of all units) is allowed by introducing nonnegative slack variables \(n_t\). Particularly for long-term planning horizons, \(n_t>0\) can be allowed for some t, since the resulting schedule is used for production planning purposes and not for real-time production control activities. The non-served energy is penalized in the objective function by \(c^{{\text {non}}} \, n_{t},\) with a penalty cost factor \(c^{{\text {non}}}\) (its value must be higher than the most expensive plant). Due to this trick, a first feasible solution (with \(n_{t}=D_t+R_t)\) can be found immediately by a standard solver like CPLEX or Gurobi that will have a positive impact on the computation time.

The entire UCP with hydrothermal coordination may now be formulated as follows

$$\begin{aligned} \text {Min.}&\quad \sum \limits _{t \in {\mathcal {T}}}\sum \limits _{i \in {\mathcal {I}}} (c^{{\text {fix}}}_{i} \, u_{it} + c^{{\text {var}}}_{i} \, p_{it} +c^{{\text {ws}}}_{i} \, u^{\text {s}}_{it} + c^{{\varDelta }}_{i} \, u^{\text {cs}}_{it}) + \sum \limits _{t \in {\mathcal {T}}}c^{{\text {non}}} \, n_{t} \end{aligned}$$
$$\begin{aligned} \text {s.t.}&\quad \sum \limits _{i \in {\mathcal {I}}} ({\underline{P}}_i \, u_{it}+p_{it}) + \sum \limits _{j \in {\mathcal {J}}}(p_{jt}^{\text {g}} - p_{jt}^{\text {p}}) + n_t \ge D_t \quad (t \in {\mathcal {T}}\,) \end{aligned}$$
$$\begin{aligned}&\quad \sum \limits _{i \in {\mathcal {I}}} {\overline{P}}_i \, u_{it} + \sum \limits _{j \in {\mathcal {J}}} {\overline{P}}_j^{\text {g}} + n_t \ge R_t + D_t \quad (t \in {\mathcal {T}}\,) \end{aligned}$$
$$\begin{aligned}&\quad p_{it} \le ({\overline{P}}_i-{\underline{P}}_i)\,u_{it} \quad (t \in {\mathcal {T}}, i \in {\mathcal {I}}\,) \end{aligned}$$
$$\begin{aligned}&\quad \sum \limits _{\tau =t-\pi _i+1}^{t} u_{i\tau }^{\text {s}} \le u_{it} \quad (i \in {\mathcal {I}}, \pi _i \le t \le T) \end{aligned}$$
$$\begin{aligned}&\quad \sum \limits _{\tau =t-\delta _i+1}^{t} u_{i\tau }^{\text {d}} \le 1 - u_{it} \quad (i \in {\mathcal {I}}, \delta _i \le t \le T) \end{aligned}$$
$$\begin{aligned}&\quad u_{it} - u_{i,t-1} = u_{it}^{\text {s}} - u_{it}^{\text {d}} \quad (i \in {\mathcal {I}}, 2 \le t \le T) \end{aligned}$$
$$\begin{aligned}&\quad u_{it}^{\text {cs}} + \sum \limits _{\tau = 1}^{{\beta _i-1}}\,u_{i,t-\tau }^{\text {d}} \ge u_{it}^{\text {s}} \quad (i \in {\mathcal {I}}, \beta _i \le t \le T) \end{aligned}$$
$$\begin{aligned}&\quad e_{jt} = e_{j,t-1} + p_{jt}^{\text {p}} \, \eta _{j}^{\text {p}} - p_{jt}^{\text {g}} / \eta _{j}^{\text {g}} \quad (j \in {\mathcal {J}}, 2 \le t \le T) \end{aligned}$$
$$\begin{aligned}&\quad {\underline{E}}_{j} \le e_{jt} \le {\overline{E}}_j \quad (j \in {\mathcal {J}}, t \in {\mathcal {T}}\,) \end{aligned}$$
$$\begin{aligned}&\quad p_{jt}^{\text {g}} \le {\overline{P}}_j^{\text {g}}; \, p_{jt}^{\text {p}} \le {\overline{P}}_j^{\text {p}} \quad (j \in {\mathcal {J}}, t \in {\mathcal {T}}\,) \end{aligned}$$
$$\begin{aligned}&\quad e_{jt}, n_t, p_{it}, p_{jt}^{\text {g}}, p_{jt}^{\text {p}} \ge 0 \quad (i \in {\mathcal {I}}, j \in {\mathcal {J}}, t \in {\mathcal {T}}\,) \end{aligned}$$
$$\begin{aligned}&\quad u_{it}, u_{it}^{\text {cs}}, u_{it}^{\text {d}}, u_{it}^{\text {s}} \in \{0,1\} \quad (i \in {\mathcal {I}}, t \in {\mathcal {T}}\,) . \end{aligned}$$

In objective function (3), total operating costs are minimized. The fulfillment of energy demands either by thermal or by hydro storages is ensured with system constraints (4). Let \({\overline{P}}_i\) be the maximum power level of thermal plant \(i\in {\mathcal {I}}\) and let \({\overline{P}}_j^{\text {g}}\) be the maximum hydropower output by turbining at storage j. Then, system constraints (5) provide a sufficient spinning reserve (in the event of an unpredictable failure) for each point in time. Constraints (6) ensure that power outputs can only be determined between a minimum and a maximum level. Once a thermal plant \(i\in {\mathcal {I}}\) is started (decommitted), it has to be online (offline) for at least its minimum uptime \(\pi _i\) (minimum downtime \(\delta _i\)), which is guaranteed by inequalities (7) and (8). Binary decision variables \(u_{it}^{{\text {d}}}\) indicate whether a plant i is decommitted in period t or not. Then, logical constraints (9) and (10) guarantee that all binary variables \(u\in \{0,1\}\) take appropriate values. For hydro storages, energy flow conservation constraints (11) are to be considered to determine the amount of energy \(e_{jt}\) maintained in each storage j in period t. The maintained energy \(e_{jt}\) corresponds to the maintained energy in period \(t-1\) plus the energy obtained by pumping and minus the power output for turbining, where respective efficiencies \(\eta _{j}^{\text {p}}\) and \(\eta _{j}^{\text {g}}\) are taken into account. Inequalities (12) refer to a lower \({\underline{E}}_j\) and an upper level \({\overline{E}}_j\) in energy storage \(j\in {\mathcal {J}}\). Moreover, inequalities (13) restrict the technical limits of generation and pumping levels. Finally, constraints (14) and (15) define feasible domains for all continuous and binary decision variables. For the sake of simplicity, constraints affecting the initial operating status are omitted. However, they can easily be added (cf., e.g., Morales-España et al. 2013) and are considered within our performance analysis (cf. Sect. 4).

2.2 Unit commitment problem with production and emission costs

A UCP–HT which addresses a minimization of costs and emissions can be formulated using the principle of the European Union Emissions Trading System (EU ETS). The EU ETS was established in 2005 to manage a systematic reduction in greenhouse gases. Particularly, it aims at limiting the overall \(\hbox {CO}_2\)-production (cap principle).Footnote 2 Therefore, each \(\hbox {CO}_2\)-emitting plant (i.e., thermal power plants for the electricity industry) has to buy allowances for the emission of each produced ton of \(\hbox {CO}_2\) by bidding on an auction infrastructure (trade principle). The resulting “cap-and-trade” mechanism provides time-dependent market clearing prices \(c^{{\mathrm{CO}_2}}_t\)\([\frac{\EUR}{\text {t} \ \text{CO}_2}]\), \(t\in \mathcal {T},\) for emission certificates (cf., e.g., Ellermann et al. 2010 or Kruger and Pizer 2010).

In order to enhance objective function (3) of the UCP–HT by environmental aspects, \(\hbox {CO}_2\)-related costs have to be added. These costs comprise emission costs for steady-state operations

$$\begin{aligned}&c^{{\mathrm{CO}_2}}_t \epsilon _i \,Q_{it}(p_{it}, u_{it}) \quad (t\in {\mathcal {T}}, i\in {\mathcal {I}}\,) \end{aligned}$$

and emission costs caused by start-up procedures

$$\begin{aligned}&c^{{\mathrm{CO}_2}}_t \epsilon _i \left( q^{{\text {ws}}}_{i} \, u^{\text {s}}_{it} + q^{{\varDelta }}_{i} \, u^{\text {cs}}_{it} \right) \quad \quad (t\in {\mathcal {T}}, i\in {\mathcal {I}}\,), \end{aligned}$$

where \(\epsilon _i\) represents the carbon dioxide content [\(\frac{\text {t}~\hbox {CO}_2}{\text{MWh}_\text {th}}]\) of each produced mega watt by power plant i. Please note that the emission factor \(\epsilon _i\) is mainly influenced by the fuel (e.g., lignite, hard coal, gas), its quality and plant parameters. As in Sect. 2.1, we again choose \(q^{\text {c}}_{i}:=0\) for all plants \(i \in \mathcal {I}\) within heat consumption function \(Q(\cdot )\). Consequently, expression (16) simplifies to \(c^{{\mathrm{CO}_2},\mathrm{fix}}_{it} \epsilon _i\, u_{it} + c^{{\mathrm{CO}_2},\mathrm{var}}_{it} \epsilon _i \,p_{it}\), similar to expression (2).

The resulting objective function

$$\begin{aligned} {(3)}+{(17)}+\sum _{t \in \mathcal {T}}\sum _{i \in \mathcal {I}} c^{{\mathrm{CO}_2},\mathrm{fix}}_{it} \epsilon _i\, u_{it} + c^{{\mathrm{CO}_2},\mathrm{var}}_{it} \epsilon _i \,p_{it} \end{aligned}$$

of the UCP–HT with economic and emission aspects contains two conflicting targets. Typically, gas-fired (e.g., combined cycle) power plants have high production costs and low \(\hbox {CO}_2\) emissions (since the emission factor \(\epsilon _i\) is small), whereas lignite fired power plants offer low production costs, but high \(\hbox {CO}_2\) emissions. Therefore, a highly cost-efficient dispatch increases the usage of emission-intensive power plant activities. For a more sustainable and environmentally friendly electricity provision, gas-fired plants should be preferred. The market price \(c^{{\mathrm{CO}_2}}_t\) for emission certificates in expressions (16) and (17) weights the two preferences, where \(c^{{\mathrm{CO}_2}}_t\) is exogenously given by the EU ETS and hence driven by market processes.

3 Two-stage heuristic approach

The problem of finding an optimal production schedule for all involved thermal, renewable, and storage units represents an \(\mathcal {NP}\)-hard optimization problem, which means that no polynomial time algorithm exists that will generally solve instances of the problem in reasonable time (cf., e.g., Garey and Johnson 1979 and for general UCPs, see, e.g., Tseng 1996 and Bendotti et al. 2017). However, heuristic algorithms provide valuable alternatives. In order to find a feasible as well as near-optimal solution for our considered UCP–HT quickly, we present a two-stage heuristic approach. Please note that a two-stage approach for the problem variant without explicit emission costs has already been outlined in previous conference proceedings (Franz et al. 2017; Franz and Zimmermann 2018a, b). These basics were fine-tuned and provided with further performance increasing features (e.g., smart choice of solution representation, Fig. 3, as well as the concept of shift demand step, Fig. 5). In the paper under consideration, a detailed description of the resulting algorithm is presented for the first time. Accordingly to our explanations in Sect. 2.2, we consider the objective function (18), where economic and emission aspects are involved.

The starting point of our approach is the fact that an isolated scheduling of all thermal plants \(i\in \mathcal {I}\) generally provides a possibility to fulfill the energy demands described in constraints (4) and the spinning reserve in constraints (5). To be more precise, a feasible solution for the problem under consideration can be found without using any energy storages if the overall thermal capacity is sufficient, i.e.,

$$\begin{aligned} \sum _{i\in \mathcal {I}} {\overline{P}}_i \ge \max _{t\in \mathcal {T}} \left( D_t + R_t \right) \end{aligned}$$

is satisfied. Once a feasible solution is found by dispatching thermal plants, the solution can be enhanced using energy storages in order to reduce the total costs in objective function (3). These thoughts lead to the basis of our two-stage heuristic approach, which is illustrated in Fig. 1.

Fig. 1
figure 1

Concept of the two-stage heuristic approach for the UCP–HT

In the first stage (cf. Sect. 3.1), a thermal plant optimization is performed and in the second stage (cf. Sect. 3.2) energy storages are considered, i.e., the hydrothermal coordination is implemented. In addition, a preprocessing step is included (prior to the first stage) to ensure the following conditions required for a successful execution of the algorithm. Particularly, in case of missing total thermal capacity, of high gradients of residual demands, or of negative residual demands (i.e., in situations of high renewable feed-in), the preprocessing is necessary (cf. Fig. 1). In order to avoid thermal undercapacity (if inequality (19) is not fulfilled), a fictitious plant with high operating costs (significantly higher than those of all other units) is added to set \(\mathcal {I}\). For treating, e.g., high demand gradients, a highly flexible fictitious plant must be introduced. Furthermore, in case of time intervals with negative residual demands, wind and solar infeed have to be throttled and consequently limited (e.g., to zero or to the overall capacity of the pumped storages). It must be ensured that at the end of the algorithm the inserted fictitious plant has to be eliminated (cf. “finalize solution” step, p. 16).

3.1 Thermal plant optimization: first stage of the heuristic approach

The thermal plant optimization preselects certain plants to fulfill the fluctuating residual demand as well as the spinning reserve requirements without using the energy storage operations of turbining or pumping. In detail, the following three steps are executed within the first stage (cf. Fig. 1):

Create start solution An initial solution is obtained by applying a greedy algorithm, assuming \(\delta _i=\pi _i=1\), \(i \in \mathcal {I}\). Thereby, all plants are sorted and ranked according to non-decreasing marginal costs (i.e., to their merit order). Then, for each point in time \(t \in \mathcal {T}\), a subset of plants is committed, i.e., plants are stepwise activated in the sequence of their merit order until the demand and reserve requirements \(\sum _{i\in \mathcal {I}} {\overline{P}}_i \, u_{it} \ge D_t + R_t\) are satisfied. Some plants might be skipped in the considered order to fulfill the following inequalities \(\sum _{i\in \mathcal {I}} {\underline{P}}_i \, u_{it} \le D_t\) which are necessary due to the power output specifications of all plants i. Within this first step, the power outputs \(p_{it}\) of all committed plants \(i \in \mathcal {I}\) (with \(u_{it}=1, t\in \mathcal {T})\) are always set to the maximum value \({\overline{P}}_i - {\underline{P}}_i\), except for the last committed plant \(i'\). This plant is typically characterized by high marginal costs and has to be operated at part-load to balance the demand. In the event that the part-load operation of plant \(i'\) is not sufficient for demand balancing, the power of the second last committed plant must also be reduced, and so on.

Repair infeasible solution Typically, the initial solution of the first step is infeasible and needs to be repaired with respect to the minimum up- and downtime requirements. In general, a fulfillment of minimum up- and downtime requirements of a unit \(i\in \mathcal {I}\) can be achieved by enlarging the corresponding operating phases or idle phases until constraints (7) and (8) are satisfied. This procedure is similar to that one in Delarue et al. (2013). An operating phase indicates that plant i is active (\(u_{it}=1\), \(t\in \mathcal {T}\)), whereas idle phases denote that plant i is inactive (\(u_{it}=0\), \(t\in \mathcal {T}\)).

Let \(\tau ^{\text {up}}_{i,t_1}\) be the duration of an operating phase of some unit \(i\in \mathcal {I}\) that starts at uptime \(t_1\). Moreover, let  \(\tau ^{\text {down}}_{i,t_2}\) be the duration of the following idle phase that starts at time \(t_2\) (cf. Fig. 2). In the case of a violation of the minimum uptime requirements [cf. constraints (7)], the duration \(\tau ^{\text {up}}_{i,t_1}\) may be extended to the right or left as long as the time boundaries of \(\mathcal {T}\) are observed. We first consider the extension of \(\tau ^{\text {up}}_{i,t_1}\) to the right (cf. Fig. 2a). This extension may only be performed if


the additional uptime \(\pi _i-\tau ^{\text {up}}_{i,t_1}>0\) needed to fulfill constraints (7) is smaller than \(\tau ^{\text {down}}_{i,t_2}\) and


the remaining downtime duration \(\tau ^{\text {down}}_{i,t_2} - ( \pi _i - \tau ^{\text {up}}_{i,t_1})\) satisfies the minimum downtime \(\delta _i\).

In the event that the extension to the right is not sufficient to fulfill constraints (7), we extend the operating phase according to items (i) and (ii) as much as possible. Additionally, the repair procedure is carried out to the left. Thereby, the downtime duration of the previous idle phase must be taken into account [similar to (i) and (ii)]. Furthermore, if both attempts fail (and thus are not realized), the operating phase between \(t_1\) and \(t_2\) is connected to the successive operating phase, that starts at time \(t_3\) (i.e., the idle phase is eliminated, cf. Fig. 2b). In case the minimum uptime is still not fulfilled, the already extended operating phase is merged with the previous operating phase. This procedure will finally lead to an operating phase that is at least equal to the required minimum uptime.

Fig. 2
figure 2

Repairing the solution schedule in terms of minimum uptimes \(\pi _i\)

Similar repair steps have to be executed for violations against the minimum downtime \(\delta _i\). In contrast to the repair procedure described above, an enlargement of an idle phase is only possible if constraints (4) and (5) are still satisfied. Otherwise, the idle phase must be eliminated.

Once a solution schedule is repaired, the power output of all active plants has to be adjusted. For this purpose, the plants’ power outputs are set according to the merit order. This means that the most expensive, active plants are operated at part-load again (cf. the first step of our heuristic). However, it might happen that the demand is overfulfilled [possible due to constraints (4)] and redundant plants exist which are decommitted within the next steps.

To economize plant operations in terms of start-up and fixed operation costs, quite short operating and idle phases are canceled, before the repair step is considered. In order to identify such a short operating or idle phase, it is reasonable to use the minimum uptime or downtime as a reference value, i.e., \(\tau ^{{\text {up}}}_{it} \le \xi \cdot \pi _i\) and \(\tau ^{{\text {down}}}_{it}\le \xi \cdot \delta _i\). Please note that a cancelation applies for the whole algorithm. A canceled operating phase can result in an energy shortage and a canceled idle phase in an energy overfulfillment. In the case of an energy shortage, additional plants (e.g., flexible peak plants) must be committed according to their minimum uptime and downtime requirements. In general, this action is significantly cheaper than a comprehensive enlargement of the current operating phase (which would be necessary while executing the repair step). In preliminary studies, \(\xi :=0.2\) produces the best results.

Improve feasible solution Further improvements with respect to the objective function value of the constructed feasible solution can be achieved by local search-based algorithms. The basic idea here is to swap operating phases of one plant by a set of operating phases of other plants (i.e., to search in a neighborhood of the current solution). Thereby, a possible overfulfillment of demand caused by our repair step may be reduced which results in lower production and emission costs. Within the improvement step, the feasibility of the solution is always maintained.

Let \(S^{\text {thermal}}\) be the current solution that considers thermal plants. The schedule is encoded in a binary \(|\mathcal {I}| \times |\mathcal {T}|\)-matrix, where for each plant \(i \in \mathcal {I}\) and point in time \(t \in \mathcal {T}\) the status variables \(u_{it}\) are included (cf. Fig. 3). All other relevant information like power outputs \(p_{it}\) and the amount of time periods operated in the current operating status (particularly \(\tau ^{\text {up}}_{it}\), cf. Fig. 2) can be calculated on the basis of the matrix entries (cf. “start solution” step).

For applying a neighborhood movement, a unit \(i\in \mathcal {I}\) (iteratively chosen in accordance to the merit order) and the first suitable operating phase of this unit are selected. Please note that it is generally not advantageous (in terms of solution time and quality) to swap plants with long operating phases. Therefore, we denote a plant with an operating phase that is smaller than a multiple \(\zeta\) of the minimum uptime as suitable for swapping. For our purposes, \(\zeta :=3\) performs best. If the operating phase of plant i is redundant (i.e., the demand can be fulfilled even without i), then, the operating phase is decommitted by updating the status variables within schedule \(S^{\text {thermal}}\). Otherwise, unit i is temporarily decommitted, where the decommitment of i has to be compensated by operating phases of one or several plants \(i' \in \mathcal {I}' \subset \mathcal {I}\,{\setminus }\{i\}\). Generally, several subsets \(\mathcal {I}'\) can be chosen that result in different objective function values determined by objective function (3). In order to limit the number of subsets, we generate all subsets \(\mathcal {I}'\) with a prescribed maximal cardinality k (e.g., \(k\le 3\)) consisting of units \(i'\), where

  • \(i'\) is positioned after i in the merit order and

  • \(i'\) is decommitted so far.

When all subsets are created, a subset \(\mathcal {I}'\) is further investigated in our neighborhood search if constraints (4) are satisfied without slack as well as constraints (5), (7), and (8) are fulfilled. Due to a best improve hill climbing approach, the (feasible) neighbor solution with the best objective function value replaces the current solution (in case it is better). Once the analysis of the current operating phase of plant i is completed, \(S^{\text {thermal}}\) is updated and the next suitable operating phase is selected.

Figure 3 shows the solution representation of a schedule \(S^{{\text {thermal}}}\) on the left-hand side. Moreover, the neighborhood movement for unit \(i=2\) is demonstrated, where the second operating phase starting at \(t=8\) is considered. We assume that the chosen operating phase is not redundant. Therefore, unit i is decommitted and subsets \(\mathcal {I}'=\{3\}\), \(\mathcal {I}'=\{4\}\), \(\mathcal {I}'=\{3, 4\}\) are investigated. Each of them leads to a fulfillment of the demand. The relevant excerpts of the three neighborhoods (a)–(c) are given on the right-hand side of Fig. 3. Please note that the current schedule \(S^{\text {thermal}}\) is feasible in our simple example and contains no overfulfillment. Therefore, the demand requires a commitment of at least two units in \(t\in \{8, 9\}\). Hence, the duration of the new operating phase of unit \(i=4\) in neighbor (b) is two periods (although \(\pi _4=1\)). In contrast, the operating phase of unit \(i=4\) in neighbor (c) equals the minimum uptime, as unit \(i=3\) fully covers the demand in \(t\in \{8, 9\}\). Since neighbor (c) results in an overfulfillment, the objective function values of (a) and (b) are always better. The solution with the best objective function values is considered as a new starting point for further neighborhood search steps.

Fig. 3
figure 3

Solution representation and possible neighborhood movements

3.2 Hydrothermal coordination: second stage of the heuristic approach

The second stage in Fig. 1 improves the solution \(S^{\text {thermal}}\) determined in the first stage by implementing the “hydrothermal coordination” problem for pumped storages. Besides \(S^{\text {thermal}}\), a second schedule \(S^{\text {hydro}}\) for the hydro storage activities is introduced (i.e., generating electricity or retaining energy back to the storages). Analogous to the thermal schedule, \(S^{\text {hydro}}\) is encoded in a \(|\mathcal {J}| \times |\mathcal {T}|\)-matrix and contains information about energy levels \(e_{jt}\) for all \(j\in \mathcal {J}\) and \(t \in \mathcal {T}\). Please note that the corresponding power levels \(p^{\text {g}}_{jt}\) and \(p^{\text {p}}_{jt}\) can always be derived using constraints (11). In detail, the following two steps are executed in the second stage:

Shift demand using energy storages Energy storages represent a way to decouple the interdependency of demand and supply by shifting demands of one or several periods to other points in time. They can be operated in the state of generating energy due to turbining (generating phase), retaining energy due to pumping (retaining phase), and maintaining energy in the storage (cf. Fig. 4).

Fig. 4
figure 4

Demand shift due to generating and retaining

In our demand shift step, an allocation of energy storages is found by stepwise replacing operating phases of thermal plants by storage operations, i.e., by generating and retaining phases in order to achieve cost reductions. Typically, generating phases (starting at \(t^{\text {gen,s}}\) and ending at \(t^{\text {gen,d}}\)) can be identified in high energy demand intervals and retaining phases (starting at \(t^{\text {ret,s}}\) and ending at \(t^{\text {ret,d}}\)) in low energy demand intervals (cf. Fig. 4). Therefore, our basic idea is to search for demand maxima and minima. In a demand maximum, possible candidate plants for a decommitment are positioned (i.e., candidates for generating phases). Moreover, the already committed plants in a demand minimum may run at higher-power levels, i.e., these are possible candidates for retaining energy (an additional commitment of plants is usually connected with high fixed costs and therefore not suitable).

The principle of our algorithm is demonstrated in Fig. 5, where we select candidates of generating and retaining phases (referred to as \(turb\) and \(pump\)) in the identification part and suitably match them in the coordination part.

Fig. 5
figure 5

Concept of the shift demand step

In the identification part, we move along the time-axis and search for situations in which \(D_{t-1}<D_t\ge D_{t+1}\) (generating phase) or \(D_{t-1}>D_t\le D_{t+1}\) (retaining phase) hold. Once such a point in time \(t\in \mathcal {T}\) is identified, a differentiated procedure is required for demand maxima and minima.

For a demand maximum (e.g., at time \(t^{\text {max}}\)), all at \(t^{\text {max}}\in \mathcal {T}\) committed plants have to be taken into account. An operating phase of a committed plant \(i\in \mathcal {I}\) (i.e., a phase between \(t^{\text {gen,s}}\) and \(t^{\text {gen,d}}\), see Fig. 4) is identified as a candidate for a generating phase if

  • cost savings may occur (i.e., total costs of operating phase of i are larger than additional costs for operating the cheapest thermal plant in order to refill the hydro storage with the highest efficiency, assuming that this storage is used to compensate the operating phase of i),

  • the power level of i during its whole operating phase is lower or equal to the total generating capacity of all hydro storages,

  • the duration \(t^{\text {gen,d}} - t^{\text {gen,s}} +1\) of the generating phase is limited to a threshold \(\tau ^{\text {max}}\) (e.g., \(\tau ^{\text {max}}:=12\) h), since hydro storages are typically operated only hours not days.

For a demand minimum (e.g., at time \(t^{\text {min}}\)), all at \(t^{\text {min}}\in \mathcal {T}\) committed plants have to be taken into account. A committed plant \(i\in \mathcal {I}\) is identified as a candidate for a retaining phase if the power level \(p_{i,t^{\text {min}}}\) in \(t^{\text {min}}\) is lower than \({\overline{P}}_i\). Then, \({\overline{P}}_i - \left( p_{i,t^{\text {min}}} + {\underline{P}}_i \right)\) can be utilized to retain energy in hydro storages. Furthermore, all time periods on the left- and on the right-hand side of \(t^{\text {min}}\) within the operating phase of i are also considered for retaining energy.

Within the identification part, the generating and retaining phases found previously are stored in separated lists (namely, \(L^{{\text {gen}}}\) and \(L^{{\text {ret}}}\)). Prior executing the coordination part, candidates in list \(L^{{\text {gen}}}\) are sorted according to non-increasing cost reductions and candidates in \(L^{{\text {ret}}}\) are sorted according to non-decreasing variable operating costs. Both costs relate to the changed use of thermal power plants through the incorporation of hydro storages. In the case of a generating phase, there are cost reductions in the amount of fixed and variable costs incurred if the thermal plant is possibly shutdown. In retaining phases, the higher-power output results in additional costs in the amount of variable operating costs. Algorithm 1 depicts the subsequent coordination part, where iteratively generating and retaining phases are selected and matched.

figure a

The first line of Algorithm 1 shows that we iterate over all elements in list \(L^{\text {gen}}\). Assuming that generating phase \(turb\) in \(L^{\text {gen}}\) is considered, which belongs to the operating phase of plant i with a start in time period \(t^{\text {gen,s}}\) and an end in \(t^{\text {gen,d}}\) (see also Fig. 4). In accordance to line 2, the realization of \(turb\), i.e., the decommitment of i and the compensation with hydro storage energy, has to be verified by ensuring the following prerequisites for each \(t\in \{t^{\text {gen,s}},t^{\text {gen,d}}\}\):


The energy level in each hydro storage \(j\in \mathcal {J}\) in t must not fall below \({\underline{E}}_j\) if additional generating power is provided. Please note that we first suppose fully filled hydro storages in \(t^{\text {gen,s}}\) (a sufficient storage level will be guaranteed in later steps).


The additional generating power of all hydro storages (under consideration of already existing power levels) must compensate the power level of i in t without exceeding the maximum power of the respective turbines.


Constraints (4) and (5) are satisfied in t.

If the prerequisites are fulfilled only until a time \(t'<t^{\text {gen,d}}\) with \(t'\in \mathcal {T}\), \(turb\) is shortened and realized in \(t^{\text {gen,s}},\ldots ,t'\).

In order to compensate an energy removal \(\varDelta E^{\text {gen,tot}}\) according to \(turb\) (cf. Fig. 6a), suitable retaining phases \(pump\) have to be selected in compliance with the sequence in list \(L^{\text {ret}}\) (lines 3 and 4 of Algorithm 1). Please note that according to item (i) (cf. previous enumeration) fully filled hydro storages were assumed in period \(t^{\text {gen,s}}\), which is not guaranteed in any case. Therefore, a specific amount \(\varDelta E^{\text {gen,pre}}\) (\(0\le E^{\text {gen,pre}} \le \varDelta E^{\text {gen,tot}}\), cf. Fig. 6b) has to be retained before period \(t^{\text {gen,s}}\) in order to guarantee that the level of no hydro storage falls below \({\underline{E}}\) in \(t\in \{t^{\text {gen,s}},t^{\text {gen,d}}\}\) or any other period. Using a specific phase \(pump\) in list \(L^{\text {ret}}\), a hydro storage \(j\in \mathcal {J}\) is filled as long as


the surplus \({\overline{P}}_i - \left( p_{it'} + {\underline{P}}_i \right)\) of committed plant \(i\in \mathcal {I}\) connected to the current \(pump\) is depleted (\(t'\in \{t^{\text {ret,s}}, \ldots , t^{\text {ret,d}}\}\)),


the maximal pumping capacity of j is observed,


constraints (12) are satisfied or


\(E^{\text {gen,pre}}\) is reached.

We start the procedure with the most efficient hydro storage \(j\in \mathcal {J}\). Once the second or third condition is satisfied for storage j, the next efficient storage is selected. If the first condition is fulfilled, the next period \(t'+1\) (in case \(t' < \min \{t^{\text {ret,d}}, t^{\text {gen,s}}\}\)) or the next \(pump\) in list \(L^{\text {ret}}\) (in case \(t' = \min \{t^{\text {ret,d}}, t^{\text {gen,s}}\}\)) is chosen. In the event that the fourth condition occurs, the procedure terminates. The remaining energy \(\varDelta E^{\text {gen,tot}} - \varDelta E^{\text {gen,pre}}\) (under consideration of efficiencies) can then be retained before time \(t^{\text {gen,s}}\) or after time \(t^{\text {gen,d}}\) in an analogous way to (i)–(iv).

Fig. 6
figure 6

Concept of the shift demand step

After the selecting and matching step, all schedules must be updated if the energy removal \(\varDelta E^{\text {gen,tot}}\) can be compensated and cost savings can be achieved (cf. line 5 in Algorithm 1). The update (line 6) is performed as follows: unit i that corresponds to the selected phase \(turb\) has to be decommitted, i.e., we set \(u_{it}:=0\) for \(t\in \{t^{\text {gen,s}}, \ldots , t^{\text {gen,d}}\}\) in \(S^{\text {thermal}}\). Furthermore, according to the designated additional pumping power and the designated generating power (due to the selected and used \(pump\) and \(turb\) phases), the energy levels \(e_{jt}\), \(j\in \mathcal {J}\) (if used) and \(t\in \mathcal {T}\) are adjusted. We use the updated (and feasible) schedules \(S^{\text {thermal}}\) and \(S^{\text {hydro}}\) in order to start a new coordination iteration. Hence, the next phase \(turb\) in list \(L^{\text {gen}}\) is selected and matched with other phases \(pump\) (cf. Algorithm 1), where list \(L^{\text {ret}}\) has to be updated according to the already selected pump phases.

Finalize solution A last finalizing step is performed to replace or decommit (redundant) operating phases of thermal plants if cost savings are thereby achievable. The procedure is similar to the local optimization steps in the first stage of the algorithm visualized in Fig. 1. However, in addition to thermal plants, hydro storages for the provision of spinning reserve have to be taken into account. If excessive spinning reserve is provided (due to the updated schedules), further decommitments of thermal plants can be performed, always maintaining solution feasibility. Additionally, the provided energy of the fictitious plant that was introduced in the preprocessing (cf. Fig. 1) is replaced by variable \(n_t\) in each period t. Please note that the usage of the fictitious plant is reduced significantly due to the shift demand and improve/finalize steps.

4 Experimental performance analysis

Within the performance analysis (cf. Sect. 4.1), we compared the results obtained by our two-stage heuristic approach to CPLEX results using our MILP formulation (cf. Sect. 2.1). We initially assume that emission penalty costs are zero (\(c^{{\mathrm{CO}_2}}_t:=0, t\in \mathcal {T}\)); therefore, only thermal production costs are to be minimized. Further results analyzing production and emission costs in the UCP–HT can be found in Sect. 4.2.

4.1 Performance results of the two-stage heuristic approach

The following study makes use of two test sets \(\hbox {T}_1\) and \(\hbox {T}_2\), where each set consists of 50 instances. Test set \(\hbox {T}_1\) was first introduced by Kazarlis et al. (1996), and it is commonly used for analyzing short-term UCP models (e.g., Ongsakul and Petcharaks 2004; Viana et al. 2008; Delarue et al. 2013, and Morales-España et al. 2013). All instances in \(\hbox {T}_1\) are based on the same plant system with 10 thermal units. Then, this 10-plant system is exactly replicated in order to obtain a system with 20,30,…,100 plants. Moreover, demand values for a planning horizon of 24 h are adopted by Kazarlis et al. (1996) and proportionally adjusted relatively to the total capacity of the replicated plant system. Since we need planning horizons for investigating our long-term problem, we copied the 24-h horizon in order to get instances of 1, 4, 12, and 20 weeks as well as 1 year (i.e., 24 to 8760 hourly time periods). Please note that on weekends only 80 % of the demand is chosen. The spinning reserve requirements are set to 10 % of the corresponding demand in each period. Test set \(\hbox {T}_2\) is derived from \(\hbox {T}_1\) by replacing the demand by a highly volatile residual demand that appeared in Germany in 2015 (relatively adjusted to the total thermal capacity). Furthermore, hydro storages are added to each instance of \(\hbox {T}_1\) and \(\hbox {T}_2\). Thereby, hydro storages had a share of about 7 % of the total thermal capacity (as it was the case in Germany in 2015).

All optimization runs are performed on an Intel i7-2760QM with 2.7 GHz and 16 GB RAM. The mixed-integer linear models were solved with CPLEX 12.6 (using GAMS) applying an optimality gap of 1 % and a time limit of 5 h. Under preliminary tests, we found out that flow-cover, Gomory fractional, and mixed-integer rounding cuts provided by CPLEX perform best and should be used (all other cuts are excluded). Our two-stage heuristic approach proposed in Sect. 3 has been implemented in C# (.NET 4.0).

Computational results for test sets \(\hbox {T}_1\) and \(\hbox {T}_2\) with 10–100 plants and planning horizons ranging from one week to one year are presented in Table 1.Footnote 3 Columns 2–5 refer to test set \(\hbox {T}_1\) and columns 6–9 to test set \(\hbox {T}_2\). “Gap” displays the average gap [%] between the best integer solution found and the best lower bound obtained by CPLEX. The worst-case gap values are written in parentheses. “\(t^{\text {cpu}}\)” shows the average computation times in seconds [s].

Table 1 Computational results for \(\hbox {T}_1\)- and \(\hbox {T}_2\)-instances

Applying the MILP model, all instances in test set \(\hbox {T}_1\) with a planning horizon of up to 20 weeks are solved to (near-)optimality (i.e., a gap \(\le\) 1 % is reached) within the specified time limit of 5 h. For instances with a one-year planning horizon, the time limit often prevents good outcomes in terms of gap values. Instances in \(\hbox {T}_2\)-instances seem to be more difficult to solve, since the gap values are larger compared to the gaps of \(\hbox {T}_1\)-instances. Here, only instances with a planning horizon of up to 12 weeks can be tackled with gap values lower than 1 %. Moreover, average gaps for instances with a one-year planning horizon are quite high (approx. 63 %). The solution quality of the two-stage heuristic approach is comparable to MILP for all medium-term instances in \(\hbox {T}_1\) and \(\hbox {T}_2\), as gap values are lower or equal to 1 %. For long-term instances, that are mainly focused in this article, great differences between heuristic approach and MILP can be observed. The heuristic approach is always able to find significantly better solutions (even worst-case gap values are \(\le\) 1 % in contrast to the respective MILP gaps that are < 100 %) within considerable less computation time (\(t^{{\text {cpu}}} < 2\) minutes in contrast to MILP \(t^{{\text {cpu}}} \le 5\) h). Due to the fast run times (within which outstanding solutions are generated), the two-stage heuristic seems to be a good choice for practitioners.

A detailed analysis of the two-stage heuristic approach is illustrated in Table 2. Each optimization step (cf. Fig. 1) is evaluated individually using a third test set \(\hbox {T}_3\) with long-term instances. \(\hbox {T}_3\) consists of the ten one-year problem instances of \(\hbox {T}_1\), where the recurrent demand is again replaced by volatile residual demands. We here use the six yearly residual demands occurred in Germany from 2010 to 2015 (cf. ENTSO-E and German TSOs) and adjusted them proportionally to the total capacity of the respective plant system. Thus, 60 long-term instances are obtained with a 10 to 100 plant system. In Table 2, average solution times \(t^{{\text {cpu}}}\) and average relative improvements \(\varDelta\), compared to the respective previous optimization step, are presented. Hence, for the first step, i.e., the creation of a start solution, improvements do not exist. Negative improvements indicate a deterioration of the objective function value. In the transition from a created to repaired solution negative improvements occur. From there to the finalized solution, positive improvements are realized. Additionally, solution times given in milliseconds [ms] are negligibly small in all steps of the thermal plant optimization stage (cf. Sect. 3.1). Most of the overall solution time is spent within the integration of energy storages, in particular for larger systems. Performance gains, that are achieved within this hydrothermal coordination stage (cf. Sect. 3.2), strongly depend on the characteristics of the problem instances. More precisely, for instances with high demand differences, improvements are increasing. For instances with primarily base load situations (e.g., due to a low volatility or a low feed-in of the renewable sources), the smoothing effect of energy storages are negligible and only small improvements could be reached. Furthermore, the demand shifting offers the overall best improvements. Further improvements within the last step are generated by avoiding an excessive spinning reserve.

Table 2 Relative improvements \(\varDelta\) and solution times \(t^{{\text {cpu}}}\) for each step of the heuristic approach (for one-year instances)

To further assess the solution quality of the heuristic approach, we isolated its first stage (cf. Sect. 3.1) and compared the objective function values to results of procedures devised by Kazarlis et al. (1996), Morales-España et al. (2013), and Ongsakul and Petcharaks (2004). Hence, a feasible production schedule for thermal plants is determined. The computational results of the wildly used Kazarlis et al. (1996) test set (for a 24 h planning horizon without hydro storages) are given in Table 3. For the solver solution process, a gap of less than or equal to 1% is chosen as a stopp criterion. Columns 2 and 3 state the objective function values generated by our procedures, whereas “MIP-MOR” illustrates the results using the mixed-integer linear programming approach by Morales-España et al. (2013). Column “DPLR” displays the results for a Lagrange relaxation combined with a dynamic programming approach for the economic dispatch problem given by Ongsakul and Petcharaks (2004). Finally, column “GA” represents objective function values using the genetic algorithm presented by Kazarlis et al. (1996). Since “DPLR” and “GA” use squared production costs [cf. Eq. (1)], we also considered those costs in our procedures (“MIP” and “Heuristic”) as well as in our implementation of “MIP-MOR” (same settings as in “MIP”) to facilitate comparability. Please note that due to the quadratic objective, our mixed-integer programming model is named “MIP” (in contrast to the “MILP” model in Table 1). Line “avg. gap” represents the average gap between the objective function values obtained by the respective procedure and the best-known objective function values (within this paper). Overall, the models “MIP” and “MIP-MOR” give the best results in terms of average gap, followed by the two-stage heuristic, which also provides a significantly lower computation time. Please note that only “MIP”, “MIP-MOR”, and “Heuristic” are comparable with respect to CPU-times, since “DPLR” and “GA” are solved on different computers (Ongsakul and Petcharaks 2004 present solution times of 2–3 minutes for “DPLR” and “GA” vs. less than a second for our “Heuristic”). To sum up, the first three steps within the first stage (cf. Sect. 3) seem to provide a quite good basis for our two-stage heuristic approach solving the UCP–HT.

Table 3 Objective function values and gaps compared to the best-known solutions for \(|\mathcal {T}|=24\) h

4.2 Case study for the German electricity market

The numerical results obtained in Sect. 4 make the heuristic procedure highly suitable for solving real-world energy problems. The following case study is based on the characteristics of the German electricity market that comprises of nearly 300 large-scale power plants with about 91 GW of thermal power in 2015. Moreover, 126.4 GW of volatile renewable units, 6.5 GW of pumped storages, and a cumulated net demand of 550 TWh are used. Furthermore, in 2015 the average price for \(\hbox {CO}_2\) emissions was \(c^{{\mathrm{CO}_2}}:=7.94\) € per ton \(\hbox {CO}_2\) (since \(c^{{\mathrm{CO}_2}}\) is an average price, period t in \(c^{{\mathrm{CO}_2}}_t\) is eliminated). We choose a long-term planning horizon of one year. In order to extensively assess the capability of the proposed heuristic for real-world instances, a scaling factor \(\psi\) is introduced. Thereby, the total thermal capacity \(\sum P_i^{{\text {max}}}\) [GW], the yearly demand \(\sum D_t\) [TWh], as well as the renewable feed-in \(\sum {\rm wind}_t\) and \(\sum pv_t\) [TWh] are multiplied by \(\psi \in \{0.25, 0.50, 0.75, 1.00, 1.50, 2.00, 3.00, 5.00\}\). Based on the scaled values, the thermal plant portfolio is derived such that it represents a \(\psi\)-adjusted electricity system of Germany. The portfolio of hydro storages comprises only storages that participate on the wholesale market (here, 6.5 GW of generating power) and is scaled accordingly. Realistic hourly values for the demand and for renewable feed-ins are derived by the methodology in Wagner (2014) applying the calibration data from 2010 to 2015 (cf. ENTSO-E and German TSOs). The stochastic Ornstein–Uhlenbeck process of Wagner (2014) is used to generate three scenarios for the demand as well as three scenarios for wind and solar infeeds, respectively. Consequently, 27 possible combinations are considered, with the residual demand specified in each combination (see Definition 3). This might have some small impacts on the results compared to a detailed modeling of renewable sources, where, e.g., each wind farm is considered individually. However, these small differences seem to be negligible against the background of the underlying long-term planning horizon and the fact that according to Wagner (2014), the behavior of the modeled renewable feed-ins is quite realistic. For run-of-river and biomass provided electricity, a constant monthly profile given by the ENTSO-E is utilized.

Table 4 Results for different \(\psi\) for the German electricity market for one year (#instances: 27 for \(\psi \in \{0.25, 0.5, \ldots , 5.00\}\))

Results of our two-stage heuristic are depicted in Table 4. As expected, instances with a low scaling factor \(\psi\) are solved quite fast, but also for the entire German electricity system (\(\psi =1\)), solutions can be generated in about 2.5 min. Moreover, a feasible hourly production schedule for a system with a scaling of \(\psi =5\) (with almost 1500 plants and in terms of the demand nearly comparable to the system of the EU-28) is received in less than half an hour. Within the test set with one scaling factor, only small solution time variations are observed. The related solution quality is represented by gap values that are determined using the best MILP solution found within a time limit of 48 h. Here, gap values are always below 1.5 %, which results again in quite high solution qualities. For higher scaling factors (\(\psi \ge 1.50\)) no feasible MILP-solutions can be achieved in 48 h due to the rapidly increasing model size. Therefore, the LP-relaxations of our MILP-model are used to assess the solution quality. Note that the resulting gap values are not as tight as the previous values and are hence written in parentheses. However, they indicate the maximal deviation to the optimum (all deviations are lower than 7 %). For \(\psi =5\), “n.a.” means that CPLEX cannot provide solutions within the prescribed time limit. Considering the results, it can be concluded that the two-stage heuristic procedure provides not only outstanding results for theoretical test instances, but is also excellently for comprehensive practical purposes.

Furthermore, the proposed heuristic approach can be applied in order to receive trade-off results between the minimization of emission costs and the minimization of production costs. In what follows, the weighted-sum method is used (cf. Sect. 2.2), where weighting factors for \(\hbox {CO}_2\) emissions are set according to the market price \(c^{{\mathrm{CO}_2}}\). Trade-offs are approximated by varying the weight \(c^{{\mathrm{CO}_2}}\) from zero emission costs to high costs (e.g., 200 €/t \(\hbox {CO}_2\)). Figure 7 illustrates the resulting trade-off curve for the German electricity market with raising market prices \(c^{{\mathrm{CO}_2}}\). Please note that the corresponding solution times and solution gaps are comparable to the results in Table 4 for \(\psi =1.00\).

Fig. 7
figure 7

Impact of \(\hbox {CO}_2\) market prices \(c^{{\mathrm{CO}_2}}\)

It might be deduced from Fig. 7 that a shift from coal- to gas-fired plants (with less \(\hbox {CO}_2\) emissions) appears with increasing \(\hbox {CO}_2\) prices and thereby \(\hbox {CO}_2\) emissions are reduced. Therefore, the principle of the EU ETS can generally be used to control the management of \(\hbox {CO}_2\) emissions. Reductions in \(\hbox {CO}_2\) emissions are only achieved by accepting much higher production costs. In our case study, a reduction of nearly 15 % due to increase in \(c^{{\mathrm{CO}_2}}\) from 7.94 to 140 € per ton \(\hbox {CO}_2\) results in a rise in total production cost of 350 % (from ca. 17 to 60 billion €). All in all, the presented technique offers a possibility to evaluate the effectiveness of the EU ETS.

5 Conclusion

In this paper, we considered the UCP with hydrothermal coordination, i.e., the UCP–HT. In order to meet recent challenges of reducing emissions, particularly \(\hbox {CO}_2\) emissions, we enhanced the UCP–HT to a UCP–HT with production and emission costs. The emission costs are included on the basis of the cap-and-trade principle of the EU ETS. Nowadays, the trend to low-carbon electricity supply prefers units with less emissions (e.g., gas-fired plants); consequently, cost-efficient power plants (e.g., coal-fired plants) are no longer prioritized at all. In the presence of (high) market prices for \(\hbox {CO}_2\) allowances, units with low emissions may achieve superior positions in the merit order and thereby higher utilizations. In contrast, carbon-intensive plants move significantly down in the merit order.

For the proposed UCP–HT with and without emission costs, a MILP formulation as well as a new and fast two-stage heuristic approach are presented. The proposed approach significantly outperforms the MILP as well as other tested techniques for long-term planning horizons. Particularly, real-world instances on the basis of the German electricity market can be solved in minutes, where an outstanding solution quality is realized. Furthermore, the two-stage heuristic allows sophisticated analyses of trade-off situations between thermal production costs and emission costs, e.g., to determine suitable \(\hbox {CO}_2\) prices for an effective reduction in the overall emissions. Our case study emphasizes that current low market prices for \(\hbox {CO}_2\) allowances are quite effectless, which goes in line with most other studies.

It can be concluded that with regard to the need of fast scheduling procedures for the operational planning of thermal power plants, renewable sources, and storages, the two-stage heuristic approach is highly suitable for real-world applications and their analysis. In order to further improve the presented approach, it can be embedded into a multi-start scheme, where different solutions are generated and the best solution found is returned. Future research might also observe plant availabilities, combined heat-and-power techniques for thermal plants or electricity trading with foreign countries. These aspects extend either the constraint set or the objective function and could affect the targets of different decision makers (e.g., system operators, generating and industrial companies). Generally, the two-stage approach would be a good basis for those extensions due to its modular architecture.