40 lines
2.2 KiB
Plaintext
40 lines
2.2 KiB
Plaintext
function [Jacob,PQ,U,Uangle]=jacobian(Busnum,Balance,PVi,PVu,U,Uangle,Y,Angle,P0,Q0,r,c)
|
||
%**************************************************************************
|
||
% 程序功能 : 子函数——形成雅可比矩阵Jacobian
|
||
% 编 者:
|
||
% 编制时间:2010.12
|
||
%**************************************************************************
|
||
%% 分别求雅克比矩阵的子阵H,L,N,J及有功无功分量P,Q
|
||
AngleIJ = Uangle(r) - Uangle(c)- Angle';
|
||
U(PVi) = PVu;
|
||
U(Balance)=;
|
||
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;
|
||
|
||
Q = Q0+temp2'; %求有功分量P
|
||
P = P0+temp3'; %求无功分量Q
|
||
%% 处理平衡节点和pv节点
|
||
H(:,Balance) = 0;
|
||
H(Balance,:) = 0;
|
||
%H(Balance,Balance) = 100; % 平衡节点对应的对角元素置一个有限数
|
||
H=H+sparse(Balance,Balance,ones(1,length(Balance)),Busnum,Busnum);
|
||
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和雅可比矩阵
|
||
PQ = cat(2,P,Q); % 形成功率不平衡分量列向量
|
||
Jacob = cat(1,cat(2,H,N),cat(2,J,L)); % 形成Jacobian矩阵
|
||
end |