更改了计算迭代步骤。优化收敛精度。

Signed-off-by: facat <facat@ipso.laptop>
This commit is contained in:
facat 2014-04-21 22:29:24 +08:00
parent ee14c207aa
commit a1a812faa5
2 changed files with 15 additions and 15 deletions

View File

@ -15,11 +15,11 @@ 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=Sp3+pLoadABC;
ck(3*(Balance-1)+1:3*(Balance-1)+3)=0;
if any(abs(ck)>1e-5)
fprintf('\n');
end
output_args=ck;
end

26
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\data1.txt');
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY]=dataRead(lineZ,'.\feeder13\data2.txt');
a=exp(1j*2*pi/3);
Tp2f=1/3*[1 1 1;
1 a a^2;
@ -23,7 +23,7 @@ busNum=length(phaseASpotLoadP);
%
Vmf1=sparse(ones(busNum,1));
Vaf1=sparse(zeros(busNum,1));
Vf1=Vmf1.*exp(1j*Vaf1);
% Vf1=Vmf1.*exp(1j*Vaf1);
%Vaf1=sparse(zeros(busNum,1));
%
PQi=nodeNum;
@ -53,6 +53,13 @@ fsY0(:,Balance)=0;
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
while(k<=kmax && maxD> EPS)
k=k+1;
[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(abs([dP;dQ;]));
jaco=Jacobi(Balance,busNum,QGi,Vmf1,YdotSinVolt,YdotCosVolt,diag_Volt_YdotSin,diag_Volt_YdotCos);%
[dV, dVangle]=Solv(busNum,jaco,dP,dQ);%
[Vmf1, Vaf1]=Modify(Vmf1,Vaf1,dV,dVangle,1);
fprintf(' %d %f\n\n',k,full(maxD));
%
VoltpABC=Tf2p*conj([ Vf0'; (Vmf1.*exp(1j*Vaf1))'; Vf2']);
VoltpA=conj(VoltpABC(1,:)');
@ -69,15 +76,6 @@ while(k<=kmax && maxD> EPS)
If2(Balance)=0;
Vf0=fsY0\If0;
Vf2=fsY2\If2;
% Vf2=Vf2+refV2;
% Vf0=Vf0+refV0;
[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(abs([dP;dQ;]));
jaco=Jacobi(Balance,busNum,QGi,Vmf1,YdotSinVolt,YdotCosVolt,diag_Volt_YdotSin,diag_Volt_YdotCos);%
[dV, dVangle]=Solv(busNum,jaco,dP,dQ);%
[Vmf1, Vaf1]=Modify(Vmf1,Vaf1,dV,dVangle,1);
fprintf(' %d %f\n\n',k,full(maxD));
end
Vf1=Vmf1.*exp(1j*Vaf1);
%%
@ -90,8 +88,10 @@ disp([' A B C']
full(abs(VoltpABC'))
fprintf('\n');
disp([setIJ,nodeNum ])
checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
%%
ub=checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
%%
fprintf('%f\n',full(max(abs(ub))))