176 lines
6.7 KiB
Matlab
176 lines
6.7 KiB
Matlab
function ddf=func_ddh(AngleIJMat,GB,Volt,Init_Y,Busnum)
|
|
%% deltaPi/deltaThytai_deltaThytaj 非对角元素
|
|
t1=-Volt'*Volt;
|
|
t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat);
|
|
dPdTidTj=t1.*t2; %%(保留了对角元素的)
|
|
dPidTidTj_2=dPdTidTj-diag(diag(dPdTidTj));%去掉了对角元素的
|
|
t3=repmat(Init_Y',1,size(Init_Y,2));%乘y的系数
|
|
dPidTidTj_2=dPidTidTj_2.*t3(1:2:size(Init_Y,2),1:2:size(Init_Y,2));
|
|
t2=real(GB).*cos(AngleIJMat)-imag(GB).*sin(AngleIJMat);
|
|
t3=t1.*t2;
|
|
dPjdTidTj=t3-diag(diag(t3));%去掉了对角元素的
|
|
t3=repmat(Init_Y,size(Init_Y,2),1);
|
|
dPjdTidTj=dPjdTidTj.*t3(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数
|
|
dPdTidTj=dPidTidTj_2+dPjdTidTj;%最终非对角元素 @@
|
|
%% deltaP/deltaThyta_deltaThyta 对角元素
|
|
t1=sum(-dPidTidTj_2,2);
|
|
t2=diag(t1'.*Init_Y(1:2:size(Init_Y,2)));%乘y的系数
|
|
t3=sum(-dPidTidTj_2,1);
|
|
t4=diag(t3.*Init_Y(1:2:size(Init_Y,2)));%乘y的系数
|
|
dPdTidTi=t2+t4;%%最终对角元素 @@
|
|
%% deltaP/deltaThytai_dVi 对角元素
|
|
t1=ones(Busnum,1)*Volt.*(real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat));
|
|
t2=diag(t1);
|
|
t3=t1-diag(t2);%去掉了对角元素的
|
|
t4=sum(t3,2);
|
|
t4=t4'.*Init_Y(1:2:size(Init_Y,2));%乘y的系数
|
|
dPidTidVi=diag(t4);
|
|
dPidTjdVj=-t3;
|
|
t6=sum(dPidTjdVj,1);%乘y的系数
|
|
t6=t6.*Init_Y(1:2:size(Init_Y,2));%乘y的系数
|
|
dPdTidVi=dPidTidVi+diag(t6);%%最终对角元素 @@
|
|
%% deltaP/deltaThytai_dVj 非对角元素
|
|
t1=ones(Busnum,1)*Volt.*(real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat));
|
|
dPidTidVj=t1-diag(diag(t1));%%去掉对角元素的
|
|
t2=repmat(Init_Y',1,size(Init_Y,2));
|
|
dPidTidVj=dPidTidVj.*t2(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数
|
|
t1=ones(Busnum,1)*Volt.*real(GB).*(sin(AngleIJMat)+imag(GB).*cos(AngleIJMat));
|
|
dPjdTidVj=t1-diag(diag(t1));%去掉对角元素的
|
|
t2=t2';
|
|
dPjdTidVj=dPjdTidVj.*t2(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数
|
|
dPdTidVj=dPidTidVj+dPjdTidVj;%最终非对角元素 @@
|
|
%% deltaP/dVi_deltaThytaj 非对角元素
|
|
t1=-ones(Busnum,1)*Volt.*real(GB).*(sin(AngleIJMat)-imag(GB).*cos(AngleIJMat));
|
|
dPidVidTj=t1-diag(diag(t1));
|
|
t2=repmat(Init_Y',1,size(Init_Y,2));
|
|
dPidVidTj=dPidVidTj.*t2(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数
|
|
t1=-ones(Busnum,1)*Volt.*(real(GB).*sin(AngleIJMat)+imag(GB).*cos(AngleIJMat));
|
|
dPjdVidTj=t1-diag(diag(t1));
|
|
t2=t2';
|
|
dPjdVidTj.*t2(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数
|
|
dPdVidTj=dPidVidTj+dPjdVidTj;%最终非对角元素
|
|
%% deltaPi/dVi_deltaThyta 对角元素
|
|
dPdVidTi=dPdTidVi;%最终对角元素 @@
|
|
%% deltaP/dVi_dVj 非对角元素
|
|
t1=-(real(GB).*(cos(AngleIJMat)+imag(GB).*sin(AngleIJMat)));
|
|
dPidVidVj=t1-diag(diag(t1));%去掉对角元素的
|
|
t2=repmat(Init_Y',1,size(Init_Y,2));
|
|
dPidVidVj=dPidVidVj.*t2(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数
|
|
t1=-(real(GB).*(cos(AngleIJMat)-imag(GB).*sin(AngleIJMat)));
|
|
dPjdVidVj=t1-diag(diag(t1));
|
|
t2=t2';
|
|
dPjdVidVj=dPjdVidVj.*t2(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数
|
|
dPdVidVj=dPidVidVj+dPjdVidVj;%最终非对角元素 @@
|
|
%% deltaP/dVi_dVi 对角元素
|
|
t1=diag(real(GB));
|
|
t2=t1'.*Init_Y(1:2:size(Init_Y,2));%乘y的系数
|
|
dPidVidVi=-2*diag(t2);
|
|
dPidVjdVj=0;
|
|
dPdVidVi=dPidVidVi+dPidVjdVj;%最终对角元素 @@
|
|
%% 生成APi
|
|
APi=zeros(2*Busnum,2*Busnum);
|
|
APi(1:2:2*Busnum,1:2:2*Busnum)=dPdTidTj;%%非对角 TT
|
|
APi(1:2:2*Busnum,2:2:2*Busnum)=dPdTidVj;%%非对角 TV
|
|
APi(2:2:2*Busnum,1:2:2*Busnum)=dPdVidTj;%%非对角 VT
|
|
APi(2:2:2*Busnum,2:2:2*Busnum)=dPdVidVj;%%非对角 VV
|
|
APi(1:2:2*Busnum,1:2:2*Busnum)=dPdTidTi;%%对角
|
|
APi(1:2:2*Busnum,2:2:2*Busnum)=dPdTidVi;%%对角
|
|
APi(2:2:2*Busnum,1:2:2*Busnum)=dPdVidTi;%%对角
|
|
APi(2:2:2*Busnum,2:2:2*Busnum)=dPdVidVi;%%对角
|
|
%% deltaQ/deltaThyta_deltaThyta 非对角元素
|
|
t1=-Volt'*Volt;
|
|
t2=real(GB).*(sin(AngleIJMat)-imag(GB).*cos(AngleIJMat));
|
|
dQidTidTj=t1.*t2;%不去掉对角元素了,反正最后是要修正的
|
|
t3=repmat(Init_Y',1,size(Init_Y,2));
|
|
dQidTidTj=dQidTidTj.*t3(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
t2=real(GB).*(sin(AngleIJMat)+imag(GB).*cos(AngleIJMat));
|
|
dQjdTidTj=t1.*t2;
|
|
t3=t3';
|
|
dQjdTidTj=dQjdTidTj.*t3(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
dQdTidTj=dQidTidTj+dQjdTidTj;%最终非对角元素
|
|
%% deltaQ/deltaThyta_deltaThyta 对角元素
|
|
t1=dQidTidTj-diag(diag(dQidTidTj));
|
|
t2=sum(t1,2);
|
|
t3=t2'.*Init_Y(2:2:size(Init_Y,2));%乘y的系数
|
|
dQidTidTi=diag(t3);
|
|
t1=-Volt'*Volt;
|
|
t2=real(GB).*(sin(AngleIJMat)-imag(GB).*cos(AngleIJMat));
|
|
t3=t1.*t2;
|
|
t4=t3-diag(diag(t3));
|
|
t5=sum(t4,1);
|
|
t6=t5.*Init_Y(2:2:size(Init_Y,2));%乘y的系数
|
|
dQjdTidTi=diag(t6);
|
|
dQdTidTi=dQjdTidTi+dQidTidTi;%最终对角元素
|
|
%% deltaQ/deltaThyta_deltaV 非对角元素
|
|
t1=-Volt;
|
|
t2=real(GB).*(cos(AngleIJMat)+imag(GB).*sin(AngleIJMat));
|
|
t3=ones(Busnum,1)*t1.*t2;
|
|
t4=repmat(Init_Y',1,size(Init_Y,2));
|
|
dQidTidVj=t3.*t4(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
t2=real(GB).*(cos(AngleIJMat)-imag(GB).*sin(AngleIJMat));
|
|
t3=Volt'*ones(1,Busnum).*t2;
|
|
t4=t4';
|
|
dQjdTidVj=t2.*t3.*t4(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
dQdTidVj=dQidTidVj+dQjdTidVj;%最终非对角元素
|
|
%% deltaQ/deltaThyta_deltaV 对角元素
|
|
t1=sum(dQidTidVj,2)-diag(dQidTidVj);
|
|
t2=t1'.*Init_Y(2:2:size(Init_Y,2));%乘y的系数
|
|
dQidTidVi=diag(t2);
|
|
t1=-Volt'*ones(1,Busnum).*(real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat));
|
|
t2=t1-diag(diag(t1));
|
|
t3=sum(t2,1);
|
|
t4=t3.*Init_Y(2:2:size(Init_Y,2));%乘y的系数
|
|
dQjdTidVi=diag(t4);
|
|
dQdTidVi=dQidTidVi+dQjdTidVi;
|
|
%% deltaQ/deltaV_deltaV 非对角元素
|
|
t1=real(GB).*(sin(AngleIJMat)-imag(GB).*cos(AngleIJMat));
|
|
t2=repmat(Init_Y',1,size(Init_Y,2));
|
|
t3=t1.*t2(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
dQidVidVj=t3;
|
|
t1=-real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat);
|
|
t2=t2';
|
|
t3=t1.*t2(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
dQjdVidVj=t3;
|
|
dQdVidVj=dQidVidVj+dQjdVidVj;
|
|
%% deltaQ/deltaV_deltaV 对角元素
|
|
t1=2*(real(GB).*(sin(AngleIJMat)-imag(GB).*cos(AngleIJMat)));
|
|
t2=diag(t1);
|
|
t3=t2'.*Init_Y(2:2:size(Init_Y,2));%乘y的系数
|
|
dQidVidVi=diag(t3);
|
|
t1=-real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat);
|
|
t2=diag(t1);
|
|
t3=t1-diag(t2);
|
|
t4=sum(t3,1);
|
|
t5=t4.*Init_Y(2:2:size(Init_Y,2));%乘y的系数
|
|
dQjdVidVi=diag(t5);
|
|
dQdVidVi=dQidVidVi+dQjdVidVi;
|
|
%% deltaQ/deltaV_deltaThyta 非对角元素
|
|
t1=real(GB).*sin(AngleIJMat)+imag(GB).*cos(AngleIJMat);
|
|
t2=-ones(Busnum,1)*Volt.*(t1);
|
|
t3=repmat(Init_Y',1,size(Init_Y,2));
|
|
t4=t2'.*t3(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
dQidVidTj=t4;
|
|
t1=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat);
|
|
t2=-ones(Busnum,1)*Volt.*(t1);
|
|
t3=t3';
|
|
t4=t2.*t3(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数
|
|
dQjdVidTj=t4;
|
|
dQdVidTj=dQidVidTj+dQjdVidTj;
|
|
%% deltaQ/deltaV_deltaThyta 对角元素
|
|
dQdVidTi=dQdTidVi;
|
|
%% 生成AQi
|
|
AQi=zeros(2*Busnum,2*Busnum);
|
|
AQi(1:2:2*Busnum,1:2:2*Busnum)=dQdTidTj;%%非对角 TT
|
|
AQi(1:2:2*Busnum,2:2:2*Busnum)=dQdTidVj;%%非对角 TV
|
|
AQi(2:2:2*Busnum,1:2:2*Busnum)=dQdVidTj;%%非对角 VT
|
|
AQi(2:2:2*Busnum,2:2:2*Busnum)=dQdVidVj;%%非对角 VV
|
|
AQi(1:2:2*Busnum,1:2:2*Busnum)=dQdTidTi;%%对角
|
|
AQi(1:2:2*Busnum,2:2:2*Busnum)=dQdTidVi;%%对角
|
|
AQi(2:2:2*Busnum,1:2:2*Busnum)=dQdVidTi;%%对角
|
|
AQi(2:2:2*Busnum,2:2:2*Busnum)=dQdVidVi;%%对角
|
|
%% 生成ddf
|
|
t=[zeros(2*14-2*5,2*14);
|
|
zeros(2*5,2*14-2*5),AQi+APi;
|
|
];
|
|
ddf=t;
|
|
end |