diff --git a/FormLw.m b/FormLw.m index 3ec54c3..6e1945d 100644 --- a/FormLw.m +++ b/FormLw.m @@ -15,7 +15,7 @@ PDU(PDU==0)=0.400; % QDU(QDU>0)=1.200*QDU(QDU>0); % QDU(QDU<0)=0.800*QDU(QDU<0); % QDU(QDU==0)=0.200; -QDU=1.2*PD(Loadi).*sqrt(1 -PF.^2)./PF; +QDU=1.1*PD(Loadi).*sqrt(1 -PF.^2)./PF; t1=([PU',QU',PDU',QDU',VoltU])'; t2=Mat_G+Init_U'-t1; Lw=t2; diff --git a/OPF.m b/OPF.m index c6a3484..a9a4271 100644 --- a/OPF.m +++ b/OPF.m @@ -43,6 +43,7 @@ kmax=60; QD_NON_ZERO=QD(PD==0 & QD~=0); QD_NON_ZERO_IND=find(PD==0 & QD~=0); %% +Precision=Precision/1; while(abs(Gap)>Precision) if KK>kmax break; @@ -59,13 +60,13 @@ while(abs(Gap)>Precision) L_1Z=diag(Init_Z./Init_L); U_1W=diag(Init_W./Init_U); %% 形成海森阵 - deltdeltF=func_deltdeltF(PVi,wPG,wQG,wPD,ContrlCount); + deltdeltF=func_deltdeltF(PVi,wPG,wQG,wPD,wQD,ContrlCount); %% 形成ddHy ddh=func_ddh(Volt,Init_Y,Busnum,PVi,PGi,Y,UAngel,r,c,Angle,Loadi,ContrlCount); %% 开始构建ddg ddg=func_ddg(PGi,PVi,Busnum,RestraintCount,Loadi,PD,QD); %% 开始构建deltF - deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,PG0,QG0,PD0,PD,Busnum,Loadi); + deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,wQD,PG0,QG0,PD0,PD,QD,QD0,Busnum,Loadi); %% 形成方程矩阵 Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1); diff --git a/OPF_Init.m b/OPF_Init.m index 25d3ccb..ddae401 100644 --- a/OPF_Init.m +++ b/OPF_Init.m @@ -17,8 +17,8 @@ tPL=sparse(GenL(:,2));% tQL=sparse(PVQL(:,1));% 无功下限 PG(PGi)=(tPU+tPL)/2; QG(PVi)=(tQU+tQL)/2; -wPG=1*ones(size(PGi,1),1); -wQG=1*ones(size(PVi,1),1); +wPG=100*ones(size(PGi,1),1); +wQG=100*ones(size(PVi,1),1); %randInt=randperm(size(Loadi,1)); %randPDind=randInt(1:10); randPDind=0; diff --git a/func_deltF.m b/func_deltF.m index 5a22b53..58421a0 100644 --- a/func_deltF.m +++ b/func_deltF.m @@ -1,13 +1,14 @@ -function deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,PG0,QG0,PD0,PD,Busnum,Loadi) +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(t2); sparse(t3); - sparse(length(Loadi),1); + sparse(t4); sparse(2*Busnum,1); ]; diff --git a/func_deltdeltF.m b/func_deltdeltF.m index d08f22b..820fc12 100644 --- a/func_deltdeltF.m +++ b/func_deltdeltF.m @@ -1,7 +1,7 @@ -function deltdeltF=func_deltdeltF(PVi,wPG,wQG,wPD,ContrlCount) +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' wQG' wPD']; +C=[wPG' wQG' wPD' wQD']; sizeC=size(C,2); diagC=sparse(1:sizeC,1:sizeC,C,sizeC,sizeC); deltdeltF=[