powsybl / pypowsybl

A PowSyBl and Python integration based on GraalVM native image
Mozilla Public License 2.0
53 stars 10 forks source link

Operator strategies integration #557

Closed sylvlecl closed 6 months ago

sylvlecl commented 1 year ago

Feature.

The security analysis module only enables to simulate contingencies, but not remedial actions.

The security analysis API of powsybl-core now enables the user to define actions and strategies linking contingencies to actions. We should provide a python binding for those new input data.

The API could be something like:

network = pp.network.create_eurostag_tutorial_example1_network()
security_analysis = pp.security.create_analysis()
security_analysis.add_single_element_contingency('NHV1_NHV2_1', 'First contingency')
security_analysis.add_load_action('LOAD shift', 'LOAD', 3, 2, ValueChangeType.SHIFT)
security_analysis.add_hvdc_ac_emulation_status_action(...)
security_analysis.add_hvdc_ac_emulation_active_power_setpoint_action(...)
security_analysis.add_hvdc_ac_emulation_parameter_action(droop, p0)
security_analysis.add_phase_tap_changer_mode_action(...)
security_analysis.add_phase_tap_changer_position_action(...)
...
security_analysis.add_operator_strategy('First contingency', 'LOAD shift')
result = security_analysis.run_ac(network)

WARNING: we should in pypowsybl to have one method per elementary action. Not like in Java a too general action (for instance HvdcAction) but small actions dedicated to business action.

Also results have to be updated to get post action status and violations

Being able to simulate corrective remedial actions through the security analysis API.

EtienneLt commented 6 months ago

done with #621