Modelling un-optimised CNECs (CRAs)#
Used input data#
Name |
Symbol |
Details |
---|---|---|
FlowCnecs |
\(c \in \mathcal{C}\) |
Set of optimised FlowCnecs[1] |
Upper threshold |
\(f^{+}_{threshold} (c)\) |
Upper threshold of FlowCnec \(c\), in MW, defined in the CRAC |
Lower threshold |
\(f^{-}_{threshold} (c)\) |
Lower threshold of FlowCnec \(c\), in MW, defined in the CRAC |
PrePerimeterMargin |
\(RAM_{preperim}(c)\) |
Pre-perimeter margin, for FlowCnec \(c\). |
operatorsNotToOptimize |
\(o\in \mathcal{UO}\) |
These are the operators for which CNECs should not be “optimized”. It means that those of these CNECs for which the margin improves (compared to the pre-perimeter margin) are not taken into account in the minimum margin maximization, and those for which the margin decreases are taken into account in the minimum margin maximization. |
higestThresholdValue |
\(MaxRAM\) |
A “bigM” which is computed (by OpenRAO) as the greatest absolute possible value of the CNEC threshold, among all CNECs in the CRAC. |
Used parameters#
Name |
Details |
---|---|
This filler is only used if this parameter is activated, and only for curative RAO. |
Defined optimization variables#
Name |
Symbol |
Details |
Type |
Index |
Unit |
Lower bound |
Upper bound |
---|---|---|---|---|---|---|---|
DoOptimize |
DoOptimize(c)$ |
FlowCnec \(c\) should be optimized. Equal to 1 if the margin is decreased compared to the pre-perimeter value (PrePerimeterMargin), 0 otherwise. |
Binary |
One variable for every element of (FlowCnecs) whose operator is in (operatorsNotToOptimize) |
no unit |
0 |
1 |
Used optimization variables#
Name |
Symbol |
Defined in |
---|---|---|
Flow |
\(F(c)\) |
|
Minimum margin |
\(MM\) |
|
Minimum relative margin |
\(MRM\) |
Defined constraints#
Defining the margin decrease variable#
It should be equal to 1 if the optimizer wants to degrade the margin of a given CNEC.
Where \(worstMarginDecrease\) represents the worst possible margin decrease, estimated as follows:
Note that no margin should be smaller than the worst margin computed above, otherwise it means the linear optimizer or the search tree rao is degrading the situation. So we can safely use this to estimate the worst decrease possible of the margins on cnecs.
Note that OptimizedFlowCnec might have only one threshold (upper or lower), in that case, only one of the two above constraints is defined.
Updating the minimum margin constraints#
(These are originally defined in MaxMinMarginFiller and MaxMinRelativeMarginFiller)
For CNECs which should not be optimized, their RAM should not be taken into account in the minimum margin variable unless their margin is decreased.
So we can release the minimum margin constraints if MarginDecrease is equal to 0. In order to do this, we just need to add the following term to these constraints’ right side:
Note that this term should be divided by the absolute PTDF sum for relative margins, but it is not done explicitly in the code because this coefficient is brought to the left-side of the constraint.
Contribution to the objective function#
Given the updated constraints above, the “un-optimised CNECs” will no longer count in the minimum margin (thus in the objective function) unless their margin is decreased.