From c79429065ea52933074bda1188c8bd7a6888431f Mon Sep 17 00:00:00 2001 From: facat Date: Sat, 6 Apr 2013 22:02:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=8A=E7=94=B5=E5=8E=8B=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E5=87=BD=E6=95=B0=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: facat --- OPF_Init.m | 3 ++- ObjectiveFun.m | 6 +++--- Run_YALMIP.m | 19 ++++++++++--------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/OPF_Init.m b/OPF_Init.m index 344a4f6..3c4db83 100644 --- a/OPF_Init.m +++ b/OPF_Init.m @@ -1,4 +1,4 @@ -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,notLoadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD) +function [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,wVolt,PD,PD0,QD,randPDind,Loadi,notLoadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD) Loadi=find(QD~=0 | PD~=0); PDi=find(PD~=0); QDi=find(QD~=0); @@ -35,6 +35,7 @@ wQG=1*ones(size(PVi,1),1); randPDind=0; wPD=1/0.05^2*ones(sum(PD~=0),1); wQD=1/0.05^2*ones(sum(QD~=0),1); +wVolt=1/0.05^2*ones(Busnum,1); %wD(randPDind)=0;%一些负荷不约束 %wD(7)=0; % wD(11)=0; diff --git a/ObjectiveFun.m b/ObjectiveFun.m index 3dfec63..efe5ce1 100644 --- a/ObjectiveFun.m +++ b/ObjectiveFun.m @@ -1,6 +1,6 @@ -function [out_arg]=ObjectiveFun(PG,PG0,PGi,QG,QG0,PVi,PD,PD0,QD,QD0,wPG,wQG,wPD,wQD,Loadi) +function [out_arg]=ObjectiveFun(PG,PG0,PGi,QG,QG0,PVi,PD,PD0,QD,QD0,Volt,Volt0,wPG,wQG,wPD,wQD,wVolt,Loadi) t4=wPD.*(PD(PD0~=0)-PD0(PD0~=0)).^2; t5=wQD.*(QD(QD0~=0)-QD0(QD0~=0)).^2; - -out_arg=sum(t4)+sum(t5); +t6=wVolt.*(Volt-Volt0').^2; +out_arg=sum(t4)+sum(t5)+sum(t6); end \ No newline at end of file diff --git a/Run_YALMIP.m b/Run_YALMIP.m index e0b96d1..b098f5b 100644 --- a/Run_YALMIP.m +++ b/Run_YALMIP.m @@ -24,14 +24,15 @@ QG0(Balance)=QGBal(Balance); QG0(PVi)=QGBal(PVi); PG(Balance)=PGBal(Balance); QG(PVi)=QGBal(PVi); -PF=1; -AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle',Busnum,Busnum); -dP=PG-PD-diag(Volt)*Y.*cos(AngleIJ)*Volt'; -dPD=abs(dP./PD); -dQ=QG-QD-diag(Volt)*Y.*sin(AngleIJ)*Volt'; -dQD=abs(dQ./QD); -maxdPQ=max([dPD(dPD<10);dQD(dQD<10)]); -[Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,PD,PD0,QD,randPDind,Loadi,notLoadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD); +Volt0=Volt; +% PF=1; +% AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle',Busnum,Busnum); +% dP=PG-PD-diag(Volt)*Y.*cos(AngleIJ)*Volt'; +% dPD=abs(dP./PD); +% dQ=QG-QD-diag(Volt)*Y.*sin(AngleIJ)*Volt'; +% dQD=abs(dQ./QD); +% maxdPQ=max([dPD(dPD<10);dQD(dQD<10)]); +[Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,wVolt,PD,PD0,QD,randPDind,Loadi,notLoadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD); %% 定义变量 BalVolt=Volt(Balance); Volt=sdpvar(Busnum,1); @@ -45,7 +46,7 @@ AngleIJ=sdpvar(Busnum,Busnum,'full'); PD0=(1+normrnd(0,0.05,length(PD0),1)).*PD0; QD0=(1+normrnd(0,0.05,length(QD0),1)).*QD0; %% 目标函数 -Objective=ObjectiveFun(PG,PG0,PGi,QG,QG0,PVi,PD,PD0,QD,QD0,wPG,wQG,wPD,wQD,Loadi); +Objective=ObjectiveFun(PG,PG0,PGi,QG,QG0,PVi,PD,PD0,QD,QD0,Volt,Volt0,wPG,wQG,wPD,wQD,wVolt,Loadi); %AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle,Busnum,Busnum); %% 赋初值,可以加快求解速度。 assign(Volt(:),1);