修复求导纳矩阵的bug。

Signed-off-by: facat <facat@ipso.laptop>
This commit is contained in:
facat 2014-04-21 20:56:37 +08:00
parent 0561f915c9
commit ff2f5510d8
3 changed files with 28 additions and 22 deletions

View File

@ -1,15 +1,22 @@
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));
%% 601 begin
[fs30,fs31,fs32,retphaseABCY]=lineWithConfig(setIJ,nodeNum,lineZ,lines,601);
[fs30,fs31,fs32,retphaseABCY]=lineWithConfig(setIJ,nodeNum,lineZ,lines,601,baseHighU);
%phaseABCY ÈýÏàµÄµ¼ÄɾØÕó3n x 3n ά
fsY0=fs30;
fsY1=fs31;
@ -17,12 +24,18 @@ fsY2=fs32;
phaseABCY=phaseABCY+retphaseABCY;
% 601 end
%% 602 begin
[fs30,fs31,fs32,retphaseABCY]=lineWithConfig(setIJ,nodeNum,lineZ,lines,602);
[fs30,fs31,fs32,retphaseABCY]=lineWithConfig(setIJ,nodeNum,lineZ,lines,602,baseHighU);
fsY0=fsY0+fs30;
fsY1=fsY1+fs31;
fsY2=fsY2+fs32;
phaseABCY=phaseABCY+retphaseABCY;
% 602 end
%%
[fs30,fs31,fs32,retphaseABCY]=lineWithConfig(setIJ,nodeNum,lineZ,lines,123,baseHighU);
fsY0=fsY0+fs30;
fsY1=fsY1+fs31;
fsY2=fsY2+fs32;
phaseABCY=phaseABCY+retphaseABCY;
%% spot load
busNum=length(nodeNum);
spotloads=data(zeroEntries(3)+1:zeroEntries(4)-1,:);

View File

@ -1,13 +1,21 @@
function [ fs30,fs31,fs32,phaseABCY ] = lineWithConfig(setIJ,nodeNum,lineZ,lines,config )
function [ fs30,fs31,fs32,phaseABCY ] = lineWithConfig(setIJ,nodeNum,lineZ,lines,config,baseHighU )
phase3Entry=find(lines(:,1)==config);
if isempty(phase3Entry)
fs30=0;
fs31=0;
fs32=0;
phaseABCY=0;
fprintf('warning: line type %d not found.\n',config)
return;
end
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);%
phase3Z=phase3R+1j*phase3X;
phase3Y=inv(phase3Z);
%
phase3Y(1,3)=phase3Y(1,2);
phase3Y(3,1)=phase3Y(2,1);
@ -15,18 +23,7 @@ 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;
@ -41,7 +38,7 @@ Tf2p=inv(Tp2f);
% Tf2p=[1 1 1;
% 1 a^2 a;
% 1 a a^2];
fs3Y=Tp2f*phase3Y*Tf2p;
% fs3Y=Tp2f*phase3Y*Tf2p;
Zl=phase3Y(1,1);
Zm=phase3Y(2,1);
fs3Y=3/3*diag([Zl+2*Zm,Zl-Zm,Zl-Zm]);%1/3IEEE

6
run.m
View File

@ -2,7 +2,7 @@ clc
clear
lineZ=readLineZ('.\feeder13\lineParameter.txt');
[ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ...
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY]=dataRead(lineZ,'.\feeder13\data2.txt');
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY]=dataRead(lineZ,'.\feeder13\data1.txt');
a=exp(1j*2*pi/3);
Tp2f=1/3*[1 1 1;
1 a a^2;
@ -81,10 +81,6 @@ while(k<=kmax && maxD> EPS)
end
Vf1=Vmf1.*exp(1j*Vaf1);
%%
V=[1.0*exp(1j*0);1.0*exp(-1j*pi/180*120);1.0*exp(1j*pi/180*120)];
abs(Tp2f*V);
Tf2p*Tp2f*V;
%%
(Vf0.*conj(fsY00*Vf0)+Vf1.*conj(fsY11*Vf1)+Vf2.*conj(fsY22*Vf2))*3;
conj(Tf2p*[If0(2);If1(2);If2(2)]).*(Tf2p*[Vf0(2);Vf1(2);Vf2(2)]);
IpABC=Tf2p*conj([If0';If1';If2']);