加计算时间的统计

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
@ -214,6 +214,11 @@ I1measurement=mIf1(Loadi);
%
wI1r=abs(real(I1measurement)).*sigma;
dIrdPr=real(V1measurement)./(abs(V1measurement).^2);
dIrdQr=imag(V1measurement)./(abs(V1measurement).^2);
% dIrdV=
wI1i=abs(imag(I1measurement)).*sigma;
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 );
@ -355,6 +360,11 @@ dI_F=dI_F(Loadi,:);
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));
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']);
guessIf0=conj(guessIf012(1,:)');
guessIf1=conj(guessIf012(2,:)');
@ -362,7 +372,9 @@ guessIf2=conj(guessIf012(3,:)');
guessIf0=guessIf0(Loadi);
guessIf1=guessIf1(Loadi);
guessIf2=guessIf2(Loadi);
totalTime1=0;%
totalTime2=0;%
totalTime0=0;%
tic
for II=1:3
@ -370,19 +382,19 @@ for II=1:3
fprintf('\n');
tic
[ 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
if II==2
fprintf('\n');
tic
[ 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
if II==3
fprintf('\n');
tic
[ 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
@ -466,6 +478,15 @@ AME_QD=sum(sum(abs(imag(SEThreeLoad-rThreeLoad(:,Loadi)))));
AME_mVolt=sum(sum(abs( abs(mVoltABCV)-abs(rVoltABCV))));
AME_mPD=sum(sum(abs(real(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;
end

14
test.m
View File

@ -9,10 +9,13 @@ AME_QDSum=0;
AME_mVoltSum=0;
AME_mPDSum=0;
AME_mQDSum=0;
totalTime1Sum=0;
totalTime2Sum=0;
totalTime0Sum=0;
N=200;
loopN=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
continue
end
@ -28,6 +31,10 @@ while 1
AME_mVoltSum=AME_mVoltSum+AME_mVolt;
AME_mPDSum=AME_mPDSum+AME_mPD;
AME_mQDSum=AME_mQDSum+AME_mQD;
%ʱ¼ä
totalTime1Sum=totalTime1Sum+totalTime1;
totalTime2Sum=totalTime2Sum+totalTime2;
totalTime0Sum=totalTime0Sum+totalTime0;
end
JMeasurementSum=JMeasurementSum/N;
AME_VoltSum=AME_VoltSum/N;
@ -36,4 +43,7 @@ AME_PDSum=AME_PDSum/N;
AME_QDSum=AME_QDSum/N;
AME_mVoltSum=AME_mVoltSum/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