pes2014/OPF.m

74 lines
2.7 KiB
Mathematica
Raw Normal View History

2012-05-22 11:33:21 +08:00
tic
clear
%[kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,LineLimti,LineLimtj,LinePLimt,PG,QG,PD,QD,CenterA,LineCount,PGi,PVQU,PVQL]=pf('5sj.txt');
[kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,PG,QG,PD,QD,CenterA,PGi,PVQU,PVQL]=pf('ieee10471PG.dat');
2012-05-22 11:33:21 +08:00
GB=full(GB);
%PVi<EFBFBD><EFBFBD>ѹ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
%PVu<EFBFBD><EFBFBD>ѹ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
Volt;
UAngel*180/3.1415926;
2012-05-22 11:33:21 +08:00
%sprintf('%f\n',Volt);
%sprintf('%f\n',Angel);
%% <EFBFBD><EFBFBD>ֵ
PG0=PG;
PD0=PD;
[Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wG,wD,PD]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0);
2012-05-22 11:33:21 +08:00
Gap=(Init_L*Init_Z'-Init_U*Init_W');
KK=0;
plotGap=zeros(1,50);
ContrlCount=size(PVi,1)+size(PGi,1)+Busnum*3;
kmax=600;
%% 20120523 <EFBFBD><EFBFBD>ʱ
QD_NON_ZERO=QD(PD==0 & QD~=0);
QD_NON_ZERO_IND=find(PD==0 & QD~=0);
%%
2012-05-22 11:33:21 +08:00
while(abs(Gap)>Precision)
if KK>kmax
break;
end
plotGap(KK+1)=Gap;
Init_u=Gap/2/RestraintCount*CenterA;
AngleIJMat=repmat(UAngel',1,Busnum)-repmat(UAngel,Busnum,1);
%% <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>OPF
%% <EFBFBD>γɵ<EFBFBD>ʽԼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ˱<EFBFBD>
deltH=func_deltH(Busnum,Volt,PVi,AngleIJMat,Y,GB,PGi);
%% <EFBFBD>γɲ<EFBFBD><EFBFBD><EFBFBD>ʽԼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ˱<EFBFBD>
deltG=func_deltG(Busnum,PVi,PGi);
%%
L_1Z=diag(Init_Z./Init_L);
U_1W=diag(Init_W./Init_U);
%% <EFBFBD>γɺ<EFBFBD>ɭ<EFBFBD><EFBFBD>
deltdeltF=func_deltdeltF(Busnum,GenC,PVi,PGi,wG,wD,PD0);
2012-05-22 11:33:21 +08:00
%% <EFBFBD>γ<EFBFBD>ddHy
ddh=func_ddh3(AngleIJMat,GB,Volt,Init_Y,Busnum,PVi,PGi,Y);
%% <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ddg
ddg=func_ddg(PGi,PVi,Busnum,RestraintCount);
%% <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>deltF
deltF=func_deltF(PG,PVi,GenC,ContrlCount,PGi,wG,wD,PG0,PD0,PD,Busnum);
2012-05-22 11:33:21 +08:00
%% <EFBFBD>γɷ<EFBFBD><EFBFBD>̾<EFBFBD><EFBFBD><EFBFBD>
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
Mat_G=FormG(Volt,PVi,PGi,PG,QG,PD);
Mat_H=FormH(Busnum,GB,AngleIJMat,Volt,PG,PD,QG,QD,Y,QD_NON_ZERO,QD_NON_ZERO_IND);
2012-05-22 11:33:21 +08:00
Ly=Mat_H;
Lz=FormLz(Mat_G,Init_L,GenL,Busnum,PVQL,PD0);
Lw=FormLw(Mat_G,Init_U,GenU,Busnum,PVQU,PD0);
2012-05-22 11:33:21 +08:00
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
YY=FormYY1(Lul,Lz,Ly,Luu,Lw,Lx);
%% <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>
XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddg,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,RestraintCount,Lx,Balance,PVi,PGi,Busnum);
%%ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
[deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX1(XX,ContrlCount,RestraintCount,Busnum);
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,PG,QG,Volt,UAngel,PVi,ContrlCount,Balance,Busnum,PGi,PD);
2012-05-22 11:33:21 +08:00
Gap=(Init_L*Init_Z'-Init_U*Init_W');
KK=KK+1;
end
fprintf('<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d\n',KK);
%CalCost(GenC,PG,PGi);
ObjectiveFun(PG,PG0,PGi,PD,PD0,wG,wD)
2012-05-22 11:33:21 +08:00
DrawGap(plotGap);
Volt=Volt';
2012-05-22 11:33:21 +08:00
toc