parent
224611b051
commit
f12d2977d9
2
FormH.m
2
FormH.m
|
|
@ -10,5 +10,5 @@ dP=PG-sparse(Loadi,1,PD,Busnum*3,1)-diag(Volt)*Y.*cos(AngleIJ)*Volt;
|
||||||
dQ=QG-sparse(Loadi,1,QD,Busnum*3,1)-diag(Volt)*Y.*sin(AngleIJ)*Volt;
|
dQ=QG-sparse(Loadi,1,QD,Busnum*3,1)-diag(Volt)*Y.*sin(AngleIJ)*Volt;
|
||||||
|
|
||||||
Mat_H=[dP;dQ;];
|
Mat_H=[dP;dQ;];
|
||||||
|
Mat_H=sparse(Mat_H);
|
||||||
end
|
end
|
||||||
28
OPF.m
28
OPF.m
|
|
@ -252,7 +252,6 @@ Precision=1e-5;
|
||||||
CenterA=0.1;
|
CenterA=0.1;
|
||||||
%% 加误差
|
%% 加误差
|
||||||
Volt=1*Vp3m;
|
Volt=1*Vp3m;
|
||||||
% Volt=mVoltABCV;
|
|
||||||
UAngel=Vp3a;
|
UAngel=Vp3a;
|
||||||
maxD=100;
|
maxD=100;
|
||||||
tic
|
tic
|
||||||
|
|
@ -264,41 +263,18 @@ while(maxD>Precision)
|
||||||
%% 形成等式约束的雅克比
|
%% 形成等式约束的雅克比
|
||||||
deltH=func_deltH(Busnum,Volt,Y,UAngel,r,c,Yangle,Loadi);
|
deltH=func_deltH(Busnum,Volt,Y,UAngel,r,c,Yangle,Loadi);
|
||||||
%% 形成不等式约束的雅克比
|
%% 形成不等式约束的雅克比
|
||||||
% deltG=func_deltG(Busnum,Loadi);
|
|
||||||
%%
|
|
||||||
%% Ðγɺ£ÉÕó
|
|
||||||
deltdeltF=func_deltdeltF(wVolt,wPD,wQD,ContrlCount,Loadi);
|
|
||||||
% deltdeltF=zeros(size(deltdeltF));
|
|
||||||
%% ÐγÉddHy
|
|
||||||
ddh=func_ddh(Volt,Init_Y,Busnum,Y,UAngel,r,c,Yangle,Loadi,ContrlCount);
|
|
||||||
% ddh=zeros(size(ddh));
|
|
||||||
%% 开始构建ddg
|
%% 开始构建ddg
|
||||||
%% 开始构建deltF
|
%% 开始构建deltF
|
||||||
deltF=func_deltF(wVolt,wPD,wQD,mPD3P,PD3P,QD3P,mQD3P,Volt,mVoltABCV,Busnum,Loadi);
|
deltF=func_deltF(wVolt,wPD,wQD,mPD3P,PD3P,QD3P,mQD3P,Volt,mVoltABCV,Busnum,Loadi);
|
||||||
%% 形成方程矩阵
|
%% 形成方程矩阵
|
||||||
% Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
|
|
||||||
% Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
|
|
||||||
% Mat_G=FormG(Volt,PD3P,QD3P,Loadi);
|
|
||||||
Mat_H=FormH(Busnum,Volt,PG3P,PD3P,QG3P,QD3P,Y,UAngel,r,c,Yangle,Loadi);
|
Mat_H=FormH(Busnum,Volt,PG3P,PD3P,QG3P,QD3P,Y,UAngel,r,c,Yangle,Loadi);
|
||||||
Ly=Mat_H;
|
|
||||||
% if isSetBound==0
|
|
||||||
% PDL=0.70*rPD3P.*(1+unifrnd(-0.15,0.15,length(rPD3P),1));
|
|
||||||
% QDL=0.70*rQD3P.*(1+unifrnd(-0.15,0.15,length(rQD3P),1));
|
|
||||||
% PDU=1.3*rPD3P.*(1+unifrnd(-0.15,0.15,length(rPD3P),1));
|
|
||||||
% QDU=1.3*rQD3P.*(1+unifrnd(-0.15,0.15,length(rPD3P),1));
|
|
||||||
% isSetBound=1;
|
|
||||||
% end
|
|
||||||
% Lz=FormLz(Mat_G,Init_L,Loadi,rPD3P,rQD3P,rVoltABCV,PDL,QDL);
|
|
||||||
% Lw=FormLw(Mat_G,Init_U,Loadi,rPD3P,rQD3P,rVoltABCV,PDU,QDU);
|
|
||||||
Lx=FormLx(deltF,deltH,Init_Y);
|
|
||||||
% 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(deltdeltF,ddh,deltH,Init_Y,Ly,ContrlCount,Lx,Balance,Busnum,Loadi);
|
XX=SolveIt(deltH,ContrlCount,Balance,Busnum,Loadi,deltF,mPD3P,PD3P,mQD3P,QD3P,mVoltABCV,Volt,Mat_H,wVolt,wPD,wQD);
|
||||||
%%取各分量
|
%%取各分量
|
||||||
[deltX,deltY]=AssignXX(XX,ContrlCount,Loadi,Balance,Busnum);
|
[deltX,deltY]=AssignXX(XX,ContrlCount,Loadi,Balance,Busnum);
|
||||||
[Init_Y,PG,QG,Volt,UAngel,PD3P,QD3P]=Modification(Init_Y,deltX,deltY,PG,QG,Volt,UAngel,ContrlCount,Balance,Busnum,PD3P,QD3P,Loadi);
|
[Init_Y,PG,QG,Volt,UAngel,PD3P,QD3P]=Modification(Init_Y,deltX,deltY,PG,QG,Volt,UAngel,ContrlCount,Balance,Busnum,PD3P,QD3P,Loadi);
|
||||||
maxD=max(abs([deltX;deltY]));
|
maxD=max(abs([deltX]));
|
||||||
fprintf('%f\n',full(maxD));
|
fprintf('%f\n',full(maxD));
|
||||||
KK=KK+1;
|
KK=KK+1;
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
|
2015.5.19 在之前的程序上改成用Gauss-Newton法,而不是含有海森矩阵的Newton法
|
||||||
把原来内点法的程序给改了,改成只有等式约束的普通WLS方法。
|
把原来内点法的程序给改了,改成只有等式约束的普通WLS方法。
|
||||||
30
SolveIt.m
30
SolveIt.m
|
|
@ -1,12 +1,28 @@
|
||||||
function XX=SolveIt(deltdeltF,ddh,deltH,Init_Y,Ly,ContrlCount,Lx,Balance,Busnum,Loadi)
|
function XX=SolveIt(deltH,ContrlCount,Balance,Busnum,Loadi,deltF,PD0,PD,QD0,QD,mVolt,Volt,Mat_H,wVolt,wPD,wQD)
|
||||||
LxComa=FormLxComa(Lx);%Lx=deltF-deltH*Init_Y';
|
% LxComa=FormLxComa(Lx);%Lx=deltF-deltH*Init_Y';
|
||||||
Lx=LxComa;
|
% Lx=LxComa;
|
||||||
H=-deltdeltF+ddh;
|
% H=-deltdeltF+ddh;
|
||||||
|
% aa=[
|
||||||
|
% H,deltH;
|
||||||
|
% deltH',zeros(size(Init_Y,2));
|
||||||
|
% ];
|
||||||
aa=[
|
aa=[
|
||||||
H,deltH;
|
deltF'*diag([wPD ;wQD ;wVolt])*deltF deltH'
|
||||||
deltH',zeros(size(Init_Y,2));
|
deltH ones(size(deltH,1),size(deltH',2))
|
||||||
|
|
||||||
|
];
|
||||||
|
% yy=[Lx;-Ly];
|
||||||
|
% t3=2*wPD.*(PD-PD0);
|
||||||
|
% t4=2*wQD.*(QD-QD0);
|
||||||
|
% t5=2*wVolt.*(Volt-mVolt);
|
||||||
|
deltZ=[(PD0-PD);
|
||||||
|
(QD0-QD);
|
||||||
|
(mVolt-Volt);
|
||||||
];
|
];
|
||||||
yy=[Lx;-Ly];
|
yy=[
|
||||||
|
deltF'*diag([wPD; wQD; wVolt])*deltZ;
|
||||||
|
-Mat_H ;
|
||||||
|
];
|
||||||
%% 平衡节点电压不变
|
%% 平衡节点电压不变
|
||||||
t=size(Loadi,1)*2;
|
t=size(Loadi,1)*2;
|
||||||
aa(t+(Balance-1)*3+1,:)=0;
|
aa(t+(Balance-1)*3+1,:)=0;
|
||||||
|
|
|
||||||
25
func_deltF.m
25
func_deltF.m
|
|
@ -1,11 +1,18 @@
|
||||||
function deltF=func_deltF(wVolt,wPD,wQD,PD0,PD,QD,QD0,Volt,mVolt,Busnum,Loadi)
|
function deltF=func_deltF(wVolt,wPD,wQD,PD0,PD,QD,QD0,Volt,mVolt,Busnum,Loadi)
|
||||||
t3=2*wPD.*(PD-PD0);
|
% t3=2*wPD.*(PD-PD0);
|
||||||
t4=2*wQD.*(QD-QD0);
|
% t4=2*wQD.*(QD-QD0);
|
||||||
t5=2*wVolt.*(Volt-mVolt);
|
% t5=2*wVolt.*(Volt-mVolt);
|
||||||
deltF=[sparse(t3);
|
% deltF=[sparse(t3);
|
||||||
sparse(t4);
|
% sparse(t4);
|
||||||
sparse(t5);
|
% sparse(t5);
|
||||||
sparse(1*Busnum*3,1);
|
% sparse(1*Busnum*3,1);
|
||||||
];
|
% ];
|
||||||
|
totalM=length(PD)+length(QD)+length(Volt);
|
||||||
|
deltF=[
|
||||||
|
eye(length(PD)),sparse(length(PD),totalM-length(PD));
|
||||||
|
sparse(length(QD),length(PD)),eye(length(PD)),sparse(length(QD),totalM-length(PD)-length(QD));
|
||||||
|
sparse(length(Volt),length(PD)+length(QD)),eye(length(Volt));
|
||||||
|
sparse(length(Volt),totalM);
|
||||||
|
]';
|
||||||
|
deltF=sparse(deltF);
|
||||||
end
|
end
|
||||||
|
|
@ -2,6 +2,6 @@ function deltH=func_deltH(Busnum,Volt,Y,UAngel,r,c,Angle,Loadi)
|
||||||
dH_dPD=[sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum*3) sparse(size(Loadi,1),Busnum*3)];
|
dH_dPD=[sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum*3) sparse(size(Loadi,1),Busnum*3)];
|
||||||
dH_dQD=[sparse(size(Loadi,1),Busnum*3) sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum*3)];
|
dH_dQD=[sparse(size(Loadi,1),Busnum*3) sparse(1:size(Loadi,1),Loadi,-ones(size(Loadi,1),1),size(Loadi,1),Busnum*3)];
|
||||||
dH_dx = jacobian_M(Busnum,Volt,Y,Angle,UAngel,r,c); %形成雅克比矩阵
|
dH_dx = jacobian_M(Busnum,Volt,Y,Angle,UAngel,r,c); %形成雅克比矩阵
|
||||||
deltH=[dH_dPD;dH_dQD;dH_dx'];
|
deltH=[dH_dPD;dH_dQD;dH_dx']';
|
||||||
|
|
||||||
end
|
end
|
||||||
Loading…
Reference in New Issue