69 lines
2.2 KiB
Matlab
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
|
|
|