61 lines
2.3 KiB
Matlab
61 lines
2.3 KiB
Matlab
function Jacob=jacobian_M(Busnum,Volt,Y,Angle,AngleIJMat)
|
||
%**************************************************************************
|
||
% 程序功能 : 子函数——形成雅可比矩阵Jacobian
|
||
% 编 者:
|
||
% 编制时间:2010.12
|
||
%**************************************************************************
|
||
%% 分别求雅克比矩阵的子阵H,L,N,J及有功无功分量P,Q
|
||
temp1=-Volt'*Volt.*Y;
|
||
AngleIJ=AngleIJMat-Angle;
|
||
temp11=Volt'*ones(1,Busnum).*Y;
|
||
temp2=sum(temp1.*sin(AngleIJ),2);
|
||
temp22 = sum(temp11.*sin(AngleIJ),2);
|
||
temp3 = sum(temp1.*cos(AngleIJ),2);
|
||
temp33 = sum(temp11.*cos(AngleIJ),2);
|
||
temp4=diag(temp2);
|
||
temp44=diag(temp22);
|
||
temp5=diag(temp3);
|
||
temp55=diag(temp33);
|
||
%计算Lii的累加项
|
||
t1=ones(Busnum,1)*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 = -temp11.*sin(AngleIJ);%
|
||
%L(1:Busnum,1:Busnum)=-temp44+;
|
||
L=L-t4;
|
||
N=-temp11.*cos(AngleIJ);%
|
||
%N(1:Busnum,1:Busnum)=-temp55-diag(diag(temp11.*cos(Angle) ) );
|
||
N=N-t5;
|
||
J = -temp1.*cos(AngleIJ)+temp5;%
|
||
%%
|
||
|
||
|
||
%Q = Q0+temp2'; %求有功分量P
|
||
%P = P0+temp3'; %求无功分量Q
|
||
%% 处理平衡节点和pv节点
|
||
% H(:,Balance) = 0;
|
||
% H(Balance,:) = 0;
|
||
% H(Balance,Balance) = 100; % 平衡节点对应的对角元素置一个有限数
|
||
% L(:,PVi) = 0;
|
||
% L(PVi,:) = 0;
|
||
% L = L+sparse(PVi,PVi,ones(1,length(PVi)),Busnum,Busnum); % PV节点对应的对角元素置为1
|
||
% J(:,Balance) = 0;
|
||
% J(PVi,:) = 0;
|
||
% N(:,PVi) = 0;
|
||
% N(Balance,:) = 0;
|
||
% Q(PVi) = 0; % 将pv节点的无功不平衡分量置零
|
||
% P(Balance) = 0; % 平衡节点的有功功率不平衡分量置零
|
||
%% 合成PQ和雅可比矩阵
|
||
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 |