Computes partial derivatives of power injection w.r.t. voltage.
Returns two matrices containing partial derivatives of the complex bus
power injections w.r.t voltage magnitude and voltage angle respectively
(for all buses). If Ybus is a sparse matrix, the return
values will be also. The following explains the expressions used to form
the matrices:
S = diag(V) * conj(Ibus) = diag(conj(Ibus)) * V
Partials of V & Ibus w.r.t. voltage magnitudes:
dV/dVm = diag(V / abs(V))
dI/dVm = Ybus * dV/dVm = Ybus * diag(V / abs(V))
Partials of V & Ibus w.r.t. voltage angles:
dV/dVa = j * diag(V)
dI/dVa = Ybus * dV/dVa = Ybus * j * diag(V)
Partials of S w.r.t. voltage magnitudes:
dS/dVm = diag(V) * conj(dI/dVm) + diag(conj(Ibus)) * dV/dVm
= diag(V) * conj(Ybus * diag(V / abs(V)))
+ conj(diag(Ibus)) * diag(V / abs(V))
Partials of S w.r.t. voltage angles:
dS/dVa = diag(V) * conj(dI/dVa) + diag(conj(Ibus)) * dV/dVa
= diag(V) * conj(Ybus * j * diag(V))
+ conj(diag(Ibus)) * j * diag(V)
= -j * diag(V) * conj(Ybus * diag(V))
+ conj(diag(Ibus)) * j * diag(V)
= j * diag(V) * conj(diag(Ibus) - Ybus * diag(V))
For more details on the derivations behind the derivative code used in
PYPOWER information, see:
[TN2] R. D. Zimmerman, "AC Power Flows, Generalized OPF Costs
and their Derivatives using Complex Matrix Notation", MATPOWER
Technical Note 2, February 2010. http://www.pserc.cornell.edu/matpower/TN2-OPF-Derivatives.pdf
- Authors:
-
Ray Zimmerman (PSERC Cornell),
Richard Lincoln
|