function [Jacob]=jacobian_M1(Busnum,Volt,Y,Angle,AngleIJMat) %************************************************************************** % 程序功能 : 子函数——形成雅可比矩阵Jacobian % 编 者: % 编制时间:2010.12 %************************************************************************** %% 分别求雅克比矩阵的子阵H,L,N,J及有功无功分量P,Q %Volt(PVi) = PVu; temp1=Volt'*Volt.*Y; AngleIJ=AngleIJMat-Angle; temp2=sum(temp1.*sin(AngleIJ),2); temp3 = sum(temp1.*cos(AngleIJ),2); temp4=diag(temp2); temp5=diag(temp3); %t1=Volt'*ones(1,Busnum).*Y; t1=ones(Busnum,1)*Volt.*Y; %t1=Volt'*Volt.*Y; t2=sum(t1.*sin(AngleIJ),2); t3=sum(t1.*cos(AngleIJ),2); t4=diag(t2); t5=diag(t3); H = -temp1.*sin(AngleIJ)+temp4;% L = -t1.*sin(AngleIJ);% %L(1:Busnum,1:Busnum)=-temp44+; L=L-t4; N=-t1.*cos(AngleIJ);% %N(1:Busnum,1:Busnum)=-temp55-diag(diag(temp11.*cos(Angle) ) ); N=N-t5; J = temp1.*cos(AngleIJ)-temp5;% %%%% %t=diag(Volt); %N=t*N;%*t; %L=t*L;%*t; %%%% %% %求无功分量Q % 平衡节点的有功功率不平衡分量置零 %% 合成PQ和雅可比矩阵 % t1(1:) % 形成功率不平衡分量列向量 %Jacob = cat(1,cat(2,H,N),cat(2,J,L)); % 形成Jacobian矩阵 t1=zeros(2*Busnum); t1(1:2:2*Busnum,1:2:2*Busnum)=H; t1(1:2:2*Busnum,2:2:2*Busnum)=N; t1(2:2:2*Busnum,1:2:2*Busnum)=J; t1(2:2:2*Busnum,2:2:2*Busnum)=L; Jacob=t1; end % function Jacob=jacobian_M1(Busnum,PVi,PVu,U,Uangle,Y,Angle,r,c) % AngleIJ = Uangle(r) - Uangle(c)- Angle'; % U(PVi) = PVu; % temp1= -sparse(1:Busnum,1:Busnum,U,Busnum,Busnum)*Y*sparse(1:Busnum,1:Busnum,U,Busnum,Busnum); % 计算雅克比矩阵可利用的中间变量 % temp2 = sum(temp1.*sparse(r,c,sin(AngleIJ)),2); % temp3 = sum(temp1.*sparse(r,c,cos(AngleIJ)),2); % temp4=sparse(1:Busnum,1:Busnum,temp2,Busnum,Busnum); % temp5=sparse(1:Busnum,1:Busnum,temp3,Busnum,Busnum); % H = temp1.*sparse(r,c,sin(AngleIJ))-temp4; % L = temp1.*sparse(r,c,sin(AngleIJ))+temp4; % N = temp1.*sparse(r,c,cos(AngleIJ))+temp5; % J = -temp1.*sparse(r,c,cos(AngleIJ))+temp5; % % % t1=zeros(2*Busnum); % t1(1:2:2*Busnum,1:2:2*Busnum)=H; % t1(1:2:2*Busnum,2:2:2*Busnum)=N; % t1(2:2:2*Busnum,1:2:2*Busnum)=J; % t1(2:2:2*Busnum,2:2:2*Busnum)=L; % % t1(1:) % % PQ = cat(2,P,Q); % 形成功率不平衡分量列向量 % %Jacob = cat(1,cat(2,H,N),cat(2,J,L)); % 形成Jacobian矩阵 % Jacob=t1; % % end