From 16db56fb26cce4a77b0bdc64df35abe93710a987 Mon Sep 17 00:00:00 2001 From: "dugg@lab-desk" Date: Sat, 19 Jul 2014 16:30:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=95=9B=E4=BA=86=E7=9A=84=EF=BC=8C?= =?UTF-8?q?=E8=80=8C=E4=B8=94=E6=98=AF=E5=81=9A=E5=A5=BD=E4=BA=86=E7=9A=84?= =?UTF-8?q?=E3=80=82=E5=87=86=E5=A4=87=E5=8A=A0=E7=9C=9F=E5=AE=9E=E7=9A=84?= =?UTF-8?q?tolerance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dugg@lab-desk --- FormG.m | 2 +- OPF.m | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/FormG.m b/FormG.m index 9add28b..bed78fe 100644 --- a/FormG.m +++ b/FormG.m @@ -1,4 +1,4 @@ -function Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD) +function Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD) Mat_G=[ sparse(PD(Loadi))-mPD(Loadi)-bigM*PDbi-0.1; diff --git a/OPF.m b/OPF.m index a7f6b14..9d3a654 100644 --- a/OPF.m +++ b/OPF.m @@ -50,12 +50,20 @@ kmax=100; Precision=Precision/1; %% 加误差 sigma=0.01; -PD0(Loadi)=PD0(Loadi).*(1+normrnd(0,sigma,length(Loadi),1)); -QD0(Loadi)=QD0(Loadi).*(1+normrnd(0,sigma,length(Loadi),1)); +PD0(Loadi)=RealPD(Loadi).*(1+normrnd(0,sigma,length(Loadi),1)); +QD0(Loadi)=RealQD(Loadi).*(1+normrnd(0,sigma,length(Loadi),1)); +mVolt=rVolt.*(1+normrnd(0,sigma,length(rVolt),1))'; mPD=PD0; mQD=QD0; -mVolt=rVolt.*(1+normrnd(0,sigma,length(rVolt),1))'; -mVolt(2)=2; +%加估计上下界 +lPD=RealPD*(1-3*sigma); +uPD=RealPD*(1+3*sigma); +lQD=RealQD*(1-3*sigma); +uQD=RealQD*(1+3*sigma); +lVolt=rVolt*(1-3*sigma); +uVolt=rVolt*(1+3*sigma); +%错误数据 +mVolt(2)=5; bigM=10; Vbi=sparse(0.5*ones(Busnum,1)); PDbi=sparse(0.5*ones(length(Loadi),1)); @@ -89,7 +97,7 @@ while(abs(Gap)>Precision*1) %% 形成方程矩阵 Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1); Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1); - Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD); + Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD); Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi); Ly=Mat_H; Lz=FormLz(Mat_G,Init_L,GenL,Busnum,PVQL,PD,RealPD,RealQD,Loadi,KK,PF,eps); @@ -139,8 +147,11 @@ while(abs(Gap)>Precision*1) Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD); Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi); Ly=Mat_H; - if KK>5 - eps=eps*0.1; + if KK>8 + eps=eps*0.2; + if abs(eps)<1e-6 + eps=1e-6; + end end Lz=FormLz(Mat_G,Init_L,GenL,Busnum,PVQL,PD,RealPD,RealQD,Loadi,KK,PF,eps); Lw=FormLw(Mat_G,Init_U,GenU,Busnum,PVQU,PD,PD0,QD0,Loadi,KK,PF,eps); @@ -156,4 +167,6 @@ while(abs(Gap)>Precision*1) KK=KK+1; end toc +obj=sum(Vbi)+sum(PDbi)+sum(QDbi); +fprintf('目标函数值 %.2f\n',full(obj));