20 lines
1.2 KiB
Matlab
20 lines
1.2 KiB
Matlab
function [Jacob]=jacobian_M3(Busnum,Volt,Y,Angle,UAngel,r,c)
|
||
%**************************************************************************
|
||
% 程序功能 : 子函数——形成雅可比矩阵Jacobian
|
||
% 编 者:
|
||
% 编制时间:2010.12
|
||
%**************************************************************************
|
||
%%参照图书馆6楼的书编写
|
||
%% 分别求雅克比矩阵的子阵H,L,N,J及有功无功分量P,Q
|
||
AngleIJ=UAngel(r)-UAngel(c)-Angle';
|
||
mat_AngleIJ=sparse(r,c,AngleIJ,Busnum,Busnum);
|
||
mat_IvAngleIJ=mat_AngleIJ';
|
||
H=sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)*Y.*sin(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)-sparse(1:Busnum,1:Busnum,Y.*sin(mat_AngleIJ)*Volt',Busnum,Busnum)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum);
|
||
N=-sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)*Y.*cos(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)+sparse(1:Busnum,1:Busnum,Y.*cos(mat_AngleIJ)*Volt',Busnum,Busnum)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum);
|
||
J=sparse(1:Busnum,1:Busnum,Y.*cos(mat_AngleIJ)*Volt',Busnum,Busnum)+Y.*cos(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum);
|
||
L=sparse(1:Busnum,1:Busnum,Y.*sin(mat_AngleIJ)*Volt',Busnum,Busnum)+Y.*sin(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum);
|
||
t1=[J,L;
|
||
H,N;
|
||
]';
|
||
Jacob=-t1;
|
||
end |