diff --git a/AssignXX.m b/AssignXX.m index 870f433..83221d0 100644 --- a/AssignXX.m +++ b/AssignXX.m @@ -1,4 +1,4 @@ -function [deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX1(XX,ContrlCount,RestraintCount,Busnum) +function [deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,Busnum) deltX=XX(1:ContrlCount); k1=ContrlCount+2*Busnum; deltY=XX(ContrlCount+1:k1); @@ -12,6 +12,5 @@ k2=k1; k1=k2+RestraintCount; deltL=XX(k2+1:k1); k2=k1; -k1=k2+RestraintCount; -deltU=XX(k2+1:k1); +deltU=XX(k2+1:end); end \ No newline at end of file diff --git a/FormAlphaP.m b/FormAlphaP.m index a3cf2be..6716f38 100644 --- a/FormAlphaP.m +++ b/FormAlphaP.m @@ -3,7 +3,7 @@ tdeltLinx=find(deltL<0); tdeltUinx=find(deltU<0); t1=-Init_L(tdeltLinx)./deltL(tdeltLinx); t2=-Init_U(tdeltUinx)./deltU(tdeltUinx); -t3=[t1,t2]; +t3=[t1;t2]; t4=min(t3); AlphaP=0.9995*min([t4 1]); end \ No newline at end of file diff --git a/FormG.m b/FormG.m index fb8bbbf..b264438 100644 --- a/FormG.m +++ b/FormG.m @@ -1,7 +1,7 @@ -function Mat_G=FormG(Volt,PD,QD) +function Mat_G=FormG(Volt,PD,QD,Loadi) Mat_G=[ - sparse(PD); - sparse(QD); + PD(Loadi); + QD(Loadi); Volt; ]; end \ No newline at end of file diff --git a/FormLw.m b/FormLw.m index 4685222..7c40469 100644 --- a/FormLw.m +++ b/FormLw.m @@ -1,7 +1,7 @@ function Lw=FormLw(Mat_G,Init_U,Busnum,Loadi) -VoltU=sparse(1.1*ones(Busnum,1)); -PDU=sparse(1.5*ones(length(Loadi),1)); -QDU=sparse(1.5*ones(length(Loadi),1)); +VoltU=sparse(1.2*ones(Busnum,1)); +PDU=sparse(2*ones(length(Loadi),1)); +QDU=sparse(2*ones(length(Loadi),1)); t1=[PDU; QDU; VoltU]; diff --git a/FormLz.m b/FormLz.m index 5c373fb..ccffe93 100644 --- a/FormLz.m +++ b/FormLz.m @@ -1,7 +1,7 @@ function Lz=FormLz(Mat_G,Init_L,Busnum,Loadi) -VoltL=sparse(0.9*ones(Busnum,1)); -PDL=sparse(0*ones(length(Loadi),1)); -QDL=sparse(0*ones(length(Loadi),1)); +VoltL=sparse(0.8*ones(Busnum,1)); +PDL=sparse(-2*ones(length(Loadi),1)); +QDL=sparse(-2*ones(length(Loadi),1)); t1=[PDL; QDL; VoltL diff --git a/func_deltdeltF.m b/func_deltdeltF.m index 17fdbb2..309e1e9 100644 --- a/func_deltdeltF.m +++ b/func_deltdeltF.m @@ -2,4 +2,5 @@ function deltdeltF=func_deltdeltF(SEPD,ContrlCount) deltdeltF=[ 0*zeros(ContrlCount); ]; +deltdeltF=0; end \ No newline at end of file diff --git a/run.m b/run.m index 1305c13..e8f1912 100644 --- a/run.m +++ b/run.m @@ -171,6 +171,7 @@ fprintf(' % VoltpC=Vp3m(3:3:end).*exp(1j*Vp3a(3:3:end)); %% 用牛顿法求解end %% 开始进入状态估计 +clear PD QD PG QG; %状态量 SEVoltpA=sparse(ones(busNum,1)); SEVoltpB=sparse(ones(busNum,1)).*exp(1j*-120/180*pi); @@ -184,8 +185,8 @@ SEphaseCSpotLoadQ=zeros(length(phaseCSpotLoadQ),1); % SEVmf1=sparse(ones(busNum,1)); SEVaf1=sparse(zeros(busNum,1)); -SEPD=sparse(length(Loadi),1); -SEQD=sparse(length(Loadi),1); +SEPD=sparse(zeros(busNum,1)); +SEQD=sparse(zeros(busNum,1)); KK=0; plotGap=zeros(1,60); %初始化 @@ -201,9 +202,11 @@ Init_Y=sparse(2*busNum,1);% Gap=(Init_L'*Init_Z-Init_U'*Init_W); PG=sparse(busNum,1); PG(Balance)=0.1105; -QD=sparse(busNum,1); +QG=sparse(busNum,1); QG(Balance)=0.0984; -while Gap>1e-5 && KK<60 +SEPD(2)=0.1105; +SEQD(2)=0.0984; +while Gap>1e-5 && KK<20 KK=KK+1; Init_u=Gap/2/RestraintCount*CenterA; deltH=func_deltH(busNum,SEVmf1,fsY1amp,SEVaf1,r,c,fsY1ang,Loadi); @@ -216,7 +219,7 @@ while Gap>1e-5 && KK<60 deltF=func_deltF(SEPD,ContrlCount); Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1); Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1); - Mat_G=FormG(SEVaf1,SEPD,SEQD); + Mat_G=FormG(SEVmf1,SEPD,SEQD,Loadi); Mat_H=FormH(busNum,SEVmf1,PG,SEPD,QG,SEQD,fsY1amp,SEVaf1,r,c,fsY1ang); Ly=Mat_H; Lz=FormLz(Mat_G,Init_L,busNum,Loadi); @@ -228,6 +231,6 @@ while Gap>1e-5 && KK<60 fprintf('迭代次数 %d Gap %f\n',KK,plotGap(KK)); XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddg,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,Lx,Balance,busNum,Loadi); [deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,busNum); - [Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,PG,QG,SEVmf1,SEVaf1,ContrlCount,Balance,busNum,PD,QD,Loadi); + [Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,SEVmf1,SEVaf1,SEPD,SEQD]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,PG,QG,SEVmf1,SEVaf1,ContrlCount,Balance,busNum,SEPD,SEQD,Loadi); Gap=(Init_L'*Init_Z-Init_U'*Init_W); end \ No newline at end of file