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

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 close all
@ -273,48 +273,56 @@ wV0i=wV0i(Loadi);
% matlabpool local 3 % matlabpool local 3
%% %%
%A % %A
dIrdP_Ar=real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2); % dIrdP_Ar=real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
dIrdQ_Ar=imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2); % dIrdQ_Ar=imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% dIrdP_Ar=dIrdP_Ar(Loadi); % % dIrdP_Ar=dIrdP_Ar(Loadi);
% dIrdQ_Ar=dIrdQ_Ar(Loadi); % % dIrdQ_Ar=dIrdQ_Ar(Loadi);
dI_pAr=dIrdP_Ar.*mphaseASpotLoadP*0.2+mphaseASpotLoadQ.*dIrdQ_Ar*0.2; % dI_pAr=dIrdP_Ar.*mphaseASpotLoadP*0.2+mphaseASpotLoadQ.*dIrdQ_Ar*0.2;
dIidP_Ai=-imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2); % dIidP_Ai=-imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
dIidQ_Ai=-real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2); % dIidQ_Ai=-real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
% dIidP_Ai=dIidP_Ai(Loadi); % % dIidP_Ai=dIidP_Ai(Loadi);
% dIidQ_Ai=dIidQ_Ai(Loadi); % % dIidQ_Ai=dIidQ_Ai(Loadi);
dI_pAi=dIidP_Ai.*mphaseASpotLoadP*0.2+dIidQ_Ai.*mphaseASpotLoadQ*0.2; % dI_pAi=dIidP_Ai.*mphaseASpotLoadP*0.2+dIidQ_Ai.*mphaseASpotLoadQ*0.2;
%
%B % %B
dIrdP_Br=real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2); % dIrdP_Br=real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
dIrdQ_Br=imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2); % dIrdQ_Br=imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% dIrdP_Br=dIrdP_Br(Loadi); % % dIrdP_Br=dIrdP_Br(Loadi);
% dIrdQ_Br=dIrdQ_Br(Loadi); % % dIrdQ_Br=dIrdQ_Br(Loadi);
dI_pBr=dIrdP_Br.*mphaseBSpotLoadP*0.2+dIrdQ_Br.*mphaseBSpotLoadQ*0.2; % dI_pBr=dIrdP_Br.*mphaseBSpotLoadP*0.2+dIrdQ_Br.*mphaseBSpotLoadQ*0.2;
dIidP_Bi=-imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2); % dIidP_Bi=-imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
dIidQ_Bi=-real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2); % dIidQ_Bi=-real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
% dIidP_Bi=dIidP_Bi(Loadi); % % dIidP_Bi=dIidP_Bi(Loadi);
% dIidQ_Bi=dIidQ_Bi(Loadi); % % dIidQ_Bi=dIidQ_Bi(Loadi);
dI_pBi=dIidP_Bi.*mphaseBSpotLoadP*0.2+dIidQ_Bi.*mphaseBSpotLoadQ*0.2; % dI_pBi=dIidP_Bi.*mphaseBSpotLoadP*0.2+dIidQ_Bi.*mphaseBSpotLoadQ*0.2;
%
%C % %C
dIrdP_Cr=real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2); % dIrdP_Cr=real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
dIrdQ_Cr=imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2); % dIrdQ_Cr=imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% dIrdP_Cr=dIrdP_Cr(Loadi); % % dIrdP_Cr=dIrdP_Cr(Loadi);
% dIrdQ_Cr=dIrdQ_Cr(Loadi); % % dIrdQ_Cr=dIrdQ_Cr(Loadi);
dI_pCr=dIrdP_Cr.*mphaseCSpotLoadP*0.2+dIrdQ_Cr.*mphaseBSpotLoadQ*0.2; % dI_pCr=dIrdP_Cr.*mphaseCSpotLoadP*0.2+dIrdQ_Cr.*mphaseBSpotLoadQ*0.2;
dIidP_Ci=-imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2); % dIidP_Ci=-imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
dIidQ_Ci=-real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2); % dIidQ_Ci=-real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
% dIidP_Ci=dIidP_Ci(Loadi); % % dIidP_Ci=dIidP_Ci(Loadi);
% dIidQ_Ci=dIidQ_Ci(Loadi); % % dIidQ_Ci=dIidQ_Ci(Loadi);
dI_pCi=dIidP_Ci.*mphaseCSpotLoadP*0.2+dIidQ_Ci.*mphaseCSpotLoadQ*0.2; % dI_pCi=dIidP_Ci.*mphaseCSpotLoadP*0.2+dIidQ_Ci.*mphaseCSpotLoadQ*0.2;
% % %
% % %
dI_F=Tp2f*[dI_pAr'+1j*dI_pAi'; % dI_F=Tp2f*[dI_pAr'+1j*dI_pAi';
dI_pBr'+1j*dI_pBi'; % dI_pBr'+1j*dI_pBi';
dI_pCr'+1j*dI_pCi'; % dI_pCr'+1j*dI_pCi';
]; % ];
dI_F=conj(dI_F)'; % 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,:); dI_F=dI_F(Loadi,:);
tic tic
for II=1:3 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_Volt=sum(sum(abs( abs(mVoltABCV)-abs(SEVoltpABC))));
AME_VAngle=sum(sum(abs( angle(mVoltABCV)-angle(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; isConverged=isConverged1*isConverged2*isConverged0;
end end

8
test.m
View File

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