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

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(1:3:end)=phaseASpotLoadP+1j*phaseASpotLoadQ;
pLoadABC(2:3:end)=phaseBSpotLoadP+1j*phaseBSpotLoadQ; pLoadABC(2:3:end)=phaseBSpotLoadP+1j*phaseBSpotLoadQ;
pLoadABC(3:3:end)=phaseCSpotLoadP+1j*phaseCSpotLoadQ; pLoadABC(3:3:end)=phaseCSpotLoadP+1j*phaseCSpotLoadQ;
output_args=Sp3+pLoadABC; ck=Sp3+pLoadABC;
ck=output_args;
ck(3*(Balance-1)+1:3*(Balance-1)+3)=0; ck(3*(Balance-1)+1:3*(Balance-1)+3)=0;
if any(abs(ck)>1e-5) if any(abs(ck)>1e-5)
fprintf('\n'); fprintf('\n');
end end
output_args=ck;
end end

26
run.m
View File

@ -2,7 +2,7 @@ clc
clear clear
lineZ=readLineZ('.\feeder13\lineParameter.txt'); lineZ=readLineZ('.\feeder13\lineParameter.txt');
[ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ... [ 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); a=exp(1j*2*pi/3);
Tp2f=1/3*[1 1 1; Tp2f=1/3*[1 1 1;
1 a a^2; 1 a a^2;
@ -23,7 +23,7 @@ busNum=length(phaseASpotLoadP);
% %
Vmf1=sparse(ones(busNum,1)); Vmf1=sparse(ones(busNum,1));
Vaf1=sparse(zeros(busNum,1)); Vaf1=sparse(zeros(busNum,1));
Vf1=Vmf1.*exp(1j*Vaf1); % Vf1=Vmf1.*exp(1j*Vaf1);
%Vaf1=sparse(zeros(busNum,1)); %Vaf1=sparse(zeros(busNum,1));
% %
PQi=nodeNum; PQi=nodeNum;
@ -53,6 +53,13 @@ fsY0(:,Balance)=0;
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum); fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
while(k<=kmax && maxD> EPS) while(k<=kmax && maxD> EPS)
k=k+1; 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']); VoltpABC=Tf2p*conj([ Vf0'; (Vmf1.*exp(1j*Vaf1))'; Vf2']);
VoltpA=conj(VoltpABC(1,:)'); VoltpA=conj(VoltpABC(1,:)');
@ -69,15 +76,6 @@ while(k<=kmax && maxD> EPS)
If2(Balance)=0; If2(Balance)=0;
Vf0=fsY0\If0; Vf0=fsY0\If0;
Vf2=fsY2\If2; 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 end
Vf1=Vmf1.*exp(1j*Vaf1); Vf1=Vmf1.*exp(1j*Vaf1);
%% %%
@ -90,8 +88,10 @@ disp([' A B C']
full(abs(VoltpABC')) full(abs(VoltpABC'))
fprintf('\n'); fprintf('\n');
disp([setIJ,nodeNum ]) disp([setIJ,nodeNum ])
checkSSatisfied(Balance,phaseABCY,VoltpABC, ... %%
ub=checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ... phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ ); phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
%% fprintf('%f\n',full(max(abs(ub))))