function ddh=func_ddh2(AngleIJMat,GB,Volt,Init_Y,Busnum,PVi,PGi) %% deltaPi/deltaThytai_deltaThytaj 非对角元素 ContrlCount=size(PVi,1)+size(PGi,1)+Busnum*2; 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=Volt'*Volt; t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); t3=t1.*t2; t4=t3-diag(diag(t3)); t5=sum(t4,2); t6=t5'.*Init_Y(1:2:size(Init_Y,2));%乘y的系数 dPidTidTi=diag(t6); t1=Volt'*Volt; t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); t2=t1.*t2; t2=t2-diag(diag(t2)); t3=repmat(Init_Y',1,size(Init_Y,2));%乘y的系数 t4=t2.*t3(1:2:size(Init_Y,2),1:2:size(Init_Y,2)); t5=sum(t4,1); dPidTjdTj=diag(t5); dPdTidTi=dPidTidTi+dPidTjdTj;%%最终对角元素 @@@@@@@ %% 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); t1=-Volt'*ones(1,Busnum).*(real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat)); t1=t1-diag(diag(t1));%去掉对角元素 t2=repmat(Init_Y',1,size(Init_Y,2)); t3=t1.*t2(1:2:size(Init_Y,2),1:2:size(Init_Y,2));%乘y的系数 t6=sum(t3,1); dPdTidVi=dPidTidVi+diag(t6);%%最终对角元素 @@@@@@ %% deltaP/deltaThytai_dVj 非对角元素 t1=Volt'*ones(1,Busnum).*(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=Volt'*ones(1,Busnum).*(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=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 对角元素 t0=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); t1=diag(t0); 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; %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=Volt'*Volt; t2=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat); t3=t1.*t2; t4=t3-diag(diag(t3)); t5=repmat(Init_Y',1,size(Init_Y,2)); t6=t4.*t5(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数 t7=sum(t6,2); dQidTidTi=diag(t7); t1=Volt'*Volt; t2=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat); t3=t1.*t2; t4=t3-diag(diag(t3)); %t5=t5'; t6=t4.*t5(2:2:size(Init_Y,2),2:2:size(Init_Y,2));%乘y的系数 t7=sum(t6,1); dQjdTidTi=diag(t7); dQdTidTi=dQjdTidTi+dQidTidTi;%最终对角元素 @@@@@ %% deltaQ/deltaThyta_deltaV 非对角元素 t1=-Volt; %t1=Volt; t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); t3=t1'*ones(1,Busnum).*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=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);%去掉对角元素 t1=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); t2=-ones(Busnum,1)*Volt.*t1; t2=t2-diag(diag(t2)); t3=sum(t2,2); t4=t3'.*Init_Y(2:2:size(Init_Y,2));%乘y的系数 dQidTidVi=diag(t4); t1=Volt'*ones(1,Busnum).*(real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat)); t2=t1-diag(diag(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的系数 t5=sum(t4,1); dQjdTidVi=diag(t5); 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); dQjdVidVi=0; dQdVidVi=dQidVidVi+dQjdVidVi; % @@@@ %% deltaQ/deltaV_deltaThyta 非对角元素 %t1=real(GB).*sin(AngleIJMat)+imag(GB).*cos(AngleIJMat); t1=real(GB).*cos(AngleIJMat)+imag(GB).*sin(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).*cos(AngleIJMat)-imag(GB).*sin(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;%%对角 %% 生成ddh t=[zeros(size(PGi,1)+size(PVi,1),ContrlCount); zeros(2*Busnum,size(PVi,1)+size(PGi,1)),AQi+APi; ]; ddh=t; end