diff --git a/IPMLoop.m b/IPMLoop.m index d62d9b5..8957b5a 100644 --- a/IPMLoop.m +++ b/IPMLoop.m @@ -30,7 +30,39 @@ isSetBound=0; largerBound=0; realBound=1; 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 break; end @@ -63,99 +95,7 @@ deltG=func_deltGstate1(busNum,Loadi,boundedLoadi,I1r,I1i); Mat_G=FormGstate1(I1r,I1i,ismember(Loadi,boundedLoadi) ); Mat_H=FormH(fsY1,Loadi,V1r,V1i,I1r,I1i,BalI1r,BalI1i,Balance); 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); 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); @@ -173,7 +113,7 @@ end toc calcuTime=toc/KK; % 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