Changes between Initial Version and Version 1 of Ticket #6240, comment 1


Ignore:
Timestamp:
2021-05-12T10:43:56Z (4 years ago)
Author:
Francesco Casella

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #6240, comment 1

    initial v1  
    33The problem with that idea is that breaking connections not only influences the set of equations related to the overconstrained connector variables (which is OK), but it also changes the connection sets, and hence the equations for flow and effort variables. This introduces additional structural variability in the system, which would be hard to manage.
    44
    5 The good news is, this is really not necessary. The break-up of synchronous sub-systems doesn't really need connection to be undone. It just needs the admittance of the branch to become zero, so that there is no longer any power flow through it, and the two sub-systems at each side of the branche can rotate at different speeds unconstrained. This does not require to change the structure of the equations, it is just a consequence of the current through the line becoming zero because the admittance is now zero, so that there is no longer any power flow depending on the relative angle, that keeps the two parts of the grid in sync with each other.
     5The good news is, this is really not necessary. The break-up of synchronous sub-systems doesn't really need to undo connections. It just needs the admittance of the branch to become zero, so that there is no longer any power flow through it, and the two sub-systems at each side of the branch can rotate at different speeds unconstrained. This does not require to change the structure of the equations, it is just a consequence of the current through the line becoming zero because the admittance is now zero, so that there is no longer any power flow depending on the relative angle, that keeps the two parts of the grid in sync with each other.
    66
    7 So, the right way to handle dynamic connection sets is to inform the compiler that when the admittance is brought to zero, we are actually breaking the branch corresponding to the transmission line, i.e. the unbreakable branch defined by the {{{Connections.branch}}} statement. I was misled by the concept of breakable/unbreakable branches, so I didn't want to break unbreakable branches. In fact, "breakable" in this context means "breakable by a topology analysis algorithm that avoids redundant equations by breaking loops into spanning trees". If we open a switch by setting the admittance to zero, //we know// the branch has to be broken there, we don't need an algorithm to determine that.
     7So, the right way to handle dynamic connection sets is to inform the compiler that when the admittance is brought to zero, we are actually breaking the branch corresponding to the transmission line, i.e. the unbreakable branch defined by the {{{Connections.branch}}} statement. In this way, the runtime can update the connected spanning trees and come up with better reference values for the overconstrained variables in the connectors.
     8
     9I was indeed misled by the concept of breakable/unbreakable branches, so I didn't want to break unbreakable branches. In fact, "breakable" in this context means "breakable by a topology analysis algorithm that avoids redundant equations by breaking loops into spanning trees". If we open a switch by setting the admittance to zero, //we know// the branch has to be broken there, we don't need an algorithm to determine that.
    810
    911Of course this means we also have to explicitly remove the equation that relates the overconstrained variables on the two connectors of the line, in case it gets opened, otherwise we may end up with redundant equations. This requires an exception to the rule set forth in {{{Section 8.3.4}}}, because we'd need to have a conditional equation which is only activated when the branch is active. This exception is justified because we are not running the risk to not have the right number of equations, since this is handled nicely by the graph topology algorithm.