pes2014-wronglowervoltagebound/func_ddg.asv

93 lines
3.3 KiB
Plaintext

function ddg=func_ddg(AngleIJMat,GB,Volt,Init_W,Init_Z,Busnum,indexi,indexj,PVi,RestraintCount)
c=Init_W+Init_Z;
%% dg4_dTdT 对角元素
%t1=-Volt'*Volt;
t1=Volt'*Volt;
t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat);
t3=t1.*t2;
t4=t3(sub2ind(size(t3),indexi,indexj));
t5=zeros(Busnum);
offset=2*size(PVi,1)+Busnum;
for I=1:size(indexi,2)
t5(indexi(I),indexi(I))=t4(I)*c(offset+I);
t5(indexj(I),indexj(I))=t4(I)*c(offset+I);
end
dPdTidTi=t5; %@@@
%% dg4_dTdT 非对角元素
%t1=Volt'*Volt;
t1=-Volt'*Volt;
t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat);
t3=t1.*t2;
t5=zeros(Busnum);
for I=1:size(indexi,2)
t5(indexi(I),indexj(I))=t3(indexi(I),indexj(I))*c(offset+I);
t5(indexj(I),indexi(I))=t3(indexi(I),indexj(I))*c(offset+I);
end
dPdTidTj=t5;% @@@
%% dg4_dVdV 对角元素
t1=real(GB)*2;
%dPijdVidVi=t1;
t2=zeros(Busnum);
for I=1:size(indexi,2)
t2(indexi(I),indexi(I))=t1(indexi(I),indexj(I))*c(offset+I);
end
dPdVidVi=t2; % @
%% dg4_dVdV 非对角元素
t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat);
t4=zeros(Busnum);
for I=1:size(indexi,2)
%t4(indexi(I),indexj(I))=t2(indexi(I),indexj(I))*c(offset+I);
t4(indexi(I),indexj(I))=-t2(indexi(I),indexj(I))*c(offset+I);
%t4(indexj(I),indexi(I))=t2(indexi(I),indexj(I))*c(offset+I);
t4(indexj(I),indexi(I))=-t2(indexi(I),indexj(I))*c(offset+I);
end
dPdVidVj=t4; %@@
%% dg4_dTdV 对角元素
t2=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat);
t4=zeros(Busnum);
for I=1:size(indexi,2)
%t4(indexi(I),indexi(I))=-Volt(indexj(I))*t2(indexi(I),indexi(I))*c(offset+I);
t4(indexi(I),indexi(I))=Volt(indexj(I))*t2(indexi(I),indexj(I))*c(offset+I);
%t4(indexj(I),indexj(I))=Volt(indexi(I))*t2(indexj(I),indexj(I))*c(offset+I);
t4(indexj(I),indexj(I))=-Volt(indexi(I))*t2(indexi(I),indexj(I))*c(offset+I);
end
dPdTidVi=t4; % @@
%% dg4_dTdV 非对角元素
t1=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat);
t2=zeros(Busnum);
for I=1:size(indexi,2)
%t2(indexi(I),indexj(I))=-Volt(indexi(I))*t1(indexi(I),indexj(I))*c(offset+I);
t2(indexi(I),indexj(I))=Volt(indexi(I))*t1(indexi(I),indexj(I))*c(offset+I);
%t2(indexj(I),indexi(I))=Volt(indexj(I))*t1(indexi(I),indexj(I))*c(offset+I);
t2(indexj(I),indexi(I))=-Volt(indexj(I))*t1(indexi(I),indexj(I))*c(offset+I);
end
dPdTidVj=t2; % @@
%% dg4_dVdT 对角元素
dPdVidTi=dPdTidVi;
%% dg4_dVdT 非对角元素
t1=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat);
t2=zeros(Busnum);
for I=1:size(indexi,2)
%t2(indexi(I),indexj(I))=Volt(indexj(I))*t1(indexi(I),indexj(I))*c(offset+I);
t2(indexi(I),indexj(I))=-Volt(indexj(I))*t1(indexi(I),indexj(I))*c(offset+I);
%t2(indexj(I),indexi(I))=Volt(indexi(I))*t1(indexi(I),indexj(I))*c(offset+I);
t2(indexj(I),indexi(I))=Volt(indexi(I))*t1(indexi(I),indexj(I))*c(offset+I);
end
dPdVidTj=t2; % @
%% 生成ddg4ddx
ddg4ddx=zeros(2*Busnum,2*Busnum);
ddg4ddx(1:2:2*Busnum,1:2:2*Busnum)=dPdTidTj;%%非对角 TT
ddg4ddx(1:2:2*Busnum,2:2:2*Busnum)=dPdTidVj;%%非对角 TV
ddg4ddx(2:2:2*Busnum,1:2:2*Busnum)=dPdVidTj;%%非对角 VT
ddg4ddx(2:2:2*Busnum,2:2:2*Busnum)=dPdVidVj;%%非对角 VV
ddg4ddx(1:2:2*Busnum,1:2:2*Busnum)=dPdTidTi;%%对角
ddg4ddx(1:2:2*Busnum,2:2:2*Busnum)=dPdTidVi;%%对角
ddg4ddx(2:2:2*Busnum,1:2:2*Busnum)=dPdVidTi;%%对角
ddg4ddx(2:2:2*Busnum,2:2:2*Busnum)=dPdVidVi;%%对角
%% 生成ddg
t=[zeros(2*size(PVi,1),RestraintCount);
zeros(2*Busnum,RestraintCount-size(PVi,1)-2*Busnum),ddg4ddx;
];
ddg=t;
end