parent
3dd10280c7
commit
fa1a29c86b
128
IPMLoop.m
128
IPMLoop.m
|
|
@ -30,7 +30,39 @@ isSetBound=0;
|
||||||
largerBound=0;
|
largerBound=0;
|
||||||
realBound=1;
|
realBound=1;
|
||||||
tic
|
tic
|
||||||
while(abs(Gap)>1e-4)
|
|
||||||
|
Ir=real(guessIf1(ismember(Loadi,boundedLoadi)) );
|
||||||
|
pIr=find(Ir>0);
|
||||||
|
nIr=find(Ir<0);
|
||||||
|
Ii=imag(guessIf1(ismember(Loadi,boundedLoadi)));
|
||||||
|
pIi=find(Ii>0);
|
||||||
|
nIi=find(Ii<0);
|
||||||
|
lower=ones(length(boundedLoadi)*2,1);
|
||||||
|
if realBound==1
|
||||||
|
isSetBound=1;
|
||||||
|
lower(pIr)=(0.7)*Ir(pIr);
|
||||||
|
lower(nIr)=(1.300)*Ir(nIr);
|
||||||
|
lower(pIi+length(Ir))=(0.7)*Ii(pIi);
|
||||||
|
lower(nIi+length(Ir))=(1.30)*Ii(nIi);
|
||||||
|
end
|
||||||
|
|
||||||
|
Ir=real(guessIf1(ismember(Loadi,boundedLoadi)));
|
||||||
|
pIr=find(Ir>0);
|
||||||
|
nIr=find(Ir<0);
|
||||||
|
Ii=imag(guessIf1(ismember(Loadi,boundedLoadi)));
|
||||||
|
pIi=find(Ii>0);
|
||||||
|
nIi=find(Ii<0);
|
||||||
|
upper=ones(length(boundedLoadi)*2,1);
|
||||||
|
% if abs(Gap)<1 || isSetBound==1
|
||||||
|
if realBound==1
|
||||||
|
isSetBound=1;
|
||||||
|
upper(pIr)=(1.30)*Ir(pIr);
|
||||||
|
upper(nIr)=(0.7)*Ir(nIr);
|
||||||
|
upper(pIi+length(Ir))=(1.30)*Ii(pIi);
|
||||||
|
upper(nIi+length(Ir))=(0.7)*Ii(nIi);
|
||||||
|
end
|
||||||
|
|
||||||
|
while(abs(Gap)>1e-5)
|
||||||
if KK>=kmax
|
if KK>=kmax
|
||||||
break;
|
break;
|
||||||
end
|
end
|
||||||
|
|
@ -64,98 +96,6 @@ deltG=func_deltGstate1(busNum,Loadi,boundedLoadi,I1r,I1i);
|
||||||
Mat_H=FormH(fsY1,Loadi,V1r,V1i,I1r,I1i,BalI1r,BalI1i,Balance);
|
Mat_H=FormH(fsY1,Loadi,V1r,V1i,I1r,I1i,BalI1r,BalI1i,Balance);
|
||||||
Ly=Mat_H;
|
Ly=Mat_H;
|
||||||
|
|
||||||
% if isSetBound==0
|
|
||||||
|
|
||||||
Ir=real(guessIf1(ismember(Loadi,boundedLoadi)) );
|
|
||||||
pIr=find(Ir>0);
|
|
||||||
nIr=find(Ir<0);
|
|
||||||
Ii=imag(guessIf1(ismember(Loadi,boundedLoadi)));
|
|
||||||
pIi=find(Ii>0);
|
|
||||||
nIi=find(Ii<0);
|
|
||||||
% lower=ones(length(Loadi)*2,1);
|
|
||||||
lower=ones(length(boundedLoadi)*2,1);
|
|
||||||
% if abs(Gap)<1 || isSetBound==1
|
|
||||||
|
|
||||||
% if abs(Gap)<0.001
|
|
||||||
% largerBound=0;
|
|
||||||
% realBound=1;
|
|
||||||
% end
|
|
||||||
|
|
||||||
if realBound==1
|
|
||||||
% lower(pIr)=(0.9-3/(KK+1))*Ir(pIr);
|
|
||||||
% lower(nIr)=(1.100+3/(KK+1))*Ir(nIr);
|
|
||||||
% lower(pIi+length(Ir))=(0.9-3/(KK+1))*Ii(pIi);
|
|
||||||
% lower(nIi+length(Ir))=(1.10+3/(KK+1))*Ii(nIi);
|
|
||||||
isSetBound=1;
|
|
||||||
lower(pIr)=(0.7)*Ir(pIr);
|
|
||||||
lower(nIr)=(1.300)*Ir(nIr);
|
|
||||||
lower(pIi+length(Ir))=(0.7)*Ii(pIi);
|
|
||||||
lower(nIi+length(Ir))=(1.30)*Ii(nIi);
|
|
||||||
% lower( ismember(Loadi,noBoundedLoadi))=-1.9;
|
|
||||||
% lower(ismember(Loadi,noBoundedLoadi)+length(Ir))=-1.9;
|
|
||||||
end
|
|
||||||
|
|
||||||
if largerBound==1
|
|
||||||
lower(pIr)=-2.8;
|
|
||||||
lower(nIr)=-2.8;
|
|
||||||
lower(pIi+length(Ir))=-2.8;
|
|
||||||
lower(nIi+length(Ir))=-2.8;
|
|
||||||
|
|
||||||
% lower(pIr)=(0.7)*Ir(pIr)-0.1;
|
|
||||||
% lower(nIr)=(1.300)*Ir(nIr)-0.1;
|
|
||||||
% lower(pIi+length(Ir))=(0.7)*Ii(pIi)-0.1;
|
|
||||||
% lower(nIi+length(Ir))=(1.30)*Ii(nIi)-0.1;
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% lowerR=lower(1:length(lower)/2);
|
|
||||||
% lowerR(I1r./lowerR>0.98)=lowerR(I1r./lowerR>0.98)-0.001;
|
|
||||||
% lowerI=lower(length(lower)/2+1:end);
|
|
||||||
% lowerI(I1i./lowerI>0.98)=lowerI(I1i./lowerI>0.98)-0.001;
|
|
||||||
% lower=[lowerR;lowerI];
|
|
||||||
|
|
||||||
% I1r(I1r./lowerR>0.9998)=lowerR(I1r./lowerR>0.9998);
|
|
||||||
% I1i(I1i./lowerI>0.9998)=lowerI(I1i./lowerI>0.9998);
|
|
||||||
|
|
||||||
Ir=real(guessIf1(ismember(Loadi,boundedLoadi)));
|
|
||||||
pIr=find(Ir>0);
|
|
||||||
nIr=find(Ir<0);
|
|
||||||
Ii=imag(guessIf1(ismember(Loadi,boundedLoadi)));
|
|
||||||
pIi=find(Ii>0);
|
|
||||||
nIi=find(Ii<0);
|
|
||||||
upper=ones(length(boundedLoadi)*2,1);
|
|
||||||
% if abs(Gap)<1 || isSetBound==1
|
|
||||||
if realBound==1
|
|
||||||
% upper(pIr)=(1.10+3/(KK+1))*Ir(pIr);
|
|
||||||
% upper(nIr)=(0.9-3/(KK+1))*Ir(nIr);
|
|
||||||
% upper(pIi+length(Ir))=(1.10+3/(KK+1))*Ii(pIi);
|
|
||||||
% upper(nIi+length(Ir))=(0.9-3/(KK+1))*Ii(nIi);
|
|
||||||
isSetBound=1;
|
|
||||||
upper(pIr)=(1.30)*Ir(pIr);
|
|
||||||
upper(nIr)=(0.7)*Ir(nIr);
|
|
||||||
upper(pIi+length(Ir))=(1.30)*Ii(pIi);
|
|
||||||
upper(nIi+length(Ir))=(0.7)*Ii(nIi);
|
|
||||||
% upper(ismember(Loadi,noBoundedLoadi))=1.9;
|
|
||||||
% upper(ismember(Loadi,noBoundedLoadi)+length(Ir))=1.9;
|
|
||||||
end
|
|
||||||
|
|
||||||
if largerBound==1
|
|
||||||
|
|
||||||
upper(pIr)=2.8;
|
|
||||||
upper(nIr)=2.8;
|
|
||||||
upper(pIi+length(Ir))=2.8;
|
|
||||||
upper(nIi+length(Ir))=2.8;
|
|
||||||
|
|
||||||
% upper(pIr)=(1.30)*Ir(pIr)+0.1;
|
|
||||||
% upper(nIr)=(0.7)*Ir(nIr)+0.1;
|
|
||||||
% upper(pIi+length(Ir))=(1.30)*Ii(pIi)+0.1;
|
|
||||||
% upper(nIi+length(Ir))=(0.7)*Ii(nIi)+0.1;
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
% end
|
|
||||||
|
|
||||||
Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag,guessIf1,rIf1,lower);
|
Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag,guessIf1,rIf1,lower);
|
||||||
Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag,guessIf1,rIf1,upper);
|
Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag,guessIf1,rIf1,upper);
|
||||||
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
|
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
|
||||||
|
|
@ -173,7 +113,7 @@ end
|
||||||
toc
|
toc
|
||||||
calcuTime=toc/KK;
|
calcuTime=toc/KK;
|
||||||
% f=sum(([real(I1measurement);imag(I1measurement)]-[I1r;I1i]).^2)+sum((real(V1measurement)-V1r(Loadi)).^2)+sum((imag(V1measurement)-V1i(Loadi)).^2);
|
% f=sum(([real(I1measurement);imag(I1measurement)]-[I1r;I1i]).^2)+sum((real(V1measurement)-V1r(Loadi)).^2)+sum((imag(V1measurement)-V1i(Loadi)).^2);
|
||||||
if abs(Gap)<1e-4 && KK<kmax
|
if abs(Gap)<1e-5 && KK<kmax
|
||||||
isConverged=1;
|
isConverged=1;
|
||||||
else
|
else
|
||||||
isConverged=0;
|
isConverged=0;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
function [ output_args ] = calIWi( Vr,Vi,sigmaP,sigmaQ )
|
||||||
|
dIrdP=(Vi./(Vr.^2+Vi.^2)).^2.*(sigmaP.^2);
|
||||||
|
dIrdQ=(Vr./(Vr.^2+Vi.^2)).^2.*(sigmaQ.^2);
|
||||||
|
%dIrdVr=(P.*(Vr.^2+Vi.^2)-2*(P.*Vr+Q.*Vi).*Vr)./(Vr.^2+Vi.^2);
|
||||||
|
%dIrdVr=(Q.*(Vr.^2+Vi.^2)-2*(P.*Vr+Q.*Vi).*Vi)./(Vr.^2+Vi.^2);
|
||||||
|
output_args=max(abs([dIrdP,dIrdQ]),[],2);
|
||||||
|
end
|
||||||
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
function [ output_args ] = calIWr(Vr,Vi,sigmaP,sigmaQ )
|
||||||
|
%计算电流实部的方差
|
||||||
|
dIrdP=(Vr./(Vr.^2+Vi.^2)).^2.*(sigmaP.^2);
|
||||||
|
dIrdQ=(Vi./(Vr.^2+Vi.^2)).^2.*(sigmaQ.^2);
|
||||||
|
%dIrdVr=(P.*(Vr.^2+Vi.^2)-2*(P.*Vr+Q.*Vi).*Vr)./(Vr.^2+Vi.^2);
|
||||||
|
%dIrdVr=(Q.*(Vr.^2+Vi.^2)-2*(P.*Vr+Q.*Vi).*Vi)./(Vr.^2+Vi.^2);
|
||||||
|
output_args=max(abs([dIrdP,dIrdQ]),[],2);
|
||||||
|
end
|
||||||
|
|
||||||
38
run.m
38
run.m
|
|
@ -214,13 +214,21 @@ I1measurement=mIf1(Loadi);
|
||||||
% wI1i=abs( imag(mIf1(Loadi).*sigmaI1) );
|
% wI1i=abs( imag(mIf1(Loadi).*sigmaI1) );
|
||||||
%正序测量误差的第二种形式
|
%正序测量误差的第二种形式
|
||||||
|
|
||||||
wI1r=abs(real(I1measurement)).*sigma;
|
% wI1r=abs(real(I1measurement)).*sigma;
|
||||||
|
% wI1i=abs(imag(I1measurement)).*sigma;
|
||||||
|
|
||||||
% dIrdPr=real(V1measurement)./(abs(V1measurement).^2);
|
IArW=calIWr(real(mVoltpA),imag(mVoltpA),mphaseASpotLoadP*sigma,mphaseASpotLoadQ*sigma );
|
||||||
% dIrdQr=imag(V1measurement)./(abs(V1measurement).^2);
|
IAiW=calIWi(real(mVoltpA),imag(mVoltpA),mphaseASpotLoadP*sigma,mphaseASpotLoadQ*sigma );
|
||||||
% dIrdV=
|
IBrW=calIWr(real(mVoltpB),imag(mVoltpB),mphaseBSpotLoadP*sigma,mphaseBSpotLoadQ*sigma );
|
||||||
|
IBiW=calIWi(real(mVoltpB),imag(mVoltpB),mphaseBSpotLoadP*sigma,mphaseBSpotLoadQ*sigma );
|
||||||
|
ICrW=calIWr(real(mVoltpC),imag(mVoltpC),mphaseCSpotLoadP*sigma,mphaseCSpotLoadQ*sigma );
|
||||||
|
ICiW=calIWi(real(mVoltpC),imag(mVoltpC),mphaseCSpotLoadP*sigma,mphaseCSpotLoadQ*sigma );
|
||||||
|
|
||||||
|
wI1r=sqrt((IArW+ICrW+IBrW)/9 );
|
||||||
|
wI1r=wI1r(Loadi);
|
||||||
|
wI1i=sqrt((IAiW+ICiW+IBiW)/9 );
|
||||||
|
wI1i=wI1i(Loadi);
|
||||||
|
|
||||||
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 );
|
||||||
wV1r=wV1r(Loadi);
|
wV1r=wV1r(Loadi);
|
||||||
|
|
@ -249,8 +257,14 @@ I2measurement=mIf2(Loadi);
|
||||||
% wI2r=abs( real(mIf2(Loadi).*sigmaI2) );
|
% wI2r=abs( real(mIf2(Loadi).*sigmaI2) );
|
||||||
% wI2i=abs( imag(mIf2(Loadi).*sigmaI2) );
|
% wI2i=abs( imag(mIf2(Loadi).*sigmaI2) );
|
||||||
%负序误差的第二种形式
|
%负序误差的第二种形式
|
||||||
wI2r=abs(real(I2measurement)).*sigma;
|
% wI2r=abs(real(I2measurement)).*sigma;
|
||||||
wI2i=abs(imag(I2measurement)).*sigma;
|
% wI2i=abs(imag(I2measurement)).*sigma;
|
||||||
|
|
||||||
|
wI2r=sqrt((IArW+ICrW+IBrW)/9 );
|
||||||
|
wI2r=wI2r(Loadi);
|
||||||
|
wI2i=sqrt((IAiW+ICiW+IBiW)/9 );
|
||||||
|
wI2i=wI2i(Loadi);
|
||||||
|
|
||||||
wV2r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
wV2r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
||||||
wV2i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
wV2i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
||||||
wV2r=wV2r(Loadi);
|
wV2r=wV2r(Loadi);
|
||||||
|
|
@ -280,9 +294,15 @@ I0measurement=mIf0(Loadi);
|
||||||
% wI0r=abs( real(mIf0(Loadi).*sigmaI0) );
|
% wI0r=abs( real(mIf0(Loadi).*sigmaI0) );
|
||||||
% wI0i=abs( imag(mIf0(Loadi).*sigmaI0) );
|
% wI0i=abs( imag(mIf0(Loadi).*sigmaI0) );
|
||||||
%零序误差的第二种形式
|
%零序误差的第二种形式
|
||||||
|
%
|
||||||
|
% wI0r=abs(real(I0measurement)).*sigma;
|
||||||
|
% wI0i=abs(imag(I0measurement)).*sigma;
|
||||||
|
|
||||||
|
wI0r=sqrt((IArW+ICrW+IBrW)/9 );
|
||||||
|
wI0r=wI0r(Loadi);
|
||||||
|
wI0i=sqrt((IAiW+ICiW+IBiW)/9 );
|
||||||
|
wI0i=wI0i(Loadi);
|
||||||
|
|
||||||
wI0r=abs(real(I0measurement)).*sigma;
|
|
||||||
wI0i=abs(imag(I0measurement)).*sigma;
|
|
||||||
wV0r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
wV0r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
||||||
wV0i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
wV0i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 );
|
||||||
wV0r=wV0r(Loadi);
|
wV0r=wV0r(Loadi);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue