93 lines
3.3 KiB
Plaintext
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 |