收敛了的,而且是做好了的。准备加真实的tolerance

Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2014-07-19 16:30:16 +08:00
parent 1599e58150
commit 16db56fb26
2 changed files with 21 additions and 8 deletions

View File

@ -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;

27
OPF.m
View File

@ -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));