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 105ce0a1d2..2467d3ed4e 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 @@ -309,7 +309,6 @@ inline auto get_edge_weights(TransformerGraph const& graph) -> TrafoGraphEdgePro } auto const edge_src_rank = vertex_distances[boost::source(e, graph)]; 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 | @@ -328,11 +327,11 @@ inline auto get_edge_weights(TransformerGraph const& graph) -> TrafoGraphEdgePro // side via the bidirectional edge (if it exists). For delta configuration ABC, the above // situations can happen. // The logic still holds in meshed grids, albeit operating a more complex graph. - if (edge_src_rank != edge_tgt_rank - 1) { - throw AutomaticTapInputError("The control side of a transformer regulator should be relatively further " - "away from the source than the tap side.\n"); - } - if (!is_unreachable(edge_res)) { + if (!is_unreachable(edge_src_rank) || !is_unreachable(edge_tgt_rank)) { + if (edge_src_rank != edge_tgt_rank - 1) { + throw AutomaticTapInputError("The control side of a transformer regulator should be relatively further " + "away from the source than the tap side.\n"); + } result.emplace_back(graph[e].regulated_idx, edge_tgt_rank); } } diff --git a/tests/cpp_unit_tests/test_tap_position_optimizer.cpp b/tests/cpp_unit_tests/test_tap_position_optimizer.cpp index 52bc6807cb..b4fd5aef52 100644 --- a/tests/cpp_unit_tests/test_tap_position_optimizer.cpp +++ b/tests/cpp_unit_tests/test_tap_position_optimizer.cpp @@ -24,11 +24,12 @@ using TestComponentContainer = ThreeWindingTransformer, TransformerTapRegulator, Source>; using TestState = main_core::MainModelState; -TransformerInput get_transformer(ID id, ID from, ID to, BranchSide tap_side, IntS tap_pos = na_IntS) { +TransformerInput get_transformer(ID id, ID from, ID to, BranchSide tap_side, IntS tap_pos = na_IntS, + IntS from_status = 1) { return TransformerInput{.id = id, .from_node = from, .to_node = to, - .from_status = 1, + .from_status = from_status, .to_status = 1, .u1 = nan, .u2 = nan, @@ -184,6 +185,67 @@ TEST_CASE("Test Transformer ranking") { CHECK_NOTHROW(pgm_tap::build_transformer_graph(get_state(6, 2, 1, 4, 5))); } + SUBCASE("Process edge weights") { + using vertex_iterator = boost::graph_traits::vertex_iterator; + + // Dummy graph + pgm_tap::TrafoGraphEdges const edge_array = {{0, 1}, {0, 2}, {2, 3}}; + pgm_tap::TrafoGraphEdgeProperties const edge_prop{{{0, 1}, 1}, {{-1, -1}, 0}, {{2, 3}, 1}}; + std::vector vertex_props{{true}, {false}, {false}, {false}}; + + pgm_tap::TransformerGraph g{boost::edges_are_unsorted_multi_pass, edge_array.cbegin(), edge_array.cend(), + edge_prop.cbegin(), 4}; + + // Vertex properties can not be set during graph creation + vertex_iterator vi; + vertex_iterator vi_end; + for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) { + g[*vi].is_source = vertex_props[*vi].is_source; + } + + pgm_tap::TrafoGraphEdgeProperties const regulated_edge_weights = get_edge_weights(g); + pgm_tap::TrafoGraphEdgeProperties const ref_regulated_edge_weights{{{0, 1}, 1}, {{2, 3}, 1}}; + CHECK(regulated_edge_weights == ref_regulated_edge_weights); + } + + SUBCASE("Sorting transformer edges") { + pgm_tap::TrafoGraphEdgeProperties const trafoList{ + {Idx2D{1, 1}, pgm_tap::infty}, {Idx2D{1, 2}, 5}, {Idx2D{1, 3}, 4}, {Idx2D{2, 1}, 4}}; + + pgm_tap::RankedTransformerGroups const referenceList{{Idx2D{1, 3}, Idx2D{2, 1}}, {Idx2D{1, 2}}, {Idx2D{1, 1}}}; + + pgm_tap::RankedTransformerGroups const sortedTrafoList = pgm_tap::rank_transformers(trafoList); + REQUIRE(sortedTrafoList.size() == referenceList.size()); + for (Idx idx : boost::counting_range(Idx{0}, static_cast(sortedTrafoList.size()))) { + CAPTURE(idx); + CHECK(sortedTrafoList[idx] == referenceList[idx]); + } + } + + SUBCASE("Multiple source grid") { + using vertex_iterator = boost::graph_traits::vertex_iterator; + + // Grid with multiple sources and symetric graph + pgm_tap::TrafoGraphEdges const edge_array = {{0, 1}, {1, 2}, {3, 2}, {4, 3}}; + pgm_tap::TrafoGraphEdgeProperties const edge_prop{{{0, 1}, 1}, {{1, 2}, 1}, {{2, 3}, 1}, {{3, 4}, 1}}; + std::vector vertex_props{{true}, {false}, {false}, {false}, {true}}; + + pgm_tap::TransformerGraph g{boost::edges_are_unsorted_multi_pass, edge_array.cbegin(), edge_array.cend(), + edge_prop.cbegin(), 5}; + + // Vertex properties can not be set during graph creation + vertex_iterator vi; + vertex_iterator vi_end; + for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) { + g[*vi].is_source = vertex_props[*vi].is_source; + } + + pgm_tap::TrafoGraphEdgeProperties const regulated_edge_weights = get_edge_weights(g); + pgm_tap::TrafoGraphEdgeProperties const ref_regulated_edge_weights{ + {{0, 1}, 1}, {{1, 2}, 2}, {{2, 3}, 2}, {{3, 4}, 1}}; + CHECK(regulated_edge_weights == ref_regulated_edge_weights); + } + SUBCASE("Full grid 1 - For graph construction steps") { // =====Test Grid===== // ________[0]________ @@ -194,19 +256,24 @@ TEST_CASE("Test Transformer ranking") { // | [6] | // [3]----------| [8] // | | - // L---------------[9] + // L---------------[9] -----x- [100] + // + // [101] ---- [102] + TestState state; - std::vector nodes{{.id = 0, .u_rated = 150e3}, {.id = 1, .u_rated = 10e3}, - {.id = 2, .u_rated = 10e3}, {.id = 3, .u_rated = 10e3}, - {.id = 4, .u_rated = 10e3}, {.id = 5, .u_rated = 50e3}, - {.id = 6, .u_rated = 10e3}, {.id = 7, .u_rated = 10e3}, - {.id = 8, .u_rated = 10e3}, {.id = 9, .u_rated = 10e3}}; + std::vector nodes{ + {.id = 0, .u_rated = 150e3}, {.id = 1, .u_rated = 10e3}, {.id = 2, .u_rated = 10e3}, + {.id = 3, .u_rated = 10e3}, {.id = 4, .u_rated = 10e3}, {.id = 5, .u_rated = 50e3}, + {.id = 6, .u_rated = 10e3}, {.id = 7, .u_rated = 10e3}, {.id = 8, .u_rated = 10e3}, + {.id = 9, .u_rated = 10e3}, {.id = 100, .u_rated = 10e3}, {.id = 101, .u_rated = 10e3}, + {.id = 102, .u_rated = 10e3}}; main_core::add_component(state, nodes.begin(), nodes.end(), 50.0); std::vector transformers{ - get_transformer(11, 0, 1, BranchSide::from), get_transformer(12, 0, 1, BranchSide::from), - get_transformer(13, 5, 7, BranchSide::from), get_transformer(14, 2, 3, BranchSide::from), - get_transformer(15, 8, 9, BranchSide::from)}; + get_transformer(11, 0, 1, BranchSide::from), get_transformer(12, 0, 1, BranchSide::from), + get_transformer(13, 5, 7, BranchSide::from), get_transformer(14, 2, 3, BranchSide::from), + get_transformer(15, 8, 9, BranchSide::from), get_transformer(103, 9, 100, BranchSide::from, na_IntS, 0), + get_transformer(104, 101, 102, BranchSide::from)}; main_core::add_component(state, transformers.begin(), transformers.end(), 50.0); std::vector transformers3w{ @@ -232,9 +299,10 @@ TEST_CASE("Test Transformer ranking") { main_core::add_component(state, sources.begin(), sources.end(), 50.0); std::vector regulators{ - get_regulator(23, 11, ControlSide::to), get_regulator(24, 12, ControlSide::to), - get_regulator(25, 13, ControlSide::to), get_regulator(26, 14, ControlSide::to), - get_regulator(27, 15, ControlSide::to), get_regulator(28, 16, ControlSide::side_2)}; + get_regulator(23, 11, ControlSide::to), get_regulator(24, 12, ControlSide::to), + get_regulator(25, 13, ControlSide::to), get_regulator(26, 14, ControlSide::to), + get_regulator(27, 15, ControlSide::to), get_regulator(28, 16, ControlSide::side_2), + get_regulator(105, 103, ControlSide::from), get_regulator(106, 104, ControlSide::from)}; main_core::add_component(state, regulators.begin(), regulators.end(), 50.0); state.components.set_construction_complete(); @@ -250,14 +318,16 @@ TEST_CASE("Test Transformer ranking") { {{.group = 3, .pos = 1}, 1}, {{.group = 3, .pos = 2}, 1}, {{.group = 3, .pos = 3}, 1}, - {{.group = 3, .pos = 4}, 1}}); + {{.group = 3, .pos = 4}, 1}, + {{.group = 3, .pos = 6}, 1}}); expected_edges_prop.insert( expected_edges_prop.end(), {{{.group = 4, .pos = 0}, 1}, {{.group = 4, .pos = 0}, 1}, {unregulated_idx, 0}, {unregulated_idx, 0}}); expected_edges_prop.insert(expected_edges_prop.end(), 10, {unregulated_idx, 0}); std::vector const expected_vertex_props{ - {true}, {false}, {false}, {false}, {false}, {false}, {false}, {false}, {false}, {false}}; + {true}, {false}, {false}, {false}, {false}, {false}, {false}, + {false}, {false}, {false}, {false}, {false}, {false}}; pgm_tap::TransformerGraph actual_graph = pgm_tap::build_transformer_graph(state); pgm_tap::TrafoGraphEdgeProperties actual_edges_prop; @@ -365,21 +435,37 @@ TEST_CASE("Test Transformer ranking") { // | | | // [2] | [8] // | [6] | - // [3]----[7]---| [9] + // [3]----[7]---| [9] ----x- [100] // | | // L--------------[10] + // + // [101] ---- [102] TestState state; - std::vector nodes{ - {.id = 0, .u_rated = 150e3}, {.id = 1, .u_rated = 10e3}, {.id = 2, .u_rated = 10e3}, - {.id = 3, .u_rated = 10e3}, {.id = 4, .u_rated = 10e3}, {.id = 5, .u_rated = 50e3}, - {.id = 6, .u_rated = 10e3}, {.id = 7, .u_rated = 10e3}, {.id = 8, .u_rated = 10e3}, - {.id = 9, .u_rated = 10e3}, {.id = 10, .u_rated = 10e3}}; + std::vector nodes{{.id = 0, .u_rated = 150e3}, + {.id = 1, .u_rated = 10e3}, + {.id = 2, .u_rated = 10e3}, + {.id = 3, .u_rated = 10e3}, + {4, 10e3}, + {.id = 5, .u_rated = 50e3}, + {.id = 6, .u_rated = 10e3}, + {.id = 7, .u_rated = 10e3}, + {.id = 8, .u_rated = 10e3}, + {9, 10e3}, + {.id = 10, .u_rated = 10e3}, + {.id = 100, .u_rated = 10e3}, + {.id = 101, .u_rated = 10e3}, + {.id = 102, .u_rated = 10e3}}; + main_core::add_component(state, nodes.begin(), nodes.end(), 50.0); - std::vector transformers{ - get_transformer(11, 0, 1, BranchSide::to), get_transformer(12, 0, 1, BranchSide::from), - get_transformer(13, 2, 3, BranchSide::from), get_transformer(14, 6, 7, BranchSide::from), - get_transformer(15, 5, 8, BranchSide::from), get_transformer(16, 9, 10, BranchSide::from)}; + std::vector transformers{get_transformer(11, 0, 1, BranchSide::to), + get_transformer(12, 0, 1, BranchSide::from), + get_transformer(13, 2, 3, BranchSide::from), + get_transformer(14, 6, 7, BranchSide::from), + get_transformer(15, 5, 8, BranchSide::from), + get_transformer(16, 9, 10, BranchSide::from), + get_transformer(103, 9, 100, BranchSide::from, na_IntS, 0), + get_transformer(104, 101, 102, BranchSide::from)}; main_core::add_component(state, transformers.begin(), transformers.end(), 50.0); std::vector transformers3w{ @@ -405,23 +491,21 @@ TEST_CASE("Test Transformer ranking") { main_core::add_component(state, sources.begin(), sources.end(), 50.0); std::vector regulators{ - get_regulator(24, 11, ControlSide::to), get_regulator(25, 12, ControlSide::to), - get_regulator(26, 13, ControlSide::to), get_regulator(27, 14, ControlSide::to), - get_regulator(28, 15, ControlSide::to), get_regulator(29, 16, ControlSide::to), - get_regulator(30, 17, ControlSide::side_2)}; + get_regulator(24, 11, ControlSide::to), get_regulator(25, 12, ControlSide::to), + get_regulator(26, 13, ControlSide::to), get_regulator(27, 14, ControlSide::to), + get_regulator(28, 15, ControlSide::to), get_regulator(29, 16, ControlSide::to), + get_regulator(30, 17, ControlSide::side_2), get_regulator(105, 103, ControlSide::from), + get_regulator(106, 104, ControlSide::from)}; main_core::add_component(state, regulators.begin(), regulators.end(), 50.0); state.components.set_construction_complete(); - // Subcases - SUBCASE("Ranking complete the graph") { - pgm_tap::RankedTransformerGroups order = pgm_tap::rank_transformers(state); - pgm_tap::RankedTransformerGroups const ref_order{ - {{Idx2D{.group = 3, .pos = 0}, Idx2D{.group = 3, .pos = 1}, Idx2D{.group = 4, .pos = 0}, - Idx2D{.group = 3, .pos = 4}}, - {Idx2D{.group = 3, .pos = 2}, Idx2D{.group = 3, .pos = 3}, Idx2D{.group = 3, .pos = 5}}}}; - CHECK(order == ref_order); - } + pgm_tap::RankedTransformerGroups order = pgm_tap::rank_transformers(state); + pgm_tap::RankedTransformerGroups const ref_order{ + {{Idx2D{.group = 3, .pos = 0}, Idx2D{.group = 3, .pos = 1}, Idx2D{.group = 4, .pos = 0}, + Idx2D{.group = 3, .pos = 4}}, + {Idx2D{.group = 3, .pos = 2}, Idx2D{.group = 3, .pos = 3}, Idx2D{.group = 3, .pos = 5}}}}; + CHECK(order == ref_order); } } 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 9bc8598321..58178eab23 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,18 +11,22 @@ {"id": 3, "u_rated": 10500}, {"id": 4, "u_rated": 10500}, {"id": 5, "u_rated": 21000}, - {"id": 6, "u_rated": 10500} + {"id": 6, "u_rated": 10500}, + {"id": 25, "u_rated": 21000}, + {"id": 26, "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": 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} ], "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": 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} ], "source": [ {"id": 14, "node": 0, "status": 1, "u_ref": 1, "sk": 1e+20, "rx_ratio": 0.1, "z01_ratio": 3} @@ -38,7 +42,8 @@ {"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": 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} ] } } \ 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 2cb1a3897c..1476d458ca 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,6 +33,14 @@ { "id": 6, "u": 10048.07315915877 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -55,6 +63,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -87,6 +99,14 @@ { "id": 6, "u": 10024.9003318057 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -109,6 +129,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -141,6 +165,14 @@ { "id": 6, "u": 10136.77258061671 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -163,6 +195,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -195,6 +231,14 @@ { "id": 6, "u": 10144.34439013452 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -217,6 +261,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -249,6 +297,14 @@ { "id": 6, "u": 10046.73073697228 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -271,6 +327,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -303,6 +363,14 @@ { "id": 6, "u": 10079.02200578903 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -325,6 +393,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -357,6 +429,14 @@ { "id": 6, "u": 10165.32348156409 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -379,6 +459,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -411,6 +495,14 @@ { "id": 6, "u": 10129.14037222201 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -433,6 +525,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -465,6 +561,14 @@ { "id": 6, "u": 10075.37911738707 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -487,6 +591,10 @@ { "id": 23, "tap_pos": 9 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -519,6 +627,14 @@ { "id": 6, "u": 10048.07315915904 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -541,6 +657,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -573,6 +693,14 @@ { "id": 6, "u": 10024.90033180593 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -595,6 +723,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -627,6 +759,14 @@ { "id": 6, "u": 10136.77258061701 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -649,6 +789,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -681,6 +825,14 @@ { "id": 6, "u": 10144.34439013479 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -703,6 +855,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -735,6 +891,14 @@ { "id": 6, "u": 10046.73073697251 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -757,6 +921,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -789,6 +957,14 @@ { "id": 6, "u": 10079.02200578931 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -811,6 +987,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -843,6 +1023,14 @@ { "id": 6, "u": 10165.32348156435 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -865,6 +1053,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -897,6 +1089,14 @@ { "id": 6, "u": 10129.14037222224 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -919,6 +1119,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -951,6 +1155,14 @@ { "id": 6, "u": 10075.37911738739 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -973,6 +1185,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1005,6 +1221,14 @@ { "id": 6, "u": 10048.0731591589 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1027,6 +1251,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1059,6 +1287,14 @@ { "id": 6, "u": 10024.90033180582 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1081,6 +1317,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1113,6 +1353,14 @@ { "id": 6, "u": 10136.77258061686 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1135,6 +1383,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1167,6 +1419,14 @@ { "id": 6, "u": 10144.34439013465 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1189,6 +1449,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1221,6 +1485,14 @@ { "id": 6, "u": 10046.7307369724 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1243,6 +1515,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1275,6 +1551,14 @@ { "id": 6, "u": 10079.02200578916 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1297,6 +1581,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1329,6 +1617,14 @@ { "id": 6, "u": 10165.32348156422 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1351,6 +1647,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1383,6 +1683,14 @@ { "id": 6, "u": 10129.14037222212 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1405,6 +1713,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1437,6 +1749,14 @@ { "id": 6, "u": 10075.37911738721 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1459,6 +1779,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1491,6 +1815,14 @@ { "id": 6, "u": 10048.07315915894 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1513,6 +1845,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1545,6 +1881,14 @@ { "id": 6, "u": 10024.90033180585 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1567,6 +1911,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1599,6 +1947,14 @@ { "id": 6, "u": 10136.77258061689 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1621,6 +1977,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1653,6 +2013,14 @@ { "id": 6, "u": 10144.34439013468 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1675,6 +2043,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1707,6 +2079,14 @@ { "id": 6, "u": 10046.73073697243 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1729,6 +2109,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1761,6 +2145,14 @@ { "id": 6, "u": 10079.02200578922 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1783,6 +2175,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1815,6 +2211,14 @@ { "id": 6, "u": 10165.32348156424 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1837,6 +2241,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1869,6 +2277,14 @@ { "id": 6, "u": 10129.14037222216 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1891,6 +2307,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1923,6 +2343,14 @@ { "id": 6, "u": 10075.37911738727 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1945,6 +2373,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -1977,6 +2409,14 @@ { "id": 6, "u": 10048.07315915901 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -1999,6 +2439,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2031,6 +2475,14 @@ { "id": 6, "u": 10024.90033180592 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2053,6 +2505,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2085,6 +2541,14 @@ { "id": 6, "u": 10136.77258061698 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2107,6 +2571,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2139,6 +2607,14 @@ { "id": 6, "u": 10144.34439013476 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2161,6 +2637,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2193,6 +2673,14 @@ { "id": 6, "u": 10046.7307369725 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2215,6 +2703,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2247,6 +2739,14 @@ { "id": 6, "u": 10079.02200578929 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2269,6 +2769,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2301,6 +2805,14 @@ { "id": 6, "u": 10165.32348156432 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2323,6 +2835,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2355,6 +2871,14 @@ { "id": 6, "u": 10129.14037222223 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2377,6 +2901,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2409,6 +2937,14 @@ { "id": 6, "u": 10075.37911738735 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2431,6 +2967,10 @@ { "id": 23, "tap_pos": 8 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2463,6 +3003,14 @@ { "id": 6, "u": 10048.07315915869 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2485,6 +3033,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2517,6 +3069,14 @@ { "id": 6, "u": 10024.90033180562 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2539,6 +3099,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2571,6 +3135,14 @@ { "id": 6, "u": 10136.77258061664 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2593,6 +3165,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2625,6 +3201,14 @@ { "id": 6, "u": 10144.34439013444 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2647,6 +3231,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2679,6 +3267,14 @@ { "id": 6, "u": 10046.73073697219 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2701,6 +3297,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2733,6 +3333,14 @@ { "id": 6, "u": 10079.02200578893 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2755,6 +3363,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2787,6 +3399,14 @@ { "id": 6, "u": 10165.32348156402 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2809,6 +3429,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2841,6 +3465,14 @@ { "id": 6, "u": 10129.14037222192 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2863,6 +3495,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2895,6 +3531,14 @@ { "id": 6, "u": 10075.37911738698 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2917,6 +3561,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -2949,6 +3597,14 @@ { "id": 6, "u": 10048.07315915892 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -2971,6 +3627,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3003,6 +3663,14 @@ { "id": 6, "u": 10024.90033180583 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3025,6 +3693,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3057,6 +3729,14 @@ { "id": 6, "u": 10136.77258061688 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3079,6 +3759,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3111,6 +3795,14 @@ { "id": 6, "u": 10144.34439013466 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3133,6 +3825,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3165,6 +3861,14 @@ { "id": 6, "u": 10046.7307369724 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3187,6 +3891,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3219,6 +3927,14 @@ { "id": 6, "u": 10079.02200578919 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3241,6 +3957,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3273,6 +3993,14 @@ { "id": 6, "u": 10165.32348156424 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3295,6 +4023,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3327,6 +4059,14 @@ { "id": 6, "u": 10129.14037222214 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3349,6 +4089,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3381,6 +4125,14 @@ { "id": 6, "u": 10075.37911738724 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3403,6 +4155,10 @@ { "id": 23, "tap_pos": 10 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3435,6 +4191,14 @@ { "id": 6, "u": 10048.07315915882 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3457,6 +4221,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3489,6 +4257,14 @@ { "id": 6, "u": 10024.90033180573 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3511,6 +4287,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3543,6 +4323,14 @@ { "id": 6, "u": 10136.77258061677 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3565,6 +4353,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3597,6 +4389,14 @@ { "id": 6, "u": 10144.34439013456 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3619,6 +4419,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3651,6 +4455,14 @@ { "id": 6, "u": 10046.73073697231 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3673,6 +4485,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3705,6 +4521,14 @@ { "id": 6, "u": 10079.02200578907 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3727,6 +4551,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3759,6 +4587,14 @@ { "id": 6, "u": 10165.32348156412 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3781,6 +4617,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3813,6 +4653,14 @@ { "id": 6, "u": 10129.14037222205 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3835,6 +4683,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3867,6 +4719,14 @@ { "id": 6, "u": 10075.37911738712 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3889,6 +4749,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3921,6 +4785,14 @@ { "id": 6, "u": 10048.07315915828 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3943,6 +4815,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -3975,6 +4851,14 @@ { "id": 6, "u": 10024.90033180522 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -3997,6 +4881,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -4029,6 +4917,14 @@ { "id": 6, "u": 10136.7725806162 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -4051,6 +4947,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -4083,6 +4983,14 @@ { "id": 6, "u": 10144.34439013405 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -4105,6 +5013,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -4137,6 +5049,14 @@ { "id": 6, "u": 10046.73073697181 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -4159,6 +5079,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -4191,6 +5115,14 @@ { "id": 6, "u": 10079.02200578851 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -4213,6 +5145,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -4245,6 +5181,14 @@ { "id": 6, "u": 10165.32348156362 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -4267,6 +5211,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -4299,6 +5247,14 @@ { "id": 6, "u": 10129.14037222152 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -4321,6 +5277,10 @@ { "id": 23, "tap_pos": 7 + }, + { + "id": 28, + "tap_pos": -128 } ] }, @@ -4353,6 +5313,14 @@ { "id": 6, "u": 10075.37911738651 + }, + { + "id": 25, + "u": 0 + }, + { + "id": 26, + "u": 0 } ], "transformer_tap_regulator": [ @@ -4375,6 +5343,10 @@ { "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 ec07512033..b322757e5a 100644 --- a/tests/unit/test_error_handling.py +++ b/tests/unit/test_error_handling.py @@ -305,73 +305,37 @@ def test_handle_invalid_calculation_method_error(): def test_transformer_tap_regulator_control_side_not_closer_to_source(): - # =====Test Grid===== - # ________[0]________ - # || | | - # [1] [4]--[5] - # | | | - # [2] | [7] - # | [6] | - # [3]----------| [8] - # | | - # L---------------[9] - node_input = initialize_array("input", "node", 10) - node_input["id"] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - node_input["u_rated"] = [150e3, 10e3, 10e3, 10e3, 10e3, 50e3, 10e3, 10e3, 10e3, 10e3] - - transformer_input = initialize_array("input", "transformer", 5) - transformer_input["id"] = [11, 12, 13, 14, 15] - transformer_input["from_node"] = [0, 0, 5, 2, 8] - transformer_input["to_node"] = [1, 1, 7, 3, 9] - transformer_input["from_status"] = [1, 1, 1, 1, 1] - transformer_input["to_status"] = [1, 1, 1, 1, 1] - transformer_input["winding_from"] = [1, 1, 1, 1, 1] - transformer_input["winding_to"] = [1, 1, 1, 1, 1] - transformer_input["clock"] = [0, 0, 0, 0, 0] - transformer_input["tap_side"] = [0, 0, 0, 0, 0] + node_input = initialize_array("input", "node", 2) + node_input["id"] = [0, 1] + node_input["u_rated"] = [150e3, 10e3] - three_winding_transformer_input = initialize_array("input", "three_winding_transformer", 1) - three_winding_transformer_input["id"] = [16] - three_winding_transformer_input["node_1"] = [0] - three_winding_transformer_input["node_2"] = [4] - three_winding_transformer_input["node_3"] = [5] - three_winding_transformer_input["clock_12"] = [0] - three_winding_transformer_input["clock_13"] = [0] - three_winding_transformer_input["winding_1"] = [1] - three_winding_transformer_input["winding_2"] = [1] - three_winding_transformer_input["winding_3"] = [1] - - line_input = initialize_array("input", "line", 2) - line_input["id"] = [17, 18] - line_input["from_node"] = [3, 3] - line_input["to_node"] = [6, 9] - - link_input = initialize_array("input", "link", 3) - link_input["id"] = [19, 20, 21] - link_input["from_node"] = [2, 6, 8] - link_input["to_node"] = [1, 4, 7] - link_input["from_status"] = [1, 1, 1] - link_input["to_status"] = [1, 1, 1] + transformer_input = initialize_array("input", "transformer", 1) + transformer_input["id"] = [2] + transformer_input["from_node"] = [0] + transformer_input["to_node"] = [1] + transformer_input["from_status"] = [1] + transformer_input["to_status"] = [1] + transformer_input["winding_from"] = [1] + transformer_input["winding_to"] = [1] + transformer_input["clock"] = [0] + transformer_input["tap_side"] = [1] source_input = initialize_array("input", "source", 1) - source_input["id"] = [22] + source_input["id"] = [3] source_input["node"] = [0] source_input["status"] = [1] source_input["u_ref"] = [1.0] - transformer_tap_regulator_input = initialize_array("input", "transformer_tap_regulator", 6) - transformer_tap_regulator_input["id"] = [23, 24, 25, 26, 27, 28] - transformer_tap_regulator_input["regulated_object"] = [11, 12, 13, 14, 15, 16] - transformer_tap_regulator_input["status"] = [1, 1, 1, 1, 1, 1] - transformer_tap_regulator_input["control_side"] = [1, 1, 1, 1, 1, 1] + transformer_tap_regulator_input = initialize_array("input", "transformer_tap_regulator", 1) + transformer_tap_regulator_input["id"] = [4] + transformer_tap_regulator_input["regulated_object"] = [2] + transformer_tap_regulator_input["status"] = [1] + transformer_tap_regulator_input["control_side"] = [0] model = PowerGridModel( input_data={ "node": node_input, "transformer": transformer_input, - "three_winding_transformer": three_winding_transformer_input, - "line": line_input, - "link": link_input, "source": source_input, "transformer_tap_regulator": transformer_tap_regulator_input, }