distributionnetwork-power2c.../dataRead.m

69 lines
2.2 KiB
Matlab

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));
%把线路型号都给读出来
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);
%% 补偿电容
cap=data(zeroEntries(2)+1:zeroEntries(3)-1,:);
if ~isempty(cap)
capNode=nodeNum(cap(:,1)==setIJ);
%数据文件中的补偿电容给的是补偿容量,要将其转换为导纳。
capB=cap(:,2:4)/1000;
cap=struct();
cap.capNode=capNode;
cap.capB=capB;
%把补偿电容加到矩阵中。
offSet=(capNode-1)*3+1;
phaseABCY=phaseABCY+sparse(offSet,offSet,1j*capB(:,1),busNum*3,busNum*3);
offSet=(capNode-1)*3+1;
phaseABCY=phaseABCY+sparse(offSet,offSet,1j*capB(:,2),busNum*3,busNum*3);
offSet=(capNode-1)*3+1;
phaseABCY=phaseABCY+sparse(offSet,offSet,1j*capB(:,3),busNum*3,busNum*3);
else
cap=struct();
cap.capNode=[];
cap.capB=sparse(1,3);
end
end