加计算时间的统计

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-04-26 14:39:53 +08:00
parent 286caf83a4
commit 04e95a448e
3 changed files with 55 additions and 7 deletions

31
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]=run() function [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged,totalTime1,totalTime2,totalTime0]=run()
%% %%
% %
close all close all
@ -214,6 +214,11 @@ I1measurement=mIf1(Loadi);
% %
wI1r=abs(real(I1measurement)).*sigma; wI1r=abs(real(I1measurement)).*sigma;
dIrdPr=real(V1measurement)./(abs(V1measurement).^2);
dIrdQr=imag(V1measurement)./(abs(V1measurement).^2);
% dIrdV=
wI1i=abs(imag(I1measurement)).*sigma; wI1i=abs(imag(I1measurement)).*sigma;
wV1r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); wV1r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
wV1i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); wV1i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
@ -355,6 +360,11 @@ dI_F=dI_F(Loadi,:);
guessCurpA=conj((phaseASpotLoadP+1j*phaseASpotLoadQ)./mVoltpA).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1)); guessCurpA=conj((phaseASpotLoadP+1j*phaseASpotLoadQ)./mVoltpA).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1));
guessCurpB=conj((phaseBSpotLoadP+1j*phaseBSpotLoadQ)./mVoltpB).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1)); guessCurpB=conj((phaseBSpotLoadP+1j*phaseBSpotLoadQ)./mVoltpB).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1));
guessCurpC=conj((phaseCSpotLoadP+1j*phaseCSpotLoadQ)./mVoltpC).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1)); guessCurpC=conj((phaseCSpotLoadP+1j*phaseCSpotLoadQ)./mVoltpC).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1));
% guessCurpA=conj((phaseASpotLoadP+1j*phaseASpotLoadQ)./mVoltpA);
% guessCurpB=conj((phaseBSpotLoadP+1j*phaseBSpotLoadQ)./mVoltpB);
% guessCurpC=conj((phaseCSpotLoadP+1j*phaseCSpotLoadQ)./mVoltpC);
guessIf012=Tp2f*conj([-guessCurpA';-guessCurpB';-guessCurpC']); guessIf012=Tp2f*conj([-guessCurpA';-guessCurpB';-guessCurpC']);
guessIf0=conj(guessIf012(1,:)'); guessIf0=conj(guessIf012(1,:)');
guessIf1=conj(guessIf012(2,:)'); guessIf1=conj(guessIf012(2,:)');
@ -362,7 +372,9 @@ guessIf2=conj(guessIf012(3,:)');
guessIf0=guessIf0(Loadi); guessIf0=guessIf0(Loadi);
guessIf1=guessIf1(Loadi); guessIf1=guessIf1(Loadi);
guessIf2=guessIf2(Loadi); guessIf2=guessIf2(Loadi);
totalTime1=0;%
totalTime2=0;%
totalTime0=0;%
tic tic
for II=1:3 for II=1:3
@ -370,19 +382,19 @@ for II=1:3
fprintf('\n'); fprintf('\n');
tic tic
[ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1,dI_F,2,guessIf1 ); [ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1,dI_F,2,guessIf1 );
toc totalTime1=toc
end end
if II==2 if II==2
fprintf('\n'); fprintf('\n');
tic tic
[ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0,dI_F,3,guessIf2 ); [ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0,dI_F,3,guessIf2 );
toc totalTime2=toc
end end
if II==3 if II==3
fprintf('\n'); fprintf('\n');
tic tic
[ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0,dI_F,1,guessIf0 ); [ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0,dI_F,1,guessIf0 );
toc totalTime0=toc
end end
end end
@ -466,6 +478,15 @@ AME_QD=sum(sum(abs(imag(SEThreeLoad-rThreeLoad(:,Loadi)))));
AME_mVolt=sum(sum(abs( abs(mVoltABCV)-abs(rVoltABCV)))); AME_mVolt=sum(sum(abs( abs(mVoltABCV)-abs(rVoltABCV))));
AME_mPD=sum(sum(abs(real(rThreeLoad(:,Loadi)-mThreeLoad(:,Loadi))))); AME_mPD=sum(sum(abs(real(rThreeLoad(:,Loadi)-mThreeLoad(:,Loadi)))));
AME_mQD=sum(sum(abs(imag(rThreeLoad(:,Loadi)-mThreeLoad(:,Loadi))))); AME_mQD=sum(sum(abs(imag(rThreeLoad(:,Loadi)-mThreeLoad(:,Loadi)))));
%
AME_Volt=abs(rVoltABCV)-abs(SEVoltpABC);
AME_VAngle= ( (( angle(rVoltABCV)-angle(SEVoltpABC))));
AME_PD= ( ((real(SEThreeLoad-rThreeLoad(:,Loadi)))));
AME_QD= ( ((imag(SEThreeLoad-rThreeLoad(:,Loadi)))));
%
AME_mVolt= ( (( abs(mVoltABCV)-abs(rVoltABCV))));
AME_mPD= ( ((real(rThreeLoad(:,Loadi)-mThreeLoad(:,Loadi)))));
AME_mQD= ( ((imag(rThreeLoad(:,Loadi)-mThreeLoad(:,Loadi)))));
% %
isConverged=isConverged1*isConverged2*isConverged0; isConverged=isConverged1*isConverged2*isConverged0;
end end

14
test.m
View File

@ -9,10 +9,13 @@ AME_QDSum=0;
AME_mVoltSum=0; AME_mVoltSum=0;
AME_mPDSum=0; AME_mPDSum=0;
AME_mQDSum=0; AME_mQDSum=0;
totalTime1Sum=0;
totalTime2Sum=0;
totalTime0Sum=0;
N=200; N=200;
loopN=1; loopN=1;
while 1 while 1
[JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged]=run(); [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged,totalTime1,totalTime2,totalTime0]=run();
if isConverged==0 if isConverged==0
continue continue
end end
@ -28,6 +31,10 @@ while 1
AME_mVoltSum=AME_mVoltSum+AME_mVolt; AME_mVoltSum=AME_mVoltSum+AME_mVolt;
AME_mPDSum=AME_mPDSum+AME_mPD; AME_mPDSum=AME_mPDSum+AME_mPD;
AME_mQDSum=AME_mQDSum+AME_mQD; AME_mQDSum=AME_mQDSum+AME_mQD;
%ʱ¼ä
totalTime1Sum=totalTime1Sum+totalTime1;
totalTime2Sum=totalTime2Sum+totalTime2;
totalTime0Sum=totalTime0Sum+totalTime0;
end end
JMeasurementSum=JMeasurementSum/N; JMeasurementSum=JMeasurementSum/N;
AME_VoltSum=AME_VoltSum/N; AME_VoltSum=AME_VoltSum/N;
@ -36,4 +43,7 @@ AME_PDSum=AME_PDSum/N;
AME_QDSum=AME_QDSum/N; AME_QDSum=AME_QDSum/N;
AME_mVoltSum=AME_mVoltSum/N; AME_mVoltSum=AME_mVoltSum/N;
AME_mPDSum=AME_mPDSum/N; AME_mPDSum=AME_mPDSum/N;
AME_mQDSum=AME_mQDSum/N; AME_mQDSum=AME_mQDSum/N;
totalTime1Sum=totalTime1Sum/N;
totalTime2Sum=totalTime2Sum/N;
totalTime0Sum=totalTime0Sum/N;

17
theory/t2.m Normal file
View File

@ -0,0 +1,17 @@
clc
clear
s=0;
loopN=1;
N=1000000;
while 1
P=12;
mP=P.*(1+normrnd(0,0.03));
% s=s+normrnd(0,0.03);
s=s+P-mP;
loopN=loopN+1;
if loopN>N
break
end
end
s=s/N