加三相不平衡度计算

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-05-21 14:50:06 +08:00
parent 6b78384380
commit fddb3316bd
3 changed files with 59 additions and 39 deletions

View File

@ -30,7 +30,7 @@ kmax=15;
isSetBound=0;
largerBound=0;
realBound=1;
tic
Ir=real(guessIf1(ismember(Loadi,boundedLoadi)) );
pIr=find(Ir>0);
@ -62,7 +62,7 @@ if realBound==1
upper(pIi+length(Ir))=(1.30)*Ii(pIi);
upper(nIi+length(Ir))=(0.7)*Ii(nIi);
end
tic
while(abs(Gap)>1e-5)
if KK>=kmax
break;
@ -108,11 +108,11 @@ deltG=func_deltGstate1(busNum,Loadi,boundedLoadi,I1r,I1i);
[Init_Z,Init_L,Init_W,Init_U,Init_Y,V1r,V1i,I1r,I1i]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,V1r,V1i,I1r,I1i,ContrlCount,Balance,busNum,Loadi,Vref);
Gap=(Init_L'*Init_Z-Init_U'*Init_W);+max(abs(deltX));
% Gap=max([max(abs(Mat_H)),max(Lz),max(Lw) ]);
% fprintf('Gap %f :%d\n',full(Gap),KK+1);
fprintf('Gap %f :%d\n',full(Gap),KK+1);
KK=KK+1;
end
toc
calcuTime=toc/KK;
% toc
calcuTime=toc;
% f=sum(([real(I1measurement);imag(I1measurement)]-[I1r;I1i]).^2)+sum((real(V1measurement)-V1r(Loadi)).^2)+sum((imag(V1measurement)-V1i(Loadi)).^2);
if abs(Gap)<1e-5 && KK<kmax
isConverged=1;

71
run.m
View File

@ -1,4 +1,4 @@
function [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged,totalTime1,totalTime2,totalTime0]=run()
function [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged,totalTime1,totalTime2,totalTime0,eV2,eV0,eI2,eI0]=run()
%%
%
close all
@ -9,36 +9,36 @@ lineZ=readLineZ('modified-feeder69\lineParameter.txt');
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY ...
cap]=dataRead(lineZ,'modified-feeder69\data.txt');
%
% for I=1:length(phaseASpotLoadP)
% roll=mod(round(rand()*10),3);
% if roll==0
% phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseASpotLoadP(I)*.45;
% phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseASpotLoadP(I)*.45;
% phaseASpotLoadP(I)=phaseASpotLoadP(I)*.10;
%
% phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
% phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
% phaseASpotLoadQ(I)=phaseASpotLoadQ(I)*.10;
% end
% if roll==1
% phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseBSpotLoadP(I)*.45;
% phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseBSpotLoadP(I)*.45;
% phaseBSpotLoadP(I)=phaseBSpotLoadP(I)*.10;
%
% phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
% phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
% phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)*.10;
% end
% if roll==2
% phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseCSpotLoadP(I)*.45;
% phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseCSpotLoadP(I)*.45;
% phaseCSpotLoadP(I)=phaseCSpotLoadP(I)*.10;
%
% phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
% phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
% phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)*.10;
% end
% end
for I=1:length(phaseASpotLoadP)
roll=mod(round(rand()*10),3);
if roll==0
phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseASpotLoadP(I)*.45;
phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseASpotLoadP(I)*.45;
phaseASpotLoadP(I)=phaseASpotLoadP(I)*.10;
phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
phaseASpotLoadQ(I)=phaseASpotLoadQ(I)*.10;
end
if roll==1
phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseBSpotLoadP(I)*.45;
phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseBSpotLoadP(I)*.45;
phaseBSpotLoadP(I)=phaseBSpotLoadP(I)*.10;
phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)*.10;
end
if roll==2
phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseCSpotLoadP(I)*.45;
phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseCSpotLoadP(I)*.45;
phaseCSpotLoadP(I)=phaseCSpotLoadP(I)*.10;
phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)*.10;
end
end
a=exp(1j*2*pi/3);
Tp2f=1/3*[1 1 1;
@ -150,6 +150,13 @@ end
FortiscueToc=toc;
fprintf('Fortiscue %f\n',FortiscueToc);
Vf1=Vmf1.*exp(1j*Vaf1);
%%
%
eV2=mean(abs(Vf2)./abs(Vf1))/length(Vf1)/3;
eV0=mean(abs(Vf0)./abs(Vf1))/length(Vf1)/3;
%
eI2=mean(abs(If2(find(If2)))./abs(If1(find(If1))))/length(find(If1))/3;
eI0=mean(abs(If0(find(If0)))./abs(If1(find(If1))))/length(find(If1))/3;
%%
(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)]);
@ -356,7 +363,7 @@ noLoadi=Loadi(1:6:end);
% noLoadi=[1,19];
% noLoadi=[4,3,2,5,6,7,11,14,22];
noLoadi=Loadi;
noLoadi=[5];
% noLoadi=[5];
wI0r(ismember(Loadi,noLoadi))=1e100000;
wI0i(ismember(Loadi,noLoadi))=1e100000;
wI1r(ismember(Loadi,noLoadi))=1e100000;

15
test.m
View File

@ -14,10 +14,14 @@ totalTime2Sum=10000;
totalTime0Sum=10000;
timeOfPrepare=0.00272333333;%×¼±¸Êý¾ÝµÄʱ¼ä
timeOfPrepare=0;
eV2Sum=0;
eV0Sum=0;
eI2Sum=0;
eI0Sum=0;
N=200;
loopN=1;
while 1
[JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged,totalTime1,totalTime2,totalTime0]=run();
[JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged,totalTime1,totalTime2,totalTime0,eV2,eV0,eI2,eI0]=run();
if isConverged==0
continue
end
@ -33,6 +37,11 @@ while 1
AME_mVoltSum=AME_mVoltSum+AME_mVolt;
AME_mPDSum=AME_mPDSum+AME_mPD;
AME_mQDSum=AME_mQDSum+AME_mQD;
eV2Sum=eV2Sum+eV2;
eV0Sum=eV0Sum+eV0;
eI2Sum=eI2Sum+eI2;
eI0Sum=eI0Sum+eI0;
%ʱ¼ä
% totalTime1Sum=totalTime1Sum+totalTime1;
% totalTime2Sum=totalTime2Sum+totalTime2;
@ -49,6 +58,10 @@ AME_QDSum=AME_QDSum/N;
AME_mVoltSum=AME_mVoltSum/N;
AME_mPDSum=AME_mPDSum/N;
AME_mQDSum=AME_mQDSum/N;
eV2Sum=eV2Sum/N;
eV0Sum=eV0Sum/N;
eI2Sum=eI2Sum/N;
eI0Sum=eI0Sum/N;
totalTime1Sum=totalTime1Sum+timeOfPrepare;
totalTime2Sum=totalTime2Sum+timeOfPrepare;