Procedure
Maon simulates electricity wholesale markets through deriving following three key outputs.
- Short-term equilibrium: Determining dispatch schedules and wholesale prices using generation, grid, and consumption capacities as inputs through single and serial runs.
- Uncertainty distribution: Evaluate uncertainties in short-term equilibria, along with associated outcomes like facility-specific costs and revenues by the help of stochastic simulations.
- Long-term equilibrium: Deriving investment decisions in generation, grid, and consumption facilities based on anticipated prices, volumes, and emerging technologies via investment simulations.
All derivations rely on the same market simulation procedure. Single runs execute it once, serial runs apply it across multiple years, stochastic runs repeat it with varying inputs to generate output distributions, and investment runs use it iteratively to derive capacity adjustments.
Single
The procedure for single runs is applied at the single dispatch page by click on Run simulation.
Overview
Upfront input data is processed (see preprocessing).
The three-stage optimization procedure is illustrated in the following figure. Firstly, on-off dispatch decisions are neglected, and nonlinear equations are linearized to solve the total linear optimization problem. Secondly, unit states are fixed at the start and end of sub time ranges (e.g., daily), and these subproblems are solved successively. Thirdly, on-off dispatch decisions are fixed, and the total optimization problem is linearized and optimized. Numerical issues are managed internally through automatic optimizer restarts and re-calibrations.
After the simulation procedure, the raw results like unit commitments and price estimates are processed for further usage (see postprocessing).
Linear optimization
In the first procedure step, on-off dispatch decisions are neglected and nonlinear equations are linearized. The resulting total linear optimization problem is solved. The barrier method is used by default for solving. The optimization solving method can be set for linear problems in the project configuration with the parameter solver_optimizer_linear_problem
.
Decomposed mixed-integer optimization
After the total linear optimization problem is solved in the first step, determined unit states are fixed each simulation sub time range begin and end. The subproblems (e.g., daily) are solved successively via a branch-and-cut method by default.
Following image depicts the mixed-integer approach and its hand-overs used as presets in the subsequent simulations.
The total time range is set in the scenario settings (default is 8760 hours). The sub time range is configurable in the project settings (default is 24 hours). Longer sub time ranges require more processing time, and the increase in time is disproportionate due to the combinatorial complexity of the mixed-integer optimization problem.
The mixed-integer problem solving algorithm can be set in the project configuration with the parameter solver_optimizer_mixed_integer_problem
.
For large exchange combinations, such as those involving numerous bidding zones or nodal pricing, the system decomposition can be applied in addition to time decomposition in 90_grid_bidding_zones.csv
. This approach fixes groups of bidding zones or nodes with their net balances (exchange sums), effectively reducing the mixed-integer complexity to practical levels.
Linear re-optimization
After the mixed-integer optimization procedure step, derived on-off dispatch decisions are fixed. Lastly, based on the derived operation points the global optimization problem is linearized and solved. The solving algorithm equals to the linear solving method (see linear optimization).
Fast mode
The total runtime for the three-step procedure is approximately 12 hours (for ENTSO-E region, 8760 hours, and 50000 components). Maon offers a fast mode that significantly reduces this time while still respecting all market equilibrium constraints, achieved by aggregating components. When battery, DSR, thermal, hydro, and grid components are aggregated to the maximum levels in all bidding zones, the procedure time drops to under five minutes. The higher the aggregation level, the faster the simulation. Intermediate aggregation levels allow to chhose an specific trade-off between accuracy and speed.
Original and aggregated model data can be combined, if needed. For example, the aggregation method can be applied to all bidding zones except those in the focus region of the analysis. The aggregation level can be set in 90_grid_bidding_zones.csv
. To further reduce simulation runtime, certain restrictions and functionalities (e.g., minimum down times, operation times, ramping constraints, or frequency reserve provision) can be disabled in the project configuration.
Serial
The procedure for serial runs is applied at the serial dispatch page by click on Run simulation.
Parametrizing multiple years can be done through annual scenarios and single runs (see single run). However, gapless simulations over longer periods (e.g., 2020 to 2040) require considerable effort, especially for many years (e.g., 21 years). To minimize this effort, serial runs can be utilized. This approach combines the scenario tree feature (see scenario tree) and the inheritance feature (see inheritance).
Serial runs require one initial scenario (e.g., 2020) and a derived scenario for a later year (e.g., 2040). The procedure automatically generates annual scenarios for each year in between (e.g., from 2021 to 2039), significantly reducing parametrization efforts. The following figure illustrates how the intermediate scenarios are created.
The serial run procedure is available in derived scenarios, where users can select the years in between and manage the runs. By default, the procedure starts with all years between the base and derived scenario.
Stochastic
The procedure for stochastic runs is applied at the stochastic dispatch page by click on Run simulation.
Stochastic dispatch runs using Monte Carlo simulations can be performed through the available interfaces. The documentation here is currently under development. For more information, please contact the Maon-Team.
Investment
The procedure for investment runs is applied at the investment page by click on Run simulation.
Investment simulation runs through an iterative approach can be performed through the available interfaces. The documentation here is currently under development. For more information, please contact the Maon-Team.