Inputs¶
Network data¶
Files with the prefix ampl_ contain the data and the parameters of the network on which the reactive OPF is executed.
These files are obtained by using the V3 of the extended version of PowSyBl AMPL export, which is the default version.
Note that from release 0.10.0 of OpenReac, the active target of VSC and LCC converter stations is calculated using HVDC line active set point
and the converter mode, both specified in ampl_network_hvdc.txt. The losses related to rectifier/inverter conversion, and HVDC line are ignored.
Configuration of the run¶
The user can configure the run with the dedicated Java interface
(see OpenReacParameters).
Specifically, the user can set various parameters and thresholds used in the preprocessing and modeling of the reactive OPF.
These are specified in the file param_algo.txt:
Parameter |
Description |
Java default value |
Domain |
|---|---|---|---|
|
Level of display for AMPL prints |
INFO |
{DEBUG, INFO, WARNING, ERROR} |
|
Level of display for solver prints (see AMPL documentation) |
\(1\) |
{0, 1, 2} |
|
Choice of the objective function for the ACOPF (see AC optimal powerflow) |
\(0\) |
{0, 1, 2} |
|
Ratio to calculate target V of buses when |
\(0.5\) |
\([0; 1]\) |
|
Weight to favor more/less minimization of active power produced by generators or deviation between them and target values (see AC optimal powerflow) |
\(1\) |
\([0; 1]\) |
|
Weight of the positive reactive slack penalty term in the ACOPF objective (see AC optimal powerflow) |
\(10\) |
\(\mathbb{R}^{+}\) |
|
Weight of the negative reactive slack penalty term in the ACOPF objective (see AC optimal powerflow) |
\(10\) |
\(\mathbb{R}^{+}\) |
|
Weight of the active power generation term in the ACOPF objective. If left unset, resolved at export to \(1\) when |
objective-dependent (\(1\) or \(0.01\)) |
\(\mathbb{R}^{+}\) |
|
Weight of the reactive power of units term in the ACOPF objective (see AC optimal powerflow) |
\(0.1\) |
\(\mathbb{R}^{+}\) |
|
Weight of the transformer ratio term in the ACOPF objective (see AC optimal powerflow) |
\(0.1\) |
\(\mathbb{R}^{+}\) |
|
Weight of the voltage target ratio term (Vmin/Vmax normalized target) in the ACOPF objective. If left unset, resolved at export to \(1\) when |
objective-dependent (\(1\) or \(0.01\)) |
\(\mathbb{R}^{+}\) |
|
Weight of the voltage target data term (V0 input value targeting) in the ACOPF objective. If left unset, resolved at export to \(1\) when |
objective-dependent (\(1\) or \(0.01\)) |
\(\mathbb{R}^{+}\) |
|
Threshold of active and reactive powers considered as null |
\(0.01\) (MW) |
\([0; 1]\) |
|
Threshold of impedance considered as null (see Zero impedance threshold) |
\(10^{-5}\) (p.u.) |
\([0; 0.1]\) |
|
Threshold to ignore voltage levels with nominal voltage lower than it |
\(1\) (kV) |
\(\mathbb{R}^{+}\) |
|
Consistency bound for low voltage limit of voltage levels (see Voltage level limit consistency) |
\(0.5\) (p.u.) |
\(\mathbb{R}^{+}\) |
|
Consistency bound for high voltage limit of voltage levels (see Voltage level limit consistency) |
\(1.5\) (p.u.) |
[ |
|
Threshold to replace voltage limits of voltage levels with nominal voltage lower than it, by [min_plausible_low_voltage_limit; max_plausible_high_voltage_limit] |
\(0\) (p.u.) |
\(\mathbb{R}^{+}\) |
|
Choice of which buses will have reactive slacks attached in ACOPF solving (see AC optimal powerflow) |
ALL |
{CONFIGURED, NO_GENERATION, ALL} |
|
Threshold for maximum active and reactive power considered in correction of generator limits (see PQ unit domain) |
\(9000\) (MW, MVAr) |
\(\mathbb{R}\) |
|
Threshold for correction of high active power limit produced by generators (see PQ unit domain) |
\(1000\) (MW) |
\(\mathbb{R}\) |
|
Threshold for correction of low active power limit produced by generators (see PQ unit domain) |
\(0\) (MW) |
\(\mathbb{R}\) |
|
Ratio used to calculate threshold for corrections of high/low reactive power limits (see PQ unit domain) |
\(0.3\) (MVAr/MW) |
\(\mathbb{R}\) |
|
Threshold to fix active (resp. reactive) power of generators with active (resp. reactive) power limits that are closer than it (see PQ unit domain) |
\(1\) (MW, MVAr) |
\(\mathbb{R}\) |
|
Default scaling factor applied to all the variables (except reactive slacks and transformer ratios) before ACOPF solving |
\(1\) |
\(\mathbb{R}^{*,+}\) |
|
Default scaling factor applied to all the constraints before ACOPF solving |
\(1\) |
\(\mathbb{R}^{+}\) |
|
Scaling factor applied to all reactive slacks variables before ACOPF solving (see AC optimal powerflow) |
\(0.1\) |
\(\mathbb{R}^{*,+}\) |
|
Scaling factor applied to all transformer ratio variables before ACOPF solving (see AC optimal powerflow) |
\(0.001\) |
\(\mathbb{R}^{*,+}\) |
|
Scaling factor applied to all shunt variables before ACOPF solving (see AC optimal powerflow) |
\(0.1\) |
\(\mathbb{R}^{*,+}\) |
|
Boolean to indicate if a 2nd ACOPF optimization should be conducted after rounding the transformer taps (see AC optimal powerflow) |
false |
{false, true} |
Please note that for these parameters, the AMPL code defines default values which may be different from those in Java (for example, for the scaling values). This allows a user to use the AMPL code without going through the Java interface, and without providing the file param_algo.txt.
In addition to the previous parameters, the user can specify which parameters will be variable or fixed in the ACOPF solving (see AC optimal powerflow). This is done using the following files:
File |
Description |
Default behavior of modified values |
|---|---|---|
|
Ratio tap changers with a variable transformation ratio (real variable). Note that ratio tap changers on branches with one side open are not optimized. |
Transformation ratios are fixed |
|
Shunts with a continuous variable susceptance and which can be modified and/or connected (only if possible bus is defined in |
Shunt susceptances are fixed |
|
Generators with a constant reactive power production. If this value is not consistent (> PQmax), the reactive power production stays variable |
Coherent reactive power productions (see P/Q unit domain) are variable |
|
Buses with attached reactive slacks if configurable parameter buses_with_reactive_slacks = “CONFIGURED” |
Only buses with no reactive power production have reactive slacks attached |
All of these files share the same format: 2 columns #”num” “id”.
Once again, the user can directly execute the AMPL code without passing these parameters files as input. If so, empty files will be created during execution.
Parallel transformers¶
The optimizer automatically detects groups of transformers connected in parallel and generates a file that is read as input by the AMPL code (see Parallel transformers for the resulting behavior). This file is derived from the detection only and is not provided by the user: it carries the topological membership of the bundles (every member of every orientable bundle) and each member’s orientation relative to the bundle’s canonical direction (+1: declared in the same direction as the bundle’s first member in id order, -1: declared in the opposite direction), while the qualification (tie / fix / relax) and all the effective ratio bounds are computed by the AMPL code from its own data. Unlike the parameter files above, it does not follow the #"num" "id" format:
File |
Format (columns) |
Description |
|---|---|---|
|
|
Topological membership and orientation of the detected parallel bundles: all branches sharing a |
New voltage limits¶
In addition to the elements specified in section Configuration of the run, the user may choose to override the voltage limits of specified voltage levels. These values must be defined in ampl_network_substations_override.txt and are employed to establish the new voltage limits as specified in section Voltage level limit consistency.
Format of ampl_network_substations_override.txt: 4 columns
#”num” “minV (pu)” “maxV (pu)” “id”
When overriding the voltage limits, checks are also done to verify, for each voltage level, that “minV (kV)” and “maxV (kV)” are in the following range : \([0.85 * Vnom - 5, 1.15 * Vnom + 5]\)
If it’s not the case, reports are created to indicate the number of voltage levels concerned, and the detailed information for each of these voltage levels.