l<=I<=u 的约束方式调通了。

Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2014-10-29 21:09:38 +08:00
parent c1efa7e6a8
commit 098fe0e7c1
3 changed files with 49 additions and 20 deletions

View File

@ -8,12 +8,12 @@ pIi=find(Ii>0);
nIi=find(Ii<0);
% lower=-0.2*sparse(ones(length(Loadi)*2,1));
upper=ones(length(Loadi)*2,1);
upper(pIr)=1.8*Ir(pIr);
upper(nIr)=0.2*Ir(nIr);
upper(pIi+length(Ir))=1.8*Ii(pIi);
upper(nIi+length(Ir))=0.2*Ii(nIi);
upper(pIr)=1.2*Ir(pIr);
upper(nIr)=0.8*Ir(nIr);
upper(pIi+length(Ir))=1.2*Ii(pIi);
upper(nIi+length(Ir))=0.8*Ii(nIi);
upper([4,5,6])=[1;1;1];
% upper([4,5,6])=[1;1;1];
% upper([4,5,6])=0.2*Ii(nIi);
% upper=ones(length(Ir)*2,1);

View File

@ -7,12 +7,12 @@ pIi=find(Ii>0);
nIi=find(Ii<0);
% lower=-0.2*sparse(ones(length(Loadi)*2,1));
lower=ones(length(Loadi)*2,1);
lower(pIr)=0.2*Ir(pIr);
lower(nIr)=1.8*Ir(nIr);
lower(pIi+length(Ir))=0.2*Ii(pIi);
lower(nIi+length(Ir))=1.8*Ii(nIi);
lower(pIr)=0.8*Ir(pIr);
lower(nIr)=1.2*Ir(nIr);
lower(pIi+length(Ir))=0.8*Ii(pIi);
lower(nIi+length(Ir))=1.2*Ii(nIi);
lower=-ones(length(Ir)*2,1);
% lower=-ones(length(Ir)*2,1);
% lower([4,5,6])=[-1;-1;-1];
Lz=Mat_G-Init_L-lower;
end

49
run.m
View File

@ -255,24 +255,53 @@ wI1i=abs( imag(mIf1(Loadi).*sigmaI1) );
[ V1r,V1i,I1r,I1i ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 );
% f=sum(([real(Imeasurement);imag(Imeasurement)]-[-I1r;-I1i]).^2)+sum((real(Vmeasurement)-V1r(Loadi)).^2)+sum((imag(Vmeasurement)-V1i(Loadi)).^2);
f=sum(([real(-mIf1(Loadi));imag(-mIf1(Loadi))]-[-I1r;-I1i]).^2)+sum((real(rV1(Loadi))-V1r(Loadi)).^2)+sum((imag(rV1(Loadi))-V1i(Loadi)).^2);
fprintf('Ä¿±êÖµ %f\n',full(f));
% f=sum(([real(-mIf1(Loadi));imag(-mIf1(Loadi))]-[-I1r;-I1i]).^2)+sum((real(rV1(Loadi))-V1r(Loadi)).^2)+sum((imag(rV1(Loadi))-V1i(Loadi)).^2);
% fprintf(' %f\n',full(f));
%%
fprintf('\n');
BalI2r=real(-sum(mIf2));
BalI2i=imag(-sum(mIf2));
Imeasurement=-mIf2(Loadi);
[ V2r,V2i,I2r,I2i ]=IPMLoop(Vmeasurement,Imeasurement,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,0 );
f=sum(([real(Imeasurement);imag(Imeasurement)]-[-I1r;-I1i]).^2)+sum((real(Vmeasurement)-V2r(Loadi)).^2)+sum((imag(Vmeasurement)-V2i(Loadi)).^2);
fprintf('Ä¿±êÖµ %f\n',full(f));
%
%
mfsY22=fsY22;
mfsY22(:,Balance)=0;
mfsY22(Balance,:)=0;
mfsY22=mfsY22+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
rV2=inv(mfsY22)*(mIf2);
sigmaV2=normrnd(0,sigma,length(Loadi),1);
V2measurement=rV2(Loadi).*(1+sigmaV2);
wV2r=abs(real( rV2(Loadi).*sigmaV2 ));
wV2i=abs(imag( rV2(Loadi).*sigmaV2 ));
sigmaI2=normrnd(0,sigma,length(Loadi),1);
I2measurement=mIf2(Loadi).*(1+sigmaI2);%
wI2r=abs( real(mIf2(Loadi).*sigmaI2) );
wI2i=abs( imag(mIf2(Loadi).*sigmaI2) );
[ V2r,V2i,I2r,I2i ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0 );
% f=sum(([real(Imeasurement);imag(Imeasurement)]-[-I1r;-I1i]).^2)+sum((real(Vmeasurement)-V2r(Loadi)).^2)+sum((imag(Vmeasurement)-V2i(Loadi)).^2);
% fprintf(' %f\n',full(f));
%%
fprintf('\n');
BalI0r=real(-sum(mIf0));
BalI0i=imag(-sum(mIf0));
Imeasurement=-mIf0(Loadi);
[ V0r,V0i,I0r,I0i ]=IPMLoop(Vmeasurement,Imeasurement,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,0 );
f=sum(([real(Imeasurement);imag(Imeasurement)]-[-I1r;-I1i]).^2)+sum((real(Vmeasurement)-V0r(Loadi)).^2)+sum((imag(Vmeasurement)-V0i(Loadi)).^2);
fprintf('Ä¿±êÖµ %f\n',full(f));
%
%
mfsY00=fsY00;
mfsY00(:,Balance)=0;
mfsY00(Balance,:)=0;
mfsY00=mfsY00+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
rV0=inv(mfsY00)*(mIf0);
sigmaV0=normrnd(0,sigma,length(Loadi),1);
V0measurement=rV0(Loadi).*(1+sigmaV0);
wV0r=abs(real( rV0(Loadi).*sigmaV0 ));
wV0i=abs(imag( rV0(Loadi).*sigmaV0 ));
sigmaI0=normrnd(0,sigma,length(Loadi),1);
I0measurement=mIf0(Loadi).*(1+sigmaI0);%
wI0r=abs( real(mIf0(Loadi).*sigmaI0) );
wI0i=abs( imag(mIf0(Loadi).*sigmaI0) );
[ V0r,V0i,I0r,I0i ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0 );
% f=sum(([real(Imeasurement);imag(Imeasurement)]-[-I1r;-I1i]).^2)+sum((real(Vmeasurement)-V0r(Loadi)).^2)+sum((imag(Vmeasurement)-V0i(Loadi)).^2);
% fprintf(' %f\n',full(f));
%
% SEVoltpA=sparse(ones(busNum,1));
% SEVoltpB=sparse(ones(busNum,1)).*exp(1j*-120/180*pi);