On May 16, 2012, at 2:22 PM, ?????D wrote:

> Shri,
> 
> I??m sorry for giving you the wrong inner index for the isolated buses. 
> Actually what I presented is the index in the Jacobian matrix of Newton 
> method, not the bus number (relative to ref, pq, pv list).
> 
> You fixed the problem, but actually your code is not valid universally: all 
> buses connecting to in-service branch is not sufficient for a connected 
> graph, two isolated subsystem for example.
> 
I guess an example of such a case would be an outage of a tie line connecting 
two areas, resulting in either, or both the, end buses to be isolated. I guess 
the code should work for this scenario too if the updated branch (with 
br_status for the tie line set to 0) and bus data is provided. Some other work 
may be needed if a generator/load/shunt exists on the bus that is going to be 
isolated and ofcourse rebuilding the Ybus.

> Topological check may be a more complex task. I guess Dr. Zimmerman will be 
> very glad to involve this function if you??d like to provide your code for a 
> really valid topological checkJ
> 
    Sure, you can have the code.

Btw, i am keen to know if you guys have done any experiments with matrix 
reordering schemes available with Matlab (AMD, SYMAMD, SYMRCM, etc.) to reduce 
the factored matrix fill-ins and whether it is worth doing Jacobian reordering.

Thanks,
Shri

>  
> 
> Shiyang Li
> 
>  
> ??????: [email protected] 
> [mailto:[email protected]] ???? Shrirang Abhyankar
> ????????: 2012??5??17?? 2:55
> ??????: MATPOWER discussion forum
> ????: Re: case3375wp
>  
> Shiyang,
>    Thanks for the information. However, i could not figure out external 
> numbering for buses with inner indices 591,3574. Does the n2i variable in 
> ext2int.m hold the external to internal index transformation? If so, then 
> find(n2i == 591) returned 228 which i assume is the external numbering. This 
> bus is listed in the some branch to and from bus list. find(n2i == 3574) 
> returned an empty matrix.
>  
> Hence, i wrote a small topological check code to find which buses are 
> isolated.
>  
> %% define named indices into bus, gen, branch matrices
> [PQ, PV, REF, NONE, BUS_I, BUS_TYPE, PD, QD, GS, BS, BUS_AREA, VM, ...
>     VA, BASE_KV, ZONE, VMAX, VMIN, LAM_P, LAM_Q, MU_VMAX, MU_VMIN] = idx_bus;
> [F_BUS, T_BUS, BR_R, BR_X, BR_B, RATE_A, RATE_B, RATE_C, ...
>     TAP, SHIFT, BR_STATUS, PF, QF, PT, QT, MU_SF, MU_ST, ...
>     ANGMIN, ANGMAX, MU_ANGMIN, MU_ANGMAX] = idx_brch;
> [GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, GEN_STATUS, PMAX, PMIN, ...
>     MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN, PC1, PC2, QC1MIN, QC1MAX, ...
>     QC2MIN, QC2MAX, RAMP_AGC, RAMP_10, RAMP_30, RAMP_Q, APF] = idx_gen;
>  
> data = 'case3375wp';
>  
> %% read data
> mpc = loadcase(data);
>  
> isolated_bus = [];
> nbranch = length(mpc.branch(:,1));
> nbus = length(mpc.bus(:,1));
> % Include only ON branches
> kk = find(mpc.branch(:,BR_STATUS) == 1);
> branch = mpc.branch(kk,:);
> for(i=1:nbus)
>   % Check if bus i is in the from or to bus list,
>   % If not then add it to the list of isolated buses
>   ii = find(branch(:,F_BUS) == mpc.bus(i,BUS_I));
>   jj = find(branch(:,T_BUS) == mpc.bus(i,BUS_I));
>   if(isempty(ii) & isempty(jj))
>     isolated_bus = [isolated_bus;mpc.bus(i,BUS_I)];
>   end
> end
>  
> and found that bus 10287 (external numbering) is isolated. It's internal 
> number is 285. Setting its bus type to NONE (4) resulted in converged power 
> flow.
>  
> Thanks,
> Shri
>  
> On May 16, 2012, at 12:06 PM, ?????D wrote:
> 
> 
> Shri,
> 
> I think you are right. There may be some problems with case3375wp.
> 
> sprank(J) = 6355 < 6357, the size of J. So the Jacobian matrix is surely 
> singular.
> 
> As far as I know, Matpower doesn??t apply a topological check before PF 
> calculation. So if some parts of the system are actually isolated but not 
> assigned the bus type ??4?? (none) to, Jacobian matrix will have all-zero 
> rows and columns, then singular.
> 
> For case3375wp, bus 591, 3574 (inner index) are actually isolated. You could 
> find their external index; assigned them bus type 4; then run the case again.
> 
> I think Dr. Zimmerman may correct this mistake in the next version.
> 
>  
> 
> Shiyang Li
> 
>  
> -----????????-----
> ??????: [email protected] 
> [mailto:[email protected]]???? Shrirang Abhyankar
> ????????: 2012??5??16?? 23:57
> ??????: MATPOWER discussion forum
> ????: case3375wp
>  
> There seems to be something amiss with the case3375wp data. Matlab complains 
> of singular Jacobian matrix.
>  
> mpopt= mpoption;
> mpoption(31) = 2;
> runpf('case3375wp',mpopt,'pfresults');
>  
> (printpf is commented out)
>  
> it    max P & Q mismatch (p.u.)
> ----  ---------------------------
>   0         2.442e+01Warning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   1               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   2               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   3               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   4               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   5               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   6               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   7               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   8               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
>   9               NaNWarning: Matrix is singular to working precision.
> > In newtonpf at 125
>   In runpf at 224
>  
> 10               NaN
> Newton's method power flow did not converge in 10 iterations.
>  
> Thanks,
> Shri

Reply via email to