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
|
||||
|
|
@ -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
14
test.m
|
|
@ -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;
|
||||
|
|
@ -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