From b642c970b5cf3e19f655c989fde8b2203614695d Mon Sep 17 00:00:00 2001 From: Jerry Guo Date: Tue, 19 Nov 2024 16:57:38 +0100 Subject: [PATCH] updated validations test; marked invalid grid; added error interfacing Signed-off-by: Jerry Guo --- .../power_grid_model/common/exception.hpp | 4 +- .../power_grid_model/main_core/input.hpp | 49 +- .../optimizer/tap_position_optimizer.hpp | 27 +- src/power_grid_model/_core/error_handling.py | 6 + src/power_grid_model/errors.py | 4 + .../test_tap_position_optimizer.cpp | 17 +- .../pgm-automatic-tap-any/input.json | 13 +- .../sym_output_batch.json | 972 ------------------ tests/unit/test_error_handling.py | 75 +- 9 files changed, 99 insertions(+), 1068 deletions(-) diff --git a/power_grid_model_c/power_grid_model/include/power_grid_model/common/exception.hpp b/power_grid_model_c/power_grid_model/include/power_grid_model/common/exception.hpp index 06e0dcae6..895698f2e 100644 --- a/power_grid_model_c/power_grid_model/include/power_grid_model/common/exception.hpp +++ b/power_grid_model_c/power_grid_model/include/power_grid_model/common/exception.hpp @@ -184,7 +184,9 @@ class AutomaticTapCalculationError : public PowerGridError { class AutomaticTapInputError : public PowerGridError { public: AutomaticTapInputError(std::string const& msg) { - append_msg(msg); // NOSONAR + append_msg( + "Automatic tap changer has invalid configuration that does not meet the transformer ranking criteria. " + + msg); // NOSONAR } }; diff --git a/power_grid_model_c/power_grid_model/include/power_grid_model/main_core/input.hpp b/power_grid_model_c/power_grid_model/include/power_grid_model/main_core/input.hpp index 015faa49b..a85ae4c99 100644 --- a/power_grid_model_c/power_grid_model/include/power_grid_model/main_core/input.hpp +++ b/power_grid_model_c/power_grid_model/include/power_grid_model/main_core/input.hpp @@ -137,30 +137,31 @@ inline void add_component(MainModelState& state, ForwardIter } }(); // (TODO: jguo) This validation still needs to be updated - if (regulated_object_idx.group == get_component_type_index(state)) { - auto const& regulated_object = get_component(state, regulated_object_idx); - - auto const non_tap_side = - regulated_object.tap_side() == BranchSide::from ? BranchSide::to : BranchSide::from; - if (get_component(state, regulated_object.node(regulated_object.tap_side())).u_rated() < - get_component(state, regulated_object.node(non_tap_side)).u_rated()) { - throw AutomaticTapCalculationError(id); - } - } else if (regulated_object_idx.group == get_component_type_index(state)) { - auto const& regulated_object = get_component(state, regulated_object_idx); - auto const tap_side_u_rated = - get_component(state, regulated_object.node(regulated_object.tap_side())).u_rated(); - for (auto const side : branch3_sides) { - if (side == regulated_object.tap_side()) { - continue; - } - if (tap_side_u_rated < get_component(state, regulated_object.node(side)).u_rated()) { - throw AutomaticTapCalculationError(id); - } - } - } else { - throw InvalidRegulatedObject(input.regulated_object, Component::name); - } + // check and forbid for step-up transformer logic to be removed + // if (regulated_object_idx.group == get_component_type_index(state)) { + // auto const& regulated_object = get_component(state, regulated_object_idx); + + // auto const non_tap_side = + // regulated_object.tap_side() == BranchSide::from ? BranchSide::to : BranchSide::from; + // if (get_component(state, regulated_object.node(regulated_object.tap_side())).u_rated() < + // get_component(state, regulated_object.node(non_tap_side)).u_rated()) { + // throw AutomaticTapCalculationError(id); + // } + // } else if (regulated_object_idx.group == get_component_type_index(state)) { + // auto const& regulated_object = get_component(state, regulated_object_idx); + // auto const tap_side_u_rated = + // get_component(state, regulated_object.node(regulated_object.tap_side())).u_rated(); + // for (auto const side : branch3_sides) { + // if (side == regulated_object.tap_side()) { + // continue; + // } + // if (tap_side_u_rated < get_component(state, regulated_object.node(side)).u_rated()) { + // throw AutomaticTapCalculationError(id); + // } + // } + // } else { + // throw InvalidRegulatedObject(input.regulated_object, Component::name); + // } auto const regulated_object_type = get_component(state, regulated_object_idx).math_model_type(); double const u_rated = get_component(state, regulated_terminal).u_rated(); diff --git a/power_grid_model_c/power_grid_model/include/power_grid_model/optimizer/tap_position_optimizer.hpp b/power_grid_model_c/power_grid_model/include/power_grid_model/optimizer/tap_position_optimizer.hpp index 28ff97459..d36dea322 100644 --- a/power_grid_model_c/power_grid_model/include/power_grid_model/optimizer/tap_position_optimizer.hpp +++ b/power_grid_model_c/power_grid_model/include/power_grid_model/optimizer/tap_position_optimizer.hpp @@ -149,10 +149,6 @@ inline void process_trafo3w_edge(main_core::main_model_state_c auto const& state // add regulated idx only when the first side node is tap side node. // This is done to add only one directional edge with regulated idx. auto const edge_value = - // (TODO: jguo) The following commented out logic was a potential bug - // (from_node != tap_side_node) - // ? unregulated_edge_prop - // : TrafoGraphEdge{trafo3w_idx, 1, branch_3_side_to_tap_side(transformer3w.tap_side()), control_side}; add_to_edge(state, edges, edge_props, edge_from_node, edge_to_node, edge_value); } else { @@ -288,7 +284,7 @@ inline void process_edges_dijkstra(Idx v, std::vector& vertex_distan auto t = boost::target(e, graph); const EdgeWeight weight = graph[e].weight; - // We can not use BGL_FORALL_OUTEDGES here because we need information + // We can not use BGL_FORALL_OUTEDGES here because we need information // regardless of edge direction if (u == s && vertex_distances[s] + weight < vertex_distances[t]) { vertex_distances[t] = vertex_distances[s] + weight; @@ -322,12 +318,25 @@ inline auto get_edge_weights(TransformerGraph const& graph) -> TrafoGraphEdgePro auto const edge_tgt_rank = vertex_distances[boost::target(e, graph)]; auto const edge_res = std::min(edge_src_rank, edge_tgt_rank); + // New edge logic for ranking + // | Tap | Control | All edges | + // --------------------------------------------- + // | A | A | [B->A], [C->A], [B<->C] | + // | A | B | [A->B], [A->C], [B<->C] | + // | A | C | [A->B], [A->C], [B<->C] | + // | B | A | [B->A], [C<->A], [B->C] | + // | B | B | [A->B], [C<->A], [C->B] | + // | B | C | [B->A], [C<->A], [B->C] | + // | C | A | [A<->B], [C->A], [C->B] | + // | C | B | [A<->B], [C->A], [C->B] | + // | C | C | [A<->B], [A->C], [A->B] | + // In two winding trafo, the edge is always pointing to the control side; in three winding trafo edges, the + // edges are always pointing parallel to the control side: meaning that for delta configuration ABC, the above + // situations can happen. if (edge_src_rank != edge_tgt_rank - 1) { - throw AutomaticTapInputError("Transformer is not unrechable: control side rank mismatch"); + throw AutomaticTapInputError("Transformer is unrechable: control side rank mismatch"); } if (!is_unreachable(edge_res)) { - // (TODO: jguo) old way -> broke existing validation tests - // result.push_back({graph[e].regulated_idx, edge_res}); result.push_back({graph[e].regulated_idx, edge_tgt_rank}); } } @@ -349,7 +358,7 @@ inline auto rank_transformers(TrafoGraphEdgeProperties const& w_trafo_list) -> R previous_weight = trafo.weight; } auto& current_group = groups.back(); // avoid duplicates - if (std::find(current_group.begin(), current_group.end(), trafo.regulated_idx) == current_group.end()) { + if (std::ranges::find(current_group, trafo.regulated_idx) == current_group.end()) { current_group.push_back(trafo.regulated_idx); } } diff --git a/src/power_grid_model/_core/error_handling.py b/src/power_grid_model/_core/error_handling.py index 758156c97..368e7e5f5 100644 --- a/src/power_grid_model/_core/error_handling.py +++ b/src/power_grid_model/_core/error_handling.py @@ -14,6 +14,7 @@ from power_grid_model._core.power_grid_core import power_grid_core as pgc from power_grid_model.errors import ( AutomaticTapCalculationError, + AutomaticTapInputError, ConflictID, ConflictVoltage, IDNotFound, @@ -71,6 +72,10 @@ _AUTOMATIC_TAP_CALCULATION_ERROR_RE = re.compile( r"Automatic tap changing regulator with tap_side at LV side is not supported. Found at id (-?\d+)\n" ) +_AUTOMATIC_TAP_INPUT_ERROR_RE = re.compile( + r"Automatic tap changer has invalid configuration that does not meet the transformer ranking criteria. (-?\d+)\n" +) + _ID_WRONG_TYPE_RE = re.compile(r"Wrong type for object with id (-?\d+)\n") _INVALID_CALCULATION_METHOD_RE = re.compile(r"The calculation method is invalid for this calculation!") _INVALID_SHORT_CIRCUIT_PHASE_OR_TYPE_RE = re.compile(r"short circuit type") # multiple different flavors @@ -95,6 +100,7 @@ _INVALID_MEASURED_OBJECT_RE: InvalidMeasuredObject, _INVALID_REGULATED_OBJECT_RE: InvalidRegulatedObject, _AUTOMATIC_TAP_CALCULATION_ERROR_RE: AutomaticTapCalculationError, + _AUTOMATIC_TAP_INPUT_ERROR_RE: AutomaticTapInputError, _ID_WRONG_TYPE_RE: IDWrongType, _INVALID_CALCULATION_METHOD_RE: InvalidCalculationMethod, _INVALID_SHORT_CIRCUIT_PHASE_OR_TYPE_RE: InvalidShortCircuitPhaseOrType, diff --git a/src/power_grid_model/errors.py b/src/power_grid_model/errors.py index 312387ab2..226a743a7 100644 --- a/src/power_grid_model/errors.py +++ b/src/power_grid_model/errors.py @@ -97,6 +97,10 @@ class AutomaticTapCalculationError(PowerGridError): """Automatic tap changer with tap at LV side is unsupported for automatic tap changing calculation.""" +class AutomaticTapInputError(PowerGridError): + """Automatic tap changer has invalid configuration that does not meet the transformer ranking criteria.""" + + class InvalidShortCircuitPhaseOrType(PowerGridError): """Invalid (combination of) short circuit types and phase(s) provided.""" diff --git a/tests/cpp_unit_tests/test_tap_position_optimizer.cpp b/tests/cpp_unit_tests/test_tap_position_optimizer.cpp index e38c8afb8..49645e267 100644 --- a/tests/cpp_unit_tests/test_tap_position_optimizer.cpp +++ b/tests/cpp_unit_tests/test_tap_position_optimizer.cpp @@ -258,22 +258,6 @@ TEST_CASE("Test Transformer ranking") { CHECK(actual_edges_prop == expected_edges_prop); } - // (TODO: jguo) old way, to be removed - SUBCASE("Automatic tap unsupported tap side at LV") { - TestState bad_state; - std::vector bad_nodes{{0, 50e3}, {1, 10e3}}; - main_core::add_component(bad_state, bad_nodes.begin(), bad_nodes.end(), 50.0); - - std::vector bad_trafo{get_transformer(2, 0, 1, BranchSide::to)}; - main_core::add_component(bad_state, bad_trafo.begin(), bad_trafo.end(), 50.0); - - std::vector bad_regulators{get_regulator(3, 2, ControlSide::from)}; - - CHECK_THROWS_AS(main_core::add_component(bad_state, bad_regulators.begin(), - bad_regulators.end(), 50.0), - AutomaticTapCalculationError); - } - SUBCASE("Process edge weights") { using vertex_iterator = boost::graph_traits::vertex_iterator; @@ -341,6 +325,7 @@ TEST_CASE("Test Transformer ranking") { SUBCASE("Ranking complete the graph") { // (TODO: jguo) existing demo grid is not compatible with the updated ranking + // The test grid needs to be updated here to match the new ranking logic // pgm_tap::RankedTransformerGroups order = pgm_tap::rank_transformers(state); // pgm_tap::RankedTransformerGroups const ref_order{ // {{Idx2D{3, 0}, Idx2D{3, 1}, Idx2D{4, 0}}, {Idx2D{3, 3}, Idx2D{3, 2}, Idx2D{3, 4}}}}; diff --git a/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/input.json b/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/input.json index 58178eab2..9bc859832 100644 --- a/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/input.json +++ b/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/input.json @@ -11,22 +11,18 @@ {"id": 3, "u_rated": 10500}, {"id": 4, "u_rated": 10500}, {"id": 5, "u_rated": 21000}, - {"id": 6, "u_rated": 10500}, - {"id": 25, "u_rated": 21000}, - {"id": 26, "u_rated": 10500} + {"id": 6, "u_rated": 10500} ], "line": [ {"id": 7, "from_node": 2, "to_node": 3, "from_status": 1, "to_status": 1, "r1": 0.506, "x1": 1.07, "c1": 5.099999999999999e-06, "tan1": 0, "r0": 11.47, "x0": 2.94, "c0": 5.099999999999999e-06, "tan0": 0, "i_n": 604}, - {"id": 8, "from_node": 1, "to_node": 5, "from_status": 1, "to_status": 1, "r1": 1.01, "x1": 1.92, "c1": 3.2e-06, "tan1": 0, "r0": 22.36, "x0": 6.11, "c0": 3.2e-06, "tan0": 0, "i_n": 431}, - {"id": 27, "from_node": 1, "to_node": 25, "from_status": 0, "to_status": 1, "r1": 1.01, "x1": 1.92, "c1": 3.2e-06, "tan1": 0, "r0": 22.36, "x0": 6.11, "c0": 3.2e-06, "tan0": 0, "i_n": 431} + {"id": 8, "from_node": 1, "to_node": 5, "from_status": 1, "to_status": 1, "r1": 1.01, "x1": 1.92, "c1": 3.2e-06, "tan1": 0, "r0": 22.36, "x0": 6.11, "c0": 3.2e-06, "tan0": 0, "i_n": 431} ], "transformer": [ {"id": 9, "from_node": 0, "to_node": 2, "from_status": 1, "to_status": 1, "u1": 150000, "u2": 11000, "sn": 12000000, "uk": 0.204, "pk": 60000, "i0": 0, "p0": 0, "winding_from": 1, "winding_to": 2, "clock": 5, "tap_side": 0, "tap_pos": 0, "tap_min": -11, "tap_max": 9, "tap_nom": 0, "tap_size": 2500, "uk_min": 0.204, "uk_max": 0.204, "pk_min": 60000, "pk_max": 60000, "r_grounding_from": 0, "x_grounding_from": 0}, {"id": 10, "from_node": 0, "to_node": 2, "from_status": 1, "to_status": 1, "u1": 150000, "u2": 11000, "sn": 12000000, "uk": 0.204, "pk": 60000, "i0": 0, "p0": 0, "winding_from": 1, "winding_to": 2, "clock": 5, "tap_side": 0, "tap_pos": 0, "tap_min": -11, "tap_max": 9, "tap_nom": 0, "tap_size": 2500, "uk_min": 0.204, "uk_max": 0.204, "pk_min": 60000, "pk_max": 60000, "r_grounding_from": 0, "x_grounding_from": 0}, {"id": 11, "from_node": 0, "to_node": 1, "from_status": 1, "to_status": 1, "u1": 150000, "u2": 21000, "sn": 25000000, "uk": 0.208, "pk": 80000, "i0": 0, "p0": 0, "winding_from": 1, "winding_to": 2, "clock": 1, "tap_side": 0, "tap_pos": 0, "tap_min": -16, "tap_max": 16, "tap_nom": 0, "tap_size": 1730, "uk_min": 0.208, "uk_max": 0.208, "pk_min": 80000, "pk_max": 80000, "r_grounding_from": 0, "x_grounding_from": 0}, {"id": 12, "from_node": 5, "to_node": 6, "from_status": 1, "to_status": 1, "u1": 21000, "u2": 10000, "sn": 12000000, "uk": 0.08, "pk": 60000, "i0": 0, "p0": 0, "winding_from": 1, "winding_to": 0, "clock": 0, "tap_side": 0, "tap_pos": 0, "tap_min": -15, "tap_max": 15, "tap_nom": 0, "tap_size": 270, "uk_min": 0.08, "uk_max": 0.08, "pk_min": 60000, "pk_max": 60000, "r_grounding_from": 0, "x_grounding_from": 0}, - {"id": 13, "from_node": 3, "to_node": 4, "from_status": 1, "to_status": 1, "u1": 10500, "u2": 10500, "sn": 12000000, "uk": 0.005, "pk": 0, "i0": 0, "p0": 0, "winding_from": 0, "winding_to": 0, "clock": 0, "tap_side": 0, "tap_pos": 7, "tap_min": 1, "tap_max": 13, "tap_nom": 7, "tap_size": 150, "uk_min": 0.004500000000000001, "uk_max": 0.006, "pk_min": 0, "pk_max": 0, "r_grounding_from": 0, "x_grounding_from": 0, "r_grounding_to": 0, "x_grounding_to": 0}, - {"id": 24, "from_node": 25, "to_node": 26, "from_status": 1, "to_status": 1, "u1": 21000, "u2": 10500, "sn": 12000000, "uk": 0.08, "pk": 60000, "i0": 0, "p0": 0, "winding_from": 1, "winding_to": 0, "clock": 0, "tap_side": 0, "tap_pos": 0, "tap_min": -15, "tap_max": 15, "tap_nom": 0, "tap_size": 270, "uk_min": 0.08, "uk_max": 0.08, "pk_min": 60000, "pk_max": 60000, "r_grounding_from": 0, "x_grounding_from": 0} + {"id": 13, "from_node": 3, "to_node": 4, "from_status": 1, "to_status": 1, "u1": 10500, "u2": 10500, "sn": 12000000, "uk": 0.005, "pk": 0, "i0": 0, "p0": 0, "winding_from": 0, "winding_to": 0, "clock": 0, "tap_side": 0, "tap_pos": 7, "tap_min": 1, "tap_max": 13, "tap_nom": 7, "tap_size": 150, "uk_min": 0.004500000000000001, "uk_max": 0.006, "pk_min": 0, "pk_max": 0, "r_grounding_from": 0, "x_grounding_from": 0, "r_grounding_to": 0, "x_grounding_to": 0} ], "source": [ {"id": 14, "node": 0, "status": 1, "u_ref": 1, "sk": 1e+20, "rx_ratio": 0.1, "z01_ratio": 3} @@ -42,8 +38,7 @@ {"id": 20, "regulated_object": 10, "status": 1, "control_side": 1, "u_set": 10600, "u_band": 1000, "line_drop_compensation_r": 0, "line_drop_compensation_x": 0}, {"id": 21, "regulated_object": 11, "status": 1, "control_side": 1, "u_set": 21000, "u_band": 2000, "line_drop_compensation_r": 0, "line_drop_compensation_x": 0}, {"id": 22, "regulated_object": 12, "status": 1, "control_side": 1, "u_set": 10500, "u_band": 1000, "line_drop_compensation_r": 0, "line_drop_compensation_x": 0}, - {"id": 23, "regulated_object": 13, "status": 1, "control_side": 1, "u_set": 10500, "u_band": 1000, "line_drop_compensation_r": 0, "line_drop_compensation_x": 0}, - {"id": 28, "regulated_object": 24, "status": 1, "control_side": 1, "u_set": 10500, "u_band": 1000, "line_drop_compensation_r": 0, "line_drop_compensation_x": 0} + {"id": 23, "regulated_object": 13, "status": 1, "control_side": 1, "u_set": 10500, "u_band": 1000, "line_drop_compensation_r": 0, "line_drop_compensation_x": 0} ] } } \ No newline at end of file diff --git a/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/sym_output_batch.json b/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/sym_output_batch.json index 1476d458c..2cb1a3897 100644 --- a/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/sym_output_batch.json +++ b/tests/data/power_flow/automatic-tap-regulator/pgm-automatic-tap-any/sym_output_batch.json @@ -33,14 +33,6 @@ { "id": 6, "u": 10048.07315915877 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -63,10 +55,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -99,14 +87,6 @@ { "id": 6, "u": 10024.9003318057 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -129,10 +109,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -165,14 +141,6 @@ { "id": 6, "u": 10136.77258061671 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -195,10 +163,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -231,14 +195,6 @@ { "id": 6, "u": 10144.34439013452 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -261,10 +217,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -297,14 +249,6 @@ { "id": 6, "u": 10046.73073697228 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -327,10 +271,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -363,14 +303,6 @@ { "id": 6, "u": 10079.02200578903 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -393,10 +325,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -429,14 +357,6 @@ { "id": 6, "u": 10165.32348156409 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -459,10 +379,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -495,14 +411,6 @@ { "id": 6, "u": 10129.14037222201 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -525,10 +433,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -561,14 +465,6 @@ { "id": 6, "u": 10075.37911738707 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -591,10 +487,6 @@ { "id": 23, "tap_pos": 9 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -627,14 +519,6 @@ { "id": 6, "u": 10048.07315915904 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -657,10 +541,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -693,14 +573,6 @@ { "id": 6, "u": 10024.90033180593 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -723,10 +595,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -759,14 +627,6 @@ { "id": 6, "u": 10136.77258061701 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -789,10 +649,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -825,14 +681,6 @@ { "id": 6, "u": 10144.34439013479 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -855,10 +703,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -891,14 +735,6 @@ { "id": 6, "u": 10046.73073697251 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -921,10 +757,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -957,14 +789,6 @@ { "id": 6, "u": 10079.02200578931 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -987,10 +811,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1023,14 +843,6 @@ { "id": 6, "u": 10165.32348156435 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1053,10 +865,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1089,14 +897,6 @@ { "id": 6, "u": 10129.14037222224 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1119,10 +919,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1155,14 +951,6 @@ { "id": 6, "u": 10075.37911738739 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1185,10 +973,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1221,14 +1005,6 @@ { "id": 6, "u": 10048.0731591589 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1251,10 +1027,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1287,14 +1059,6 @@ { "id": 6, "u": 10024.90033180582 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1317,10 +1081,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1353,14 +1113,6 @@ { "id": 6, "u": 10136.77258061686 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1383,10 +1135,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1419,14 +1167,6 @@ { "id": 6, "u": 10144.34439013465 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1449,10 +1189,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1485,14 +1221,6 @@ { "id": 6, "u": 10046.7307369724 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1515,10 +1243,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1551,14 +1275,6 @@ { "id": 6, "u": 10079.02200578916 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1581,10 +1297,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1617,14 +1329,6 @@ { "id": 6, "u": 10165.32348156422 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1647,10 +1351,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1683,14 +1383,6 @@ { "id": 6, "u": 10129.14037222212 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1713,10 +1405,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1749,14 +1437,6 @@ { "id": 6, "u": 10075.37911738721 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1779,10 +1459,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1815,14 +1491,6 @@ { "id": 6, "u": 10048.07315915894 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1845,10 +1513,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1881,14 +1545,6 @@ { "id": 6, "u": 10024.90033180585 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1911,10 +1567,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -1947,14 +1599,6 @@ { "id": 6, "u": 10136.77258061689 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -1977,10 +1621,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2013,14 +1653,6 @@ { "id": 6, "u": 10144.34439013468 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2043,10 +1675,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2079,14 +1707,6 @@ { "id": 6, "u": 10046.73073697243 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2109,10 +1729,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2145,14 +1761,6 @@ { "id": 6, "u": 10079.02200578922 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2175,10 +1783,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2211,14 +1815,6 @@ { "id": 6, "u": 10165.32348156424 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2241,10 +1837,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2277,14 +1869,6 @@ { "id": 6, "u": 10129.14037222216 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2307,10 +1891,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2343,14 +1923,6 @@ { "id": 6, "u": 10075.37911738727 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2373,10 +1945,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2409,14 +1977,6 @@ { "id": 6, "u": 10048.07315915901 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2439,10 +1999,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2475,14 +2031,6 @@ { "id": 6, "u": 10024.90033180592 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2505,10 +2053,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2541,14 +2085,6 @@ { "id": 6, "u": 10136.77258061698 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2571,10 +2107,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2607,14 +2139,6 @@ { "id": 6, "u": 10144.34439013476 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2637,10 +2161,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2673,14 +2193,6 @@ { "id": 6, "u": 10046.7307369725 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2703,10 +2215,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2739,14 +2247,6 @@ { "id": 6, "u": 10079.02200578929 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2769,10 +2269,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2805,14 +2301,6 @@ { "id": 6, "u": 10165.32348156432 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2835,10 +2323,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2871,14 +2355,6 @@ { "id": 6, "u": 10129.14037222223 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2901,10 +2377,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -2937,14 +2409,6 @@ { "id": 6, "u": 10075.37911738735 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -2967,10 +2431,6 @@ { "id": 23, "tap_pos": 8 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3003,14 +2463,6 @@ { "id": 6, "u": 10048.07315915869 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3033,10 +2485,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3069,14 +2517,6 @@ { "id": 6, "u": 10024.90033180562 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3099,10 +2539,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3135,14 +2571,6 @@ { "id": 6, "u": 10136.77258061664 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3165,10 +2593,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3201,14 +2625,6 @@ { "id": 6, "u": 10144.34439013444 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3231,10 +2647,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3267,14 +2679,6 @@ { "id": 6, "u": 10046.73073697219 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3297,10 +2701,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3333,14 +2733,6 @@ { "id": 6, "u": 10079.02200578893 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3363,10 +2755,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3399,14 +2787,6 @@ { "id": 6, "u": 10165.32348156402 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3429,10 +2809,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3465,14 +2841,6 @@ { "id": 6, "u": 10129.14037222192 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3495,10 +2863,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3531,14 +2895,6 @@ { "id": 6, "u": 10075.37911738698 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3561,10 +2917,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3597,14 +2949,6 @@ { "id": 6, "u": 10048.07315915892 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3627,10 +2971,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3663,14 +3003,6 @@ { "id": 6, "u": 10024.90033180583 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3693,10 +3025,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3729,14 +3057,6 @@ { "id": 6, "u": 10136.77258061688 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3759,10 +3079,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3795,14 +3111,6 @@ { "id": 6, "u": 10144.34439013466 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3825,10 +3133,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3861,14 +3165,6 @@ { "id": 6, "u": 10046.7307369724 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3891,10 +3187,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3927,14 +3219,6 @@ { "id": 6, "u": 10079.02200578919 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -3957,10 +3241,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -3993,14 +3273,6 @@ { "id": 6, "u": 10165.32348156424 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4023,10 +3295,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4059,14 +3327,6 @@ { "id": 6, "u": 10129.14037222214 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4089,10 +3349,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4125,14 +3381,6 @@ { "id": 6, "u": 10075.37911738724 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4155,10 +3403,6 @@ { "id": 23, "tap_pos": 10 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4191,14 +3435,6 @@ { "id": 6, "u": 10048.07315915882 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4221,10 +3457,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4257,14 +3489,6 @@ { "id": 6, "u": 10024.90033180573 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4287,10 +3511,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4323,14 +3543,6 @@ { "id": 6, "u": 10136.77258061677 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4353,10 +3565,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4389,14 +3597,6 @@ { "id": 6, "u": 10144.34439013456 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4419,10 +3619,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4455,14 +3651,6 @@ { "id": 6, "u": 10046.73073697231 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4485,10 +3673,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4521,14 +3705,6 @@ { "id": 6, "u": 10079.02200578907 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4551,10 +3727,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4587,14 +3759,6 @@ { "id": 6, "u": 10165.32348156412 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4617,10 +3781,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4653,14 +3813,6 @@ { "id": 6, "u": 10129.14037222205 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4683,10 +3835,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4719,14 +3867,6 @@ { "id": 6, "u": 10075.37911738712 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4749,10 +3889,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4785,14 +3921,6 @@ { "id": 6, "u": 10048.07315915828 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4815,10 +3943,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4851,14 +3975,6 @@ { "id": 6, "u": 10024.90033180522 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4881,10 +3997,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4917,14 +4029,6 @@ { "id": 6, "u": 10136.7725806162 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -4947,10 +4051,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -4983,14 +4083,6 @@ { "id": 6, "u": 10144.34439013405 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -5013,10 +4105,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -5049,14 +4137,6 @@ { "id": 6, "u": 10046.73073697181 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -5079,10 +4159,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -5115,14 +4191,6 @@ { "id": 6, "u": 10079.02200578851 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -5145,10 +4213,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -5181,14 +4245,6 @@ { "id": 6, "u": 10165.32348156362 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -5211,10 +4267,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -5247,14 +4299,6 @@ { "id": 6, "u": 10129.14037222152 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -5277,10 +4321,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] }, @@ -5313,14 +4353,6 @@ { "id": 6, "u": 10075.37911738651 - }, - { - "id": 25, - "u": 0 - }, - { - "id": 26, - "u": 0 } ], "transformer_tap_regulator": [ @@ -5343,10 +4375,6 @@ { "id": 23, "tap_pos": 7 - }, - { - "id": 28, - "tap_pos": -128 } ] } diff --git a/tests/unit/test_error_handling.py b/tests/unit/test_error_handling.py index 38e7a522d..625df2037 100644 --- a/tests/unit/test_error_handling.py +++ b/tests/unit/test_error_handling.py @@ -287,43 +287,44 @@ def test_handle_invalid_calculation_method_error(): model.calculate_power_flow(calculation_method=CalculationMethod.iec60909) -def test_transformer_tap_regulator_at_lv_tap_side(): - node_input = initialize_array("input", "node", 2) - node_input["id"] = [0, 1] - node_input["u_rated"] = [1e4, 4e2] - - source_input = initialize_array("input", "source", 1) - source_input["id"] = [2] - source_input["node"] = [0] - source_input["status"] = [1] - source_input["u_ref"] = [10.0e3] - - transformer_input = initialize_array("input", "transformer", 1) - transformer_input["id"] = [3] - transformer_input["from_node"] = [0] - transformer_input["to_node"] = [1] - transformer_input["from_status"] = [1] - transformer_input["to_status"] = [1] - transformer_input["winding_from"] = [2] - transformer_input["winding_to"] = [1] - transformer_input["clock"] = [5] - transformer_input["tap_side"] = [1] - - transformer_tap_regulator_input = initialize_array("input", "transformer_tap_regulator", 1) - transformer_tap_regulator_input["id"] = [4] - transformer_tap_regulator_input["regulated_object"] = [3] - transformer_tap_regulator_input["status"] = [1] - transformer_tap_regulator_input["control_side"] = [0] - - with pytest.raises(AutomaticTapCalculationError): - PowerGridModel( - input_data={ - "node": node_input, - "transformer": transformer_input, - "source": source_input, - "transformer_tap_regulator": transformer_tap_regulator_input, - } - ) +# (TODO: jguo) Needs confirmation whether this test should be removed like in C++ version +# def test_transformer_tap_regulator_at_lv_tap_side(): +# node_input = initialize_array("input", "node", 2) +# node_input["id"] = [0, 1] +# node_input["u_rated"] = [1e4, 4e2] + +# source_input = initialize_array("input", "source", 1) +# source_input["id"] = [2] +# source_input["node"] = [0] +# source_input["status"] = [1] +# source_input["u_ref"] = [10.0e3] + +# transformer_input = initialize_array("input", "transformer", 1) +# transformer_input["id"] = [3] +# transformer_input["from_node"] = [0] +# transformer_input["to_node"] = [1] +# transformer_input["from_status"] = [1] +# transformer_input["to_status"] = [1] +# transformer_input["winding_from"] = [2] +# transformer_input["winding_to"] = [1] +# transformer_input["clock"] = [5] +# transformer_input["tap_side"] = [1] + +# transformer_tap_regulator_input = initialize_array("input", "transformer_tap_regulator", 1) +# transformer_tap_regulator_input["id"] = [4] +# transformer_tap_regulator_input["regulated_object"] = [3] +# transformer_tap_regulator_input["status"] = [1] +# transformer_tap_regulator_input["control_side"] = [0] + +# with pytest.raises(AutomaticTapCalculationError): +# PowerGridModel( +# input_data={ +# "node": node_input, +# "transformer": transformer_input, +# "source": source_input, +# "transformer_tap_regulator": transformer_tap_regulator_input, +# } +# ) def test_automatic_tap_changing():