diff --git a/IPMLoop.m b/IPMLoop.m index 67893a3..16cc370 100644 --- a/IPMLoop.m +++ b/IPMLoop.m @@ -22,10 +22,10 @@ Init_L=1*sparse(ones(RestraintCount,1)); Init_U=1*sparse(ones(RestraintCount,1)); Init_Y=sparse(2*busNum,1);%等式约束乘子 Gap=(Init_L'*Init_Z-Init_U'*Init_W); -kmax=30; +kmax=100; isSetBound=0; -largerBound=1; -realBound=0; +largerBound=0; +realBound=1; tic while(abs(Gap)>1e-4) if KK>=kmax @@ -159,7 +159,7 @@ while(abs(Gap)>1e-4) %%取各分量 [deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,busNum,Balance); [Init_Z,Init_L,Init_W,Init_U,Init_Y,V1r,V1i,I1r,I1i]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,V1r,V1i,I1r,I1i,ContrlCount,Balance,busNum,Loadi,Vref); - Gap=(Init_L'*Init_Z-Init_U'*Init_W)+max(abs(deltX)); + Gap=(Init_L'*Init_Z-Init_U'*Init_W);+max(abs(deltX)); fprintf('Gap %f :%d\n',full(Gap),KK+1); KK=KK+1; end diff --git a/run.m b/run.m index 5b97627..d06df67 100644 --- a/run.m +++ b/run.m @@ -291,7 +291,8 @@ wV0i=wV0i(Loadi); %% 不同量测配置 noLoadi=[1,8,10,12]; -noLoadi=[1:4:max(Loadi)]; +noLoadi=[1:7:max(Loadi)]; +noLoadi=[1,19]; % noLoadi=[4,3,2,5,6,7,11,14,22]; % noLoadi=Loadi; % noLoadi=[]; @@ -311,8 +312,8 @@ wV2i(ismember(Loadi,noLoadi))=1e100000; %考虑负荷曲线不准确的情况 guessCurpA=conj((phaseASpotLoadP+1j*phaseASpotLoadQ)./mVoltpA).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1)); -guessCurpB=conj((phaseBSpotLoadP+1j*phaseBSpotLoadQ)./mVoltpB).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1)); -guessCurpC=conj((phaseCSpotLoadP+1j*phaseCSpotLoadQ)./mVoltpC).*(1+unifrnd(-0.15,0.15,length(phaseASpotLoadQ),1)); +guessCurpB=conj((phaseBSpotLoadP+1j*phaseBSpotLoadQ)./mVoltpB).*(1+unifrnd(-0.15,0.15,length(phaseBSpotLoadQ),1)); +guessCurpC=conj((phaseCSpotLoadP+1j*phaseCSpotLoadQ)./mVoltpC).*(1+unifrnd(-0.15,0.15,length(phaseCSpotLoadQ),1)); guessIf012=Tp2f*conj([-guessCurpA';-guessCurpB';-guessCurpC']); guessIf0=conj(guessIf012(1,:)');