function [ fs30,fs31,fs32,phaseABCY ] = lineWithConfig(setIJ,nodeNum,lineZ,lines,config ) phase3Entry=find(lines(:,1)==config); phase3Line=lines(phase3Entry,:); phase3Line(:,4)=phase3Line(:,4)/1000; entry=find(lineZ(:,1)==config); phase3R=lineZ(entry+1:entry+3,:); phase3X=lineZ(entry+5:entry+7,:); phase3B2=lineZ(entry+9:entry+11,:); phase3Y=1./(phase3R+1j*phase3X);%原始的三相导纳 %phase3Y=1./(1j*phase3X);%原始的三相导纳 %让对角和非对角相等 phase3Y(1,3)=phase3Y(1,2); phase3Y(3,1)=phase3Y(2,1); phase3Y(3,2)=phase3Y(3,1); phase3Y(2,3)=phase3Y(1,3); phase3Y(2,2)=phase3Y(1,1); phase3Y(3,3)=phase3Y(1,1); % phase3Y(1,3)=10; % phase3Y(3,2)=10; % phase3Y(2,3)=10; % phase3Y(2,2)=phase3Y(1,1); % phase3Y(3,3)=phase3Y(1,1); % phase3Y(1,2)=10; % phase3Y(2,1)=10; % phase3Y(3,1)=10; % phase3Y(1,3)=10; %标幺值 baseHighU=4.16; baseLowU=0.48; baseS=1; baseY=baseS/(baseHighU^2); phase3Y=phase3Y/baseY; %进行Fortescue变换 %直接写结果 a=exp(1j*2*pi/3); Tp2f=1/3*[1 1 1; 1 a a^2; 1 a^2 a]; Tf2p=inv(Tp2f); % % Tf2p=[1 1 1; % 1 a^2 a; % 1 a a^2]; fs3Y=Tp2f*phase3Y*Tf2p; Zl=phase3Y(1,1); Zm=phase3Y(2,1); fs3Y=3/3*diag([Zl+2*Zm,Zl-Zm,Zl-Zm]);%这里不是1/3,IEEE上的公式错了。 fs3Y(abs(fs3Y)<1e-5)=0; fs3Y=sparse(fs3Y); lineNodeI=zeros(length(phase3Line(:,2) ) ,1); lineNodeJ=zeros(length(phase3Line(:,2) ) ,1); for I=1:length(lineNodeI) lineNodeI(I)=nodeNum(setIJ==phase3Line(I,2) ); lineNodeJ(I)=nodeNum(setIJ==phase3Line(I,3) ); end busNum=length(nodeNum); %生成三相导纳矩阵 phaseABCY=sparse(busNum*3,busNum*3); for I=1:length(phase3Line(:,4)) [phase3Yr,phase3Yc,phase3Yv]=find(phase3Y./phase3Line(I,4)); offsetI=phase3Yr+3*(lineNodeI(I)-1); offsetJ=phase3Yc+3*(lineNodeJ(I)-1); phaseABCY=phaseABCY+sparse(offsetI,offsetJ,-phase3Yv,busNum*3,busNum*3); phaseABCY=phaseABCY+sparse(offsetJ,offsetI,-phase3Yv,busNum*3,busNum*3); %1 diagY=sum(phaseABCY(:,1:3:end),2); offsetI=1:busNum*3; offsetJ=zeros(busNum*3,1); for J=0:busNum*3-1 offsetJ(J+1)=floor(J/3)*3+1; end phaseABCY=phaseABCY-sparse(offsetI,offsetJ,diagY,busNum*3,busNum*3); %2 diagY=sum(phaseABCY(:,2:3:end),2); offsetJ=zeros(busNum*3,1); for J=0:busNum*3-1 offsetJ(J+1)=floor(J/3)*3+2; end phaseABCY=phaseABCY-sparse(offsetI,offsetJ,diagY,busNum*3,busNum*3); %3 diagY=sum(phaseABCY(:,3:3:end),2); offsetJ=zeros(busNum*3,1); for J=0:busNum*3-1 offsetJ(J+1)=floor(J/3)*3+3; end phaseABCY=phaseABCY-sparse(offsetI,offsetJ,diagY,busNum*3,busNum*3); end fs30=sparse(lineNodeI,lineNodeJ,-fs3Y(1,1)./phase3Line(:,4),busNum,busNum); fs30=fs30+sparse(lineNodeJ,lineNodeI,-fs3Y(1,1)./phase3Line(:,4),busNum,busNum); fs30=fs30-sparse(1:busNum,1:busNum,sum(fs30,2)); fs31=sparse(lineNodeI,lineNodeJ,-fs3Y(2,2)./phase3Line(:,4),busNum,busNum); fs31=fs31+sparse(lineNodeJ,lineNodeI,-fs3Y(2,2)./phase3Line(:,4),busNum,busNum); fs31=fs31-sparse(1:busNum,1:busNum,sum(fs31,2)); fs32=sparse(lineNodeI,lineNodeJ,-fs3Y(3,3)./phase3Line(:,4),busNum,busNum); fs32=fs32+sparse(lineNodeJ,lineNodeI,-fs3Y(3,3)./phase3Line(:,4),busNum,busNum); fs32=fs32-sparse(1:busNum,1:busNum,sum(fs32,2)); end