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. 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

 

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