2012-12-24 16:38:13 +08:00
|
|
|
|
clc
|
|
|
|
|
|
clear
|
|
|
|
|
|
yalmip('clear')
|
|
|
|
|
|
tic
|
|
|
|
|
|
[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, ...
|
|
|
|
|
|
Liner,Linex,Lineb,Transforr,Transforx,Transfork0]= ...
|
2013-04-17 11:15:22 +08:00
|
|
|
|
pf('E:/<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD>911_2751267_2012-09-05/newFIle20.txt');
|
2012-12-24 16:38:13 +08:00
|
|
|
|
|
|
|
|
|
|
%% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle',Busnum,Busnum);
|
|
|
|
|
|
PGBal=PD+diag(Volt)*Y.*cos(AngleIJ)*Volt';
|
|
|
|
|
|
QGBal=QD+diag(Volt)*Y.*sin(AngleIJ)*Volt';
|
|
|
|
|
|
%% <EFBFBD><EFBFBD>ֵ-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
PG0=PG;
|
|
|
|
|
|
QG0=QG;
|
|
|
|
|
|
PD0=PD;
|
|
|
|
|
|
QD0=QD;
|
|
|
|
|
|
PDReal=PD;%<EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
QDReal=QD;%<EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
%PD0(12)=PD0(12)+0.001;
|
|
|
|
|
|
PG0(Balance)=PGBal(Balance);
|
|
|
|
|
|
QG0(Balance)=QGBal(Balance);
|
|
|
|
|
|
QG0(PVi)=QGBal(PVi);
|
|
|
|
|
|
PG(Balance)=PGBal(Balance);
|
|
|
|
|
|
QG(PVi)=QGBal(PVi);
|
2013-04-06 22:02:38 +08:00
|
|
|
|
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)]);
|
2013-04-17 11:15:22 +08:00
|
|
|
|
xVolt=Volt;
|
|
|
|
|
|
xUAngel=UAngel;
|
|
|
|
|
|
% VMatrix=sparse(r,c,UAngel(r)-UAngel(c)-Angle',Busnum,Busnum);
|
|
|
|
|
|
% dP=PG-PD-diag(xVolt)*(Y.*cos(VMatrix))*xVolt';
|
2013-04-17 15:50:08 +08:00
|
|
|
|
rPD=PD;
|
|
|
|
|
|
rQD=QD;
|
2013-04-06 22:02:38 +08:00
|
|
|
|
[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);
|
2012-12-24 16:38:13 +08:00
|
|
|
|
%% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-04-06 21:22:56 +08:00
|
|
|
|
BalVolt=Volt(Balance);
|
2013-04-16 21:46:49 +08:00
|
|
|
|
% Volt=sdpvar(Busnum,1);
|
|
|
|
|
|
% UAngel=sdpvar(Busnum,1);
|
2013-04-06 21:14:59 +08:00
|
|
|
|
% PG=sdpvar(Busnum,1);
|
|
|
|
|
|
% QG=sdpvar(Busnum,1);
|
2013-04-17 10:04:43 +08:00
|
|
|
|
% PD=sdpvar(Busnum,1);
|
|
|
|
|
|
% QD=sdpvar(Busnum,1);
|
2012-12-24 16:38:13 +08:00
|
|
|
|
AngleIJ=sdpvar(Busnum,Busnum,'full');
|
2013-04-06 21:53:24 +08:00
|
|
|
|
%% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-04-17 11:55:04 +08:00
|
|
|
|
load('PD0');
|
|
|
|
|
|
load('QD0');
|
|
|
|
|
|
% PD0=(1+normrnd(0,0.05,length(PD0),1)).*PD0;
|
|
|
|
|
|
% save('PD0','PD0');
|
|
|
|
|
|
% QD0=(1+normrnd(0,0.05,length(QD0),1)).*QD0;
|
|
|
|
|
|
% save('QD0','QD0');
|
2012-12-24 16:38:13 +08:00
|
|
|
|
%% Ŀ<EFBFBD>꺯<EFBFBD><EFBFBD>
|
2013-04-17 15:30:52 +08:00
|
|
|
|
|
2013-04-17 10:04:43 +08:00
|
|
|
|
%% Opti Toolbox
|
|
|
|
|
|
Busnum=length(Volt);
|
|
|
|
|
|
PDi=find(PD~=0);
|
|
|
|
|
|
QDi=find(QD~=0);
|
|
|
|
|
|
% PD0=PD0(PDi);
|
|
|
|
|
|
% QD0=QD0(QDi);
|
|
|
|
|
|
seOpti=Opti();
|
|
|
|
|
|
seOpti=seOpti.init(Volt0,PDi,QDi,wPD,wQD,PD0,QD0,Y,Angle,r,c,PG,QG,Balance);
|
2013-04-17 15:30:52 +08:00
|
|
|
|
opts = optiset('solver','filtersd');
|
2013-04-17 10:04:43 +08:00
|
|
|
|
opts.maxiter=85500;
|
|
|
|
|
|
opts.maxtime=3000;
|
|
|
|
|
|
opts.maxfeval=85000;
|
|
|
|
|
|
opts.maxnodes=85000;
|
|
|
|
|
|
opts.tolrfun=1e-4;
|
|
|
|
|
|
opts.tolafun=1e-4;
|
|
|
|
|
|
opts.warnings='all';
|
2013-04-17 11:15:22 +08:00
|
|
|
|
opts.display='iter';
|
|
|
|
|
|
% x0=[zeros(length(PDi)+length(QDi),1); ...
|
|
|
|
|
|
% ones(length(Volt),1); ...
|
|
|
|
|
|
% zeros(length(Volt),1)];
|
|
|
|
|
|
x0=[PD(PDi);QD(QDi);xVolt';xUAngel'];
|
2013-04-17 10:04:43 +08:00
|
|
|
|
[~,seOpti]=seOpti.equ(x0);
|
2013-04-17 16:05:40 +08:00
|
|
|
|
cl=seOpti.Getcl();
|
|
|
|
|
|
cu=seOpti.Getcu();
|
|
|
|
|
|
Opt = opti('fun',@seOpti.obj,'ndec',length(Volt)*2+length(PDi)+length(QDi),'nl',@seOpti.equ,cl,cu,'options',opts)
|
2013-04-17 10:04:43 +08:00
|
|
|
|
% Opt = opti('fun',@seOpti.obj,'ndec',length(PDi)+length(QDi),'options',opts)
|
|
|
|
|
|
[x,fval,exitflag,info] = solve(Opt,x0);
|
|
|
|
|
|
info
|
2013-04-17 11:55:04 +08:00
|
|
|
|
fval=seOpti.obj(x);
|
2013-04-17 10:04:43 +08:00
|
|
|
|
fprintf('Ŀ<EFBFBD>꺯<EFBFBD><EFBFBD>: %f\n',fval);
|
2012-12-24 16:38:13 +08:00
|
|
|
|
toc
|
2013-04-17 15:43:43 +08:00
|
|
|
|
rVolt=Volt0';
|
|
|
|
|
|
rVAngel=xUAngel';
|
|
|
|
|
|
SEVolt=x(length(PDi)+length(QDi)+1:length(Volt)+length(PDi)+length(QDi));
|
|
|
|
|
|
SEVAngel=x(length(Volt)+length(PDi)+length(QDi)+1:end);
|
|
|
|
|
|
fprintf('<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>\n')
|
2013-04-17 15:50:08 +08:00
|
|
|
|
PD=x(1:length(PDi));
|
|
|
|
|
|
QD=x(length(PDi)+1:length(PDi)+length(QDi));
|
|
|
|
|
|
MaxDeviation(rVolt,SEVolt,rVAngel,SEVAngel,rPD(PDi),rQD(QDi),PD,QD)
|
2013-04-17 16:05:40 +08:00
|
|
|
|
fprintf('ͳ<EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>\n')
|
|
|
|
|
|
StatDeviation(rVolt,SEVolt,rVAngel,SEVAngel,rPD(PDi),rQD(QDi),PD,QD)
|