parent
286caf83a4
commit
04e95a448e
31
run.m
31
run.m
|
|
@ -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
|
||||||
12
test.m
12
test.m
|
|
@ -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;
|
||||||
|
|
@ -37,3 +44,6 @@ 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;
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in New Issue