Here is a detailed description of how the angle monitoring algorithm operates:
Apply optimal preventive remedial actions from RaoResult on the network
From the CRAC, get the set of states on which AngleCnecs exist
For each of these states, monitor angles:
Use a new copy of the network
If the state is not preventive,
apply the contingency on the network
from the RaoResult, apply on the network the optimal remedial actions decided by the RAO (automatic and curative)
Compute load-flow
If it diverges, return the following content for this state, then move on to the next state:
the angles of the angle CNECs equal to NaN
no applied remedial actions
status DIVERGENT
Compute the angles for all angle CNECs, as the maximum phase difference between the 2 voltage levels (1)
Angle in degrees = 180 / pi * (max(angle on buses of exporting voltage level) - min(angle on buses of importing voltage level))
Compare the angles to their thresholds. For the AngleCnecs that have an angle overshoot, get the associated remedial actions (2)
If the AngleCnec has no associated RA, then the angle constraint cannot be remedied: move on to the next AngleCnec.
If the state is preventive, do not apply any PRA (it would be incoherent with the RAO results). Move on to the next state.
For every RA:
If the remedial action is not a network action, do not apply it (if it’s a RangeAction, we cannot know which set-point to use). Move on to the next RA.
If the RA is a network action, apply it on the network.
If any injection-set-point RA was applied, create and apply the re-dispatch that shall compensate the loss of generation / load (3):
The amount of power to re-dispatch is the net sum (generation - load) of power generations & loads affected by the RAs, before changing the set-points
The GLSK to use shall be the same as the one used for the whole process
Exclude from the re-dispatching all the generators & loads that were modified by an injection-set-point RA, since they should not be affected
If any RA was applied, recompute the load-flow
If it diverges, return the following content for this state, then move on to the next state:
the angles of the AngleCnecs equal to what was computed in step (1)
no applied remedial actions
security DIVERGENT
Re-compute all angle values (4)
Create an intermediary result, with angles computed in (4), list of applied remedial actions in (2), and secure flag set to SECURE if there is no more overshoot (after re-verifying thresholds)
Assemble all the state-specific result in one overall result and update the RAO result object
