From 16c37608d198368f65002bd269a25192c73de791 Mon Sep 17 00:00:00 2001 From: belthlemar Date: Mon, 25 Mar 2024 18:07:58 +0100 Subject: [PATCH] add cucumber tests Signed-off-by: belthlemar --- .../features/epic13_curative/US13_5.feature | 20 +- .../epic15_11/US15_11_4.feature | 8 +- .../epic15_11/US15_11_5.feature | 4 +- .../US20_1.feature | 93 +++- .../US20_2.feature | 5 +- .../US20_4.feature | 4 +- .../US20_5.feature | 4 +- ...bis.json => second_preventive_ls_1_2.json} | 0 ...ter.json => second_preventive_ls_1_3.json} | 0 .../crac/epic20/second_preventive_ls_1_4.json | 471 +++++++++++++++++ .../crac/epic20/second_preventive_ls_1_5.json | 474 ++++++++++++++++++ .../crac/epic20/second_preventive_ls_1_6.json | 474 ++++++++++++++++++ .../crac/epic20/second_preventive_ls_1_7.json | 474 ++++++++++++++++++ 13 files changed, 1992 insertions(+), 39 deletions(-) rename tests/src/test/resources/files/crac/epic20/{second_preventive_ls_1_bis.json => second_preventive_ls_1_2.json} (100%) rename tests/src/test/resources/files/crac/epic20/{second_preventive_ls_1_ter.json => second_preventive_ls_1_3.json} (100%) create mode 100644 tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_4.json create mode 100644 tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_5.json create mode 100644 tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_6.json create mode 100644 tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_7.json diff --git a/tests/src/test/resources/features/epic13_curative/US13_5.feature b/tests/src/test/resources/features/epic13_curative/US13_5.feature index 11ba36cdea..442c7665ad 100644 --- a/tests/src/test/resources/features/epic13_curative/US13_5.feature +++ b/tests/src/test/resources/features/epic13_curative/US13_5.feature @@ -168,19 +168,17 @@ Feature: US 13.5: dynamic of range actions available in several instants Given configuration file is "epic13/RaoParameters_maxMargin_ampere_2p.json" When I launch search_tree_rao at "2019-01-08 12:00" Then 2 remedial actions are used in preventive - And the tap of PstRangeAction "pra_pst_fr" should be -15 in preventive - And the tap of PstRangeAction "pra_pst_be" should be 13 in preventive - And the tap of PstRangeAction "cra_pst_fr" should be -15 in preventive - And the tap of PstRangeAction "cra_pst_be" should be 13 in preventive - And 2 remedial actions are used after "CO1_fr2_fr3_1" at "curative" + And the tap of PstRangeAction "pra_pst_fr" should be -14 in preventive + And the tap of PstRangeAction "cra_pst_fr" should be -14 in preventive + And the tap of PstRangeAction "pra_pst_be" should be 10 in preventive + And the tap of PstRangeAction "cra_pst_be" should be 10 in preventive + + And 1 remedial actions are used after "CO1_fr2_fr3_1" at "curative" # only one PST count as activated, as the other one didn't change its tap And the remedial action "open_fr1_fr3" is used after "CO1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "cra_pst_fr" should be -15 after "CO1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "cra_pst_be" should be 15 after "CO1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "pra_pst_fr" should be -15 after "CO1_fr2_fr3_1" at "curative" - # And the tap of PstRangeAction "pra_pst_be" should be 15 after "CO1_fr2_fr3_1" at "curative" - # does not work currently: expected behaviour not clear yet in that case - And the worst margin is 992 A + And the remedial action "cra_pst_fr" is not used after "CO1_fr2_fr3_1" at "curative" + And the remedial action "cra_pst_be" is not used after "CO1_fr2_fr3_1" at "curative" + And the worst margin is 996 A Then the optimization steps executed by the RAO should be "SECOND_PREVENTIVE_IMPROVED_FIRST" @fast @rao @mock @ac @second-preventive diff --git a/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_4.feature b/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_4.feature index b6209c27ae..07d6db6b12 100644 --- a/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_4.feature +++ b/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_4.feature @@ -31,13 +31,13 @@ Feature: US 15.11.4: ARAO with 2P Given crac file is "epic15/jsonCrac_ep15us11-4case2.json" Given configuration file is "epic15/RaoParameters_ep15us11-4.json" When I launch search_tree_rao at "2019-01-08 12:00" - Then 2 remedial actions are used in preventive + Then 1 remedial actions are used in preventive And the remedial action "Open line NL1-NL2" is used in preventive - And the tap of PstRangeAction "PRA_CRA_PST_BE" should be -6 in preventive + And the remedial action "PRA_CRA_PST_BE" is not used in preventive And 1 remedial actions are used after "Contingency_FR1_FR3" at "auto" And the tap of PstRangeAction "ARA_PST_DE" should be 4 after "Contingency_FR1_FR3" at "auto" - And 1 remedial actions are used after "Contingency_FR1_FR3" at "curative" - And the tap of PstRangeAction "PRA_CRA_PST_BE" should be 16 after "Contingency_FR1_FR3" at "curative" + And 0 remedial actions are used after "Contingency_FR1_FR3" at "curative" + And the remedial action "PRA_CRA_PST_BE" is not used after "Contingency_FR1_FR3" at "curative" And the worst margin is -141 MW And the value of the objective function after CRA should be 141 And the margin on cnec "NL2-BE3-O - curative" after CRA should be 224 MW diff --git a/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_5.feature b/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_5.feature index 5b02b12e46..58dd3988c2 100644 --- a/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_5.feature +++ b/tests/src/test/resources/features/epic15_specific_network_elements/epic15_11/US15_11_5.feature @@ -13,7 +13,7 @@ Feature: US 15.11.5: Additional tests to check various fixes concerning automato When I launch search_tree_rao And the remedial action "open_de1_de2_open_nl2_be3 - prev" is used in preventive And the remedial action "open_de2_nl3 - co1 - auto" is used after "co1_fr2_de3" at "auto" - And the tap of PstRangeAction "pst_be" should be -16 after "co1_fr2_de3" at "curative" + And the remedial action "pst_be" is not used after "co1_fr2_de3" at "curative" And the margin on cnec "be1_be3_co1 - BBE1AA11->BBE3AA11 - co1_fr2_de3 - curative" after CRA should be 112.7 MW @fast @rao @mock @dc @second-preventive @@ -58,7 +58,7 @@ Feature: US 15.11.5: Additional tests to check various fixes concerning automato And the remedial action "open_de1_de2_open_nl2_be3 - prev" is used in preventive And the remedial action "open_de2_nl3 - co1 - auto" is used after "co1_fr2_de3" at "auto" And the remedial action "close_fr2_de3 - co1 - auto" is not used after "co1_fr2_de3" at "auto" - And the tap of PstRangeAction "pst_be" should be -16 after "co1_fr2_de3" at "curative" + And the remedial action "pst_be" is not used after "co1_fr2_de3" at "curative" And the margin on cnec "be1_be3_co1 - BBE1AA11->BBE3AA11 - co1_fr2_de3 - curative" after PRA should be -293.5 MW And the margin on cnec "be1_be3_co1 - BBE1AA11->BBE3AA11 - co1_fr2_de3 - auto" after ARA should be -360.65 MW And the margin on cnec "be1_be3_co1 - BBE1AA11->BBE3AA11 - co1_fr2_de3 - curative" after CRA should be 112.7 MW diff --git a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_1.feature b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_1.feature index 5eae245f1e..53b73952e5 100644 --- a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_1.feature +++ b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_1.feature @@ -6,7 +6,7 @@ Feature: US 20.1: enable second optimization of the preventive perimeter @fast @rao @mock @ac @second-preventive - Scenario: US 20.1.1: Preventive network actions only + Scenario: US 20.1.1.1: Preventive network actions only Given network file is "common/TestCase16Nodes.uct" Given crac file is "epic20/second_preventive_ls_1.json" Given configuration file is "epic20/RaoParameters_maxMargin_ampere_second_preventive.json" @@ -21,9 +21,9 @@ Feature: US 20.1: enable second optimization of the preventive perimeter Then the optimization steps executed by the RAO should be "SECOND_PREVENTIVE_IMPROVED_FIRST" @fast @rao @mock @ac @second-preventive - Scenario: US 20.1.1_bis: Same case as US 20.1.1 with a limitation of 2 RAs in preventive + Scenario: US 20.1.1.2: Same case as US 20.1.1 with a limitation of 2 RAs in preventive Given network file is "common/TestCase16Nodes.uct" - Given crac file is "epic20/second_preventive_ls_1_bis.json" + Given crac file is "epic20/second_preventive_ls_1_2.json" Given configuration file is "epic20/RaoParameters_maxMargin_ampere_second_preventive.json" When I launch search_tree_rao Then 2 remedial actions are used in preventive @@ -33,14 +33,77 @@ Feature: US 20.1: enable second optimization of the preventive perimeter Then the worst margin is 295.6 A @fast @rao @mock @ac @second-preventive - Scenario: US 20.1.1_ter: Same case as US 20.1.1_bis with pst_fr available in curative + Scenario: US 20.1.1.3: Same case as US 20.1.1.1 with pst_fr available in curative Given network file is "common/TestCase16Nodes.uct" - Given crac file is "epic20/second_preventive_ls_1_ter.json" + Given crac file is "epic20/second_preventive_ls_1_3.json" Given configuration file is "epic20/RaoParameters_maxMargin_ampere_second_preventive.json" When I launch search_tree_rao - # As pst_fr is both preventive and curative, it's excluded from the 2nd preventive. - # But we still consider it was applied in first preventive. - # Therefore, only 1 remedial action can be applied in 2nd preventive. + # We can re-optimize pst_fr even if it is preventive and curative for 2 reasons. + # 1- It has no range limitations based on previous instants. + # 2- There are no ra usage limits in curative. + # Therefore, we obtain better results. + Then 2 remedial actions are used in preventive + And the remedial action "open_fr1_fr3" is used in preventive + And the tap of PstRangeAction "pst_fr" should be 5 in preventive + And the tap of PstRangeAction "pst_be" should be -16 in preventive + Then the worst margin is 321 A + + @fast @rao @mock @ac @second-preventive + Scenario: US 20.1.1.4: Same case as US 20.1.1.3 with pst_fr limits relative to preventive. + # We should have the same results as 20.1.1.2 + Given network file is "common/TestCase16Nodes.uct" + Given crac file is "epic20/second_preventive_ls_1_4.json" + Given configuration file is "epic20/RaoParameters_maxMargin_ampere_second_preventive.json" + When I launch search_tree_rao + # We can not re-optimize pst_fr as its range limitation type is RELATIVE_TO_PREVIOUS_INSTANT. + Then 2 remedial actions are used in preventive + And the remedial action "open_fr1_fr3" is used in preventive + And the tap of PstRangeAction "pst_fr" should be -5 in preventive + And the tap of PstRangeAction "pst_be" should be 0 in preventive + Then the worst margin is 295.6 A + + @fast @rao @mock @ac @second-preventive + Scenario: US 20.1.1.5: Same case as US 20.1.1.3 with curative maxRa limits. + # We should have the same results as 20.1.1.2 + Given network file is "common/TestCase16Nodes.uct" + Given crac file is "epic20/second_preventive_ls_1_5.json" + Given configuration file is "epic20/RaoParameters_maxMargin_ampere_second_preventive.json" + When I launch search_tree_rao + # We can not re-optimize pst_fr for 2 combined reasons: + # 1- It has the same taps in preventive and in curative. + # 2- There are maxRa usage limits for curative instant. + Then 2 remedial actions are used in preventive + And the remedial action "open_fr1_fr3" is used in preventive + And the tap of PstRangeAction "pst_fr" should be -5 in preventive + And the tap of PstRangeAction "pst_be" should be 0 in preventive + Then the worst margin is 295.6 A + + @fast @rao @mock @ac @second-preventive + Scenario: US 20.1.1.6: Same case as US 20.1.1.3 with curative maxPstPerTso limits. + # We should have the same results as 20.1.1.2 + Given network file is "common/TestCase16Nodes.uct" + Given crac file is "epic20/second_preventive_ls_1_6.json" + Given configuration file is "epic20/RaoParameters_maxMargin_ampere_second_preventive.json" + When I launch search_tree_rao + # We can not re-optimize pst_fr for 2 combined reasons: + # 1- It has the same taps in preventive and in curative. + # 2- There are maxPstPerTso usage limits for curative instant. + Then 2 remedial actions are used in preventive + And the remedial action "open_fr1_fr3" is used in preventive + And the tap of PstRangeAction "pst_fr" should be -5 in preventive + And the tap of PstRangeAction "pst_be" should be 0 in preventive + Then the worst margin is 295.6 A + + @fast @rao @mock @ac @second-preventive + Scenario: US 20.1.1.7: Same case as US 20.1.1.3 with curative maxRaPerTso limits. + # We should have the same results as 20.1.1.2 + Given network file is "common/TestCase16Nodes.uct" + Given crac file is "epic20/second_preventive_ls_1_7.json" + Given configuration file is "epic20/RaoParameters_maxMargin_ampere_second_preventive.json" + When I launch search_tree_rao + # We can not re-optimize pst_fr for 2 combined reasons: + # 1- It has the same taps in preventive and in curative. + # 2- There are maxRaPerTso usage limits for curative instant. Then 2 remedial actions are used in preventive And the remedial action "open_fr1_fr3" is used in preventive And the tap of PstRangeAction "pst_fr" should be -5 in preventive @@ -60,9 +123,9 @@ Feature: US 20.1: enable second optimization of the preventive perimeter Then 2 remedial actions are used in preventive And the tap of PstRangeAction "pst_fr" should be -5 in preventive And the remedial action "close_fr1_fr5" is used in preventive - And 2 remedial actions are used after "co1_fr2_fr3_1" at "curative" + And 1 remedial actions are used after "co1_fr2_fr3_1" at "curative" And the remedial action "open_fr1_fr3" is used after "co1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "pst_be" should be -16 after "co1_fr2_fr3_1" at "curative" + And the remedial action "pst_be" is not used in preventive And the worst margin is 638 A And the margin on cnec "FFR4AA1 DDE1AA1 1 - preventive" after PRA should be 638 A And the margin on cnec "FFR1AA1 FFR4AA1 1 - co1_fr2_fr3_1 - curative" after CRA should be 645 A @@ -116,10 +179,10 @@ Feature: US 20.1: enable second optimization of the preventive perimeter Then 1 remedial actions are used in preventive And the tap of PstRangeAction "pst_fr_pra" should be -7 in preventive And the tap of PstRangeAction "pst_be" should be 0 in preventive - And 3 remedial actions are used after "co1_fr2_fr3_1" at "curative" + And 1 remedial actions are used after "co1_fr2_fr3_1" at "curative" And the remedial action "close_fr1_fr5" is used after "co1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "pst_fr_cra" should be 1 after "co1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "pst_be" should be -16 after "co1_fr2_fr3_1" at "curative" + And the remedial action "pst_fr_cra" is not used after "co1_fr2_fr3_1" at "curative" + And the remedial action "pst_be" is not used after "co1_fr2_fr3_1" at "curative" Then the worst margin is 43 A And the margin on cnec "FFR2AA1 DDE3AA1 1 - preventive" after PRA should be 43 A And the margin on cnec "FFR2AA1 DDE3AA1 1 - co1_fr2_fr3_1 - outage" after PRA should be 385 A @@ -137,9 +200,9 @@ Feature: US 20.1: enable second optimization of the preventive perimeter Then 2 remedial actions are used in preventive And the remedial action "close_fr1_fr5" is used in preventive And the tap of PstRangeAction "pst_fr" should be -5 in preventive - And 2 remedial actions are used after "CO1_fr2_fr3_1" at "curative" + And 1 remedial actions are used after "CO1_fr2_fr3_1" at "curative" And the remedial action "open_fr1_fr3" is used after "CO1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "pst_be" should be -16 after "CO1_fr2_fr3_1" at "curative" + And the remedial action "pst_be" is not used after "CO1_fr2_fr3_1" at "curative" And the worst margin is 638 A And the margin on cnec "fr4_de1_N - preventive" after PRA should be 638 A And the margin on cnec "fr1_fr4_CO1 - curative" after CRA should be 645 A diff --git a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_2.feature b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_2.feature index 6705568814..c2e57178d7 100644 --- a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_2.feature +++ b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_2.feature @@ -29,11 +29,10 @@ Feature: US 20.2: Handle loopflows in second preventive optimization Given configuration file is "epic20/RaoParameters_maxMargin_MW_DC_withLF_with2P.json" When I launch search_tree_rao at "2019-01-08 12:00" Then 0 remedial actions are used in preventive - And the remedial action "CRA_PST_BE" is used after "CO1" at "curative" + And the remedial action "CRA_PST_BE" is not used after "CO1" at "curative" And the worst margin is 500 MW And the value of the objective function after CRA should be -500 - And the remedial action "CRA_PST_BE" is used after "CO1" at "curative" - And the tap of PstRangeAction "CRA_PST_BE" should be 2 after "CO1" at "curative" + And the remedial action "CRA_PST_BE" is not used after "CO1" at "curative" And the loopflow threshold on cnec "003_FR-DE - curative" should be 250 MW And the initial loopflow on cnec "003_FR-DE - curative" should be -342 MW And the loopflow on cnec "003_FR-DE - curative" after CRA should be -323 MW diff --git a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_4.feature b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_4.feature index 85143e2d0d..7dbd7febc4 100644 --- a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_4.feature +++ b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_4.feature @@ -30,8 +30,8 @@ Feature: US 20.4: Handle MNECs in second preventive optimization Then 2 remedial actions are used in preventive And the remedial action "Open line NL1-NL2" is used in preventive And the tap of PstRangeAction "PRA_PST_BE" should be -3 in preventive - And 1 remedial actions are used after "Contingency_FR1_FR3" at "curative" - And the tap of PstRangeAction "CRA_PST_DE" should be 1 after "Contingency_FR1_FR3" at "curative" + And 0 remedial actions are used after "Contingency_FR1_FR3" at "curative" + And the remedial action "CRA_PST_DE" is not used after "Contingency_FR1_FR3" at "curative" And the worst margin is -161 MW And the value of the objective function after CRA should be 161 And the margin on cnec "FR2-FR3-O - preventive" after PRA should be -161 MW diff --git a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_5.feature b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_5.feature index c4abc8fed1..fa6332b757 100644 --- a/tests/src/test/resources/features/epic20_advanced_search_tree/US20_5.feature +++ b/tests/src/test/resources/features/epic20_advanced_search_tree/US20_5.feature @@ -47,9 +47,9 @@ Feature: US 20.5: Advanced 2nd preventive run conditions Then 2 remedial actions are used in preventive And the tap of PstRangeAction "pst_fr" should be -5 in preventive And the remedial action "close_fr1_fr5" is used in preventive - And 2 remedial actions are used after "co1_fr2_fr3_1" at "curative" + And 1 remedial actions are used after "co1_fr2_fr3_1" at "curative" And the remedial action "open_fr1_fr3" is used after "co1_fr2_fr3_1" at "curative" - And the tap of PstRangeAction "pst_be" should be -16 after "co1_fr2_fr3_1" at "curative" + And the remedial action "pst_be" is not used after "co1_fr2_fr3_1" at "curative" And the worst margin is 638 A And the margin on cnec "FFR4AA1 DDE1AA1 1 - preventive" after PRA should be 638 A And the margin on cnec "FFR1AA1 FFR4AA1 1 - co1_fr2_fr3_1 - curative" after CRA should be 645 A diff --git a/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_bis.json b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_2.json similarity index 100% rename from tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_bis.json rename to tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_2.json diff --git a/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_ter.json b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_3.json similarity index 100% rename from tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_ter.json rename to tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_3.json diff --git a/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_4.json b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_4.json new file mode 100644 index 0000000000..8da251fe6b --- /dev/null +++ b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_4.json @@ -0,0 +1,471 @@ +{ + "type" : "CRAC", + "version" : "2.1", + "info" : "Generated by Open RAO http://farao-community.github.io", + "id" : "second_curative_ls_1", + "name" : "second_curative_ls_1", + "instants" : [ { + "id" : "preventive", + "kind" : "PREVENTIVE" + }, { + "id" : "outage", + "kind" : "OUTAGE" + }, { + "id" : "auto", + "kind" : "AUTO" + }, { + "id" : "curative", + "kind" : "CURATIVE" + } ], + "ra-usage-limits-per-instant" : [ { + "instant": "preventive", + "max-ra" : 2, + "max-tso" : 10000, + "max-topo-per-tso" : { }, + "max-pst-per-tso" : { }, + "max-ra-per-tso" : { } + } ], + "networkElementsNamePerId" : { }, + "contingencies" : [ { + "id" : "co1_fr2_fr3_1", + "networkElementsIds" : [ "FFR2AA1 FFR3AA1 1" ] + } ], + "flowCnecs" : [ { + "id" : "BBE1AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE1AA1 FFR5AA1 1 - preventive", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - preventive", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "DDE2AA1 NNL3AA1 1 - preventive", + "name" : "de2_nl3_n", + "networkElementId" : "DDE2AA1 NNL3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr3_co1", + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr4_co1", + "networkElementId" : "FFR1AA1 FFR4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1200.0, + "max" : 1200.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - preventive", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR3AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr3_fr5_co1", + "networkElementId" : "FFR3AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - preventive", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - preventive", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "NNL2AA1 BBE3AA1 1 - preventive", + "name" : "nl2_be3_n", + "networkElementId" : "NNL2AA1 BBE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + } ], + "angleCnecs" : [ ], + "voltageCnecs" : [ ], + "pstRangeActions" : [ { + "id" : "pst_be", + "name" : "pst_be", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "networkElementId" : "BBE2AA1 BBE3AA1 1", + "initialTap" : 0, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -16, + "max" : 16, + "rangeType" : "absolute" + } ] + }, { + "id" : "pst_fr", + "name" : "pst_fr", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + }, { + "instant" : "curative", + "usageMethod" : "available" + } ], + "networkElementId" : "FFR2AA1 FFR4AA1 1", + "initialTap" : 5, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -10, + "max" : 10, + "rangeType" : "relativeToInitialNetwork" + }, { + "min" : -10, + "max" : 10, + "rangeType" : "relativeToPreviousInstant" + } ] + } ], + "hvdcRangeActions" : [ ], + "injectionRangeActions" : [ ], + "counterTradeRangeActions" : [ ], + "networkActions" : [ { + "id" : "close_de3_de4", + "name" : "close_de3_de4", + "operator" : "de", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "DDE3AA1 DDE4AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "close_fr1_fr5", + "name" : "close_fr1_fr5", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR5AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "open_be1_be4", + "name" : "open_be1_be4", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "BBE1AA1 BBE4AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr2", + "name" : "open_fr1_fr2", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR2AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr3", + "name" : "open_fr1_fr3", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "actionType" : "open" + } ] + } ] +} diff --git a/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_5.json b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_5.json new file mode 100644 index 0000000000..fee58fee61 --- /dev/null +++ b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_5.json @@ -0,0 +1,474 @@ +{ + "type" : "CRAC", + "version" : "2.1", + "info" : "Generated by Open RAO http://farao-community.github.io", + "id" : "second_curative_ls_1", + "name" : "second_curative_ls_1", + "instants" : [ { + "id" : "preventive", + "kind" : "PREVENTIVE" + }, { + "id" : "outage", + "kind" : "OUTAGE" + }, { + "id" : "auto", + "kind" : "AUTO" + }, { + "id" : "curative", + "kind" : "CURATIVE" + } ], + "ra-usage-limits-per-instant" : [ { + "instant": "preventive", + "max-ra" : 2, + "max-tso" : 10000, + "max-topo-per-tso" : { }, + "max-pst-per-tso" : { }, + "max-ra-per-tso" : { } + }, { + "instant": "curative", + "max-ra" : 0, + "max-tso" : 10000, + "max-topo-per-tso" : { }, + "max-pst-per-tso" : { }, + "max-ra-per-tso" : { } + } ], + "networkElementsNamePerId" : { }, + "contingencies" : [ { + "id" : "co1_fr2_fr3_1", + "networkElementsIds" : [ "FFR2AA1 FFR3AA1 1" ] + } ], + "flowCnecs" : [ { + "id" : "BBE1AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE1AA1 FFR5AA1 1 - preventive", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - preventive", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "DDE2AA1 NNL3AA1 1 - preventive", + "name" : "de2_nl3_n", + "networkElementId" : "DDE2AA1 NNL3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr3_co1", + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr4_co1", + "networkElementId" : "FFR1AA1 FFR4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1200.0, + "max" : 1200.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - preventive", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR3AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr3_fr5_co1", + "networkElementId" : "FFR3AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - preventive", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - preventive", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "NNL2AA1 BBE3AA1 1 - preventive", + "name" : "nl2_be3_n", + "networkElementId" : "NNL2AA1 BBE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + } ], + "angleCnecs" : [ ], + "voltageCnecs" : [ ], + "pstRangeActions" : [ { + "id" : "pst_be", + "name" : "pst_be", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "networkElementId" : "BBE2AA1 BBE3AA1 1", + "initialTap" : 0, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -16, + "max" : 16, + "rangeType" : "absolute" + } ] + }, { + "id" : "pst_fr", + "name" : "pst_fr", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + }, { + "instant" : "curative", + "usageMethod" : "available" + } ], + "networkElementId" : "FFR2AA1 FFR4AA1 1", + "initialTap" : 5, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -10, + "max" : 10, + "rangeType" : "relativeToInitialNetwork" + } ] + } ], + "hvdcRangeActions" : [ ], + "injectionRangeActions" : [ ], + "counterTradeRangeActions" : [ ], + "networkActions" : [ { + "id" : "close_de3_de4", + "name" : "close_de3_de4", + "operator" : "de", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "DDE3AA1 DDE4AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "close_fr1_fr5", + "name" : "close_fr1_fr5", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR5AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "open_be1_be4", + "name" : "open_be1_be4", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "BBE1AA1 BBE4AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr2", + "name" : "open_fr1_fr2", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR2AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr3", + "name" : "open_fr1_fr3", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "actionType" : "open" + } ] + } ] +} diff --git a/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_6.json b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_6.json new file mode 100644 index 0000000000..80e28092f9 --- /dev/null +++ b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_6.json @@ -0,0 +1,474 @@ +{ + "type" : "CRAC", + "version" : "2.1", + "info" : "Generated by Open RAO http://farao-community.github.io", + "id" : "second_curative_ls_1", + "name" : "second_curative_ls_1", + "instants" : [ { + "id" : "preventive", + "kind" : "PREVENTIVE" + }, { + "id" : "outage", + "kind" : "OUTAGE" + }, { + "id" : "auto", + "kind" : "AUTO" + }, { + "id" : "curative", + "kind" : "CURATIVE" + } ], + "ra-usage-limits-per-instant" : [ { + "instant": "preventive", + "max-ra" : 2, + "max-tso" : 10000, + "max-topo-per-tso" : { }, + "max-pst-per-tso" : { }, + "max-ra-per-tso" : { } + }, { + "instant": "curative", + "max-ra" : 10000, + "max-tso" : 10000, + "max-topo-per-tso" : { }, + "max-pst-per-tso" : {"fr": 0}, + "max-ra-per-tso" : { } + } ], + "networkElementsNamePerId" : { }, + "contingencies" : [ { + "id" : "co1_fr2_fr3_1", + "networkElementsIds" : [ "FFR2AA1 FFR3AA1 1" ] + } ], + "flowCnecs" : [ { + "id" : "BBE1AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE1AA1 FFR5AA1 1 - preventive", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - preventive", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "DDE2AA1 NNL3AA1 1 - preventive", + "name" : "de2_nl3_n", + "networkElementId" : "DDE2AA1 NNL3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr3_co1", + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr4_co1", + "networkElementId" : "FFR1AA1 FFR4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1200.0, + "max" : 1200.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - preventive", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR3AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr3_fr5_co1", + "networkElementId" : "FFR3AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - preventive", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - preventive", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "NNL2AA1 BBE3AA1 1 - preventive", + "name" : "nl2_be3_n", + "networkElementId" : "NNL2AA1 BBE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + } ], + "angleCnecs" : [ ], + "voltageCnecs" : [ ], + "pstRangeActions" : [ { + "id" : "pst_be", + "name" : "pst_be", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "networkElementId" : "BBE2AA1 BBE3AA1 1", + "initialTap" : 0, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -16, + "max" : 16, + "rangeType" : "absolute" + } ] + }, { + "id" : "pst_fr", + "name" : "pst_fr", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + }, { + "instant" : "curative", + "usageMethod" : "available" + } ], + "networkElementId" : "FFR2AA1 FFR4AA1 1", + "initialTap" : 5, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -10, + "max" : 10, + "rangeType" : "relativeToInitialNetwork" + } ] + } ], + "hvdcRangeActions" : [ ], + "injectionRangeActions" : [ ], + "counterTradeRangeActions" : [ ], + "networkActions" : [ { + "id" : "close_de3_de4", + "name" : "close_de3_de4", + "operator" : "de", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "DDE3AA1 DDE4AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "close_fr1_fr5", + "name" : "close_fr1_fr5", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR5AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "open_be1_be4", + "name" : "open_be1_be4", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "BBE1AA1 BBE4AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr2", + "name" : "open_fr1_fr2", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR2AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr3", + "name" : "open_fr1_fr3", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "actionType" : "open" + } ] + } ] +} diff --git a/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_7.json b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_7.json new file mode 100644 index 0000000000..ce102fa247 --- /dev/null +++ b/tests/src/test/resources/files/crac/epic20/second_preventive_ls_1_7.json @@ -0,0 +1,474 @@ +{ + "type" : "CRAC", + "version" : "2.1", + "info" : "Generated by Open RAO http://farao-community.github.io", + "id" : "second_curative_ls_1", + "name" : "second_curative_ls_1", + "instants" : [ { + "id" : "preventive", + "kind" : "PREVENTIVE" + }, { + "id" : "outage", + "kind" : "OUTAGE" + }, { + "id" : "auto", + "kind" : "AUTO" + }, { + "id" : "curative", + "kind" : "CURATIVE" + } ], + "ra-usage-limits-per-instant" : [ { + "instant": "preventive", + "max-ra" : 2, + "max-tso" : 10000, + "max-topo-per-tso" : { }, + "max-pst-per-tso" : { }, + "max-ra-per-tso" : { } + }, { + "instant": "curative", + "max-ra" : 10000, + "max-tso" : 10000, + "max-topo-per-tso" : { }, + "max-pst-per-tso" : { }, + "max-ra-per-tso" : {"fr": 0} + } ], + "networkElementsNamePerId" : { }, + "contingencies" : [ { + "id" : "co1_fr2_fr3_1", + "networkElementsIds" : [ "FFR2AA1 FFR3AA1 1" ] + } ], + "flowCnecs" : [ { + "id" : "BBE1AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE1AA1 FFR5AA1 1 - preventive", + "name" : "be1_fr5_n", + "networkElementId" : "BBE1AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "BBE4AA1 FFR5AA1 1 - preventive", + "name" : "be4_fr5_n", + "networkElementId" : "BBE4AA1 FFR5AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "DDE2AA1 NNL3AA1 1 - preventive", + "name" : "de2_nl3_n", + "networkElementId" : "DDE2AA1 NNL3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr3_co1", + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR1AA1 FFR4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr1_fr4_co1", + "networkElementId" : "FFR1AA1 FFR4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1200.0, + "max" : 1200.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR2AA1 DDE3AA1 1 - preventive", + "name" : "fr2_de3_n", + "networkElementId" : "FFR2AA1 DDE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR3AA1 FFR5AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr3_fr5_co1", + "networkElementId" : "FFR3AA1 FFR5AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE1AA1 1 - preventive", + "name" : "fr4_de1_n", + "networkElementId" : "FFR4AA1 DDE1AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1500.0, + "max" : 1500.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - co1_fr2_fr3_1 - curative", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "curative", + "contingencyId" : "co1_fr2_fr3_1", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "FFR4AA1 DDE4AA1 1 - preventive", + "name" : "fr4_de4_n", + "networkElementId" : "FFR4AA1 DDE4AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -1000.0, + "max" : 1000.0, + "side" : "right" + } ] + }, { + "id" : "NNL2AA1 BBE3AA1 1 - preventive", + "name" : "nl2_be3_n", + "networkElementId" : "NNL2AA1 BBE3AA1 1", + "operator" : null, + "instant" : "preventive", + "optimized" : true, + "monitored" : false, + "reliabilityMargin" : 0.0, + "iMax" : [ 2000.0 ], + "nominalV" : [ 400.0 ], + "thresholds" : [ { + "unit" : "ampere", + "min" : -5000.0, + "max" : 5000.0, + "side" : "right" + } ] + } ], + "angleCnecs" : [ ], + "voltageCnecs" : [ ], + "pstRangeActions" : [ { + "id" : "pst_be", + "name" : "pst_be", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "networkElementId" : "BBE2AA1 BBE3AA1 1", + "initialTap" : 0, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -16, + "max" : 16, + "rangeType" : "absolute" + } ] + }, { + "id" : "pst_fr", + "name" : "pst_fr", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + }, { + "instant" : "curative", + "usageMethod" : "available" + } ], + "networkElementId" : "FFR2AA1 FFR4AA1 1", + "initialTap" : 5, + "tapToAngleConversionMap" : { + "-1" : -0.3896097993971608, + "0" : 0.0, + "-2" : -0.7792105912934298, + "1" : 0.3896097993971608, + "-3" : -1.1687933694373345, + "2" : 0.7792105912934298, + "-4" : -1.5583491300758083, + "3" : 1.1687933694373345, + "-5" : -1.9478688732023104, + "4" : 1.5583491300758083, + "-6" : -2.337343603803646, + "5" : 1.9478688732023104, + "-7" : -2.7267643331050597, + "6" : 2.337343603803646, + "-8" : -3.1161220798131644, + "7" : 2.7267643331050597, + "-9" : -3.505407871356285, + "8" : 3.1161220798131644, + "-10" : -3.894612745121778, + "9" : 3.505407871356285, + "-11" : -4.283727749689918, + "10" : 3.894612745121778, + "-12" : -4.672743946063913, + "11" : 4.283727749689918, + "-13" : -5.061652408895631, + "12" : 4.672743946063913, + "-14" : -5.4504442277066305, + "13" : 5.061652408895631, + "-15" : -5.839110508104064, + "14" : 5.4504442277066305, + "-16" : -6.2276423729910535, + "15" : 5.839110508104064, + "16" : 6.2276423729910535 + }, + "ranges" : [ { + "min" : -10, + "max" : 10, + "rangeType" : "relativeToInitialNetwork" + } ] + } ], + "hvdcRangeActions" : [ ], + "injectionRangeActions" : [ ], + "counterTradeRangeActions" : [ ], + "networkActions" : [ { + "id" : "close_de3_de4", + "name" : "close_de3_de4", + "operator" : "de", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "DDE3AA1 DDE4AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "close_fr1_fr5", + "name" : "close_fr1_fr5", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR5AA1 1", + "actionType" : "close" + } ] + }, { + "id" : "open_be1_be4", + "name" : "open_be1_be4", + "operator" : "be", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "BBE1AA1 BBE4AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr2", + "name" : "open_fr1_fr2", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "curative", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR2AA1 1", + "actionType" : "open" + } ] + }, { + "id" : "open_fr1_fr3", + "name" : "open_fr1_fr3", + "operator" : "fr", + "onInstantUsageRules" : [ { + "instant" : "preventive", + "usageMethod" : "available" + } ], + "topologicalActions" : [ { + "networkElementId" : "FFR1AA1 FFR3AA1 1", + "actionType" : "open" + } ] + } ] +}