diff --git a/FormG.m b/FormG.m index 3c8ab70..24b84a8 100644 --- a/FormG.m +++ b/FormG.m @@ -1,6 +1,7 @@ function Mat_G=FormG(Volt,PD,QD,Loadi,Vbi,mVolt,RealVolt,bigM,sigma) Mat_G=[ + sparse(PD(Loadi)); sparse(PD(Loadi)); sparse(QD(Loadi)); Volt'-bigM*Vbi-mVolt'-sigma*RealVolt'; diff --git a/FormLw.m b/FormLw.m index 3a08974..8a311a7 100644 --- a/FormLw.m +++ b/FormLw.m @@ -17,7 +17,7 @@ realQD=QD0(Loadi); indQD=find(realQD>0); QDU(indQD(3:12:end))=1.55*realQD(indQD(3:12:end)); QDU(indQD(9:12:end))=1.05*realQD(indQD(9:12:end)); -t1=([PDU',QDU',0*VoltU,50*ones(1,Busnum),1*ones(1,Busnum)])'; +t1=([PDU',PDU',QDU',0*VoltU,50*ones(1,Busnum),1*ones(1,Busnum)])'; t2=Mat_G+Init_U'-t1; Lw=t2; diff --git a/FormLz.m b/FormLz.m index d6c46f8..996e03f 100644 --- a/FormLz.m +++ b/FormLz.m @@ -16,7 +16,7 @@ realQD=QD0(Loadi); indQD=find(realQD>0); QDL(indQD(3:12:end))=0.95*realQD(indQD(3:12:end)); QDL(indQD(9:12:end))=0.95*realQD(indQD(9:12:end)); -t1=([PDL',QDL',-5000*ones(1,length(VoltL)),0*VoltL,0*ones(1,Busnum)])'; +t1=([PDL',PDL',QDL',-5000*ones(1,length(VoltL)),0*VoltL,0*ones(1,Busnum)])'; t2=Mat_G-Init_L'-t1; Lz=t2; end \ No newline at end of file diff --git a/OPF.m b/OPF.m index bf94e32..1e1310c 100644 --- a/OPF.m +++ b/OPF.m @@ -56,7 +56,7 @@ mQD=QD0; RealVolt=Volt0; mVolt=Volt0.*(1+normrnd(0,sigma,1,length(Volt0))); Vbi=sparse(0.1*ones(Busnum,1)); -bigM=50; +bigM=10; while(abs(Gap)>Precision) if KK>kmax break; diff --git a/OPF_Init.m b/OPF_Init.m index b475997..824bfdf 100644 --- a/OPF_Init.m +++ b/OPF_Init.m @@ -1,7 +1,7 @@ function [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,PD,PD0,QD,randPDind,Loadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD) Loadi=find(QD~=0 | PD~=0); %Loadi=[1:Busnum]'; -RestraintCount=size(Loadi,1)*2+Busnum*2+Busnum; %约束条件数,放开所有QD +RestraintCount=size(Loadi,1)*2+size(Loadi,1)+Busnum*2+Busnum; %约束条件数,放开所有QD t_Bal_volt=Volt(Balance); Volt=sparse(1*ones(1,Busnum)); Volt(Balance)=t_Bal_volt; diff --git a/func_deltG.m b/func_deltG.m index d439ceb..ab97d12 100644 --- a/func_deltG.m +++ b/func_deltG.m @@ -1,18 +1,23 @@ function deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD) sizeLoadi=size(Loadi,1); +%dg3 PD-M*b-t-PD0 dg3_dPD=sparse(1:size(Loadi,1),1:size(Loadi,1),ones(size(Loadi,1),1),size(Loadi,1),size(Loadi,1)); +%dg32 PD+M*B+t+PD0 +dg32_dPD=dg3_dPD; dg4_dPD=sparse(size(Loadi,1),length(Loadi)); dg5_dPD=sparse(size(Loadi,1),Busnum); dg6_dPD=dg5_dPD; dg7_dPD=sparse(sizeLoadi,Busnum); %% dg3_dQD=sparse(length(Loadi),length(Loadi)); +dg32_dQD=sparse(sizeLoadi,sizeLoadi); dg4_dQD=sparse(1:size(Loadi,1),1:size(Loadi,1),ones(size(Loadi,1),1),size(Loadi,1),size(Loadi,1)); dg5_dQD=sparse(size(Loadi,1),Busnum); dg6_dQD=dg5_dQD; dg7_dQD=sparse(sizeLoadi,Busnum); %% dg3_dx=sparse(2*Busnum,sizeLoadi); +dg32_dx=sparse(2*Busnum,sizeLoadi); dg4_dx=sparse(2*Busnum,length(Loadi)); dg5_dx=[sparse(1:Busnum,1:Busnum,ones(Busnum,1),Busnum,Busnum); sparse(Busnum,Busnum); @@ -21,14 +26,15 @@ dg6_dx=dg5_dx; dg7_dx=sparse(2*Busnum,Busnum); %% dg3_dvbi=sparse(Busnum,sizeLoadi); +dg32_dvbi=sparse(Busnum,sizeLoadi); dg4_dvbi=sparse(Busnum,length(Loadi)); dg5_dvbi=sparse(-eye(Busnum,Busnum)); dg6_dvbi=sparse(eye(Busnum,Busnum)); dg7_dvbi=sparse(eye(Busnum,Busnum)); %% -deltG=[dg3_dPD,dg4_dPD,dg5_dPD,dg6_dPD,dg7_dPD; - dg3_dQD,dg4_dQD,dg5_dQD,dg6_dQD,dg7_dQD; - dg3_dx,dg4_dx,dg5_dx,dg6_dx,dg7_dx; - dg3_dvbi,dg4_dvbi,dg5_dvbi,dg6_dvbi,dg7_dvbi; +deltG=[dg3_dPD,dg32_dPD,dg4_dPD,dg5_dPD,dg6_dPD,dg7_dPD; + dg3_dQD,dg32_dQD,dg4_dQD,dg5_dQD,dg6_dQD,dg7_dQD; + dg3_dx,dg32_dx,dg4_dx,dg5_dx,dg6_dx,dg7_dx; + dg3_dvbi,dg32_dvbi,dg4_dvbi,dg5_dvbi,dg6_dvbi,dg7_dvbi; ]; end \ No newline at end of file