diff --git a/OPF.m b/OPF.m index 367410a..c63fc32 100644 --- a/OPF.m +++ b/OPF.m @@ -94,8 +94,6 @@ while(k<=kmax && maxD> EPS) If0=conj(f012(1,:)'); If1=conj(f012(2,:)'); If2=conj(f012(3,:)'); - - If0(Balance)=0; If2(Balance)=0; %Vf0=fsY0\If0; @@ -171,8 +169,10 @@ Vp3a((Balance-1)*3+1)=0; Vp3a((Balance-1)*3+2)=-120/180*pi; Vp3a((Balance-1)*3+3)=+120/180*pi; Loadi=PQi3P; +wVolt=ones(busNum*3,1); wPD=ones(length(Loadi),1); wQD=ones(length(Loadi),1); +mVolt=Vp3m; PD0=PD3P; QD0=QD3P; %% @@ -207,7 +207,7 @@ while(abs(Gap)>Precision) L_1Z=diag(Init_Z./Init_L); U_1W=diag(Init_W./Init_U); %% 形成海森阵 - deltdeltF=func_deltdeltF(wPD,wQD,ContrlCount); + deltdeltF=func_deltdeltF(wVolt,wPD,wQD,ContrlCount); % deltdeltF=0; %% 形成ddHy ddh=func_ddh(Volt,Init_Y,Busnum,Y,UAngel,r,c,Yangle,Loadi,ContrlCount); @@ -215,7 +215,7 @@ while(abs(Gap)>Precision) % ddg=func_ddg(PGi,PVi,Busnum,RestraintCount,Loadi,PD,QD); ddg=0; %% 开始构建deltF - deltF=func_deltF(wPD,wQD,PD0,PD3P,QD3P,QD0,Busnum,Loadi); + deltF=func_deltF(wVolt,wPD,wQD,PD0,PD3P,QD3P,QD0,Volt,mVolt,Busnum,Loadi); % deltF=0; %% 形成方程矩阵 Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1); diff --git a/func_deltF.m b/func_deltF.m index d1ba14d..b63fc10 100644 --- a/func_deltF.m +++ b/func_deltF.m @@ -1,9 +1,11 @@ -function deltF=func_deltF(wPD,wQD,PD0,PD,QD,QD0,Busnum,Loadi) +function deltF=func_deltF(wVolt,wPD,wQD,PD0,PD,QD,QD0,Volt,mVolt,Busnum,Loadi) t3=2*wPD.*(PD(Loadi)-PD0(Loadi)); t4=2*wQD.*(QD(Loadi)-QD0(Loadi)); +t5=2*wVolt.*(Volt-mVolt); deltF=[sparse(t3); sparse(t4); - sparse(2*Busnum*3,1); + sparse(t5); + sparse(1*Busnum*3,1); ]; end \ No newline at end of file diff --git a/func_deltdeltF.m b/func_deltdeltF.m index 2714415..77f6b9c 100644 --- a/func_deltdeltF.m +++ b/func_deltdeltF.m @@ -1,11 +1,14 @@ -function deltdeltF=func_deltdeltF(wPD,wQD,ContrlCount) +function deltdeltF=func_deltdeltF(wVolt,wPD,wQD,ContrlCount) %ContrlCount=size(PVi,1)+size(PGi,1)+size(wD,1)+Busnum*2; %P,Q,Volt theta这些控制变量数 C=[wPD' wQD']; +CVolt=wVolt; sizeC=size(C,2); diagC=sparse(1:sizeC,1:sizeC,C,sizeC,sizeC); deltdeltF=[ diagC*2,sparse(sizeC,ContrlCount-sizeC); - sparse(ContrlCount-sizeC,ContrlCount); + %sparse(ContrlCount-sizeC,ContrlCount); + diag(CVolt)*2,sparse(length(CVolt),ContrlCount-length(CVolt)); + sparse(length(CVolt),ContrlCount); ]; end \ No newline at end of file