4.5 Linear Shift Factors

The DC power flow model can also be used to compute the sensitivities of branch flows to changes in nodal real power injections, sometimes called injection shift factors (ISF) or generation shift factors [20]. These n  × n
  l   b  sensitivity matrices, also called power transfer distribution factors or PTDFs, carry an implicit assumption about the slack distribution. If H  is used to denote a PTDF matrix, then the element in row i  and column j  , hij  , represents the change in the real power flow in branch i  given a unit increase in the power injected at bus j  , with the assumption that the additional unit of power is extracted according to some specified slack distribution:

ΔPf  = H ΔPbus.

This slack distribution can be expressed as an nb × 1  vector w  of non-negative weights whose elements sum to 1. Each element specifies the proportion of the slack taken up at each bus. For the special case of a single slack bus k  , w  is equal to the vector e
 k  . The corresponding PTDF matrix H
  k  can be constructed by first creating the nl × (nb − 1)  matrix

^Hk =  ^Bf ⋅ B −dc1

then inserting a column of zeros at column k  . Here ^B
 f  and B
  dc  are obtained from Bf  and Bbus   , respectively, by eliminating their reference bus columns and, in the case of Bdc  , removing row k  corresponding to the slack bus.

The PTDF matrix Hw  , corresponding to a general slack distribution w  , can be obtained from any other PTDF, such as Hk  , by subtracting Hk ⋅ w  from each column, equivalent to the following simple matrix multiplication:

Hw  =  Hk(I − w ⋅ 1T ).

These same linear shift factors may also be used to compute sensitivities of branch flows to branch outages, known as line outage distribution factors or LODFs [21]. Given a PTDF matrix Hw  , the corresponding nl × nl  LODF matrix L  can be constructed as follows, where lij  is the element in row i  and column j  , representing the change in flow in branch i  (as a fraction of the initial flow in branch j  ) for an outage of branch j  .

First, let H  represent the matrix of sensitivities of branch flows to branch endpoint injections, found by multplying the PTDF matrix by the node-branch incidence matrix:

H  = Hw (Cf −  Ct)T.

Here the individual elements hij  represent the sensitivity of flow in branch i  with respect to injections at branch j  endpoints, corresponding to a simulated increase in flow in branch j  . Then lij  can be expressed as

     {    hij
l  =    -------  i ⁄= j
 ij   (  1 − hjj
          − 1    i = j.

Matpower includes functions for computing both the DC PTDF matrix and the corresponding LODF matrix for either a single slack bus k  or a general slack distribution vector w  . See the help for makePTDF and makeLODF and Sections 9.5.5 and 9.5.4, respectively, for details.