Ray, it is not just a freak coincidence, the system of linear equations in DC powerflow lends to a solution for almost all cases I tried where islands are formed. With the example you gave here, you hit the nail on the head. It lends to solution even for non-matching load and generation (for situation there is no slack bus). One possible solution could be it could check all the islands there is [for example using extract_islands()], and setting PG=PD (this could be done by distributing or shedding the loads in equal proportion at each loaded bus); this will lead to true solution of the Newton's powerflow. Could this work? I don't think this is computational very expensive.
On Tue, Mar 24, 2015 at 2:49 AM, Ray Zimmerman <[email protected]> wrote: > Well, conceptually, no I’m afraid it doesn’t answer my question. For > example, suppose you have a system with a single slack bus and you open > several lines and create an island with more load than generation, with no > slack bus. How is it possible for a DC power flow to converge* to any > meaningful answer? A set of voltage angles that satisfies the DC power > balance equations does not exist. > > However, in trying some examples to verify my understanding, I see that > see that MATPOWER happily returns success = 1 for some such cases, > sometimes without Matlab even issuing any warning of a singular matrix. > Some of the voltage angles are obviously garbage (extremely large), but one > may not think to check that. So, I see a potential source for the confusion > on this. > > I had assumed that Matlab would complain about a singular matrix in these > cases, but it seems that maybe I need to add an explicit check to the DC > power flow to set the success flag to zero in such cases. Hmmm, wonder > what’s the most reliable inexpensive check I can do? > > See below for a fun example ... > > Ray > > * By the way, the DC power flow is computed directly by solving a linear > system of equations, not by some iterative numerical algorithm, so > “converging” isn’t really the correct term. > > > Example: > > mpc = loadcase('case30'); > mpc.branch([15; 25; 26; 32], BR_STATUS) = 0; > r = rundcpf(mpc); > case_info(r) > > Hmmm, there’s an island, but everything looks fine … generation and load > in the island-without-slack even match! Must be that case30 is already a > solved DC PF case. > > mpc.gen(6, PG) = 0; > r = rundcpf(mpc); > > Ok, now, no errors or singular matrix warnings, but we have voltages > angles upwards of 1e15 and load and generation in island do *NOT* match. > Putting a breakpoint in dcpf.m shows that the matrix being factored has a > condition number near 1e17 … i.e. it really is singular. > > > > On Mar 23, 2015, at 12:16 PM, Bijay Hughes <[email protected]> > wrote: > > AC powerflow has convergence problem in many scenarios which we all know. > The DC powerflow converges for the whole system even if this system has one > or many islands; however, if a system contains one or many islands the AC > powerflow does not converge. Does this answer your question? > > On Mon, Mar 23, 2015 at 11:44 PM, Ray Zimmerman <[email protected]> wrote: > >> I don’t understand approach (1). I don’t know why you say that DC power >> flow implies you don’t have to keep track of islanding. How does the AC or >> DC power flow make a difference here? >> >> Ray >> >> >> > On Mar 20, 2015, at 6:08 AM, Bijay Hughes <[email protected]> >> wrote: >> > >> > Hej all, >> > >> > I am modeling blackout in the US transmission lines system, and have >> two approaches to do so. I do it with DC power flow, which means I don't >> need to take care of islanding if I don't want to (although I am aware that >> I need to take care of isolated buses for convergence reasons). I have two >> approaches to do so: (1) do cascading failure simulation on whole system >> each iteration, whereby one doesn't keep track of islands; (2) do cascading >> failure simulation on the whole system to begin, see if islands are formed, >> and run the same simulation on each of these islands, and repeat the >> process exhaustively. In both cases, the powerflow converges as it is DC >> flow. However, the results are not matching, and I am wondering why. Could >> it be because of the difference in the number of slack buses? Because in my >> approach (1) the system will only have one slack bus in each iteration, >> however in my approach (2) the system will have multiple slack buses as the >> matpower chooses slack buses for each island automatically, thereby my >> system as a whole will have multiple slack buses. Is this the only reason? >> Which approach is better, (1) or (2)? >> > >> > Best, >> > >> > BH >> >> >> >> > >
