添加了判断潮流方程是否收敛的函数。

Signed-off-by: facat <facat@ipso.laptop>
This commit is contained in:
facat 2014-04-17 11:40:30 +08:00
parent 1cb3aae12f
commit 6b53c6e360
2 changed files with 38 additions and 25 deletions

25
checkSSatisfied.m Normal file
View File

@ -0,0 +1,25 @@
function [ output_args ] = checkSSatisfied(Balance,phaseABCY,VoltpABC,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP,phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ )
%%Fortiscue
busNum=size(phaseABCY,1)/3;
VoltpA=VoltpABC(1,:);
VoltpB=VoltpABC(2,:);
VoltpC=VoltpABC(3,:);
Vp3=sparse(busNum*3,1);
Vp3(1:3:end)=VoltpA;
Vp3(2:3:end)=VoltpB;
Vp3(3:3:end)=VoltpC;
Ip3=phaseABCY*Vp3;
Sp3=Vp3.*conj(Ip3);
%VoltpABC.*conj(IpABC);
pLoadABC=sparse(length(phaseASpotLoadP)*3,1);
pLoadABC(1:3:end)=phaseASpotLoadP+1j*phaseASpotLoadQ;
pLoadABC(2:3:end)=phaseBSpotLoadP+1j*phaseBSpotLoadQ;
pLoadABC(3:3:end)=phaseCSpotLoadP+1j*phaseCSpotLoadQ;
output_args=Sp3+pLoadABC;
ck=output_args;
ck(3*(Balance-1)+1:3*(Balance-1)+3)=0;
if any(abs(ck)>1e-5)
fprintf('');
end
end

38
run.m
View File

@ -2,7 +2,7 @@ clc
clear
lineZ=readLineZ('.\feeder13\lineParameter.txt');
[ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ...
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,nodeNum,Balance,phaseABCY]=dataRead(lineZ,'.\feeder13\data1.txt');
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,nodeNum,Balance,phaseABCY]=dataRead(lineZ,'.\feeder13\data2.txt');
%fsY1(1,1)=fsY1(1,1)+1j*1e-10;
a=exp(1j*2*pi/3);
Tp2f=1/3*[1 1 1;
@ -43,20 +43,13 @@ Vf0=sparse(busNum,1);
If0=sparse(busNum,1);
%×¼±¸Ðò¾ØÕó
fsY2(Balance,:)=0;
fsY2(:,Balance)=0;
fsY2=fsY2+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
fsY0(Balance,:)=0;
fsY0(:,Balance)=0;
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
fsY2(:,Balance)=0;
fsY2=fsY2+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
fsY0(Balance,:)=0;
fsY0(:,Balance)=0;
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
while(k<=kmax && maxD> EPS)
k=k+1;
%ƽºâ½Úµã¸ºĞòµçѹΪ0
%f2(Balance)=0;
%Vf2=fsY2\If2;
%Vf0=fsY0\If0;
[dP, dQ, YdotSinVolt, YdotCosVolt, diag_Volt_YdotSin, diag_Volt_YdotCos]=Unbalance(Balance,busNum, ...
PQi,PG,QG,QGi,PD,QD,Vmf1,Vaf1,fsY1amp,fsY1ang,r,c,Vf2,If2,Vf0,If0);%²»Æ½ºâÁ¿
maxD=max([dP;dQ;]);
@ -77,8 +70,8 @@ while(k<=kmax && maxD> EPS)
If0=conj(f012(1,:)');
If1=conj(f012(2,:)');
If2=conj(f012(3,:)');
If0(Balance)=0;
If2(Balance)=0;
If0(Balance)=0;
If2(Balance)=0;
Vf0=fsY0\If0;
Vf2=fsY2\If2;
end
@ -90,13 +83,8 @@ IpABC=Tf2p*conj([If0';If1';If2']);
VoltpABC=Tf2p*conj([ Vf0'; Vf1'; Vf2']);
disp([' A B C'])
full(abs(VoltpABC'))
VoltpA=VoltpABC(1,:);
VoltpB=VoltpABC(2,:);
VoltpC=VoltpABC(3,:);
Vp3=sparse(busNum*3,1);
Vp3(1:3:end)=VoltpA;
Vp3(2:3:end)=VoltpB;
Vp3(3:3:end)=VoltpC;
Ip3=phaseABCY*Vp3;
Sp3=Vp3.*conj(Ip3);
VoltpABC.*conj(IpABC);
checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
%%