换一个更简单的计算上下界的方法。

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-04-01 22:08:07 +08:00
parent 92c16fac04
commit 4543616833
2 changed files with 60 additions and 44 deletions

96
run.m
View File

@ -1,4 +1,4 @@
function [JMeasurement,AME_Volt,AME_VAngle,isConverged]=run()
function [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,isConverged]=run()
%%
%
close all
@ -273,48 +273,56 @@ wV0i=wV0i(Loadi);
% matlabpool local 3
%%
%A
dIrdP_Ar=real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
dIrdQ_Ar=imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% dIrdP_Ar=dIrdP_Ar(Loadi);
% dIrdQ_Ar=dIrdQ_Ar(Loadi);
dI_pAr=dIrdP_Ar.*mphaseASpotLoadP*0.2+mphaseASpotLoadQ.*dIrdQ_Ar*0.2;
dIidP_Ai=-imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
dIidQ_Ai=-real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% dIidP_Ai=dIidP_Ai(Loadi);
% dIidQ_Ai=dIidQ_Ai(Loadi);
dI_pAi=dIidP_Ai.*mphaseASpotLoadP*0.2+dIidQ_Ai.*mphaseASpotLoadQ*0.2;
%B
dIrdP_Br=real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
dIrdQ_Br=imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% dIrdP_Br=dIrdP_Br(Loadi);
% dIrdQ_Br=dIrdQ_Br(Loadi);
dI_pBr=dIrdP_Br.*mphaseBSpotLoadP*0.2+dIrdQ_Br.*mphaseBSpotLoadQ*0.2;
dIidP_Bi=-imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
dIidQ_Bi=-real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% dIidP_Bi=dIidP_Bi(Loadi);
% dIidQ_Bi=dIidQ_Bi(Loadi);
dI_pBi=dIidP_Bi.*mphaseBSpotLoadP*0.2+dIidQ_Bi.*mphaseBSpotLoadQ*0.2;
%C
dIrdP_Cr=real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
dIrdQ_Cr=imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% dIrdP_Cr=dIrdP_Cr(Loadi);
% dIrdQ_Cr=dIrdQ_Cr(Loadi);
dI_pCr=dIrdP_Cr.*mphaseCSpotLoadP*0.2+dIrdQ_Cr.*mphaseBSpotLoadQ*0.2;
dIidP_Ci=-imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
dIidQ_Ci=-real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% dIidP_Ci=dIidP_Ci(Loadi);
% dIidQ_Ci=dIidQ_Ci(Loadi);
dI_pCi=dIidP_Ci.*mphaseCSpotLoadP*0.2+dIidQ_Ci.*mphaseCSpotLoadQ*0.2;
%
%
dI_F=Tp2f*[dI_pAr'+1j*dI_pAi';
dI_pBr'+1j*dI_pBi';
dI_pCr'+1j*dI_pCi';
];
dI_F=conj(dI_F)';
% %A
% dIrdP_Ar=real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% dIrdQ_Ar=imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% % dIrdP_Ar=dIrdP_Ar(Loadi);
% % dIrdQ_Ar=dIrdQ_Ar(Loadi);
% dI_pAr=dIrdP_Ar.*mphaseASpotLoadP*0.2+mphaseASpotLoadQ.*dIrdQ_Ar*0.2;
% dIidP_Ai=-imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% dIidQ_Ai=-real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% % dIidP_Ai=dIidP_Ai(Loadi);
% % dIidQ_Ai=dIidQ_Ai(Loadi);
% dI_pAi=dIidP_Ai.*mphaseASpotLoadP*0.2+dIidQ_Ai.*mphaseASpotLoadQ*0.2;
%
% %B
% dIrdP_Br=real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% dIrdQ_Br=imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% % dIrdP_Br=dIrdP_Br(Loadi);
% % dIrdQ_Br=dIrdQ_Br(Loadi);
% dI_pBr=dIrdP_Br.*mphaseBSpotLoadP*0.2+dIrdQ_Br.*mphaseBSpotLoadQ*0.2;
% dIidP_Bi=-imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% dIidQ_Bi=-real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% % dIidP_Bi=dIidP_Bi(Loadi);
% % dIidQ_Bi=dIidQ_Bi(Loadi);
% dI_pBi=dIidP_Bi.*mphaseBSpotLoadP*0.2+dIidQ_Bi.*mphaseBSpotLoadQ*0.2;
%
% %C
% dIrdP_Cr=real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% dIrdQ_Cr=imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% % dIrdP_Cr=dIrdP_Cr(Loadi);
% % dIrdQ_Cr=dIrdQ_Cr(Loadi);
% dI_pCr=dIrdP_Cr.*mphaseCSpotLoadP*0.2+dIrdQ_Cr.*mphaseBSpotLoadQ*0.2;
% dIidP_Ci=-imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% dIidQ_Ci=-real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% % dIidP_Ci=dIidP_Ci(Loadi);
% % dIidQ_Ci=dIidQ_Ci(Loadi);
% dI_pCi=dIidP_Ci.*mphaseCSpotLoadP*0.2+dIidQ_Ci.*mphaseCSpotLoadQ*0.2;
% %
% %
% dI_F=Tp2f*[dI_pAr'+1j*dI_pAi';
% dI_pBr'+1j*dI_pBi';
% dI_pCr'+1j*dI_pCi';
% ];
% dI_F=conj(dI_F)';
% dI_F=dI_F(Loadi,:);
%
deltmCurpA=conj((mphaseASpotLoadP+1j*mphaseASpotLoadQ)./mVoltpA)*0.2;
deltmCurpB=conj((mphaseBSpotLoadP+1j*mphaseBSpotLoadQ)./mVoltpB)*0.2;
deltmCurpC=conj((mphaseCSpotLoadP+1j*mphaseCSpotLoadQ)./mVoltpC)*0.2;
%
deltF012=Tp2f*conj([deltmCurpA';deltmCurpB';deltmCurpC']);
dI_F=conj(deltF012)';
dI_F=dI_F(Loadi,:);
tic
for II=1:3
@ -409,6 +417,8 @@ mCount=Busnum*3+length(Loadi)*3*2;
%
AME_Volt=sum(sum(abs( abs(mVoltABCV)-abs(SEVoltpABC))));
AME_VAngle=sum(sum(abs( angle(mVoltABCV)-angle(SEVoltpABC))));
AME_PD=sum(sum(abs(real(SEThreeLoad-rThreeLoad(:,Loadi)))));
AME_QD=sum(sum(abs(imag(SEThreeLoad-rThreeLoad(:,Loadi)))));
%
isConverged=isConverged1*isConverged2*isConverged0;
end

8
test.m
View File

@ -4,9 +4,11 @@ clc
AME_VoltSum=0;
AME_VAngleSum=0;
JMeasurementSum=0;
AME_PDSum=0;
AME_QDSum=0;
N=1000;
for I=1:N
[JMeasurement,AME_Volt,AME_VAngle,isConverged]=run();
[JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,isConverged]=run();
if isConverged==0
I=I-1;
continue
@ -14,7 +16,11 @@ for I=1:N
% [JMeasurement]=run();
AME_VoltSum=AME_VoltSum+AME_Volt;
AME_VAngleSum=AME_VAngleSum+AME_VAngle;
AME_PDSum=AME_PDSum+AME_PD;
AME_QDSum=AME_QDSum+AME_QD;
end
JMeasurementSum=JMeasurementSum/N;
AME_VoltSum=AME_VoltSum/N;
AME_VAngleSum=AME_VAngleSum/N;
AME_PDSum=AME_PDSum/N;
AME_QDSum=AME_QDSum/N;