初步完成了只用正序的

Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2014-10-08 16:21:02 +08:00
parent af9b973115
commit 1ffa3c0bf3
1 changed files with 58 additions and 11 deletions

69
run.m
View File

@ -1,5 +1,5 @@
%%
%
%
clc
clear
lineZ=readLineZ('feeder13\lineParameter.txt');
@ -41,9 +41,11 @@ If2=sparse(busNum,1);
Vf0=sparse(busNum,1);
If0=sparse(busNum,1);
%
%01
fsY2(Balance,:)=0;
fsY2(:,Balance)=0;
fsY2=fsY2+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
%01
fsY0(Balance,:)=0;
fsY0(:,Balance)=0;
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
@ -69,6 +71,57 @@ while(k<=kmax && maxD> EPS)
iterPhaseASpotLoadQ=phaseASpotLoadQ+imag(SA);
iterPhaseBSpotLoadQ=phaseBSpotLoadQ+imag(SB);
iterPhaseCSpotLoadQ=phaseCSpotLoadQ+imag(SC);
%
CurpA=conj((iterPhaseASpotLoadP+1j*iterPhaseASpotLoadQ)./VoltpA);
CurpB=conj((iterPhaseBSpotLoadP+1j*iterPhaseBSpotLoadQ)./VoltpB);
CurpC=conj((iterPhaseCSpotLoadP+1j*iterPhaseCSpotLoadQ)./VoltpC);
%
f012=Tp2f*conj([CurpA';CurpB';CurpC']);
%
If0=conj(f012(1,:)');
If1=conj(f012(2,:)');
If2=conj(f012(3,:)');
%
V012=Tp2f*conj([VoltpA';VoltpB';VoltpC']);
%
V0=conj(V012(1,:)');
V1=conj(V012(2,:)');
V2=conj(V012(3,:)');
%
fsY11*V1;
%
mIf0=If0;
mIf1=If1;
mIf1(1)=0.02;
mIf1(3)=0.03;
Loadi=[ 1 2 3];
mIf2=If2;
%
fsY11=fsY11+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);%01
%%
%
Z=[%-Z
-real(mIf1(Loadi));
-imag(mIf1(Loadi));
];
H=fsY11(Loadi,:);
H=[
-real(H),imag(H);
-imag(H),-real(H);
];
% J=fsY11(Loadi,:);
% J=[
% conj(-real(J))',-conj(imag(J))';
% conj(imag(J))',-conj(real(J))';
% ];
J=conj(H');
%J*Z+J*H*X=0 ->J*H*X=-J*Z
X=-inv(J*H)*J*Z;
% X=inv(conj(H)'*H)*conj(H)'*Z;
Xr=X(1:length(X)/2);
Xi=X(length(X)/2+1:end);
Xri=Xr+1j*Xi;
fsY11*Xri;
[dP, dQ, YdotSinVolt, YdotCosVolt, diag_Volt_YdotSin, diag_Volt_YdotCos]=Unbalance(Balance,busNum, ...
PQi,PG,QG,QGi,iterPD,iterQD,Vmf1,Vaf1,fsY1amp,fsY1ang,r,c,Vf2,If2,Vf0,If0);%
maxD=max(abs([dP;dQ;]));
@ -79,15 +132,9 @@ while(k<=kmax && maxD> EPS)
%
VoltpABC=Tp2f\conj([ Vf0'; (Vmf1.*exp(1j*Vaf1))'; Vf2']);%Tp2f\ Tf2p*
VoltpA=conj(VoltpABC(1,:)');
CurpA=-conj((iterPhaseASpotLoadP+1j*iterPhaseASpotLoadQ)./VoltpA);
VoltpB=conj(VoltpABC(2,:)');
CurpB=-conj((iterPhaseBSpotLoadP+1j*iterPhaseBSpotLoadQ)./VoltpB);
VoltpC=conj(VoltpABC(3,:)');
CurpC=-conj((iterPhaseCSpotLoadP+1j*iterPhaseCSpotLoadQ)./VoltpC);
f012=Tp2f*conj([CurpA';CurpB';CurpC']);
If0=conj(f012(1,:)');
If1=conj(f012(2,:)');
If2=conj(f012(3,:)');
If0(Balance)=0;
If2(Balance)=0;
%Vf0=fsY0\If0;
@ -116,8 +163,8 @@ ub=checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
fprintf('%f\n\n',full(max(abs(ub))))
fprintf('\n');
%% begin
% fprintf('\n');
% [r,c,GB]=find(phaseABCY);
% Y=abs(phaseABCY);
% Yangle=angle(GB);