81 lines
2.7 KiB
Mathematica
81 lines
2.7 KiB
Mathematica
|
|
function [ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ...
|
|||
|
|
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY ...
|
|||
|
|
cap] = dataRead(lineZ,dataFile )
|
|||
|
|
data=dlmread(dataFile);
|
|||
|
|
baseHighU=data(1,2);
|
|||
|
|
fsY0=sparse(0);
|
|||
|
|
fsY1=sparse(0);
|
|||
|
|
fsY2=sparse(0);
|
|||
|
|
zeroEntries=find(data(:,1)==0);
|
|||
|
|
lines=data(zeroEntries(1)+1:zeroEntries(2)-1,:);
|
|||
|
|
[setIJ,nodeNum]=numberNode(lines);
|
|||
|
|
if size(setIJ,2)>size(setIJ,1)
|
|||
|
|
setIJ=setIJ';
|
|||
|
|
end
|
|||
|
|
Balance=data(1,1);
|
|||
|
|
Balance=nodeNum(setIJ==Balance);
|
|||
|
|
%%three-phase
|
|||
|
|
phaseABCY=sparse(3*length(nodeNum),3*length(nodeNum));
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>ͺŶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
linePar=lines(:,1);
|
|||
|
|
linePar=unique(linePar);
|
|||
|
|
for I=1:length(linePar)
|
|||
|
|
[fs30,fs31,fs32,retphaseABCY]=lineWithConfig(setIJ,nodeNum,lineZ,lines,linePar(I),baseHighU);
|
|||
|
|
%phaseABCY <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD>3n x 3n ά
|
|||
|
|
fsY0=fsY0+fs30;
|
|||
|
|
fsY1=fsY1+fs31;
|
|||
|
|
fsY2=fsY2+fs32;
|
|||
|
|
phaseABCY=phaseABCY+retphaseABCY;
|
|||
|
|
end
|
|||
|
|
%% <EFBFBD>ѵ<EFBFBD><EFBFBD>ݼӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
cap=data(zeroEntries(2)+1:zeroEntries(3)-1,:);
|
|||
|
|
if ~isempty(cap)
|
|||
|
|
capNode=nodeNum(ismember(setIJ,cap(:,1)));
|
|||
|
|
end
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
capG=1j*cap(:,2)/1000;
|
|||
|
|
% fs3Y=3/3*diag([Zl+2*Zm,Zl-Zm,Zl-Zm]);%<EFBFBD><EFBFBD><EFBFBD>ﲻ<EFBFBD><EFBFBD>1/3<EFBFBD><EFBFBD>IEEE<EFBFBD>ϵĹ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>
|
|||
|
|
fsY0=fsY0+sparse(capNode,capNode,capG,length(fsY0),length(fsY0));
|
|||
|
|
fsY1=fsY1+sparse(capNode,capNode,capG,length(fsY1),length(fsY1));
|
|||
|
|
fsY2=fsY2+sparse(capNode,capNode,capG,length(fsY2),length(fsY2));
|
|||
|
|
|
|||
|
|
%% spot load
|
|||
|
|
busNum=length(nodeNum);
|
|||
|
|
spotloads=data(zeroEntries(3)+1:zeroEntries(4)-1,:);
|
|||
|
|
spotloads(:,2:end)=spotloads(:,2:end)/1000;
|
|||
|
|
phaseASpotLoadP=sparse(busNum,1);
|
|||
|
|
phaseBSpotLoadP=sparse(busNum,1);
|
|||
|
|
phaseCSpotLoadP=sparse(busNum,1);
|
|||
|
|
phaseASpotLoadQ=sparse(length(nodeNum),1);
|
|||
|
|
phaseBSpotLoadQ=sparse(length(nodeNum),1);
|
|||
|
|
phaseCSpotLoadQ=sparse(length(nodeNum),1);
|
|||
|
|
phaseASpotLoadP( ismember(setIJ,spotloads(:,1) ) )=spotloads(:,2);
|
|||
|
|
phaseBSpotLoadP( ismember(setIJ,spotloads(:,1) ) )=spotloads(:,4);
|
|||
|
|
phaseCSpotLoadP( ismember(setIJ,spotloads(:,1) ) )=spotloads(:,6);
|
|||
|
|
phaseASpotLoadQ( ismember(setIJ,spotloads(:,1) ) )=spotloads(:,3);
|
|||
|
|
phaseBSpotLoadQ( ismember(setIJ,spotloads(:,1) ) )=spotloads(:,5);
|
|||
|
|
phaseCSpotLoadQ( ismember(setIJ,spotloads(:,1) ) )=spotloads(:,7);
|
|||
|
|
%% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
cap=data(zeroEntries(2)+1:zeroEntries(3)-1,:);
|
|||
|
|
if ~isempty(cap)
|
|||
|
|
capNode=nodeNum(ismember(setIJ,cap(:,1)));
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>еIJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD>
|
|||
|
|
capB=cap(:,2:4)/1000;
|
|||
|
|
cap=struct();
|
|||
|
|
cap.capNode=capNode;
|
|||
|
|
cap.capB=capB;
|
|||
|
|
%<EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
|
|||
|
|
offSet=(capNode-1)*3+1;
|
|||
|
|
phaseABCY=phaseABCY+sparse(offSet,offSet,1j*capB(:,1),busNum*3,busNum*3);
|
|||
|
|
offSet=(capNode-1)*3+2;
|
|||
|
|
phaseABCY=phaseABCY+sparse(offSet,offSet,1j*capB(:,2),busNum*3,busNum*3);
|
|||
|
|
offSet=(capNode-1)*3+3;
|
|||
|
|
phaseABCY=phaseABCY+sparse(offSet,offSet,1j*capB(:,3),busNum*3,busNum*3);
|
|||
|
|
else
|
|||
|
|
cap=struct();
|
|||
|
|
cap.capNode=[];
|
|||
|
|
cap.capB=sparse(1,3);
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|