把0-1变量变成0-0.1变量
Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
parent
9a3fd4edd0
commit
a2b2ba134f
6
FormG.m
6
FormG.m
|
|
@ -10,8 +10,8 @@ Mat_G=[
|
||||||
Vbi;
|
Vbi;
|
||||||
PDbi;
|
PDbi;
|
||||||
QDbi;
|
QDbi;
|
||||||
(1-Vbi).*Vbi;
|
(0.1-Vbi).*Vbi;
|
||||||
(1-PDbi).*PDbi;
|
(0.1-PDbi).*PDbi;
|
||||||
(1-QDbi).*QDbi;
|
(0.1-QDbi).*QDbi;
|
||||||
];
|
];
|
||||||
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=([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',1*ones(1,length(PDU)),0*QDU',1*ones(1,length(QDU)),0*VoltU,1*ones(1,length(VoltU)),0.1*ones(1,Busnum+length(Loadi)*2)])';
|
||||||
t1=[t1;
|
t1=[t1;
|
||||||
sparse(eps*ones(Busnum,1));
|
sparse(eps*ones(Busnum,1));
|
||||||
sparse(eps*ones(length(Loadi),1));
|
sparse(eps*ones(length(Loadi),1));
|
||||||
|
|
|
||||||
2
FormLz.m
2
FormLz.m
|
|
@ -21,7 +21,7 @@ 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));
|
||||||
% 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=([-1*ones(1,length(PDL)),0*PDL',-1*ones(1,length(QDL)),0*QDL',-1*ones(1,length(VoltL)),0*VoltL,0*ones(1,Busnum+length(Loadi)*2)])';
|
||||||
t1=[t1;
|
t1=[t1;
|
||||||
sparse(-eps*ones(Busnum,1));
|
sparse(-eps*ones(Busnum,1));
|
||||||
sparse(-eps*ones(length(Loadi),1));
|
sparse(-eps*ones(length(Loadi),1));
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,14 @@ 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);
|
||||||
%fprintf('AlphaD %f\n',full(AlphaD));
|
%fprintf('AlphaD %f\n',full(AlphaD));
|
||||||
|
% if AlphaP<1e-4
|
||||||
|
% AlphaP=0.1;
|
||||||
|
% end
|
||||||
|
%
|
||||||
|
% if AlphaD<1e-4
|
||||||
|
% AlphaD=0.1;
|
||||||
|
% end
|
||||||
|
|
||||||
|
|
||||||
Init_Z=Init_Z+AlphaD*deltZ';
|
Init_Z=Init_Z+AlphaD*deltZ';
|
||||||
Init_L=Init_L+AlphaP*deltL';
|
Init_L=Init_L+AlphaP*deltL';
|
||||||
|
|
|
||||||
2
OPF.m
2
OPF.m
|
|
@ -28,7 +28,7 @@ mVolt=rVolt.*(1+normrnd(0,sigma,length(rVolt),1))';
|
||||||
% mVolt=load('mVolt');
|
% mVolt=load('mVolt');
|
||||||
% mVolt=mVolt.mVolt;
|
% mVolt=mVolt.mVolt;
|
||||||
|
|
||||||
mVolt(2)=rVolt(2)*(1+0.2);
|
mVolt(2)=rVolt(2)*(1+sigma*8);
|
||||||
%% 画Case A的图
|
%% 画Case A的图
|
||||||
% figure('Color',[1 1 1]);
|
% figure('Color',[1 1 1]);
|
||||||
[Busnum,Loadi,Volt,PD,QD,rVolt,UAngel,RealPD,RealQD,rUAngel,Vbi,PDbi,QDbi,plotGapA]=subOPF([],PD0,QD0,mVolt,sigma);%全部有
|
[Busnum,Loadi,Volt,PD,QD,rVolt,UAngel,RealPD,RealQD,rUAngel,Vbi,PDbi,QDbi,plotGapA]=subOPF([],PD0,QD0,mVolt,sigma);%全部有
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ 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
|
dgCCVbi_dvbi=sparse(diag(0.1-2*Vbi));%互补约束为(1-Vbi).*Vbi
|
||||||
dgCCPDbi_dvbi=sparse(Busnum,length(Loadi));
|
dgCCPDbi_dvbi=sparse(Busnum,length(Loadi));
|
||||||
dgCCQDbi_dvbi=sparse(Busnum,length(Loadi));
|
dgCCQDbi_dvbi=sparse(Busnum,length(Loadi));
|
||||||
%%
|
%%
|
||||||
|
|
@ -73,7 +73,7 @@ dgPDbi_dPDbi=sparse(eye(length(Loadi)));
|
||||||
dgQDbi_dPDbi=sparse(zeros(length(Loadi)));
|
dgQDbi_dPDbi=sparse(zeros(length(Loadi)));
|
||||||
%»¥²¹Ô¼Êø
|
%»¥²¹Ô¼Êø
|
||||||
dgCCVbi_dPDbi=sparse(length(Loadi),Busnum);
|
dgCCVbi_dPDbi=sparse(length(Loadi),Busnum);
|
||||||
dgCCPDbi_dPDbi=sparse(diag(1-2*PDbi));
|
dgCCPDbi_dPDbi=sparse(diag(0.1-2*PDbi));
|
||||||
dgCCQDbi_dPDbi=sparse(length(Loadi),length(Loadi));
|
dgCCQDbi_dPDbi=sparse(length(Loadi),length(Loadi));
|
||||||
%%
|
%%
|
||||||
dg3_dQDbi=sparse(length(Loadi),length(Loadi));
|
dg3_dQDbi=sparse(length(Loadi),length(Loadi));
|
||||||
|
|
@ -88,7 +88,7 @@ dgQDbi_dQDbi=sparse(eye(length(Loadi)));
|
||||||
%»¥²¹Ô¼Êø
|
%»¥²¹Ô¼Êø
|
||||||
dgCCVbi_dQDbi=sparse(length(Loadi),Busnum);
|
dgCCVbi_dQDbi=sparse(length(Loadi),Busnum);
|
||||||
dgCCPDbi_dQDbi=sparse(length(Loadi),length(Loadi));
|
dgCCPDbi_dQDbi=sparse(length(Loadi),length(Loadi));
|
||||||
dgCCQDbi_dQDbi=sparse(diag(1-2*QDbi));
|
dgCCQDbi_dQDbi=sparse(diag(0.1-2*QDbi));
|
||||||
%%
|
%%
|
||||||
% 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;
|
% 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_dQD,dg32_dQD,dg4_dQD,dg42_dQD,dg5_dQD,dg6_dQD,dg7_dQD,dgPDbi_dQD,dgQDbi_dQD,dgCCVbi_dQD,dgCCPDbi_dQD,dgCCQDbi_dQD;
|
||||||
|
|
|
||||||
53
subOPF.m
53
subOPF.m
|
|
@ -45,7 +45,7 @@ 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+length(Loadi)*2;
|
ContrlCount=size(Loadi,1)*2+Busnum*2+Busnum+length(Loadi)*2;
|
||||||
kmax=100000;
|
kmax=100;
|
||||||
Precision=Precision/1;
|
Precision=Precision/1;
|
||||||
%% 加误差
|
%% 加误差
|
||||||
%找DG
|
%找DG
|
||||||
|
|
@ -90,11 +90,11 @@ lVolt(noMeasurei)=0.7*mVolt(noMeasurei);%
|
||||||
uVolt(noMeasurei)=0.7*mVolt(noMeasurei);
|
uVolt(noMeasurei)=0.7*mVolt(noMeasurei);
|
||||||
%错误数据
|
%错误数据
|
||||||
%mVolt(2)=5;
|
%mVolt(2)=5;
|
||||||
bigM=0.3;
|
bigM=0.000003;
|
||||||
Vbi=sparse(0.0*ones(Busnum,1));
|
Vbi=sparse(0.5*ones(Busnum,1));
|
||||||
% Vbi(2)=1;
|
% Vbi(2)=1;
|
||||||
PDbi=sparse(0.0*ones(length(Loadi),1));
|
PDbi=sparse(0.5*ones(length(Loadi),1));
|
||||||
QDbi=sparse(0.0*ones(length(Loadi),1));
|
QDbi=sparse(0.5*ones(length(Loadi),1));
|
||||||
eps=1;
|
eps=1;
|
||||||
% 第一遍,算连续的值
|
% 第一遍,算连续的值
|
||||||
fprintf('第1次迭代,算连续量。\n');
|
fprintf('第1次迭代,算连续量。\n');
|
||||||
|
|
@ -124,7 +124,7 @@ while(abs(Gap)>Precision*10)
|
||||||
%% 形成方程矩阵
|
%% 形成方程矩阵
|
||||||
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);
|
||||||
bigM=1;
|
bigM=0.7;
|
||||||
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
||||||
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;
|
||||||
|
|
@ -146,13 +146,19 @@ end
|
||||||
% Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
% Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
||||||
Gap=1;
|
Gap=1;
|
||||||
% KK=0;
|
% KK=0;
|
||||||
eps=1;
|
eps=0.00001;
|
||||||
fprintf('\n');
|
fprintf('\n');
|
||||||
|
|
||||||
fprintf('第2次迭代,算离散量。\n');
|
fprintf('第2次迭代,算离散量。\n');
|
||||||
% while eps>0.0001
|
while eps>0.000001
|
||||||
while(abs(Gap)>Precision*10 || eps>0.0001)
|
% Init_Z=sparse(ones(1,RestraintCount));
|
||||||
|
% Init_W=sparse(-1*ones(1,RestraintCount));
|
||||||
|
% Init_L=1*sparse(ones(1,RestraintCount));
|
||||||
|
% Init_U=1*sparse(ones(1,RestraintCount));
|
||||||
|
% Init_Y=sparse(1,2*Busnum);%Óëѧ½ãÒ»ÖÂ
|
||||||
|
while(abs(Gap)>Precision*100)
|
||||||
if KK>kmax
|
if KK>kmax
|
||||||
break;
|
% break;
|
||||||
end
|
end
|
||||||
plotGap(KK+1)=Gap;
|
plotGap(KK+1)=Gap;
|
||||||
Init_u=Gap/2/RestraintCount*CenterA;
|
Init_u=Gap/2/RestraintCount*CenterA;
|
||||||
|
|
@ -176,26 +182,10 @@ fprintf('
|
||||||
%% 形成方程矩阵
|
%% 形成方程矩阵
|
||||||
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);
|
||||||
bigM=0.2;
|
bigM=0.7;
|
||||||
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
||||||
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;
|
||||||
if eps>0.01
|
|
||||||
eps=Gap*2
|
|
||||||
else
|
|
||||||
eps=eps*0.2
|
|
||||||
end
|
|
||||||
% if KK>20
|
|
||||||
% eps=eps*0.1;
|
|
||||||
% eps=Gap;
|
|
||||||
% if abs(eps)<1e-6
|
|
||||||
% eps=1e-5;
|
|
||||||
% end
|
|
||||||
% eps;
|
|
||||||
% if any(Vbi>0.5)
|
|
||||||
% Vbi(Vbi>0.5)=1;
|
|
||||||
% end
|
|
||||||
% end
|
|
||||||
Lz=FormLz(Mat_G,Init_L,GenL,Busnum,PVQL,PD,RealPD,RealQD,Loadi,KK,PF,eps);
|
Lz=FormLz(Mat_G,Init_L,GenL,Busnum,PVQL,PD,RealPD,RealQD,Loadi,KK,PF,eps);
|
||||||
Lw=FormLw(Mat_G,Init_U,GenU,Busnum,PVQU,PD,PD0,QD0,Loadi,KK,PF,eps);
|
Lw=FormLw(Mat_G,Init_U,GenU,Busnum,PVQU,PD,PD0,QD0,Loadi,KK,PF,eps);
|
||||||
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
|
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
|
||||||
|
|
@ -207,15 +197,18 @@ fprintf('
|
||||||
% Vbi_=Vbi;
|
% Vbi_=Vbi;
|
||||||
% PDbi_=PDbi;
|
% PDbi_=PDbi;
|
||||||
% QDbi_=QDbi;
|
% QDbi_=QDbi;
|
||||||
|
% Vbi=1./(1+exp( (0.06-Vbi) /0.01))*0.1;
|
||||||
[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);
|
||||||
Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
||||||
|
|
||||||
|
% Vbi(Vbi>0.01)=1;
|
||||||
KK=KK+1;
|
KK=KK+1;
|
||||||
end
|
end
|
||||||
% eps=eps*0.95;
|
eps=eps*0.4;
|
||||||
% eps=Gap
|
% eps=Gap
|
||||||
% Gap=100;
|
Gap=100;
|
||||||
% end
|
end
|
||||||
%% 计算最大不平衡量
|
%% 计算最大不平衡量
|
||||||
AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle',Busnum,Busnum);
|
AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle',Busnum,Busnum);
|
||||||
dP=PD+diag(Volt)*Y.*cos(AngleIJ)*Volt';
|
dP=PD+diag(Volt)*Y.*cos(AngleIJ)*Volt';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue