distributionnetwork-power2c.../YMatrix.m

52 lines
2.4 KiB
Mathematica
Raw Normal View History

function [Y,Yangle,r,c,GB]=YMatrix(Busnum,lineI,lineJ,lineR,lineX,lineB2,groundbranchI,groundbranchB,transI,transJ,transR,transX,transK)
%% <EFBFBD><EFBFBD>·
% t1=-lineR./(lineR.^2+lineX.^2);%<EFBFBD>
% t2=lineX./(lineR.^2+lineX.^2);%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
% G = +sparse(lineI,lineJ,t1,Busnum,Busnum) + sparse(lineJ,lineI,t1,Busnum,Busnum);
% B = sparse(lineI,lineJ,t2,Busnum,Busnum)+sparse(lineJ,lineI,t2,Busnum,Busnum);
% G = G - sparse(1:Busnum,1:Busnum,sum(G,2)');
% B = B - sparse(1:Busnum,1:Busnum,sum(B,2)');
t1=lineR+1j*lineX;
t2=1./t1;
% realT2=real(t2);
% imagT2=imag(t2);
GB=sparse(lineI,lineJ,-t2,Busnum,Busnum) + sparse(lineJ,lineI,-t2,Busnum,Busnum);
GB=GB-sparse(1:Busnum,1:Busnum,sum(GB,2));
% G = +sparse(lineI,lineJ,-realT2,Busnum,Busnum) + sparse(lineJ,lineI,-realT2,Busnum,Busnum);
% B = sparse(lineI,lineJ,-imagT2,Busnum,Busnum)+sparse(lineJ,lineI,-imagT2,Busnum,Busnum);
% G = G - sparse(1:Busnum,1:Busnum,sum(G,2)');
% B = B - sparse(1:Busnum,1:Busnum,sum(B,2)');
% G=real(GB);
% B=imag(GB);
%% <EFBFBD>ӵص<EFBFBD><EFBFBD><EFBFBD>
% t3=sparse(lineI,lineI,lineB2,Busnum,Busnum)+sparse(lineJ,lineJ,lineB2,Busnum,Busnum);%<EFBFBD>ӵ<EFBFBD>֧·
%B=B+t3;
t1=1j*lineB2;
GB=GB+sparse(lineI,lineI,t1,Busnum,Busnum)+sparse(lineJ,lineJ,t1,Busnum,Busnum);
% B=imag(GB);
%% <EFBFBD>ӵ<EFBFBD>֧·
if isempty(groundbranchI)==0 %<EFBFBD>ǿ<EFBFBD>
% B=B+sparse(groundbranchI,groundbranchI,groundbranchB,Busnum,Busnum);
GB=GB+sparse(groundbranchI,groundbranchI,1j*groundbranchB,Busnum,Busnum);
% B=imag(GB);
end
%% <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>
if isempty(transI)==0 %<EFBFBD>ǿ<EFBFBD>
% t1 = -transR./(transR.^2+transX.^2);
% t2 = transX./(transR.^2+transX.^2);
t1=1./(transR+1j*transX);
% G = G+sparse(transI,transJ,t1./transK,Busnum,Busnum)+sparse(transJ,transI,t1./transK,Busnum,Busnum)-sparse(transI,transI,t1./transK./transK,Busnum,Busnum)-sparse(transJ,transJ,t1,Busnum,Busnum);
% B = B+sparse(transI,transJ,t2./transK,Busnum,Busnum)+sparse(transJ,transI,t2./transK,Busnum,Busnum)-sparse(transI,transI,t2./transK./transK,Busnum,Busnum)-sparse(transJ,transJ,t2,Busnum,Busnum);
GB=GB+sparse(transI,transJ,-t1./transK,Busnum,Busnum)+sparse(transJ,transI,-t1./transK,Busnum,Busnum)+sparse(transI,transI,t1./transK./transK,Busnum,Busnum)+sparse(transJ,transJ,t1,Busnum,Busnum);
% G=real(GB);
% B=imag(GB);
end
%GB=G+1j*B;
Y = abs(GB);
[r,c,Yangle] = find(GB);
Yangle=angle(Yangle);
%Yangle=angle(GB);
%Angle = angle(GB(GB~=0));
end