Merge links on nodes: create super nodes#1398
Conversation
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
| if (link_connected[0] == 0 || link_connected[1] == 0) { | ||
| return Idx2D{.group = disconnected, .pos = disconnected}; | ||
| } |
There was a problem hiding this comment.
I'm thinking about this edge case:
If we have a link that's disconnected on one side, but it's not part of any other super node, and its connected side is then connected to a node to an active line, what will happen to that link? It clearly isn't part of a supernode so it will be excluded from the link solver algorithm, but it will also be excluded from the regular topology. What happens then? Is this expected? We still have to have output for it on the connected side.
There was a problem hiding this comment.
it should not be loaded. partially connected branches do contribute to the diagonal elements of the Ybus, but after this whole merging-links-on-nodes ordeal is finished, one of the key assumptions is that links have vanishing impedance and reactance relative to the rest of the grid, so they should get null output.
However, you're right in that that differs from the existing output, in which we assume fixed finite impedance.
@nitbharambe and/or @TonyXiang8787 can you confirm that this is indeed correct?
There was a problem hiding this comment.
Single-side connected links should not participate on calculations. For the output, if the node at the connected side is energized, the link should also have the output energized=1. Otherwise energized=0. All other quantities (power, current, etc) should be zero.
This is exactly the same behavior as current links.
| REQUIRE(topo_node_mapping.n_user_nodes() == comp_topo.n_node); | ||
| CHECK(topo_node_mapping.mapping() == IdxVector{0, 0, 1}); | ||
| } | ||
| SUBCASE("Disconnected link => not remapped") { |
There was a problem hiding this comment.
The mentioned edge case in my previous comment is similar to this, however, can you add it here as well too? Just to make sure the mapping handles it well.
There was a problem hiding this comment.
that one is tested and handled correctly, right?
and later on in SUBCASE("Disconnected link => not included in user links") it is explicitly tested that they are disconnected in create_topological_nodes
|
no new comments from me @mgovers |
…upernodes.hpp Signed-off-by: Martijn Govers <[email protected]> Co-authored-by: Nitish Bharambe <[email protected]> Signed-off-by: Martijn Govers <[email protected]>
…alculation_parameters.hpp Signed-off-by: Martijn Govers <[email protected]> Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
Signed-off-by: Martijn Govers <[email protected]>
|
|
Hey @mgovers I would like to understand the concept of super node what is it mathematically are you simply merging the switches or links with low impedance or changing something in jacobian |



Part of #35
This actually creates the topological nodes from the regular nodes