distributionnetwork-power2c.../dataRead.m

47 lines
1.6 KiB
Matlab

function [ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ...
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY] = dataRead(lineZ,dataFile )
data=dlmread(dataFile);
baseHighU=data(1,2);
fsY0=0;
fsY1=0;
fsY2=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));
%把线路型号都给读出来
linePar=lines(:,1);
linePar=unique(linePar);
for I=1:length(linePar)
[fs30,fs31,fs32,retphaseABCY]=lineWithConfig(setIJ,nodeNum,lineZ,lines,linePar(I),baseHighU);
%phaseABCY 三相的导纳矩阵3n x 3n 维
fsY0=fsY0+fs30;
fsY1=fsY1+fs31;
fsY2=fsY2+fs32;
phaseABCY=phaseABCY+retphaseABCY;
end
%% 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);
end