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

📄 dabr_dv.m

📁 电力系统计算软件
💻 M
字号:
function [dAf_dVa, dAf_dVm, dAt_dVa, dAt_dVm] = ...                        dAbr_dV(dSf_dVa, dSf_dVm, dSt_dVa, dSt_dVm, Sf, St)%DABR_DV   Partial derivatives of apparent power flows w.r.t voltage.%   [dAf_dVa, dAf_dVm, dAt_dVa, dAt_dVm] = ...%               dAbr_dV(dSf_dVa, dSf_dVm, dSt_dVa, dSt_dVm, Sf, St)%   returns four matrices containing partial derivatives of the branch%   apparent power flows at "from" & "to" ends of each branch w.r.t voltage%   magnitude and voltage angle respectively (for all buses). If dSf_dVm is%   a sparse matrix, the return values will be as well. The following%   explains the expressions used to form the matrices:%%   Let Af refer to the apparent power at the "from" end of each line,%   i.e. Af = abs(Sf), then ...%%   Partial w.r.t real power,%       dAf/dPf = diag(real(Sf) ./ Af)%%   Partial w.r.t reactive power,%       dAf/dQf = diag(imag(Sf) ./ Af)%%   Partial w.r.t Vm & Va%       dAf/dVm = dAf/dPf * dPf/dVm + dAf/dQf * dQf/dVm%       dAf/dVa = dAf/dPf * dPf/dVa + dAf/dQf * dQf/dVa%%   Derivations for "to" bus are similar.%%   MATPOWER%   $Id: dAbr_dV.m,v 1.4 2004/08/23 20:56:10 ray Exp $%   by Ray Zimmerman, PSERC Cornell%   Copyright (c) 1996-2004 by Power System Engineering Research Center (PSERC)%   See http://www.pserc.cornell.edu/matpower/ for more info.%% dimensionsnl = length(Sf);%%----- compute apparent powers -----Af = abs(Sf);At = abs(St);%%----- partials w.r.t. real and reactive power flows -----%% Careful!  Need to make partial equal to 1 for lines w/ zero flow%%           to avoid division by zero errors (1 comes from L'Hopital)%% initialize to all onesnPf = ones(nl, 1);nQf = ones(nl, 1);nPt = ones(nl, 1);nQt = ones(nl, 1);%% use actual partials for non-zero flowsi = find(Af);                       %% find non-zeros of "from" flowsnPf(i) = real(Sf(i)) ./ Af(i);      nQf(i) = imag(Sf(i)) ./ Af(i);i = find(At);                       %% find non-zeros of "to" flowsnPt(i) = real(St(i)) ./ At(i);nQt(i) = imag(St(i)) ./ At(i);%% put into diagonal matricesif issparse(dSf_dVa)        %% sparse version (if dSf_dVa is sparse)    dAf_dPf = spdiags(nPf, 0, nl, nl);    dAf_dQf = spdiags(nQf, 0, nl, nl);    dAt_dPt = spdiags(nPt, 0, nl, nl);    dAt_dQt = spdiags(nQt, 0, nl, nl);else                        %% dense version    dAf_dPf = diag(nPf);    dAf_dQf = diag(nQf);    dAt_dPt = diag(nPt);    dAt_dQt = diag(nQt);end%% partials w.r.t. voltage magnitudes and anglesdAf_dVm = dAf_dPf * real(dSf_dVm) + dAf_dQf * imag(dSf_dVm);dAf_dVa = dAf_dPf * real(dSf_dVa) + dAf_dQf * imag(dSf_dVa);dAt_dVm = dAt_dPt * real(dSt_dVm) + dAt_dQt * imag(dSt_dVm);dAt_dVa = dAt_dPt * real(dSt_dVa) + dAt_dQt * imag(dSt_dVa);return;

⌨️ 快捷键说明

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