function ddh=func_ddh3(AngleIJMat,GB,Volt,Init_Y,Busnum,PVi,PGi,Y) %决定用循环重写 ContrlCount=size(PVi,1)+size(PGi,1)+Busnum*3; %deltaPi/deltaThytai_deltaThytaj 非对角元素 % dPidTidTj=zeros(Busnum); % t1=-Volt'*Volt; % t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); % t3=t1.*t2; % for I=1:Busnum % for J=1:Busnum % dPidTidTj(I,J)=dPidTidTj(I,J)+Init_Y(2*I-1)*t3(I,J); % end % end % t2=real(GB).*cos(AngleIJMat)-imag(GB).*sin(AngleIJMat); % t3=t1.*t2; % dPjdTidTj=zeros(Busnum); % % for I=1:Busnum % for J=1:Busnum % dPjdTidTj(I,J)=dPjdTidTj(I,J)+Init_Y(2*J-1)*t3(I,J); % end % end % dPdTidTj=dPidTidTj+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; % dPidTjdTj=zeros(Busnum); % for J=1:Busnum % for I=1:Busnum % % if I==J % continue; % end % dPidTjdTj(J,J)=dPidTjdTj(J,J)+Init_Y(2*I-1)*t2(I,J); % % end % end % % dPdTidTi=dPidTidTi+dPidTjdTj; % %%%%%%%%% % dPdTidTj=dPdTidTj-diag(diag(dPdTidTj)); % hh=dPdTidTj+dPdTidTi; %#ok % %% 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)); % dPjdTidVi=zeros(Busnum); % for J=1:Busnum % for I=1:Busnum % % if I==J % continue; % end % dPjdTidVi(J,J)=dPjdTidVi(J,J)+Init_Y(2*I-1)*t1(I,J); % % end % end % dPdTidVi=dPidTidVi+dPjdTidVi; % %% deltaP/deltaThytai_dVj 非对角元素 % % t1=Volt'*ones(1,Busnum).*(real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat));%20111224 存疑与学姐给的公式不一致 % %t1=ones(1,Busnum)'*Volt.*(real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat)); % dPidTidVj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dPidTidVj(I,J)=dPidTidVj(I,J)+Init_Y(2*I-1)*t1(I,J); % end % end % % dPjdTidVj=zeros(Busnum); % t1=Volt'*ones(1,Busnum).*(real(GB).*sin(AngleIJMat)+imag(GB).*cos(AngleIJMat)); % for I=1:Busnum % for J=1:Busnum % dPjdTidVj(I,J)=dPjdTidVj(I,J)+Init_Y(2*J-1)*t1(I,J); % end % end % % dPdTidVj=dPidTidVj+dPjdTidVj; % %%%%%%%%%%%%%%%%%%%%%% % dPdTidVj=dPdTidVj-diag(diag(dPdTidVj)); % hh=dPdTidVj+dPdTidVi; %#ok % %% deltaP/dVi_deltaThytaj 非对角元素 % t1=-ones(Busnum,1)*Volt.*(real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat)); % dPidVidTj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dPidVidTj(I,J)=dPidVidTj(I,J)+Init_Y(2*I-1)*t1(I,J); % end % end % t1=-ones(Busnum,1)*Volt.*(real(GB).*sin(AngleIJMat)+imag(GB).*cos(AngleIJMat)); % dPjdVidTj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dPjdVidTj(I,J)=dPjdVidTj(I,J)+Init_Y(2*J-1)*t1(I,J); % end % end % dPdVidTj=dPidVidTj+dPjdVidTj; % %% deltaPi/dVi_deltaThyta 对角元素 % % dPdVidTi=dPdTidVi; % %%%%%%%%%%%%%%%% % dPdVidTj=dPdVidTj-diag(diag(dPdVidTj)); % hh=dPdVidTj+dPdVidTi; % %% deltaP/dVi_dVj 非对角元素 % t1=-(real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat)); % dPidVidVj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dPidVidVj(I,J)=dPidVidVj(I,J)+Init_Y(2*I-1)*t1(I,J); % end % end % % % t1=-(real(GB).*cos(AngleIJMat)-imag(GB).*sin(AngleIJMat)); % dPjdVidVj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dPjdVidVj(I,J)=dPjdVidVj(I,J)+Init_Y(2*J-1)*t1(I,J); % end % end % 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; % %%%%%%%%%%% % dPdVidVj=dPdVidVj-diag(diag(dPdVidVj)); % hh=dPdVidVj+dPdVidVi; % %% 生成APi % APi=zeros(2*Busnum,2*Busnum); % dPdTidTj=dPdTidTj-diag(diag(dPdTidTj)); % dPdTidVj=dPdTidVj-diag(diag(dPdTidVj)); % dPdVidTj=dPdVidTj-diag(diag(dPdVidTj)); % dPdVidVj=dPdVidVj-diag(diag(dPdVidVj)); % % 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)=APi(1:2:2*Busnum,1:2:2*Busnum)+dPdTidTi;%%对角 % APi(1:2:2*Busnum,2:2:2*Busnum)=APi(1:2:2*Busnum,2:2:2*Busnum)+dPdTidVi;%%对角 % APi(2:2:2*Busnum,1:2:2*Busnum)=APi(2:2:2*Busnum,1:2:2*Busnum)+dPdVidTi;%%对角 % APi(2:2:2*Busnum,2:2:2*Busnum)=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); % t3=t1.*t2; % dQidTidTj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dQidTidTj(I,J)=dQidTidTj(I,J)+Init_Y(2*I)*t3(I,J); % end % end % % t2=real(GB).*sin(AngleIJMat)+imag(GB).*cos(AngleIJMat); % t3=-t1.*t2; % % dQjdTidTj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dQjdTidTj(I,J)=dQjdTidTj(I,J)+Init_Y(2*J)*t3(I,J); % end % end % % 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=sum(t4,2); % t6=t5'.*Init_Y(2:2:size(Init_Y,2)); % dQidTidTi=diag(t6); % t1=Volt'*Volt; % t2=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat); % t3=t1.*t2; % dQjdTidTi=zeros(Busnum); % for J=1:Busnum % for I=1:Busnum % % if I==J % continue; % end % dQjdTidTi(J,J)=dQjdTidTi(J,J)+Init_Y(2*I)*t3(I,J); % % end % end % % dQdTidTi=dQjdTidTi+dQidTidTi; % %%%%%%%%%%%% % dQdTidTj=dQdTidTj-diag(diag(dQdTidTj)); % hh=dQdTidTj+dQdTidTi; % %% deltaQ/deltaThyta_deltaV 非对角元素 % t1=-Volt; % t2=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); % t3=t1'*ones(1,Busnum).*t2; % dQidTidVj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dQidTidVj(I,J)=dQidTidVj(I,J)+Init_Y(2*I)*t3(I,J); % end % end % t2=real(GB).*cos(AngleIJMat)-imag(GB).*sin(AngleIJMat); % t3=Volt'*ones(1,Busnum).*t2; % dQjdTidVj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % %dQjdTidVj(I,J)=dQidTidVj(I,J)+Init_Y(2*J)*t3(I,J); 20111225 % dQjdTidVj(I,J)=dQjdTidVj(I,J)+Init_Y(2*J)*t3(I,J); % end % end % % dQdTidVj=dQidTidVj+dQjdTidVj; % %% deltaQ/deltaThyta_deltaV 对角元素 % % t1=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); % t2=-ones(Busnum,1)*Volt.*t1; % t2=t2-diag(diag(t2)); % t3=sum(t2,2); % t3=t3'.*Init_Y(2:2:size(Init_Y,2)); % dQidTidVi=diag(t3); % % % % t1=Volt'*ones(1,Busnum).*(real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat)); % t2=t1-diag(diag(t1)); % dQjdTidVi=zeros(Busnum); % for J=1:Busnum % for I=1:Busnum % % if I==J % continue; % end % dQjdTidVi(J,J)=dQjdTidVi(J,J)+Init_Y(2*I)*t2(I,J); % % end % end % % dQdTidVi=dQidTidVi+dQjdTidVi; % dQdTidVj=dQdTidVj-diag(diag(dQdTidVj)); % hh=dQdTidVj+dQdTidVi; % %% deltaQ/deltaV_deltaV 非对角元素 % t1=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat); % t2=-t1; % dQidVidVj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dQidVidVj(I,J)=dQidVidVj(I,J)+Init_Y(2*I)*t2(I,J); % end % end % % t1=real(GB).*sin(AngleIJMat)+imag(GB).*cos(AngleIJMat); % dQjdVidVj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dQjdVidVj(I,J)=dQjdVidVj(I,J)+Init_Y(2*J)*t1(I,J); % end % end % % 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); % % dQjdVidVi=0; % dQdVidVi=dQidVidVi+dQjdVidVi; % %%%%%%%%%%%%%% % dQdVidVj=dQdVidVj-diag(diag(dQdVidVj)); % hh=dQdVidVi+dQdVidVj; % %% deltaQ/deltaV_deltaThyta 非对角元素 % % t1=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); % t2=ones(Busnum,1)*Volt.*(t1); % dQidVidTj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dQidVidTj(I,J)=dQidVidTj(I,J)+Init_Y(2*I)*t2(I,J); % end % end % % % t1=real(GB).*cos(AngleIJMat)-imag(GB).*sin(AngleIJMat); % t2=-ones(Busnum,1)*Volt.*(t1); % dQjdVidTj=zeros(Busnum); % for I=1:Busnum % for J=1:Busnum % dQjdVidTj(I,J)=dQjdVidTj(I,J)+Init_Y(2*J)*t2(I,J); % end % end % % dQdVidTj=dQidVidTj+dQjdVidTj; % %% deltaQ/deltaV_deltaThyta 对角元素 % dQdVidTi=dQdTidVi;% @ % dQdVidTj=dQdVidTj-diag(diag(dQdVidTj)); % hhd=dQdVidTi+dQdVidTj; % %% 生成AQi % AQi=zeros(2*Busnum,2*Busnum); % dQdTidTj=dQdTidTj-diag(diag(dQdTidTj)); % dQdTidVj=dQdTidVj-diag(diag(dQdTidVj)); % dQdVidTj=dQdVidTj-diag(diag(dQdVidTj)); % dQdVidVj=dQdVidVj-diag(diag(dQdVidVj)); % % 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)=AQi(1:2:2*Busnum,1:2:2*Busnum)+dQdTidTi;%%对角 % AQi(1:2:2*Busnum,2:2:2*Busnum)=AQi(1:2:2*Busnum,2:2:2*Busnum)+dQdTidVi;%%对角 % AQi(2:2:2*Busnum,1:2:2*Busnum)=AQi(2:2:2*Busnum,1:2:2*Busnum)+dQdVidTi;%%对角 % AQi(2:2:2*Busnum,2:2:2*Busnum)=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; %% 以下是学姐给的公式 AngleIJ=AngleIJMat-angle(GB); %yP=Init_Y(1:2:size(Init_Y,2)); yP=Init_Y(1:size(Init_Y,2)/2);%暂时改这里 20111227 %yQ=Init_Y(2:2:size(Init_Y,2)); yQ=Init_Y(size(Init_Y,2)/2+1:size(Init_Y,2));%暂时改这里 20111227 t1=-diag(Y.*cos(AngleIJ')*diag(Volt)*yP'); t2=diag(diag(Volt)*yP')*Y.*cos(AngleIJ); t3=(t1+t2)*diag(Volt); t4=-(diag(Y.*cos(AngleIJ)*Volt') -diag(Volt)*Y.*cos(AngleIJ') )*diag(diag(Volt)*yP'); ddPdTdT=t3+t4;%ok1 % tttt=t2*diag(Volt);%ok1 % ttttt=diag(Volt)*Y.*cos(AngleIJ')*diag(diag(Volt)*yP');%ok1 % tttttt=tttt+ttttt;%ok1 % ttttttt=-diag(Y.*cos(AngleIJ)*Volt')*diag(diag(Volt)*yP')+tttt;%ok1 % tttttttt=diag(Volt)*Y.*cos(AngleIJ')*diag(diag(Volt)*yP')+t1*diag(Volt);%ok1 t1=(-diag(Y.*sin(AngleIJ)*Volt')+diag(Volt)*Y.*sin(AngleIJ') )*diag(yP); t2= -diag( diag(Volt)*yP' )*Y.*sin(AngleIJ)+diag(Y.*sin(AngleIJ')*diag(Volt)*yP'); ddPdVdT=t1+t2;%ok1 %tttt=-diag( diag(Volt)*yP' )*Y.*sin(AngleIJ); t1=diag( Y.*sin(AngleIJ')*diag(Volt)*yP'); t2=diag(yP)*Y.*sin(AngleIJ)*diag(Volt); t3=-diag(yP)*diag(Y.*sin(AngleIJ)*Volt'); t4=-Y.*sin(AngleIJ')*diag( diag(Volt)*yP' ); ddPdTdV=t1+t2+t3+t4;%存疑与我的不一样 % tttt=t2; % ttttt=t4; t1=Y.*cos(AngleIJ')*diag(yP); t2=diag(yP)*Y.*cos(AngleIJ); ddPdVdV=t1+t2; t1=-diag(Y.*sin(AngleIJ)*Volt'); t2=diag(Volt)*Y.*sin(AngleIJ'); t3=(t1+t2)*diag( diag(Volt)*yQ' ); t4=-diag( diag(Volt)*yQ' )*Y.*sin(AngleIJ); t5=diag(Y.*sin(AngleIJ')*diag(Volt)*yQ'); t6=-(t4+t5)*diag(Volt); ddQdTdT=t3+t6;%ok1 % tttt=-(t4)*diag(Volt); % ttttt=t2*diag( diag(Volt)*yQ' ); % tttttt=t1*diag( diag(Volt)*yQ' )+tttt; % ttttttt=-t5*diag(Volt)+t2*diag( diag(Volt)*yQ' ); t1=(diag(Y.*cos(AngleIJ)*Volt')-diag(Volt)*Y.*cos(AngleIJ') )*diag(yQ); t2=+diag( diag(Volt)*yQ' )*Y.*cos(AngleIJ)-diag(Y.*cos(AngleIJ')*diag(Volt)*yQ'); % tttt=diag( diag(Volt)*yQ' )*Y.*cos(AngleIJ); % ttttt=-diag(Volt)*Y.*cos(AngleIJ') *diag(yQ); ddQdVdT=t1+t2; t1=Y.*cos(AngleIJ')*diag(diag(Volt)*yQ'); t2=diag(yQ)*diag(Y.*cos(AngleIJ)*Volt'); t3=-diag(Y.*cos(AngleIJ')*diag(Volt)*yQ'); t4=-diag(yQ)*Y.*cos(AngleIJ)*diag(Volt); ddQdTdV=t1+t2+t3+t4; t1=Y.*sin(AngleIJ')*diag(yQ); t2=diag(yQ)*Y.*sin(AngleIJ); ddQdVdV=t1+t2; %%%% %t=zeros(2*Busnum); % t(1:2:2*Busnum,1:2:2*Busnum)=ddPdTdT+ddQdTdT; % %t(1:2:2*Busnum,2:2:2*Busnum)=ddPdTdV+ddQdTdV; % %t(2:2:2*Busnum,1:2:2*Busnum)=ddPdVdT+ddQdVdT; % t(1:2:2*Busnum,2:2:2*Busnum)=ddPdVdT+ddQdVdT; % t(2:2:2*Busnum,1:2:2*Busnum)=ddPdTdV+ddQdTdV; % t(2:2:2*Busnum,2:2:2*Busnum)=ddPdVdV+ddQdVdV;暂时改一下 20111227 % t=[ddPdVdV+ddQdVdV,ddPdVdT+ddQdVdT; % ddPdTdV+ddQdTdV,ddPdTdT+ddQdTdT; % ];再改20111227 t=[ddPdVdV+ddQdVdV,ddPdTdV+ddQdTdV ; ddPdVdT+ddQdVdT,ddPdTdT+ddQdTdT; ]; t=[zeros(size(PGi,1)+size(PVi,1)+Busnum,ContrlCount); zeros(2*Busnum,size(PVi,1)+size(PGi,1)+Busnum),-t; ]; ddh=t; end