⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form_jac.m

📁 潮流计算
💻 M
字号:
function [Jac11,Jac12,Jac21,Jac22]=form_jac(V,ang,Y,ang_red,volt_red)
% Syntax:  [Jac] = form_jac(V,ang,Y,ang_red,volt_red)
%          [Jac11,Jac12,Jac21,Jac22] = form_jac(V,ang,Y,...
%                                      ang_red,volt_red)
%
% Purpose: form the Jacobian matrix using sparse matrix techniques
%          用稀疏矩阵技术形成雅可比矩阵
% Input:   V        - magnitude of bus voltage电压赋值
%          ang      - angle(rad) of bus voltage电压相角(弧度)
%          Y        - admittance matrix导纳矩阵
%          ang_red  - matrix to eliminate swing bus  voltage magnitude and angle 
%                     entries消除了平衡节点的矩阵
%          volt_red - matrix to eliminate generator bus voltage magnitude
%                     entries消除了发电机节点赋值的矩阵
% Output:  Jac      - jacobian matrix雅可比矩阵
%          Jac11,Jac12,Jac21,Jac22 - submatrices of 
%                                      jacobian matrix子矩阵  
% See also:   
%
% Calls:
%
% Called By:   vsdemo loadflow

% (c) Copyright 1991-1996 Joe H. Chow - All Rights Reserved
%
% History (in reverse chronological order)
% Version:   2.0
% Author:    Graham Rogers
% Date:      March 1994
% Purpose:   eliminated do loops to improve speed
% Version:   1.0
% Author:    Kwok W. Cheung, Joe H. Chow
% Date:      March 1991
%
% ***********************************************************
jay = sqrt(-1);
exp_ang = exp(jay*ang);%相角用指数的形式表示
% Voltage rectangular coordinates直角坐标表示的电压
V_rect = V.*exp_ang;%电压矢量
CV_rect=conj(V_rect);%电压的共轭
Y_con = conj(Y);%导纳的共轭
%vector of conjugate currents电流的共轭
i_c=Y_con*CV_rect;%电流的共轭=导纳的共轭×电压的共轭
% complex power vector复功率矢量
S=V_rect.*i_c;%复功率=电压×电流的共轭
S=sparse(diag(S));%形成一个对角阵,对角线上的元素是各点复功率
Vdia=sparse(diag(V_rect));%电压向量的对角阵
CVdia=conj(Vdia);%电压对角阵的共轭
Vmag=sparse(diag(abs(V)));%电压幅值的对角阵
S1=Vdia*Y_con*CVdia;%电压矢量的对角阵×导纳的共轭×电压矢量的共轭对角阵=
t1=((S+S1)/Vmag)*volt_red';%((复功率+S1)/电压幅值对角阵)×(稀疏矩阵,在PQ节点的位置是1,其他是0)的转置
t2=(S-S1)*ang_red';%((S-S1))×(稀疏矩阵,在非平衡节点的位置是1,其他是0)的转置
J11=-ang_red*imag(t2);%-ang_red×t2的虚部
J12=ang_red*real(t1);%ang_red×t1的实部
J21=volt_red*real(t2);%volt_red×t2的实部
J22=volt_red*imag(t1);%volt_red×t1的虚部
if nargout > 3%如果输出>3
   Jac11 = J11; clear J11
   Jac12 = J12; clear J12
   Jac21 = J21; clear J21
   Jac22 = J22; clear J22
else
   Jac11 = [J11 J12;
	       J21 J22];
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -