1.加入.gitignore
2.完成了PD Signed-off-by: dmy <dugg@21cn.com>
This commit is contained in:
parent
ac0bcf1da8
commit
17f274f818
|
|
@ -0,0 +1 @@
|
||||||
|
*.asv
|
||||||
7
FormG.m
7
FormG.m
|
|
@ -1,11 +1,12 @@
|
||||||
function Mat_G=FormG(Volt,PD,QD,Loadi,Vbi,mVolt,RealVolt,bigM,sigma)
|
function Mat_G=FormG(Volt,PD,QD,Loadi,Vbi,mVolt,RealVolt,bigM,sigma,PDbi,RealPD,RealQD)
|
||||||
|
|
||||||
Mat_G=[
|
Mat_G=[
|
||||||
sparse(PD(Loadi));
|
sparse(PD(Loadi))-bigM*PDbi-PD(Loadi)*sigma;
|
||||||
sparse(PD(Loadi));
|
sparse(PD(Loadi))+bigM*PDbi+PD(Loadi)*sigma;
|
||||||
sparse(QD(Loadi));
|
sparse(QD(Loadi));
|
||||||
Volt'-bigM*Vbi-mVolt'-sigma*RealVolt';
|
Volt'-bigM*Vbi-mVolt'-sigma*RealVolt';
|
||||||
Volt'+bigM*Vbi+mVolt'+sigma*RealVolt';
|
Volt'+bigM*Vbi+mVolt'+sigma*RealVolt';
|
||||||
Vbi;
|
Vbi;
|
||||||
|
PDbi;
|
||||||
];
|
];
|
||||||
end
|
end
|
||||||
2
FormLw.m
2
FormLw.m
|
|
@ -17,7 +17,7 @@ realQD=QD0(Loadi);
|
||||||
indQD=find(realQD>0);
|
indQD=find(realQD>0);
|
||||||
QDU(indQD(3:12:end))=1.55*realQD(indQD(3:12:end));
|
QDU(indQD(3:12:end))=1.55*realQD(indQD(3:12:end));
|
||||||
QDU(indQD(9:12:end))=1.05*realQD(indQD(9:12:end));
|
QDU(indQD(9:12:end))=1.05*realQD(indQD(9:12:end));
|
||||||
t1=([PDU',PDU',QDU',0*VoltU,50*ones(1,Busnum),1*ones(1,Busnum)])';
|
t1=([0*PDU',1*ones(1,length(Loadi)),QDU',0*VoltU,5*ones(1,Busnum),1*ones(1,Busnum),1*ones(1,length(Loadi))])';
|
||||||
t2=Mat_G+Init_U'-t1;
|
t2=Mat_G+Init_U'-t1;
|
||||||
Lw=t2;
|
Lw=t2;
|
||||||
|
|
||||||
|
|
|
||||||
2
FormLz.m
2
FormLz.m
|
|
@ -16,7 +16,7 @@ realQD=QD0(Loadi);
|
||||||
indQD=find(realQD>0);
|
indQD=find(realQD>0);
|
||||||
QDL(indQD(3:12:end))=0.95*realQD(indQD(3:12:end));
|
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));
|
||||||
t1=([PDL',PDL',QDL',-5000*ones(1,length(VoltL)),0*VoltL,0*ones(1,Busnum)])';
|
t1=([-1*ones(1,length(Loadi)),0*PDL',QDL',-5*ones(1,length(VoltL)),0*VoltL,0*ones(1,Busnum),0*ones(1,length(Loadi))])';
|
||||||
t2=Mat_G-Init_L'-t1;
|
t2=Mat_G-Init_L'-t1;
|
||||||
Lz=t2;
|
Lz=t2;
|
||||||
end
|
end
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
function [Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD,Vbi]=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)
|
function [Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD,Vbi,PDbi]=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)
|
||||||
AlphaP=FormAlphaP(Init_L,deltL,Init_U,deltU);
|
AlphaP=FormAlphaP(Init_L,deltL,Init_U,deltU);
|
||||||
%fprintf('AlphaP %f\n',full(AlphaP));
|
%fprintf('AlphaP %f\n',full(AlphaP));
|
||||||
AlphaD=FormAlphaD(Init_Z,deltZ,Init_W,deltW);
|
AlphaD=FormAlphaD(Init_Z,deltZ,Init_W,deltW);
|
||||||
|
|
@ -24,5 +24,6 @@ balVolt=Volt(Balance);
|
||||||
Volt=Volt+AlphaP*t(1:Busnum);
|
Volt=Volt+AlphaP*t(1:Busnum);
|
||||||
Volt(Balance)=balVolt;
|
Volt(Balance)=balVolt;
|
||||||
UAngel=UAngel+AlphaP*t(Busnum+1:2*Busnum);
|
UAngel=UAngel+AlphaP*t(Busnum+1:2*Busnum);
|
||||||
Vbi=Vbi+AlphaP*t(2*Busnum+1:end)';
|
Vbi=Vbi+AlphaP*t(2*Busnum+1:2*Busnum+Busnum)';
|
||||||
|
PDbi=PDbi+AlphaP*t(2*Busnum+Busnum+1:end)';
|
||||||
end
|
end
|
||||||
14
OPF.m
14
OPF.m
|
|
@ -44,8 +44,8 @@ RealQD=QD0;
|
||||||
Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
||||||
KK=0;
|
KK=0;
|
||||||
plotGap=zeros(1,60);
|
plotGap=zeros(1,60);
|
||||||
ContrlCount=size(Loadi,1)*2+Busnum*2+Busnum;
|
ContrlCount=size(Loadi,1)*2+Busnum*2+Busnum+length(Loadi);
|
||||||
kmax=60;
|
kmax=600;
|
||||||
Precision=Precision/1;
|
Precision=Precision/1;
|
||||||
sigma=0.03;
|
sigma=0.03;
|
||||||
%% 加误差
|
%% 加误差
|
||||||
|
|
@ -55,8 +55,9 @@ mPD=PD0;
|
||||||
mQD=QD0;
|
mQD=QD0;
|
||||||
RealVolt=Volt0;
|
RealVolt=Volt0;
|
||||||
mVolt=Volt0.*(1+normrnd(0,sigma,1,length(Volt0)));
|
mVolt=Volt0.*(1+normrnd(0,sigma,1,length(Volt0)));
|
||||||
Vbi=sparse(0.1*ones(Busnum,1));
|
Vbi=sparse(1*ones(Busnum,1));
|
||||||
bigM=10;
|
PDbi=sparse(1*ones(length(Loadi),1));
|
||||||
|
bigM=1;
|
||||||
while(abs(Gap)>Precision)
|
while(abs(Gap)>Precision)
|
||||||
if KK>kmax
|
if KK>kmax
|
||||||
break;
|
break;
|
||||||
|
|
@ -83,7 +84,7 @@ while(abs(Gap)>Precision)
|
||||||
%% 形成方程矩阵
|
%% 形成方程矩阵
|
||||||
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
|
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
|
||||||
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
|
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
|
||||||
Mat_G=FormG(Volt,PD,QD,Loadi,Vbi,mVolt,RealVolt,bigM,sigma);
|
Mat_G=FormG(Volt,PD,QD,Loadi,Vbi,mVolt,RealVolt,bigM,sigma,PDbi,RealPD,RealQD);
|
||||||
Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi);
|
Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi);
|
||||||
Ly=Mat_H;
|
Ly=Mat_H;
|
||||||
Lz=FormLz(Mat_G,Init_L,Busnum,PD0,QD0,Loadi);
|
Lz=FormLz(Mat_G,Init_L,Busnum,PD0,QD0,Loadi);
|
||||||
|
|
@ -95,10 +96,11 @@ while(abs(Gap)>Precision)
|
||||||
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,ddg,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]=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);
|
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD,Vbi,PDbi]=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);
|
||||||
Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
||||||
KK=KK+1;
|
KK=KK+1;
|
||||||
end
|
end
|
||||||
fprintf('目标函数: %f\n',sum(full(Vbi)));
|
fprintf('目标函数: %f\n',sum(full(Vbi)));
|
||||||
|
fprintf('Ä¿±êº¯Êý: %f\n',sum(full(PDbi)));
|
||||||
toc
|
toc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
function [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,PD,PD0,QD,randPDind,Loadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD)
|
function [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,PD,PD0,QD,randPDind,Loadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD)
|
||||||
Loadi=find(QD~=0 | PD~=0);
|
Loadi=find(QD~=0 | PD~=0);
|
||||||
%Loadi=[1:Busnum]';
|
%Loadi=[1:Busnum]';
|
||||||
RestraintCount=size(Loadi,1)*2+size(Loadi,1)+Busnum*2+Busnum; %约束条件数,放开所有QD
|
RestraintCount=size(Loadi,1)*2+size(Loadi,1)+Busnum*2+Busnum+length(Loadi); %约束条件数,放开所有QD
|
||||||
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;
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ t=[ddPdVdV+ddQdVdV,ddPdVdT+ddQdVdT;
|
||||||
sizeLoadi=size(Loadi,1)*2;
|
sizeLoadi=size(Loadi,1)*2;
|
||||||
ddh=[
|
ddh=[
|
||||||
sparse(sizeLoadi,ContrlCount);
|
sparse(sizeLoadi,ContrlCount);
|
||||||
sparse(2*Busnum,sizeLoadi),-t,sparse(2*Busnum,Busnum);
|
sparse(2*Busnum,sizeLoadi),-t,sparse(2*Busnum,Busnum+length(Loadi));
|
||||||
sparse(Busnum,ContrlCount);
|
sparse(Busnum+length(Loadi),ContrlCount);
|
||||||
];
|
];
|
||||||
end
|
end
|
||||||
|
|
@ -5,6 +5,6 @@ deltF=[sparse(length(Loadi),1);
|
||||||
sparse(length(Loadi),1);
|
sparse(length(Loadi),1);
|
||||||
sparse(2*Busnum,1);
|
sparse(2*Busnum,1);
|
||||||
sparse(ones(Busnum,1));
|
sparse(ones(Busnum,1));
|
||||||
|
sparse(ones(length(Loadi),1));
|
||||||
];
|
];
|
||||||
|
|
||||||
end
|
end
|
||||||
28
func_deltG.m
28
func_deltG.m
|
|
@ -7,7 +7,9 @@ dg32_dPD=dg3_dPD;
|
||||||
dg4_dPD=sparse(size(Loadi,1),length(Loadi));
|
dg4_dPD=sparse(size(Loadi,1),length(Loadi));
|
||||||
dg5_dPD=sparse(size(Loadi,1),Busnum);
|
dg5_dPD=sparse(size(Loadi,1),Busnum);
|
||||||
dg6_dPD=dg5_dPD;
|
dg6_dPD=dg5_dPD;
|
||||||
|
%dg7 ÊÇ VbiµÄÔ¼Êø
|
||||||
dg7_dPD=sparse(sizeLoadi,Busnum);
|
dg7_dPD=sparse(sizeLoadi,Busnum);
|
||||||
|
dpdbi_dPD=sparse(sizeLoadi,sizeLoadi);
|
||||||
%%
|
%%
|
||||||
dg3_dQD=sparse(length(Loadi),length(Loadi));
|
dg3_dQD=sparse(length(Loadi),length(Loadi));
|
||||||
dg32_dQD=sparse(sizeLoadi,sizeLoadi);
|
dg32_dQD=sparse(sizeLoadi,sizeLoadi);
|
||||||
|
|
@ -15,6 +17,7 @@ dg4_dQD=sparse(1:size(Loadi,1),1:size(Loadi,1),ones(size(Loadi,1),1),size(Loadi,
|
||||||
dg5_dQD=sparse(size(Loadi,1),Busnum);
|
dg5_dQD=sparse(size(Loadi,1),Busnum);
|
||||||
dg6_dQD=dg5_dQD;
|
dg6_dQD=dg5_dQD;
|
||||||
dg7_dQD=sparse(sizeLoadi,Busnum);
|
dg7_dQD=sparse(sizeLoadi,Busnum);
|
||||||
|
dpdbi_dQD=sparse(sizeLoadi,sizeLoadi);
|
||||||
%%
|
%%
|
||||||
dg3_dx=sparse(2*Busnum,sizeLoadi);
|
dg3_dx=sparse(2*Busnum,sizeLoadi);
|
||||||
dg32_dx=sparse(2*Busnum,sizeLoadi);
|
dg32_dx=sparse(2*Busnum,sizeLoadi);
|
||||||
|
|
@ -24,6 +27,7 @@ dg5_dx=[sparse(1:Busnum,1:Busnum,ones(Busnum,1),Busnum,Busnum);
|
||||||
];
|
];
|
||||||
dg6_dx=dg5_dx;
|
dg6_dx=dg5_dx;
|
||||||
dg7_dx=sparse(2*Busnum,Busnum);
|
dg7_dx=sparse(2*Busnum,Busnum);
|
||||||
|
dpdbi_dx=sparse(2*Busnum,sizeLoadi);
|
||||||
%%
|
%%
|
||||||
dg3_dvbi=sparse(Busnum,sizeLoadi);
|
dg3_dvbi=sparse(Busnum,sizeLoadi);
|
||||||
dg32_dvbi=sparse(Busnum,sizeLoadi);
|
dg32_dvbi=sparse(Busnum,sizeLoadi);
|
||||||
|
|
@ -31,10 +35,26 @@ dg4_dvbi=sparse(Busnum,length(Loadi));
|
||||||
dg5_dvbi=sparse(-eye(Busnum,Busnum));
|
dg5_dvbi=sparse(-eye(Busnum,Busnum));
|
||||||
dg6_dvbi=sparse(eye(Busnum,Busnum));
|
dg6_dvbi=sparse(eye(Busnum,Busnum));
|
||||||
dg7_dvbi=sparse(eye(Busnum,Busnum));
|
dg7_dvbi=sparse(eye(Busnum,Busnum));
|
||||||
|
dpdbi_dvbi=sparse(Busnum,sizeLoadi);
|
||||||
%%
|
%%
|
||||||
deltG=[dg3_dPD,dg32_dPD,dg4_dPD,dg5_dPD,dg6_dPD,dg7_dPD;
|
dg3_dpdbi=sparse(-eye(sizeLoadi,sizeLoadi));
|
||||||
dg3_dQD,dg32_dQD,dg4_dQD,dg5_dQD,dg6_dQD,dg7_dQD;
|
dg32_dpdbi=sparse(eye(sizeLoadi,sizeLoadi));
|
||||||
dg3_dx,dg32_dx,dg4_dx,dg5_dx,dg6_dx,dg7_dx;
|
dg4_dpdbi=sparse(sizeLoadi,sizeLoadi);
|
||||||
dg3_dvbi,dg32_dvbi,dg4_dvbi,dg5_dvbi,dg6_dvbi,dg7_dvbi;
|
dg5_dpdbi=sparse(sizeLoadi,Busnum);
|
||||||
|
dg6_dpdbi=sparse(sizeLoadi,Busnum);
|
||||||
|
dg7_dpdbi=sparse(sizeLoadi,Busnum);
|
||||||
|
dpdbi_dpdbi=sparse(eye(sizeLoadi,sizeLoadi));
|
||||||
|
%%
|
||||||
|
deltG=[dg3_dPD,dg32_dPD,dg4_dPD,dg5_dPD,dg6_dPD,dg7_dPD,dpdbi_dPD;
|
||||||
|
dg3_dQD,dg32_dQD,dg4_dQD,dg5_dQD,dg6_dQD,dg7_dQD,dpdbi_dQD;
|
||||||
|
dg3_dx,dg32_dx,dg4_dx,dg5_dx,dg6_dx,dg7_dx,dpdbi_dx;
|
||||||
|
dg3_dvbi,dg32_dvbi,dg4_dvbi,dg5_dvbi,dg6_dvbi,dg7_dvbi,dpdbi_dvbi;
|
||||||
|
dg3_dpdbi,dg32_dpdbi,dg4_dpdbi,dg5_dpdbi,dg6_dpdbi,dg7_dpdbi,dpdbi_dpdbi;
|
||||||
];
|
];
|
||||||
|
% deltG=[dg3_dPD,dg32_dPD,dg4_dPD,dg5_dPD,dg6_dPD,dg7_dPD;
|
||||||
|
% dg3_dQD,dg32_dQD,dg4_dQD,dg5_dQD,dg6_dQD,dg7_dQD;
|
||||||
|
% dg3_dx,dg32_dx,dg4_dx,dg5_dx,dg6_dx,dg7_dx;
|
||||||
|
% dg3_dvbi,dg32_dvbi,dg4_dvbi,dg5_dvbi,dg6_dvbi,dg7_dvbi;
|
||||||
|
% dg3_dpdbi,dg32_dpdbi,dg4_dpdbi,dg5_dpdbi,dg6_dpdbi,dg7_dpdbi;
|
||||||
|
% ];
|
||||||
end
|
end
|
||||||
|
|
@ -3,6 +3,7 @@ dH_dPD=[sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum
|
||||||
dH_dQD=[sparse(size(Loadi,1),Busnum) sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum)];
|
dH_dQD=[sparse(size(Loadi,1),Busnum) sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum)];
|
||||||
dH_dx = jacobian_M(Busnum,Volt,Y,Angle,UAngel,r,c); %形成雅克比矩阵
|
dH_dx = jacobian_M(Busnum,Volt,Y,Angle,UAngel,r,c); %形成雅克比矩阵
|
||||||
dH_dvbi=sparse(Busnum,2*Busnum);
|
dH_dvbi=sparse(Busnum,2*Busnum);
|
||||||
deltH=[dH_dPD;dH_dQD;dH_dx';dH_dvbi];
|
dH_dpdbi=sparse(length(Loadi),2*Busnum);
|
||||||
|
deltH=[dH_dPD;dH_dQD;dH_dx';dH_dvbi;dH_dpdbi];
|
||||||
|
|
||||||
end
|
end
|
||||||
Loading…
Reference in New Issue