1.修复几个重大bug

2.
Mat_G=[
    sparse(PD(Loadi))-mPD(Loadi)-bigM*PDbi-0.1;
    sparse(PD(Loadi))-mPD(Loadi)+bigM*PDbi+0.1;
    sparse(QD(Loadi))-mQD(Loadi)-bigM*QDbi-0.1;
    sparse(QD(Loadi))-mQD(Loadi)+bigM*QDbi+0.1;
    Volt'-mVolt'-bigM*Vbi-0.03;
    Volt'-mVolt'+bigM*Vbi+0.03;
    Vbi;
    PDbi;
    QDbi;
    (1-Vbi).*Vbi;
    (1-PDbi).*PDbi;
    (1-QDbi).*QDbi;
    ];
Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2014-05-22 11:56:06 +08:00
parent 40c0a6706f
commit e27131d828
7 changed files with 38 additions and 24 deletions

View File

@ -11,5 +11,7 @@ Mat_G=[
PDbi;
QDbi;
(1-Vbi).*Vbi;
(1-PDbi).*PDbi;
(1-QDbi).*QDbi;
];
end

View File

@ -1,11 +1,7 @@
function Lw=FormLw(Mat_G,Init_U,GenU,Busnum,PVQU,PD,PD0,QD0,Loadi,KK,PF,noDataTransCapacity)
KK=999;
%PU=GenU(:,2);%
VoltU=(1.1)*ones(1,Busnum);
%VoltU=10*ones(1,Busnum);
PDU=PD0(Loadi);
% PDU=noDataTransCapacity;
PDU(PDU>0)=1.200*PDU(PDU>0);
PDU(PDU<0)=0.800*PDU(PDU<0);
PDU(PDU==0)=0.400;
@ -13,7 +9,6 @@ realPD=PD0(Loadi);
indPD=find(realPD>0);
PDU(indPD(3:12:end))=1.55*realPD(indPD(3:12:end));
PDU(indPD(9:12:end))=1.05*realPD(indPD(9:12:end));
%PDU=10*ones(length(Loadi),1);
QDU=QD0(Loadi);
QDU(QDU>0)=1.200*QDU(QDU>0);
QDU(QDU<0)=0.800*QDU(QDU<0);
@ -22,11 +17,11 @@ realQD=QD0(Loadi);
indQD=find(realQD>0);
QDU(indQD(3:12:end))=1.55*realQD(indQD(3:12:end));
QDU(indQD(9:12:end))=1.05*realQD(indQD(9:12:end));
% PF=0.85;
% QDU=1.0*PD(Loadi).*sqrt(1 -PF.^2)./PF;
t1=([0*PDU',100*ones(1,length(PDU)),0*QDU',100*ones(1,length(QDU)),0*VoltU,100*ones(1,length(VoltU)),1*ones(1,Busnum+length(Loadi)*2)])';
t1=[t1;
sparse(ones(Busnum,1));
sparse(ones(length(Loadi),1));
sparse(ones(length(Loadi),1));
];
t2=Mat_G+Init_U'-t1;
Lw=t2;

View File

@ -24,6 +24,8 @@ QDL(indQD(9:12:end))=0.95*realQD(indQD(9:12:end));
t1=([-100*ones(1,length(PDL)),0*PDL',-100*ones(1,length(QDL)),0*QDL',-100*ones(1,length(VoltL)),0*VoltL,0*ones(1,Busnum+length(Loadi)*2)])';
t1=[t1;
sparse(0*ones(Busnum,1));
sparse(0*ones(length(Loadi),1));
sparse(0*ones(length(Loadi),1));
];
t2=Mat_G-Init_L'-t1;
Lz=t2;

4
OPF.m
View File

@ -70,7 +70,7 @@ while(abs(Gap)>Precision)
%%
deltH=func_deltH(Busnum,Volt,PVi,Y,PGi,UAngel,r,c,Angle,Loadi);
%%
deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD,Vbi);
deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD,Vbi,PDbi,QDbi);
%%
L_1Z=diag(Init_Z./Init_L);
U_1W=diag(Init_W./Init_U);
@ -79,7 +79,7 @@ while(abs(Gap)>Precision)
%% ddHy
ddh=func_ddh(Volt,Init_Y,Busnum,PVi,PGi,Y,UAngel,r,c,Angle,Loadi,ContrlCount);
%% ddg
ddgzw=func_ddg(PGi,PVi,Busnum,ContrlCount,RestraintCount,Loadi,PD,QD,Init_Z,Init_W);
ddgzw=func_ddg(Busnum,ContrlCount,Loadi,Init_Z,Init_W);
%% deltF
deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,wQD,PG0,QG0,PD0,PD,QD,QD0,Busnum,Loadi);
%%

View File

@ -3,7 +3,7 @@ Loadi=find(QD~=0 | PD~=0);
%Loadi=[1:Busnum]';
RestraintCount=size(Loadi,1)*4+Busnum*2+Busnum+length(Loadi)*2; %,QD
%
RestraintCount=RestraintCount+Busnum;
RestraintCount=RestraintCount+Busnum+length(Loadi)*2;
t_Bal_volt=Volt(Balance);
Volt=sparse(1*ones(1,Busnum));
Volt(Balance)=t_Bal_volt;

View File

@ -1,8 +1,11 @@
function ddgzw=func_ddg(PGi,PVi,Busnum,ContrlCount,RestraintCount,Loadi,PD,QD,Init_Z,Init_W)
CCVbiZW=Init_Z(length(Loadi)*4+Busnum*2+1:length(Loadi)*4+Busnum*2+Busnum)+Init_W(length(Loadi)*4+Busnum*2+1:length(Loadi)*4+Busnum*2+Busnum);
function ddgzw=func_ddg(Busnum,ContrlCount,Loadi,Init_Z,Init_W)
CCVbiZW=Init_Z(length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+1:length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum)+Init_W(length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+1:length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum);
CCPDbiZW=Init_Z(length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum+1:length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum+length(Loadi))+Init_W(length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum+1:length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum+length(Loadi));
CCQDbiZW=Init_Z(length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum+length(Loadi)+1:end)+Init_W(length(Loadi)*4+Busnum*2+Busnum+length(Loadi)*2+Busnum+length(Loadi)+1:end);
ddgzw=[
sparse(length(Loadi)*2+Busnum*2,ContrlCount);
sparse(Busnum,length(Loadi)*2+Busnum*2),sparse(-2*eye(Busnum))*diag(CCVbiZW),sparse(Busnum,length(Loadi)*2);
sparse(length(Loadi)*2,ContrlCount);
sparse(length(Loadi),length(Loadi)*2+Busnum*2+Busnum),sparse(-2*eye(length(Loadi)))*diag(CCPDbiZW),sparse(length(Loadi),length(Loadi));
sparse(length(Loadi),length(Loadi)*2+Busnum*2+Busnum+length(Loadi)),sparse(-2*eye(length(Loadi)))*diag(CCQDbiZW);
];
end

View File

@ -1,4 +1,4 @@
function deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD,Vbi)
function deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD,Vbi,PDbi,QDbi)
sizeLoadi=size(Loadi,1);
%dg3 PD-M*b-t-PD0
dg3_dPD=sparse(1:size(Loadi,1),1:size(Loadi,1),ones(size(Loadi,1),1),size(Loadi,1),size(Loadi,1));
@ -13,6 +13,8 @@ dgPDbi_dPD=sparse(sizeLoadi,sizeLoadi);
dgQDbi_dPD=sparse(sizeLoadi,sizeLoadi);
%
dgCCVbi_dPD=sparse(length(Loadi),Busnum);
dgCCPDbi_dPD=sparse(length(Loadi),length(Loadi));
dgCCQDbi_dPD=sparse(length(Loadi),length(Loadi));
%%
dg3_dQD=sparse(length(Loadi),length(Loadi));
dg32_dQD=dg3_dQD;
@ -25,6 +27,8 @@ dgPDbi_dQD=sparse(sizeLoadi,sizeLoadi);
dgQDbi_dQD=sparse(sizeLoadi,sizeLoadi);
%
dgCCVbi_dQD=sparse(length(Loadi),Busnum);
dgCCPDbi_dQD=sparse(length(Loadi),length(Loadi));
dgCCQDbi_dQD=sparse(length(Loadi),length(Loadi));
%%
dg3_dx=sparse(2*Busnum,sizeLoadi);
dg32_dx=dg3_dx;
@ -39,6 +43,8 @@ dgPDbi_dx=sparse(2*Busnum,sizeLoadi);
dgQDbi_dx=sparse(2*Busnum,sizeLoadi);
%
dgCCVbi_dx=sparse(Busnum*2,Busnum);
dgCCPDbi_dx=sparse(Busnum*2,length(Loadi));
dgCCQDbi_dx=sparse(Busnum*2,length(Loadi));
%%
dg3_dvbi=sparse(Busnum,sizeLoadi);
dg32_dvbi=dg3_dvbi;
@ -51,6 +57,8 @@ dgPDbi_dvbi=sparse(Busnum,sizeLoadi);
dgQDbi_dvbi=sparse(Busnum,sizeLoadi);
%
dgCCVbi_dvbi=sparse(diag(1-2*Vbi));%(1-Vbi).*Vbi
dgCCPDbi_dvbi=sparse(Busnum,length(Loadi));
dgCCQDbi_dvbi=sparse(Busnum,length(Loadi));
%%
dg3_dPDbi=sparse(-eye(sizeLoadi));
dg32_dPDbi=sparse(eye(sizeLoadi));
@ -63,11 +71,13 @@ dgPDbi_dPDbi=sparse(eye(length(Loadi)));
dgQDbi_dPDbi=sparse(zeros(length(Loadi)));
%
dgCCVbi_dPDbi=sparse(length(Loadi),Busnum);
dgCCPDbi_dPDbi=sparse(diag(1-2*PDbi));
dgCCQDbi_dPDbi=sparse(length(Loadi),length(Loadi));
%%
dg3_dQDbi=sparse(-eye(sizeLoadi));
dg32_dQDbi=sparse(eye(sizeLoadi));
dg4_dQDbi=sparse(length(Loadi),length(Loadi));
dg42_dQDbi=dg4_dPDbi;
dg3_dQDbi=sparse(length(Loadi),length(Loadi));
dg32_dQDbi=dg3_dQDbi;
dg4_dQDbi=sparse(-eye(sizeLoadi));
dg42_dQDbi=sparse(eye(sizeLoadi));
dg5_dQDbi=sparse(length(Loadi),Busnum);
dg6_dQDbi=sparse(length(Loadi),Busnum);
dg7_dQDbi=sparse(length(Loadi),Busnum);
@ -75,13 +85,15 @@ dgPDbi_dQDbi=sparse(zeros(length(Loadi)));
dgQDbi_dQDbi=sparse(eye(length(Loadi)));
%
dgCCVbi_dQDbi=sparse(length(Loadi),Busnum);
dgCCPDbi_dQDbi=sparse(length(Loadi),length(Loadi));
dgCCQDbi_dQDbi=sparse(diag(1-2*QDbi));
%%
deltG=[dg3_dPD,dg32_dPD,dg4_dPD,dg42_dPD,dg5_dPD,dg6_dPD,dg7_dPD,dgPDbi_dPD,dgQDbi_dPD,dgCCVbi_dPD;
dg3_dQD,dg32_dQD,dg4_dQD,dg42_dQD,dg5_dQD,dg6_dQD,dg7_dQD,dgPDbi_dQD,dgQDbi_dQD,dgCCVbi_dQD;
dg3_dx,dg32_dx,dg4_dx,dg42_dx,dg5_dx,dg6_dx,dg7_dx,dgPDbi_dx,dgQDbi_dx,dgCCVbi_dx;
dg3_dvbi,dg32_dvbi,dg4_dvbi,dg42_dvbi,dg5_dvbi,dg6_dvbi,dg7_dvbi,dgPDbi_dvbi,dgQDbi_dvbi,dgCCVbi_dvbi;
dg3_dPDbi,dg32_dPDbi,dg4_dPDbi,dg42_dPDbi,dg5_dPDbi,dg6_dPDbi,dg7_dPDbi,dgPDbi_dPDbi,dgQDbi_dPDbi,dgCCVbi_dPDbi;
dg3_dQDbi,dg32_dQDbi,dg4_dQDbi,dg42_dQDbi,dg5_dQDbi,dg6_dQDbi,dg7_dQDbi,dgPDbi_dQDbi,dgQDbi_dQDbi,dgCCVbi_dQDbi;
deltG=[dg3_dPD,dg32_dPD,dg4_dPD,dg42_dPD,dg5_dPD,dg6_dPD,dg7_dPD,dgPDbi_dPD,dgQDbi_dPD,dgCCVbi_dPD,dgCCPDbi_dPD,dgCCQDbi_dPD;
dg3_dQD,dg32_dQD,dg4_dQD,dg42_dQD,dg5_dQD,dg6_dQD,dg7_dQD,dgPDbi_dQD,dgQDbi_dQD,dgCCVbi_dQD,dgCCPDbi_dQD,dgCCQDbi_dQD;
dg3_dx,dg32_dx,dg4_dx,dg42_dx,dg5_dx,dg6_dx,dg7_dx,dgPDbi_dx,dgQDbi_dx,dgCCVbi_dx,dgCCPDbi_dx,dgCCQDbi_dx;
dg3_dvbi,dg32_dvbi,dg4_dvbi,dg42_dvbi,dg5_dvbi,dg6_dvbi,dg7_dvbi,dgPDbi_dvbi,dgQDbi_dvbi,dgCCVbi_dvbi,dgCCPDbi_dvbi,dgCCQDbi_dvbi;
dg3_dPDbi,dg32_dPDbi,dg4_dPDbi,dg42_dPDbi,dg5_dPDbi,dg6_dPDbi,dg7_dPDbi,dgPDbi_dPDbi,dgQDbi_dPDbi,dgCCVbi_dPDbi,dgCCPDbi_dPDbi,dgCCQDbi_dPDbi;
dg3_dQDbi,dg32_dQDbi,dg4_dQDbi,dg42_dQDbi,dg5_dQDbi,dg6_dQDbi,dg7_dQDbi,dgPDbi_dQDbi,dgQDbi_dQDbi,dgCCVbi_dQDbi,dgCCPDbi_dQDbi,dgCCQDbi_dQDbi;
];
end