pes2014-wronglowervoltagebound/jacobian_M1.m

84 lines
2.7 KiB
Matlab
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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