Limiting the number of range actions to use#
Used input data#
Name |
Symbol |
Details |
|---|---|---|
RangeActions |
\(r,s \in \mathcal{RA}\) |
Set of optimised RangeActions and state on which they are applied (PSTs, HVDCs, InjectionRangeActions…) |
PstRangeActions |
\(r \in \mathcal{RA}^{PST}\) |
Set of PST RangeActions |
States |
\(s \in \mathcal{S}\) |
Set of states on which RangeActions are optimized |
PrePerimeterSetpoints |
\(\alpha _0(r)\) |
Set-point of RangeAction \(r\) at the beginning of the optimisation |
Range upper bound |
\(\alpha_{\max}(r)(\alpha _0(r))\) |
Highest allowed set-point for a range action \(r\), given its pre-perimeter set-point \(\alpha _0(r)\) |
Range lower bound |
\(\alpha_{\min}(r)(\alpha _0(r))\) |
Lowest allowed set-point for a range action \(r\), given its pre-perimeter set-point \(\alpha _0(r)\) |
Maximum number of RAs |
\(nRA^{max}(s)\) |
Maximum number of range actions that can be used on state \(s\) |
Maximum number of PSTs per TSO |
\(nPST^{max}(tso,s)\) |
Maximum number of PSTs that can be used by a given TSO on state \(s\) |
Maximum number of RAs per TSO |
\(nRA^{max}(tso,s)\) |
Maximum number of range actions to use by a given TSO on state \(s\) |
Maximum number of elementary actions per TSO |
\(nEA^{max}(tso)\) |
Maximum number of elementary actions to use by a given TSO at a given instant |
TSOs |
\(tso \in \mathcal{TSO}\) |
Set of all TSOs operating a range action in RangeActions |
Set of states to consider |
\(\mathcal{S}_{considered}(s)\) |
For a given state \(s\), if \(s\) is preventive, it reduces to {\(s\)}. If \(s\) is curative, it also reduces to {\(s\)} unless we are in 2P; in 2P, it contains all curative states with the same contingency as \(s\) that occur before \(s\) |
💡 Note
This filler uses:
crac-creation-parameters defined here
or CRAC JSON’s ra-usage-limits-per-instant field defined here.
They are updated before the MIP to take into account :
applied topological actions at each leaf of a search tree
the cumulative effect of the limits in multi-curative at the beginning of each contingency scenario
\(\mathcal{S}_{considered}(s)\) is introduced in order to take into account the cumulative effect of curative states limit in multi-curative 2P.
Defined optimization variables#
Name |
Symbol |
Details |
Type |
Index |
Unit |
Lower bound |
Upper bound |
|---|---|---|---|---|---|---|---|
RA usage binary |
\(\delta(r,s)\) |
binary indicating if a range action is used |
Binary |
One variable for every element of \(\mathcal{RA}\) |
no unit |
0 |
1 |
Used optimization variables#
Name |
Symbol |
Defined in |
|---|---|---|
RangeAction set-point upward variation |
\(\Delta^{+}(r,s)\) |
|
RangeAction set-point downward variation |
\(\Delta^{-}(r,s)\) |
|
Total PstRangeAction upward tap variation |
\( \Delta_{total} t^{+} (r, s) \) |
|
Total PstRangeAction downward tap variation |
\( \Delta_{total} t^{-} (r, s) \) |
Defined constraints#
Let the following symbol indicate the subset of RangeActions belonging to TSO (tso): \(\mathcal{RA}(tso)\)
Define the binary variable#
Force the binary to 1 if optimal set-point should be different from pre-perimeter set-point:
⚠️ In order to mitigate rounding issues, and ensure that the max and min set-points are feasible, a small “epsilon” ( 1e-4) is added to max / subtracted to min set-point.
⚠️ In order to mitigate PST tap ↔ angle approximation in “APPROXIMATED_INTEGERS”
mode, and ensure that the initial set-point is feasible, a correction factor is added or subtracted from the initial
set-point in the constraints above. This coefficient is computed as 30% of the average tap to angle conversion factor:
correction = 0.3 x abs((max angle - min angle) / (max tap - min tap))
Maximum number of remedial actions#
Maximum number of PSTs per TSO#
Maximum number of RAs per TSO#
Maximum number of elementary actions per TSO#
️⚠️ Only if APPROXIMATED_INTEGERS mode.