diff --git a/FormG.m b/FormG.m index 1f83ba7..f137773 100644 --- a/FormG.m +++ b/FormG.m @@ -1,7 +1,6 @@ function Mat_G=FormG(Volt,PVi,PGi,PG,QG,PD,QD,Loadi) Mat_G=[ - PG(PGi); sparse(PD(Loadi)); sparse(QD(Loadi)); Volt'; diff --git a/FormLw.m b/FormLw.m index ccb7027..1ee1fc2 100644 --- a/FormLw.m +++ b/FormLw.m @@ -18,7 +18,7 @@ QDU(QDU<0)=0.700*QDU(QDU<0); QDU(QDU==0)=0.400; % PF=0.85; % QDU=1.0*PD(Loadi).*sqrt(1 -PF.^2)./PF; -t1=([PU',PDU',QDU',VoltU])'; +t1=([PDU',QDU',VoltU])'; t2=Mat_G+Init_U'-t1; Lw=t2; diff --git a/FormLz.m b/FormLz.m index 6396c47..d527f03 100644 --- a/FormLz.m +++ b/FormLz.m @@ -16,7 +16,7 @@ QDL(QDL>0)=0.700*QDL(QDL>0); QDL(QDL<0)=1.300*QDL(QDL<0); QDL(QDL==0)=-0.400; % QDL=0*PD(Loadi).*sqrt((1-PF.^2))./PF; -t1=([PL',PDL',QDL',VoltL])'; +t1=([PDL',QDL',VoltL])'; t2=Mat_G-Init_L'-t1; Lz=t2; diff --git a/Modification.m b/Modification.m index 8c689e2..615244e 100644 --- a/Modification.m +++ b/Modification.m @@ -10,13 +10,13 @@ Init_W=Init_W+AlphaD*deltW'; Init_U=Init_U+AlphaP*deltU'; Init_Y=Init_Y+AlphaD*deltY'; %PG(PGi)=PG(PGi)+deltX(1:size(PGi,1)); -PG(PGi)=PG(PGi)+AlphaP*deltX(1:size(PGi,1)); +% PG(PGi)=PG(PGi)+AlphaP*deltX(1:size(PGi,1)); %QG(PVi)=QG(PVi)+deltX(size(PGi,1)+1:size(PVi,1)+size(PGi,1) ); % QG(PVi)=QG(PVi)+AlphaP*deltX(size(PGi,1)+1:size(PVi,1)+size(PGi,1) ); -t=deltX(size(PGi,1)+1:size(PGi,1)+size(Loadi,1)*2); +t=deltX(1:size(Loadi,1)*2); PD(Loadi)=PD(Loadi)+AlphaP*t(1:length(Loadi)); QD(Loadi)=QD(Loadi)+AlphaP*t(length(Loadi)+1:length(Loadi)*2); -t=deltX(size(PGi,1)+size(Loadi,1)*2+1:ContrlCount)'; +t=deltX(size(Loadi,1)*2+1:ContrlCount)'; t(Busnum+Balance)=0; %Volt=Volt+AlphaP*t(2:2:2*Busnum);暂时改一下20111227 %UAngel=UAngel+AlphaP*t(1:2:2*Busnum);暂时改一下20111227 diff --git a/OPF.m b/OPF.m index e7c4be0..5b06934 100644 --- a/OPF.m +++ b/OPF.m @@ -36,11 +36,12 @@ for II=1:4 QG(PVi)=QGBal(PVi); %% PVi=zeros(0,0); + PGi=zeros(0,0); [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); Gap=(Init_L*Init_Z'-Init_U*Init_W'); KK=0; plotGap=zeros(1,60); - ContrlCount=size(PGi,1)+size(Loadi,1)*2+Busnum*2; + ContrlCount=size(Loadi,1)*2+Busnum*2; kmax=60; %% 20120523 临时 QD_NON_ZERO=QD(PD==0 & QD~=0); diff --git a/OPF_Init.m b/OPF_Init.m index abbf01e..1bc6caf 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(PGi,1)+size(Loadi,1)*2+Busnum*1; %约束条件数,放开所有QD +RestraintCount=size(Loadi,1)*2+Busnum*1; %约束条件数,放开所有QD t_Bal_volt=Volt(Balance); Volt=sparse(1*ones(1,Busnum)); Volt(Balance)=t_Bal_volt; @@ -22,6 +22,7 @@ wQG=0*ones(size(PVi,1),0); %randPDind=randInt(1:10); randPDind=0; wPD=20*ones(size(Loadi,1),1); +wQD=0; %wD(randPDind)=0;%一些负荷不约束 %wD(7)=0; % wD(11)=0; diff --git a/ObjectiveFun.m b/ObjectiveFun.m index 590d571..2d9fabb 100644 --- a/ObjectiveFun.m +++ b/ObjectiveFun.m @@ -1,9 +1,5 @@ function [out_arg]=ObjectiveFun(PG,PG0,PGi,QG,QG0,PVi,PD,PD0,QD,QD0,wPG,wQG,wPD,wQD,Loadi) -t1=PG(PGi)-PG0(PGi); -t2=wPG.*t1.*t1; -t1=QG(PVi)-QG0(PVi); -t3=wQG.*t1.*t1; t4=wPD.*((PD(Loadi)-PD0(Loadi)).*(PD(Loadi)-PD0(Loadi))); t5=wQD.*((QD(Loadi)-QD0(Loadi)).*(QD(Loadi)-QD0(Loadi))); -out_arg= sum(t2)+sum(t3)+sum(t4)+sum(t5); +out_arg= sum(t4)+sum(t5); end \ No newline at end of file diff --git a/SolveIt.m b/SolveIt.m index b2a88d2..bda0ea0 100644 --- a/SolveIt.m +++ b/SolveIt.m @@ -10,14 +10,14 @@ aa=[ ]; yy=[LxComa;-Ly]; %% 平衡节点电压不变 -t=size(PGi,1)+size(Loadi,1)*2; +t=size(Loadi,1)*2; aa(t+Balance,:)=0; aa(:,t+Balance)=0; %aa(t+Balance,t+Balance)=1; aa=aa+sparse(t+Balance,t+Balance,ones(length(Balance),1),ContrlCount+2*Busnum,ContrlCount+2*Busnum); deltG(t+Balance,:)=0; %% -t=size(PGi,1)+size(Loadi,1)*2+Busnum*1; +t=size(Loadi,1)*2+Busnum*1; aa(t+Balance,:)=0; aa(:,t+Balance)=0; %aa(t+Balance,t+Balance)=1; diff --git a/func_ddh.m b/func_ddh.m index 415e4d7..7fc87c9 100644 --- a/func_ddh.m +++ b/func_ddh.m @@ -48,10 +48,9 @@ ddQdVdV=t1+t2; t=[ddPdVdV+ddQdVdV,ddPdVdT+ddQdVdT; ddPdTdV+ddQdTdV,ddPdTdT+ddQdTdT; ]; -sizePGi=size(PGi,1); sizeLoadi=size(Loadi,1)*2; ddh=[ - sparse(sizePGi+sizeLoadi,ContrlCount); - sparse(2*Busnum,sizePGi+sizeLoadi),-t; + sparse(sizeLoadi,ContrlCount); + sparse(2*Busnum,sizeLoadi),-t; ]; end \ No newline at end of file diff --git a/func_deltF.m b/func_deltF.m index 0d9e168..a6f63cf 100644 --- a/func_deltF.m +++ b/func_deltF.m @@ -1,12 +1,7 @@ function deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,wQD,PG0,QG0,PD0,PD,QD,QD0,Busnum,Loadi) - -t1=2*wPG.*(PG(PGi) - PG0(PGi) ); -t2=2*wQG.*(QG(PVi) - QG0(PVi) ); t3=2*wPD.*(PD(Loadi)-PD0(Loadi)); t4=2*wQD.*(QD(Loadi)-QD0(Loadi)); -deltF=[ - sparse(t1); - sparse(t3); +deltF=[sparse(t3); sparse(t4); sparse(2*Busnum,1); ]; diff --git a/func_deltG.m b/func_deltG.m index c199f22..893ff02 100644 --- a/func_deltG.m +++ b/func_deltG.m @@ -38,9 +38,8 @@ dg5_dx=[sparse(1:Busnum,1:Busnum,ones(Busnum,1),Busnum,Busnum); ]; %% -deltG=[dg1_dPg,dg3_dPg,dg4_dPg,dg5_dPg; - dg1_dPD,dg3_dPD,dg4_dPD,dg5_dPD; - dg1_dQD,dg3_dQD,dg4_dQD,dg5_dQD; - dg1_dx,dg3_dx,dg4_dx,dg5_dx; +deltG=[dg3_dPD,dg4_dPD,dg5_dPD; + dg3_dQD,dg4_dQD,dg5_dQD; + dg3_dx,dg4_dx,dg5_dx; ]; end \ No newline at end of file diff --git a/func_deltH.m b/func_deltH.m index 0c6d108..366f9ef 100644 --- a/func_deltH.m +++ b/func_deltH.m @@ -4,6 +4,6 @@ dH_dPg=sparse(1:size(PGi,1),PGi,ones(size(PGi,1),1),size(PGi,1),2*Busnum); dH_dPD=[sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum) sparse(size(Loadi,1),Busnum)]; dH_dQD=[sparse(size(Loadi,1),Busnum) sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum)]; dH_dx = jacobian_M(Busnum,Volt,Y,Angle,UAngel,r,c); %形成雅克比矩阵 -deltH=[dH_dPg;dH_dPD;dH_dQD;dH_dx']; +deltH=[dH_dPD;dH_dQD;dH_dx']; end \ No newline at end of file diff --git a/func_deltdeltF.m b/func_deltdeltF.m index ca98f24..83dd880 100644 --- a/func_deltdeltF.m +++ b/func_deltdeltF.m @@ -1,7 +1,7 @@ function deltdeltF=func_deltdeltF(PVi,wPG,wQG,wPD,wQD,ContrlCount) %ContrlCount=size(PVi,1)+size(PGi,1)+size(wD,1)+Busnum*2; %P,Q,Volt theta这些控制变量数 -C=[wPG' wPD' wQD']; +C=[wPD' wQD']; sizeC=size(C,2); diagC=sparse(1:sizeC,1:sizeC,C,sizeC,sizeC); deltdeltF=[