Electric Scenarios
An electric scenario describes the operation of an electric network according to conditions specified in the scenario properties and events. An electric scenario can determine network operational parameters such as power flow quantities, nodal voltages, generation dispatch, and shadow prices across the network, to name a few. The conditions at which these variables are evaluated are specified by the events of the electric scenario, or adopted by default values specified at the network level. The properties and settings of an electric scenario define aspects such as the time span, resolution, and numerical tolerances adopted for the solution while the mathematical equations being respected are relevant to the type of scenario applied.
There are two broad categories of electric scenarios: steady state, and quasi-dynamic, where the distinguishing factor is a steady state looks at a single timestep, and the latter multiple timesteps. Additional distinctions, such as optimality, the linear approximation notated as DC, or the unit commitment application, further characterize these two broad categories. The direct current unit commitment optimal power flow scenario (DCUCOPF) and the capacity expansion model scenario (CEM) are treated independently in this documentation, due to the additional optimization criteria that characterizes these scenarios.
Scenario’s properties can be defined either in the "Scenario Dialog" when creating a new scenario or through the "Property Editor", once the scenario is created.
1. Steady scenarios
The steady scenario represents the system at a single time instance in a power flow equilibrium condition. It can be used to analyze the operation of an electric network at a particular dispatch, to assess the voltage magnitudes and angles. Table 1 provides an overview of the five different types of steady scenarios available in SAInt.
| Scenario type | Description |
|---|---|
|
Balanced Single Time Step AC-Power Flow Simulation. Single time step, phase-balanced, steady-state, alternating current (AC) power flow simulation. Simulation of power flows in an electric network considering:
The resulting mathematical model is a set of non-linear equations solved using a Newton-Raphson linearization algorithm. |
|
Balanced Single Time Step AC-Power Flow Optimization. Single time step, phase-balanced, steady-state alternating current (AC) power flow optimization. Optimization of active power generation dispatch costs (objective function) in an electric network subject to:
The resulting mathematical model is a non-linear optimization model (NLP) solved with Gurobi’s LP-Solver using a sequential linear programming algorithm (SLP). |
|
Unbalanced Single Time Step AC-Power Flow Simulation. Single time step, single-, two- or three-phase unbalanced, steady-state, alternating current (AC) power flow simulation. Simulation of power flows in an electric network considering:
The resulting mathematical model is a set of non-linear equations which is solved using a Newton-Raphson linearization algorithm. |
|
Any (quasi-)dynamic scenario can not last longer than 68 years. SAInt will inform the user of this violation and prevent the scenario from being created. |
1.1. Scenario settings
The properties of a steady scenario allow the user to specify solver settings, time-related information, general attributes, and chart visualization options when accessed using the property editor. Solver settings provide control over the residual tolerances and the maximum number of iterations admitted during the numerical solution of the electric power flow problem. The time settings associated with a steady scenario are simply the time of the single instance, although the properties as related to quasi-dynamic scenarios will still be visible to the user. Table 2 provides an overview of the solver properties for a steady scenario, while Table 3 shows the time-related properties.
In case of big power systems, the computation load and the speed of convergence for a solution may be quite challenging factors to address. SAInt implements a light loading start methodology in ACPF simulations to facilitate the solver in finding a solution. The relevant parameters are described in Table 4. Consider the How-To "Light Loading Start in ACPF simulations" for a description of the steps to activate and fine-tune the options.
SAInt uses Gurobi (https://www.gurobi.com/) as solver for optimization problems related to ACOPF scenarios. The user can specify a set of Gurobi settings either in the SAInt-GUI or using the API when defining a scenario. For more details check Table 2 and the Gurobi’s Parameter Reference online page.
| Display Name | Description |
|---|---|
|
Residual tolerance applied to conclude on success of the solution method. |
|
Maximum number of iteration steps for linearization. The default is 50, and the minimum is 5. |
|
The maximum number of iteration steps for constraint and control handling. The default is 10 steps. It could be zero. |
|
The maximum number of iteration steps for changing the tap position of a transformer. The default is 10 steps. It could be zero. |
|
Select the type of linear solver to use. Choices are: "Pardiso", "SparseLU", and "KLU". Default is "SparseLU". |
|
Set the time limit for the solver in seconds. Default value is 3600 seconds (i.e., one hour). |
|
Gurobi setting: set the memory limit in GB used by the optimization solver. The default value is infinite like in Gurobi. Accepted values are double numeric values between 0 and positive infinity. |
|
Gurobi setting: set the presolve level for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in {-1; 0; 1; 2}. |
|
Gurobi setting: set the allowed fill during presolve aggregation for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the numeric focus of the optimization solver. The default value is 1, while Gurobi uses a default of 0 (i.e., automatic choice). SAInt value of one increases the focus towards being more careful in numerical calculations. Accepted values are integer numeric values in {0; 1; 2; 3}. |
|
Gurobi setting: set a random seed for the optimization solver. The default value is 0 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the number of CPU threads used by the optimization solver. The default value is 0 and Gurobi sets automatically the value. Accepted values are integer numeric values defined by the maximum number of threads provided by the CPU of the computer used. |
|
Gurobi setting: set if to suppress Gurobi logging, including the license connection parameters like in Gurobi with the settings "OutputFlag" or "LogToConsole". Accepted values are integer numeric values in {0; 1}. Default is 1, which indicates to log the Gurobi output. |
| Display name | Description |
|---|---|
|
This is the time of the single instance that is executed with the steady scenario. |
|
This property is not relevant to the steady scenario, but it will always be visible and show a value one hour later than the |
|
The steady scenario has no length of time because it represents a single instance in time. However, this value will still show the difference between |
|
The |
|
The |
|
Name of the scenario whose terminal state is used as the initial state for the current scenario. Default is set to none. This is an optional property, and not relevant for a steady scenario. |
| Display name | Description |
|---|---|
|
Light loading load reduction factor for the first load reduction step. All demand and shunt active and reactive power loadings will be multiplied by this factor. The validity range is [0;1]. Default value is 0.3. |
|
Number of light loading load reduction steps until full loading. If set to 0, no load reduction is performed. If greater than 1, then the load factor will increase with an increment of (1- |
|
Residual tolerance during light loading reduction steps. Default value is 1, and the validity range is [10-5;104]. |
2. Quasi-dynamic scenarios
Quasi-dynamic electric scenarios (AC and DC) comprise power flow (PF) and optimal power flow (OPF) simulations. A succession of steady scenarios comprises a quasi-dynamic scenario. Quasi-dynamic AC/DC PF scenarios are a succession of independent steady simulations, while quasi-dynamic AC/DC OPF scenarios are a succession of optimizations where generator constraints are considered between consecutive timesteps. Table 5 provides an overview of the four different types of quasi-dynamic scenarios available in SAInt.
When solving a quasi-dynamic scenario, one or more of the independent steady state steps may fail. SAInt informs the user of the failure with a specific pop-up window, and by turning red, the status of the "solver indicator" in the status bar is updated. Furthermore, SAInt registers which time steps did not converge and details such time steps in the log file of the simulation.
| Scenario type | Description |
|---|---|
|
Balanced Multi Time Step AC-Power Flow Simulation. Multi time step, phase-balanced, steady-state, alternating current (AC) power flow simulation. Simulation of power flows in an electric network considering:
The resulting mathematical model is a set of non-linear equations solved using a Newton-Raphson linearization algorithm. |
|
Balanced Multi Time Step AC-Power Flow Optimization. Multi time step, phase-balanced, steady-state alternating current (AC) power flow optimization. Optimization of active power generation dispatch costs (objective function) in an electric network subject to:
The resulting mathematical model is a non-linear optimization model (NLP) solved with Gurobi’s LP-Solver using a sequential linear programming algorithm (SLP). |
|
Unbalanced Multi Time Step AC-Power Flow Simulation. Multi time step, single-, two- or three-phase unbalanced, steady-state, alternating current (AC) power flow simulation. Simulation of power flows in an electric network considering:
The resulting mathematical model is a set of non-linear equations which is solved using a Newton-Raphson linearization algorithm. |
2.1. Scenario settings
The properties of a quasi-dynamic scenario allow the user to specify solver settings, time-related information, general attributes, and chart visualization options when accessed using the property editor. Solver settings provide control over the residual tolerances and the maximum number of iterations admitted during the numerical solution of the quasi-dynamic electric problem formulation. Voltage formulation settings can be optionally selected. The time settings for a quasi-dynamic scenario define the optimization time window, the start time and the end time, the time step, and an optional scenario providing the initial conditions, constituting the operational snapshot of the system prior to the beginning of the scenario. Table 6 provides an overview of the solver’s properties for a quasi-dynamic scenario, while Table 7 shows the time-related properties.
In case of big power systems, the computation load and the speed of convergence for a solution may be quite challenging factors to address. SAInt implements a light loading start methodology in ACPF simulations to facilitate the solver in finding a solution. The relevant parameters are described in Table 8. Consider the How-To "Light Loading Start in ACPF simulations" for a description of the steps to activate and fine-tune the options.
SAInt uses Gurobi (https://www.gurobi.com/) as solver for optimization problems related to ACOPF scenarios. The user can specify a set of Gurobi settings either in the SAInt-GUI or using the API when defining a scenario. For more details check Table 6 and the Gurobi’s Parameter Reference online page.
| Display name | Description |
|---|---|
|
The residual tolerance for linearization steps. |
|
Maximum number of iteration steps for linearization. The default is 50, and the minimum is 5. |
|
The maximum number of iteration steps for constraint and control handling. The default is 10 steps. It could be zero. |
|
The maximum number of iteration steps for changing the tap position of a transformer. The default is 10 steps. It could be zero. |
|
Select the type of linear solver to use. Choices are: "Pardiso", "SparseLU", and "KLU". Default is "SparseLU". |
|
Set the time limit for the solver in seconds. Default value is 3600 seconds (i.e., one hour). |
|
Gurobi setting: set the memory limit in GB used by the optimization solver. The default value is infinite like in Gurobi. Accepted values are double numeric values between 0 and positive infinity. |
|
Gurobi setting: set the presolve level for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in {-1; 0; 1; 2}. |
|
Gurobi setting: set the allowed fill during presolve aggregation for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the numeric focus of the optimization solver. The default value is 1, while Gurobi uses a default of 0 (i.e., automatic choice). SAInt value of one increases the focus towards being more careful in numerical calculations. Accepted values are integer numeric values in {0; 1; 2; 3}. |
|
Gurobi setting: set a random seed for the optimization solver. The default value is 0 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the number of CPU threads used by the optimization solver. The default value is 0 and Gurobi sets automatically the value. Accepted values are integer numeric values defined by the maximum number of threads provided by the CPU of the computer used. |
|
Gurobi setting: set if to suppress Gurobi logging, including the license connection parameters like in Gurobi with the settings "OutputFlag" or "LogToConsole". Accepted values are integer numeric values in {0; 1}. Default is 1, which indicates to log the Gurobi output. |
| Display name | Description |
|---|---|
|
The start time of the scenario. This is the first time step in a scenario. The default is to set the calendar day and hour of when the scenario is created by the user. |
|
The end time of the scenario. This is the final time step in a scenario. The default is to set the hour and a plus one calendar day of when the scenario is created. |
|
The total simulation time window or the total amount of time in a scenario (i.e., the difference between |
|
A time step is a fraction of the scenario time window used for discretizing the scenario time window into distinct time points which are calculated for the variables. The time window is a multiple of the time step, i.e. |
|
The number of time steps for the scenario time window (i.e. |
|
Name of the scenario whose terminal state is used as the initial state for the current scenario. This is an optional property, and the default is set to none. The property is in the "General" section of the property editor. |
| Display name | Description |
|---|---|
|
Light loading load reduction factor for the first load reduction step. All demand and shunt active and reactive power loadings will be multiplied by this factor. The validity range is [0;1]. Default value is 0.3. |
|
Number of light loading load reduction steps until full loading. If set to 0, no load reduction is performed. If greater than 1, then the load factor will increase with an increment of (1- |
|
Residual tolerance during light loading reduction steps. Default value is 1, and the validity range is [10-5;104]. |
Figure 1 shows an example of the time settings and the associated graphical description of a quasi-dynamic ACPF scenario as available in the Scenario Dialog window.
3. Best Practices for convergence in AC Power Flow scenarios
Solving an AC Power Flow (ACPF) scenario becomes increasingly challenging as the size and complexity of the network model increase. Large and complex networks contain many state variables and non-linear governing equations, making numerical convergence highly sensitive to modeling choices and initial conditions.
To support users in obtaining a converged solution across a wide range of network sizes and complexities, SAInt provides several solver initialization and modeling options. This document explains the underlying principles and provides guidance on selecting the appropriate options to improve convergence behavior based on general network characteristics and solver behavior.
3.1. Background: why convergence can be challenging
An ACPF simulation solves a system of non-linear algebraic equations that describes the steady-state electrical behavior of the network. These equations are typically solved using iterative numerical methods, which repeatedly linearize the equations around a current estimate of the solution.
The choice of initial values for the solution variables—primarily voltage magnitudes and voltage phase angles—has a significant influence on:
-
whether the model converges at all;
-
how many iterations are required;
-
whether the solution oscillates or diverges.
As network size and complexity increase:
-
the number of variables and equations grows;
-
the system becomes more strongly non-linear;
-
poor initial guesses are more likely to lead to divergence.
Therefore, selecting a good starting point and appropriate convergence-supporting modeling options becomes increasingly important for large or heavily loaded systems.
3.2. Solver Initialization Options
3.2.1. Flat Start
With a "Flat Start", all bus voltage magnitudes are initialized to 1.0 p.u., and all voltage phase angles are set to 0 degrees.
- Characteristics
-
-
Simple and robust for small or lightly loaded networks.
-
Requires no prior solution.
-
Useful during early model development or for simple test cases.
-
- Limitations
-
-
May require many iterations.
-
Often fails to converge for large, heavily loaded, or stressed networks.
-
- Recommendation
-
Use Flat Start primarily for small networks or when no previous solution is available.
3.2.2. Warm Start
A "Warm Start" uses the converged steady-state solution of an ACPF simulation as the initial guess for another ACPF simulation of the same network model.
In SAInt, this is achieved by selecting the solution of a previous steady-state scenario as the initial state of the current scenario. The solver loads the corresponding results from the associated econ file and uses them as the starting point for the active scenario.
- Characteristics
-
-
Provides verified initial voltage magnitudes and phase angles.
-
Can significantly improve convergence speed and robustness.
-
Particularly effective when the scenario settings and network configuration do not differ substantially from the previous steady-state scenario.
-
- Additional Notes
-
-
Warm Start capability is automatically used between consecutive time steps of a quasi-dynamic ACPF scenario.
-
Performance gains are greatest when changes between scenarios are small (e.g., gradual load changes or minor topology variations).
-
- Recommendation
-
Use Warm Start whenever a suitable converged solution is available. This is the preferred initialization method for scenario analysis, contingency studies, and time-series simulations.
3.2.3. Load Conditioning
"Light Loading" is a continuation-based approach that can improve convergence behavior by gradually increasing system loading.
In this method, the active and reactive power of demands and shunt elements are initially reduced. The solver first computes a solution for this lightly loaded system using a Flat Start. The resulting solution is then used as an initial guess for a slightly higher loading level. This process is repeated until the full system loading is reached.
- Key Features
-
-
Reduces system stress during early iterations.
-
Helps guide the solver toward a feasible solution path.
-
The user can configure the number of light loading steps before solving the fully loaded system.
-
- Typical Use Cases
-
-
Very large networks.
-
Heavily loaded or stressed operating conditions.
-
Models that fail to converge with Flat Start or Warm Start alone.
-
- Recommendation
-
Use Light Loading as a powerful convergence aid for difficult scenarios. It is especially effective when combined with advanced voltage control modes (covered below).
3.2.4. Voltage Control Modeling
The VoltageControlMode setting determines:
-
how the voltage magnitude setpoint of voltage-controlling devices (e.g. generators, prosumers, storage units) is mathematically represented, and
-
how reactive power limit violations are handled during the iterative solution process.
This choice has a strong impact on convergence behavior, especially in networks with many voltage-controlling elements. Note, this does not materially impact the physical voltage control mode of a generator, only the representation during the solve process.
VoltageControlMode can take the following three states: "Normal", "SlopedSoftLimit" and "SlopedHardLimit".
- Normal
-
In "Normal" mode, voltage control is described by the equation: Vm = Vm,set
where:-
Vm is the voltage magnitude variable;
-
Vm,set is the voltage magnitude set point.
This corresponds to a horizontal line in the Vm-Q diagram (Figure 2).
-
Reactive power limit switches (i.e., transitions between voltage control and Qmin/Qmax control) are only performed once the residual of the previous iteration is below 1, meaning the solution estimate is already close to convergence.
Characteristics:
-
Enforces the voltage setpoint strictly.
-
Can lead to very large reactive power injections in early iterations.
Limitations:
Large initial reactive power flows may cause divergence.
Recommendation
Use Normal mode for well-conditioned networks or after a stable solution has already been obtained using more robust modes.
- SlopedSoftLimit
-
improves convergence by relaxing voltage control during early iterations. Voltage control is described by (see Figure 2): Vm = Vm,set + s (Qmid - Q) / (Qmax - Qmin)
where:-
Qmid is equal to the average of Qmax and Qmin (i.e., (Qmax+Qmin)/2);
-
Q is the reactive power variable;
-
Qmax and Qmin are the maximum and minimum reactive power, respectively;
-
s is the slope factor.
-
Key Characteristics
-
The slope factor starts with a value equal to the scenario property
StartSlopeFactor(default value is 0.05) in the first iteration and is gradually reduced toward the scenario propertyMinSlopeFactor(default value is 0) when the residual of the previous iteration is below 1. -
Excessive reactive power flows during initial iterations are limited.
-
The reactive power range [Qmin,Qmax] of generators is temporarily enlarged internally, proportional to the slope factor.
-
Voltage control switches for reactive power limit violations of the enlarged reactive power range are only performed once the residual of the previous iteration is below 1.
-
The user can set the minimum enlargement of the reactive power range by specifying a value for the scenario property
MinSlopedSoftLimit(default value is 0). The solver starts from an enlargement of the reactive power range of 100% for all voltage controlling externals and gradually reduces this enlargement toMinSlopedSloftLimit. Please note thatMinSlopedSoftLimitonly has an effect if the scenario propertyMaxControlIterationsis greater than 0.
Recommendation
Use SlopedSoftLimit as the default choice for large or difficult networks. It provides a good balance between robustness and accuracy.
- SlopedHardLimit
-
is similar to
SlopedSoftLimit, but with stricter enforcement of reactive power limits.Differences Compared to
SlopedSoftLimit:-
Reactive power limits are not enlarged.
-
Recommendation
Use SlopedHardLimit when strict adherence to reactive power limits is required, while still improving convergence robustness compared to Normal mode.
3.2.5. Active Power Balancing
The way generators participate in balancing active power mismatches can significantly influence convergence. If only a small subset of generators participates in active power balancing, very large active power flows may occur in the areas where these generators are connected during early iterations. This can lead to numerical instability and divergence.
SAInt already provides the users with the ability to set participation factors with the PFSET property. However, this property fixes the participation of all generations in the final solution. To allow a broader participation of all generations during the solution process only, SAInt provides the SwitchParticipation option.
Behavior:
-
Initially, all generators participate in active power balancing.
-
This continues until the solver residuals fall below the specified residual tolerance.
-
Once the solution is sufficiently close to convergence, participation is switched back to only those generators intended to participate according to the model definition.
Recommendation
Enable SwitchParticipation for large and heavily loaded networks where only a few generators are intended to participate in balancing the active power mismatch.
3.3. Summary of Recommended Strategy
-
Prefer "Warm Start" over "Flat Start" whenever possible.
-
Use "Light Loading" for large, stressed, or difficult-to-converge networks.
-
Select
SlopedSoftLimitorSlopedHardLimitvoltage control modes for improved robustness. -
Enable
SwitchParticipationto stabilize early iterations in large systems. -
Once a stable solution is obtained, stricter control modes can be re-enabled if needed.
4. DCUCOPF scenarios
The DCUCOPF is a scenario for optimizing the decisions on unit commitment and economic dispatch considering generator, storage, and transmission constraints using a linear approximation of the non-linear AC power flow equations ( i.e., (a) nodal voltage = nominal voltage, (b) resistance << reactance, (c) negligible voltage phase angle difference across lines and transformers). Each optimization time horizon can have a look-ahead period to inform decisions that influence the network’s state beyond the end of the optimization window.
The resulting mathematical model is a linear, mixed-integer optimization model (MIP) solved with Gurobi’s MIP-Solver using a rolling time horizon with look-ahead method.
4.1. Scenario settings
The properties of a DCUCOPF scenario allow the user to specify solver and time-related information, as well as general attributes and chart visualization options. Solver settings provide control over the solver type, the solver model, the time limit, and the relative MIP gap. Optionally, the user can write to an external file the linear programming problem for the optimization of the active model. The time settings for a DCUCOPF scenario define, as for a quasi-dynamic scenario, the optimization time window, the start time and the end time, the time step for the time horizon, and an optional scenario providing the initial conditions, constituting the operational snapshot of the system prior to the beginning of the scenario. Furthermore, the user can specify the time look ahead, the time step look ahead, and the time horizon. Table 9 provides an overview of the solver’s properties for a quasi-dynamic scenario, while Table 10 shows the time-related properties.
SAInt uses Gurobi (https://www.gurobi.com/) as solver for optimization problems. The user can specify a set of Gurobi settings either in the SAInt-GUI or using the API when defining a scenario. For more details check Table 9 and the Gurobi’s Parameter Reference online page.
|
For DCUCOPF scenarios, the user is asked to confirm any new execution that overwrites an existing solution. This extra check is meant to prevent launching a long optimization run or accidentally overwriting a solution. |
| Display name | Description |
|---|---|
|
Solver type to use for solving the LP and MIP. The only available option is Gurobi. Other options may be available in future releases. |
|
The type of solver model to use. Choices are: MIP, LP and QP. Default is MIP. |
|
Select the type of linear solver to use. Choices are: "Pardiso", "SparseLU", and "KLU". Default is "SparseLU". |
|
The time limit for the DCUCOPF solver. If the relative MIP gap is not achieved within the solver time limit, the latest solution found is considered as the result of the time horizon. Default is 3600 seconds. |
|
The relative MIP gap for branch and bound algorithm (i.e., relative difference between best integer objective and the best objective in the remaining unbranched nodes in the branch and bound tree). Default is 1.0E-3. |
|
Indicates if an LP file of the optimization model should be generated. This file lists the objective functions and all the linearized equations. Default is to not generate the file. |
|
Gurobi setting: set the memory limit in GB used by the optimization solver. The default value is infinite like in Gurobi. Accepted values are double numeric values between 0 and positive infinity. |
|
Gurobi setting: set the presolve level for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in {-1; 0; 1; 2}. |
|
Gurobi setting: set the allowed fill during presolve aggregation for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the integrality focus of the MIP optimization solver. The default value is 1, while Gurobi uses a default of 0. SAInt requires Gurobi that the solver tries harder to avoid solutions that exploit integrality tolerances. Accepted values are integer numeric values in {0; 1}. |
|
Gurobi setting: set the numeric focus of the optimization solver. The default value is 1, while Gurobi uses a default of 0 (i.e., automatic choice). SAInt value of one increases the focus towards being more careful in numerical calculations. Accepted values are integer numeric values in {0; 1; 2; 3}. |
|
Gurobi setting: set the MIP focus of the optimization solver. The default is 0 like in Gurobi. Accepted values are integer numeric values in {0; 1; 2; 3}. |
|
Gurobi setting: set a random seed for the optimization solver. The default value is 0 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the number of CPU threads used by the optimization solver. The default value is 0 and Gurobi sets automatically the value. Accepted values are integer numeric values defined by the maximum number of threads provided by the CPU of the computer used. |
|
Gurobi setting: set the MIP gap at which to change the solution strategy of the optimization solver. The default value is 0 like in Gurobi. Accepted values are double numeric values between 0 and plus infinite. |
|
Gurobi setting: set the fraction of time spent in feasibility heuristics by the optimization solver. The default value is 0.05 (i.e., the 5 % of the time) like in Gurobi. Accepted values are double numeric values in [0; 1]. |
|
Gurobi setting: set if to suppress Gurobi logging, including the license connection parameters like in Gurobi with the settings "OutputFlag" or "LogToConsole". Accepted values are integer numeric values in {0; 1}. Default is 1, which indicates to log the Gurobi output. |
| Display name | Description |
|---|---|
|
Start time of the scenario. It is the first time step in a scenario. The default is to set the calendar day and hour of when the scenario is created. |
|
End time of the scenario. It is the final time step in a scenario. The default is to set the hour and a plus one calendar day of when the scenario is created. |
|
The total amount of time in a scenario (i.e. the difference between |
|
The time horizon is a fraction of the scenario time window considered for a consecutive optimization in a DCUCOPF scenario. The time window is a multiple of the time horizon, i.e. |
|
A time step is a fraction of the scenario time window used for discretizing the scenario time window into distinct time points which are calculated for the variables. The time window is a multiple of the time step, i.e., |
|
A look ahead, look ahead time, or time look ahead is a time duration added to the time interval considered in the consecutive optimization for a DCUCOPF scenario. It assists the mathematical model in finding a more realistic solution for the commitments of generators and the operation of storages close to the end of a time horizon as it indicates that the operation of the generators does not end at the end of the time horizon. The total time interval for a consecutive optimization is composed of the |
|
The time step for the look ahead. It typically has a smaller time resolution or a longer time step than the time horizon. Default is set to zero minutes. |
|
Name of the scenario whose terminal state is used as the initial state for the current scenario. Default is set to none. This is an optional property. |
|
Number of consecutive runs for a given time horizon and scenario time window (i.e., |
|
The number of timesteps for the scenario time window (i.e., |
|
The number of time steps per time horizon (i.e., |
|
The number of time steps per look ahead (i.e., |
Figure 3 shows an example of the time settings and their graphical description of a DCUCOPF scenario available in the Scenario Dialog.
|
By default, the event |
4.2. Scenario results summary
After successfully solving a DCUCOPF scenario, SAInt provides a first simple summary of some relevant results of the optimization problem in the log. This is the default behavior when using the GUI, while this needs to be explicitly selected using the function showSIMLOG() when using the API.
The entries of the summary are:
- Total Energy Generation
-
Breakdown of the contribution of each production source type in absolute and relative (total share) terms over the total amount of generation in the optimization problem.
- Total Energy Demand
-
Breakdown of the contribution of each demand source type in absolute and relative (total share) terms over the total amount of demand in the optimization problem.
- Total Energy Not Supplied (total PNS)
-
Breakdown of the amount of energy not supplied by demand and generation source during the optimization problem.
- Total Cost - Breakdown
-
Breakdown of the variable operational and maintenance price costs per produced unit of energy (
VOMcost) by generation and supply source, ancillary service externals costs, start up and shutdown costs, fuel costs, and hurdle costs. - PMAX Penalty Costs
-
Breakdown of the costs generated by the penalty price for exceeding the maximum active power flow (
PMAX) by production source. - PMIN Penalty Costs
-
Breakdown of the costs generated by the penalty price for exceeding the minimum active power flow (
PMIN) by production source. - Branch Flow Penalty Costs
-
Breakdown of the costs generated by the penalty price for exceeding the maximum active power flow (
PMAX) by branch type. - Total Penalty Costs Summary
-
Summary of the penalty costs by constraint type.
- Maximum LMP
-
Location and timestep it occurred of the "Location Marginal Price" component (LMP).
- Maximum ENET.PD
-
The total active power extraction from the network by all electric demands and the timestep it occurred.
- Maximum Wind/PV P
-
Maximum instantaneous variable renewable energy penetration and the timestep it occurred.
4.3. System Balance Formulation
The DCUCOPF scenario offers two mathematical formulations to solve the production cost model: (a) nodal balance formulation (also known as B-θ formulation), and (b) system balance formulation (also known as PTDF formulation). By default, SAInt uses the nodal balance formulation which creates active power balance constraints for each node in the network. In comparison, the system balance formulation consists of a single system-wide power balance constraint.
The system balance formulation can be activated by adding the network event USESYSTEMBALANCE. Using the system balance formulation also enables the user to retrieve different components of the locational marginal prices (LMP). The system energy price is available in the property PSHDWE of the electric network and the congestion component in the PSHDWC property of the electric node. Furthermore, if losses are captured by activating the network event INCLUDELOSS, the loss component of LMP can be obtained in the property PSHDWL of the electric node.
Using the system balance formulation is also a pre-requisite for performing N-1 security analysis as described in the How-To "Model N-1 Security Constraints".
4.4. Scenario for N-1 security analysis
In power systems, security constraints refer to the operational limits and conditions that ensure the system remains secure, stable, and reliable under normal and contingency conditions (such as equipment outages or faults). Performing a security constraints analysis within a production cost model involves integrating reliability and contingency considerations into the economic simulation of system operations. In other words, it extends a typical least-cost dispatch or unit commitment simulation to ensure secure (not just economical) operation of the power system.
SAInt allows for N-1 security analysis in a production cost models thanks to dedicated objects and events. On the network side, it is necessary to define "Contingency" objects (see "Contingency (CTG)") and "Monitored Branch" elements (see "Monitored Branch (MBR)"). A contingency is a container grouping monitored branches linked to a specific contingency. The branch considered for the N-1 scenario is the branch selected when creating the CTG object. Once a CTG object is defined, it is needed to assign to the contingency a set of MBR objects (i.e., a group of other branches) to be monitored for the impacts of the contingency.
It is possible to create multiple contingencies, each defined for the outage of a specific branch. Once a branch is used to generate a CTG, it cannot be used again to create another contingency. The same branch can be monitored in multiple contingencies at the same time. However, a branch cannot be added as a monitored branch to a contingency where it is the contingency element.
In a DCUCOPF scenario, it is necessary to add the network event USESYSTEMBALANCE in order to perform a security constraints analysis.
For a step-by-step description of how to perform a security constraints analysis in SAInt refer to the How-To "Model N-1 Security Constraints".
5. CEM scenarios
The CEM is a scenario for long-term planning. It models the installation of generation, storage, and transmission capacities in an energy system. CEM seeks to find optimal values for the capacities of these generation, storage, and transmission assets to meet forecasted demand for one or several future years. It can incorporate policy restrictions, such as emission goals, prices, or governmental subsidies, to study their effects in a perfect market environment.
The resulting mathematical model is a linear optimization model (LP), which is solved with Gurobi’s LP-Solver considering discrete investment years and multiple representative periods for each investment year.
5.1. Scenario settings
The properties of a CEM scenario allow the user to specify solver, solution algorithm, and time-related information. The time settings for a CEM scenario define the list of investment years, the time step for the operational model, and parameters related to the time series input data like demand forecast and renewable availability. Table 11 provides an overview of the solver-related properties, while Table 12 shows the time-related properties. These properties are specified in two input files, namely ScenarioInfo.csv and HorizonInput.csv.
As for DCUCOPF or ACOPF scenarios, the user can pass to the Gurobi solver a subset of parameters directly from SAInt when solving CEM problems (see Table 13). Such parameters can only be modify by using SAInt API and not the file ScenarioInfo.csv.
| Display name | Description |
|---|---|
|
If true (=1), every investment year represents all years (including itself) until the next investment year. The last year in the horizon only represents itself. It is recommended to enable this parameter. |
|
If true (=1), uses the annuity method to annualize investments while considering discount rates (same nominal value every year). If false (=0), the investment is split equally over the lifetime (same NPV every year). |
|
Decimal resolution of the output values. |
|
If true (=1), the 'Output' folder is deleted before the model run. |
|
If true (=1), prints out the time series data in the form of representative periods. |
|
If true (=1), prints out the time series data (including repetitive days) in the form of an expanded yearly time series. |
|
If true (=1) the log from the optimization solver will be printed to the console during the solution process. |
|
If true (=1) an LP file of the optimization model will be generated. This file lists the objective functions and all the linearized equations. Default is to not generate the file. |
|
Controls the algorithm used by Gurobi to solve the optimization. Set this parameter to 1 to choose Dual Simplex, which might improve performance in large models. The default value is -1 which makes an automatic choice of the algorithm. |
| Display name | Description |
|---|---|
|
The unique ID of the optimization horizon. Currently only allowed to have a single horizon with ID = 1. |
|
The year for which investment decisions will be made. Additional years for multi-stage problems can be listed in different rows. |
|
The size of the operational time step (in hours) for the year being modeled. |
|
Length of one representative period (in hours). |
|
Number of timesteps in the input data per period (a positive integer value). |
| Display name | Description |
|---|---|
|
Gurobi setting: set the memory limit in GB used by the optimization solver. The default value is infinite like in Gurobi. Accepted values are double numeric values between 0 and positive infinity. |
|
Gurobi setting: set the presolve level for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in {-1; 0; 1; 2}. |
|
Gurobi setting: set the allowed fill during presolve aggregation for the optimization solver. The default value is -1 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the numeric focus of the optimization solver. The default value is 1, while Gurobi uses a default of 0 (i.e., automatic choice). SAInt value of one increases the focus towards being more careful in numerical calculations. Accepted values are integer numeric values in {0; 1; 2; 3}. |
|
Gurobi setting: set a random seed for the optimization solver. The default value is 0 like in Gurobi. Accepted values are integer numeric values in [-1; 2,000,000,000]. |
|
Gurobi setting: set the number of CPU threads used by the optimization solver. The default value is 0 and Gurobi sets automatically the value. Accepted values are integer numeric values defined by the maximum number of threads provided by the CPU of the computer used. |