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;
];
This commit is contained in:
parent
305f059cf6
commit
40c0a6706f
1
FormG.m
1
FormG.m
|
|
@ -10,5 +10,6 @@ Mat_G=[
|
||||||
Vbi;
|
Vbi;
|
||||||
PDbi;
|
PDbi;
|
||||||
QDbi;
|
QDbi;
|
||||||
|
(1-Vbi).*Vbi;
|
||||||
];
|
];
|
||||||
end
|
end
|
||||||
3
FormLw.m
3
FormLw.m
|
|
@ -25,6 +25,9 @@ QDU(indQD(9:12:end))=1.05*realQD(indQD(9:12:end));
|
||||||
% PF=0.85;
|
% PF=0.85;
|
||||||
% QDU=1.0*PD(Loadi).*sqrt(1 -PF.^2)./PF;
|
% 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=([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));
|
||||||
|
];
|
||||||
t2=Mat_G+Init_U'-t1;
|
t2=Mat_G+Init_U'-t1;
|
||||||
Lw=t2;
|
Lw=t2;
|
||||||
|
|
||||||
|
|
|
||||||
3
FormLz.m
3
FormLz.m
|
|
@ -22,6 +22,9 @@ QDL(indQD(3:12:end))=0.95*realQD(indQD(3:12:end));
|
||||||
QDL(indQD(9:12:end))=0.95*realQD(indQD(9:12:end));
|
QDL(indQD(9:12:end))=0.95*realQD(indQD(9:12:end));
|
||||||
% QDL=0*PD(Loadi).*sqrt((1-PF.^2))./PF;
|
% QDL=0*PD(Loadi).*sqrt((1-PF.^2))./PF;
|
||||||
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=([-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));
|
||||||
|
];
|
||||||
t2=Mat_G-Init_L'-t1;
|
t2=Mat_G-Init_L'-t1;
|
||||||
Lz=t2;
|
Lz=t2;
|
||||||
|
|
||||||
|
|
|
||||||
6
OPF.m
6
OPF.m
|
|
@ -70,7 +70,7 @@ while(abs(Gap)>Precision)
|
||||||
%% 形成等式约束的雅克比
|
%% 形成等式约束的雅克比
|
||||||
deltH=func_deltH(Busnum,Volt,PVi,Y,PGi,UAngel,r,c,Angle,Loadi);
|
deltH=func_deltH(Busnum,Volt,PVi,Y,PGi,UAngel,r,c,Angle,Loadi);
|
||||||
%% 形成不等式约束的雅克比
|
%% 形成不等式约束的雅克比
|
||||||
deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD);
|
deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD,Vbi);
|
||||||
%%
|
%%
|
||||||
L_1Z=diag(Init_Z./Init_L);
|
L_1Z=diag(Init_Z./Init_L);
|
||||||
U_1W=diag(Init_W./Init_U);
|
U_1W=diag(Init_W./Init_U);
|
||||||
|
|
@ -79,7 +79,7 @@ while(abs(Gap)>Precision)
|
||||||
%% 形成ddHy
|
%% 形成ddHy
|
||||||
ddh=func_ddh(Volt,Init_Y,Busnum,PVi,PGi,Y,UAngel,r,c,Angle,Loadi,ContrlCount);
|
ddh=func_ddh(Volt,Init_Y,Busnum,PVi,PGi,Y,UAngel,r,c,Angle,Loadi,ContrlCount);
|
||||||
%% 开始构建ddg
|
%% 开始构建ddg
|
||||||
ddg=func_ddg(PGi,PVi,Busnum,RestraintCount,Loadi,PD,QD);
|
ddgzw=func_ddg(PGi,PVi,Busnum,ContrlCount,RestraintCount,Loadi,PD,QD,Init_Z,Init_W);
|
||||||
%% 开始构建deltF
|
%% 开始构建deltF
|
||||||
deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,wQD,PG0,QG0,PD0,PD,QD,QD0,Busnum,Loadi);
|
deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,wQD,PG0,QG0,PD0,PD,QD,QD0,Busnum,Loadi);
|
||||||
%% 形成方程矩阵
|
%% 形成方程矩阵
|
||||||
|
|
@ -94,7 +94,7 @@ while(abs(Gap)>Precision)
|
||||||
YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx);
|
YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx);
|
||||||
%% 开始解方程
|
%% 开始解方程
|
||||||
fprintf('迭代次数 %d Gap %f\n',KK+1,plotGap(KK+1));
|
fprintf('迭代次数 %d Gap %f\n',KK+1,plotGap(KK+1));
|
||||||
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,Loadi);
|
XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddgzw,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,RestraintCount,Lx,Balance,PVi,PGi,Busnum,Loadi);
|
||||||
%%取各分量
|
%%取各分量
|
||||||
[deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,Busnum);
|
[deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,Busnum);
|
||||||
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD,Vbi,PDbi,QDbi]=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,QD,Loadi,Vbi,PDbi,QDbi);
|
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD,Vbi,PDbi,QDbi]=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,QD,Loadi,Vbi,PDbi,QDbi);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ function [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wP
|
||||||
Loadi=find(QD~=0 | PD~=0);
|
Loadi=find(QD~=0 | PD~=0);
|
||||||
%Loadi=[1:Busnum]';
|
%Loadi=[1:Busnum]';
|
||||||
RestraintCount=size(Loadi,1)*4+Busnum*2+Busnum+length(Loadi)*2; %约束条件数,放开所有QD
|
RestraintCount=size(Loadi,1)*4+Busnum*2+Busnum+length(Loadi)*2; %约束条件数,放开所有QD
|
||||||
|
%互补约束数量
|
||||||
|
RestraintCount=RestraintCount+Busnum;
|
||||||
t_Bal_volt=Volt(Balance);
|
t_Bal_volt=Volt(Balance);
|
||||||
Volt=sparse(1*ones(1,Busnum));
|
Volt=sparse(1*ones(1,Busnum));
|
||||||
Volt(Balance)=t_Bal_volt;
|
Volt(Balance)=t_Bal_volt;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
function 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,Loadi)
|
function XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddgzw,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,RestraintCount,Lx,Balance,PVi,PGi,Busnum,Loadi)
|
||||||
LxComa=FormLxComa(deltF,deltG,deltH,Init_L,Luu,Lul,Init_Z,Init_Y,Lz,Init_U,Init_W,Lw,Lx);
|
LxComa=FormLxComa(deltF,deltG,deltH,Init_L,Luu,Lul,Init_Z,Init_Y,Lz,Init_U,Init_W,Lw,Lx);
|
||||||
H=-deltdeltF+ddh;
|
H=-(deltdeltF-ddh-ddgzw);
|
||||||
%t1=diag(Init_L.\Init_Z-Init_U.\Init_W);
|
%t1=diag(Init_L.\Init_Z-Init_U.\Init_W);
|
||||||
t1=diag(Init_Z./Init_L-Init_W./Init_U);
|
t1=diag(Init_Z./Init_L-Init_W./Init_U);
|
||||||
t2=-deltG*( t1 )*deltG';
|
t2=-deltG*( t1 )*deltG';
|
||||||
|
|
|
||||||
10
func_ddg.m
10
func_ddg.m
|
|
@ -1,4 +1,8 @@
|
||||||
function ddg=func_ddg(PGi,PVi,Busnum,RestraintCount,Loadi,PD,QD)
|
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);
|
||||||
ddg=0;
|
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);
|
||||||
|
];
|
||||||
end
|
end
|
||||||
26
func_deltG.m
26
func_deltG.m
|
|
@ -1,4 +1,4 @@
|
||||||
function deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD)
|
function deltG=func_deltG(Busnum,PVi,PGi,Loadi,PD,QD,Vbi)
|
||||||
sizeLoadi=size(Loadi,1);
|
sizeLoadi=size(Loadi,1);
|
||||||
%dg3 PD-M*b-t-PD0
|
%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));
|
dg3_dPD=sparse(1:size(Loadi,1),1:size(Loadi,1),ones(size(Loadi,1),1),size(Loadi,1),size(Loadi,1));
|
||||||
|
|
@ -11,6 +11,8 @@ dg6_dPD=dg5_dPD;
|
||||||
dg7_dPD=sparse(sizeLoadi,Busnum);
|
dg7_dPD=sparse(sizeLoadi,Busnum);
|
||||||
dgPDbi_dPD=sparse(sizeLoadi,sizeLoadi);
|
dgPDbi_dPD=sparse(sizeLoadi,sizeLoadi);
|
||||||
dgQDbi_dPD=sparse(sizeLoadi,sizeLoadi);
|
dgQDbi_dPD=sparse(sizeLoadi,sizeLoadi);
|
||||||
|
%互补约束
|
||||||
|
dgCCVbi_dPD=sparse(length(Loadi),Busnum);
|
||||||
%%
|
%%
|
||||||
dg3_dQD=sparse(length(Loadi),length(Loadi));
|
dg3_dQD=sparse(length(Loadi),length(Loadi));
|
||||||
dg32_dQD=dg3_dQD;
|
dg32_dQD=dg3_dQD;
|
||||||
|
|
@ -21,6 +23,8 @@ dg6_dQD=dg5_dQD;
|
||||||
dg7_dQD=sparse(sizeLoadi,Busnum);
|
dg7_dQD=sparse(sizeLoadi,Busnum);
|
||||||
dgPDbi_dQD=sparse(sizeLoadi,sizeLoadi);
|
dgPDbi_dQD=sparse(sizeLoadi,sizeLoadi);
|
||||||
dgQDbi_dQD=sparse(sizeLoadi,sizeLoadi);
|
dgQDbi_dQD=sparse(sizeLoadi,sizeLoadi);
|
||||||
|
%互补约束
|
||||||
|
dgCCVbi_dQD=sparse(length(Loadi),Busnum);
|
||||||
%%
|
%%
|
||||||
dg3_dx=sparse(2*Busnum,sizeLoadi);
|
dg3_dx=sparse(2*Busnum,sizeLoadi);
|
||||||
dg32_dx=dg3_dx;
|
dg32_dx=dg3_dx;
|
||||||
|
|
@ -33,6 +37,8 @@ dg6_dx=dg5_dx;
|
||||||
dg7_dx=sparse(2*Busnum,Busnum);
|
dg7_dx=sparse(2*Busnum,Busnum);
|
||||||
dgPDbi_dx=sparse(2*Busnum,sizeLoadi);
|
dgPDbi_dx=sparse(2*Busnum,sizeLoadi);
|
||||||
dgQDbi_dx=sparse(2*Busnum,sizeLoadi);
|
dgQDbi_dx=sparse(2*Busnum,sizeLoadi);
|
||||||
|
%互补约束
|
||||||
|
dgCCVbi_dx=sparse(Busnum*2,Busnum);
|
||||||
%%
|
%%
|
||||||
dg3_dvbi=sparse(Busnum,sizeLoadi);
|
dg3_dvbi=sparse(Busnum,sizeLoadi);
|
||||||
dg32_dvbi=dg3_dvbi;
|
dg32_dvbi=dg3_dvbi;
|
||||||
|
|
@ -43,6 +49,8 @@ dg6_dvbi=sparse(eye(Busnum,Busnum));
|
||||||
dg7_dvbi=sparse(eye(Busnum,Busnum));
|
dg7_dvbi=sparse(eye(Busnum,Busnum));
|
||||||
dgPDbi_dvbi=sparse(Busnum,sizeLoadi);
|
dgPDbi_dvbi=sparse(Busnum,sizeLoadi);
|
||||||
dgQDbi_dvbi=sparse(Busnum,sizeLoadi);
|
dgQDbi_dvbi=sparse(Busnum,sizeLoadi);
|
||||||
|
%互补约束
|
||||||
|
dgCCVbi_dvbi=sparse(diag(1-2*Vbi));%互补约束为(1-Vbi).*Vbi
|
||||||
%%
|
%%
|
||||||
dg3_dPDbi=sparse(-eye(sizeLoadi));
|
dg3_dPDbi=sparse(-eye(sizeLoadi));
|
||||||
dg32_dPDbi=sparse(eye(sizeLoadi));
|
dg32_dPDbi=sparse(eye(sizeLoadi));
|
||||||
|
|
@ -53,6 +61,8 @@ dg6_dPDbi=sparse(length(Loadi),Busnum);
|
||||||
dg7_dPDbi=sparse(length(Loadi),Busnum);
|
dg7_dPDbi=sparse(length(Loadi),Busnum);
|
||||||
dgPDbi_dPDbi=sparse(eye(length(Loadi)));
|
dgPDbi_dPDbi=sparse(eye(length(Loadi)));
|
||||||
dgQDbi_dPDbi=sparse(zeros(length(Loadi)));
|
dgQDbi_dPDbi=sparse(zeros(length(Loadi)));
|
||||||
|
%互补约束
|
||||||
|
dgCCVbi_dPDbi=sparse(length(Loadi),Busnum);
|
||||||
%%
|
%%
|
||||||
dg3_dQDbi=sparse(-eye(sizeLoadi));
|
dg3_dQDbi=sparse(-eye(sizeLoadi));
|
||||||
dg32_dQDbi=sparse(eye(sizeLoadi));
|
dg32_dQDbi=sparse(eye(sizeLoadi));
|
||||||
|
|
@ -63,13 +73,15 @@ dg6_dQDbi=sparse(length(Loadi),Busnum);
|
||||||
dg7_dQDbi=sparse(length(Loadi),Busnum);
|
dg7_dQDbi=sparse(length(Loadi),Busnum);
|
||||||
dgPDbi_dQDbi=sparse(zeros(length(Loadi)));
|
dgPDbi_dQDbi=sparse(zeros(length(Loadi)));
|
||||||
dgQDbi_dQDbi=sparse(eye(length(Loadi)));
|
dgQDbi_dQDbi=sparse(eye(length(Loadi)));
|
||||||
|
%互补约束
|
||||||
|
dgCCVbi_dQDbi=sparse(length(Loadi),Busnum);
|
||||||
%%
|
%%
|
||||||
deltG=[dg3_dPD,dg32_dPD,dg4_dPD,dg42_dPD,dg5_dPD,dg6_dPD,dg7_dPD,dgPDbi_dPD,dgQDbi_dPD;
|
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;
|
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;
|
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;
|
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;
|
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;
|
dg3_dQDbi,dg32_dQDbi,dg4_dQDbi,dg42_dQDbi,dg5_dQDbi,dg6_dQDbi,dg7_dQDbi,dgPDbi_dQDbi,dgQDbi_dQDbi,dgCCVbi_dQDbi;
|
||||||
];
|
];
|
||||||
|
|
||||||
end
|
end
|
||||||
Loading…
Reference in New Issue