function [Y,Yangle,r,c,GB]=YMatrix(Busnum,lineI,lineJ,lineR,lineX,lineB2,groundbranchI,groundbranchB,transI,transJ,transR,transX,transK) %% 线路 % t1=-lineR./(lineR.^2+lineX.^2);%电导 % t2=lineX./(lineR.^2+lineX.^2);%电纳 % 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); %% 接地导纳 % t3=sparse(lineI,lineI,lineB2,Busnum,Busnum)+sparse(lineJ,lineJ,lineB2,Busnum,Busnum);%接地支路 %B=B+t3; t1=1j*lineB2; GB=GB+sparse(lineI,lineI,t1,Busnum,Busnum)+sparse(lineJ,lineJ,t1,Busnum,Busnum); % B=imag(GB); %% 接地支路 if isempty(groundbranchI)==0 %非空 % B=B+sparse(groundbranchI,groundbranchI,groundbranchB,Busnum,Busnum); GB=GB+sparse(groundbranchI,groundbranchI,1j*groundbranchB,Busnum,Busnum); % B=imag(GB); end %% 变压器 if isempty(transI)==0 %非空 % 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