Bus Impedance Matrix Applications
Bus Impedance Matrix Applications
1 2 3
A = 4 5 3
3 3 9
The transpose of a matrix is obtained by interchanging its rows with its columns.
a
B=
d
b c
e f
a d
B = b d
c f
T
A matrix of size N x 1 is a column vector, and its transpose is a row vector. We take
vectors to be column vectors by default.
I1
I = I 2
I 3
The sum of two matrices is defined as the sum of the corresponding elements. Note that
both matrices must have the same size if they are to be added. A matrix may be
multiplied by a scalar by multiplying every element of the matrix by that scalar. Matrix
multiplication is defined under certain conditions:
C=AB
if A is p x n, and B is n x q, then C exists and is of dimension p x q:
-2.3.1-
C. W. Brice
c i, j =
August 2002
n
a i, k b k, j
k =1
The bus admittance matrix Ybus is formed easily by inspection. To see this, write node
equations for an example system shown in Figure 2.3.1.
1
-j4
I2
-j5
-j3
I1
-j0.1
3
-j0.5
ADMITTANCES IN PER UNIT
Figure 2.3.1 Sample system for formation of admittance and impedance matrices.
Writing equations enforcing Kirchhoff's current law at each node gives:
I1 = (V1 - V2) (-j4) + (V1 - V3) (-j5)
I2 = (V2 - V1) (-j4) + (V2 - V3) (-j3) + V2 (-j0.1)
-2.3.2-
Fault Calculations
0 = (V3 - V1) (-j5) + (V3 - V2) (-j3) + V3 (-j0.5)
Collect terms:
I1 = -j9.0 V1 + j4.0 V2 + j5.0 V3
I2 = j4.0 V1 - j7.1 V2 - j3.0 V3
0 = j5.0 V1 + j3.0 V2 - j8.5 V3
where Ybus is the matrix of coefficients that is formed by the following rules:
Yii = Sum of all admittances connected to bus i
Yij = Negative of the sum of all admittances directly connecting busses i and j.
Note that busses that are not directly connected by a line or transformer will have a zero
element in the corresponding location of the Ybus matrix. In most power transmission
networks, each bus is connected to about 3 or 4 other busses (at most), and so only about
3 off-diagonal elements will be non-zero and the rest will be zero. In a system of
hundreds or thousands of busses, almost all elements of the matrix will be zero. Such a
matrix is called a sparse matrix, and methods for exploiting sparsity are often used in
programming large matrix methods. These methods conserve computer memory by
storing only the non-zero elements and conserve run time by not multiplying elements
that are zero. The methods of sparsity programming are beyond our present scope, but it
is useful to know that the methods exist, and a general understanding of the ideas is
important.
The bus admittance matrix is also called the nodal admittance matrix or the short-circuit
admittance matrix. If the network were subjected to a test in which all nodes except one
were shorted to ground, and the one exceptional node had a current of 1 per unit injected
into it, the elements of Ybus could be measured as the reciprocals of the bus voltages:
Yij = Ii / Vj where Vk = 0 for k not equal to j.
The bus admittance matrix is easily formed from a list of line and transformer
impedances. It is likewise easy to modify to reflect changes in the network caused by
switching operations. It is not particularly easy to use in calculations of short-circuit
currents, however.
2.3.3 Bus impedance matrix
The bus impedance matrix Zbus is the matrix inverse of the bus admittance matrix.
Zbus = Ybus-1
-2.3.3-
C. W. Brice
August 2002
The bus impedance matrix can be interpreted as the open-circuit impedance matrix, since
each element is equal to the ratio of a bus voltage to a current injection, with all other
current injections equal to zero:
Zij = Vi / Ij with Ik = 0 for k not equal to j.
In words, the bus impedance matrix is a collection of driving-point and transfer
impedances. The diagonal elements are the driving-point impedances and are equal to the
Thevenin impedance at that point in the network.
In comparison to Ybus, the Zbus matrix is much more difficult to compute and to change
to reflect switching changes in the network. Almost every element of Zbus is not zero, so
it is a full matrix (not sparse).
Practice problem: Form the Ybus matrix from the data lists given below. The first list
gives line reactances in per unit on a 100 MVA base, and the second gives shunt
admittances (connected from a bus to neutral) in per unit on the same base.
Line number
Bus
numbers
Impedance
[per unit]
Admittance
[per unit]
1-2
0 + j 0.20
- j 5.0
1-3
0 + j 0.25
- j 4.0
2-3
0 + j 0.40
- j 2.5
3-4
0 + j 0.10
- j 10.0
Bus Number
0 - j 0.80
0 - j 0.80
0 - j 0.00
0 - j 0.60
Solution:
Element
(1,1)
(1,2)
j 5.0
(1,3)
j 4.0
(2,1)
j 5.0
(2,2)
Fault Calculations
(2,3)
j 2.5
(3,1)
j 4.0
(3,2)
j 2.5
(3,3)
(3,4)
j 10.0
(4,3)
j 10.0
(4,4)
Note that the (1,4), (4,1), (2,4) and (4,2) elements are 0.
j4.0
0.0
- j9.8 j5.0
j5.0 - j8.3
j2.5
0.0
Ybus =
j4.0
j2.5 - j16.5 j10.0
j10.0 - j10.6
0.0
0.0
Suppose that the Ybus matrix has been formed, and we find that one of the busses has no
current injections (no generator and no load modeled as a constant current, although load
modeled as a constant impedance may be present). Suppose that the voltage at that bus
does not need to be calculated. We may wish to simplify the network by eliminating that
node from the equations (much the same way a wye-delta network reduction would). Let
the bus be numbered k:
Yij' = Yij - (Yik Ykj) / Ykk for i and j not equal to k.
Then the kth row and column of the matrix may be struck out. This is called the Kron
reduction of the matrix, and may be derived by writing node equations, then solving the
kth one for Vk in terms of the other voltages, and substituting the result in the other
equations. It assumes that Ik = 0.
The same result may be obtained by network reductions such as the wye-delta
transformation.
Shipley's partial inverse is obtained by a similar approach, except that we no longer
assume that any of the current sources are zero, and the kth row and column are not
eliminated. Instead, solve for the kth voltage:
Vk = [Ik - Sj (Ykj Vj)] / Ykk
-2.3.5-
C. W. Brice
August 2002
Now the equations can be written in a hybrid matrix form. For example, a 4x4 matrix
with k = 4 would give:
I1 = Y11' V1 + Y12' V2 + Y13' V3 + K14' I4
I2 = Y21' V1 + Y22' V2 + Y23' V3 + K24' I4
I3 = Y31' V1 + Y32' V2 + Y33' V3 + K34' I4
V4 = K41' V1 + K42' V2 + K43' V3 + Z44' I4
Where
Yij' = Yij - (Yik Ykj) / Ykk
Kik' = Yik / Ykk
Kkj' = - Ykj / Ykk
Zkk' = 1 / Ykk
This process is called pivoting on the kth axis of the matrix. If the resulting
matrix is processed in a similar fashion, pivoting on the next axis, the result is
I1 = Y11" V1 + Y12" V2 + K13" I3 + K14" I4
I2 = Y21" V1 + Y22" V2 + K23" I3 + K24" I4
V3 = K31" V1 + K32" V2 + Z33" I3 + Z34" I4
V4 = K41" V1 + K42" V2 + Z43" I3 + Z44" I4
Where
Y11" = Y11' - (Y13' Y31') / Y33'
Y12" = Y12' - (Y13' Y32') / Y33'
Y21" = Y21' - (Y23' Y31') / Y33'
Y22" = Y22' - (Y23' Y32') / Y33'
Z44" = Z44' - (K43' K34') / Y33'
K13" = Y13' / Y33'
K31" = - Y31' / Y33'
K23" = Y23' / Y33'
K32" = - Y32' / Y33'
Z43" = K43' / Y33'
Z34" = - K34' / Y33'
Note that since we are performing the same operations as those of the Kron reduction, the
Y elements at any step are the elements of the bus admittance matrix for the reduced
-2.3.6-
Fault Calculations
network. The K elements are equivalent current and voltage distribution factors. The
current distribution factors show how current sources at busses that are eliminated must
be distributed to the remaining busses.
The partially inverted matrix is also a legitimate matrix that may be useful in some
calculations, particularly if some bus voltages are known and some bus currents are
known. The idea is to form the bus admittance matrix then partially invert it to move all
the known quantities over to the right-hand side of the matrix. Then a simple matrix
multiplication gives the solution for the unknown quantities.
After performing a similar pivoting operation on the second axis and then on the first, the
result is:
V1 = Z11 I1 + Z12 I2 + Z13 I3 + Z14 I4
V2 = Z21 I1 + Z22 I2 + Z23 I3 + Z24 I4
V3 = Z31 I1 + Z32 I2 + Z33 I3 + Z34 I4
V4 = Z41 I1 + Z42 I2 + Z43 I3 + Z44 I4
The matrix of coefficients is the Zbus matrix, so this algorithm can be used to invert a
matrix.
A FORTRAN program for the partial inversion of a matrix follows. This subroutine may
be called N times, pivoting on each diagonal element one at a time, to invert the matrix.
Note that the original matrix is replaced by the partial inverse at each step, so the original
matrix is destroyed by the subroutine.
C
C
C
SUBROUTINE PINV(A, N, K)
Computes the partial inverse of an N x N array A.
Pivots on element (K,K). A is an N x N complex matrix.
The original A array is replaced by its partial inverse.
COMPLEX A(10,10)
A(K,K) = 1 / A(K,K)
DO I = 1,N
IF (I .NE. K) THEN
A(I,K) = A(I,K)*A(K,K)
END IF
END DO
DO J = 1,N
IF (J .NE. K) THEN
DO I = 1,N
IF(I.NE.K) THEN
A(I,J) = A(I,J)-A(I,K)*A(K,J)
-2.3.7-
C. W. Brice
August 2002
END IF
END DO
A(K,J) = -A(K,J)*A(K,K)
END IF
END DO
RETURN
END
Practice Problem:
inverting Ybus.
For the 4-bus problem just given, calculate the Zbus matrix by
Solution: Using the program just given, the results of each step are:
k = 4:
j4.000
0.000
- j9.800 j5.000
j5.000 - j8.300 j2.500
0.000
j4.000
j2.500 - j7.066 - 0.9434
0.000
0.9434
0.0943
0.000
k = 3:
0.5661
0.3538
j01415
.
j01335
.
0.3338
j01335
.
j0.2203
0.5340
k = 2:
0.8722
j0.0477 j01584
.
j01494
.
j0.0450 j01494
.
j0.2353
0.8228
k = 1:
j0.5036
j0.4357
j0.4392
j0.4143
j0.4357
j0.4392
j0.5117
j0.4277
j0.4277
j0.5415
j0.4035
j0.5108
j0.4143
j0.4035
j0.5108
j0.5762
If there are shunt impedances, such as load impedances or generator internal impedances,
the reference bus will be the system neutral. If there are no shunt impedances, the
reference bus is one of the system busses. All bus voltages are determined with respect to
the reference bus. The reference bus will be bus number 0.
-2.3.8-
Fault Calculations
The method adds the impedances to the system one at a time, starting with any impedance
that connects a bus to the reference. The impedances may represent lines, loads modeled
as constant impedances, transformers, or generator impedances. Despite this, we call
them all "lines" just to have a short description. Let the first line connect bus k to the
reference.
Vk = Zline0-k Ik
Add bus k to the list of busses already included in the system (this list helps us keep track,
so we know if a bus is already in the system or not). Next find a line that connects to a
bus that is already included (so far this is only bus k and the reference). There are several
cases:
a) a radial line from a new bus to the reference bus
b) a radial line from a new bus to an existing bus
c) a line from an existing bus to the reference bus (this creates a loop in the
network)
d) a line from one existing bus to another existing bus (this also creates a loop).
Case a) a radial line form a new bus to the reference bus:
This creates a new axis on the matrix, which means that a new row and column are
formed, corresponding to the new bus k.
0 I1
V1
M
Zbus
M M
Vj = existing
0 I j
M M
M
Vk 0
L
0 L Z line
0- k I k
-2.3.9-
C. W. Brice
August 2002
Zkq = Zkp
Zqq = Zpp + Zlinep-q
Note that the first two cases, addition of radial lines, did not alter the existing part of
Zbus, but in the third and fourth cases, addition of loop-closing lines, the whole matrix
will change.
Case c) addition of a line from an existing bus p to the reference bus:
Think of first adding a fictitious bus q (as in case b) but then shorting it to the reference
(Vq = 0) and using Kron reduction to eliminate the fictitious bus q.
Zij' = Zij - Zip Zpj / (Zpp + Zline)
existing
Z
Vj =
j- L I j
M M
M
0 Z L-1
L
Z L- j L Z L- L I line
ZL-i = Zpi - Zqi
Zi-L = Zip - Ziq
ZL-L = Zpp + Zqq - Zpq - Zqp + Zline
This process of adding one line at a time is continued until all the lines have been added.
As we mentioned earlier, the word "line" here is used to mean any impedance whether it
represents a line or a transformer or a generator internal impedance.
Practice Problem: Use the bus impedance matrix formation algorithm given above for
this problem:
-2.3.10-
Fault Calculations
Bus list
X [per unit]
0-1
0.010
0-2
0.015
1-2
0.084
2-3
0.122
0-3
0.005
Solution:
Add 0 - 1
Zline = 0.010
Add 0 - 2
Zline = 0.015
Zbus = j 0.01
1
2
Zbus = j 0. 010 0. 000 1
0. 000 0 . 015 2
Add 1 - 2
Zline = 0.084
1
2
L
0. 010 0. 000 0. 010 1
Zbus = j
0. 000 0. 015 -0. 015 2
0. 010 -0. 015 0.109 L
Eliminate the loop axis
1
2
Zbus = j 0. 00908 0. 00138 1
0. 00138 0 . 01294 2
Add 2 - 3
Zline = 0.122
1
2
3
0. 00908 0. 00138 0. 00138 1
Zbus = j
0. 00138 0. 01294 0. 01294 2
0. 00138 0. 01294 0.13494 3
Add 0 - 3
Zline = 0.005
-2.3.11-
C. W. Brice
1
0. 00908
Zbus = j 0. 00138
0. 00138
0. 00138
2
0. 00138
0. 01294
0. 01294
0. 01294
August 2002
3
0 . 00138
0. 01294
0.13494
0.13494
L
0. 00138 1
0. 01294 2
0 .13494 3
0 .13994 L
Each diagonal element of the bus impedance matrix is the Thevenin impedance at the
corresponding bus. If we desire to find the effects of a change in the network, such as the
voltage rise produced by a shunt capacitor bank, we can use the Zbus matrix. For
example, the system of the last practice problem has voltage at bus 2 of 0.90 per unit.
Calculate the current drawn by a capacitor having a reactance of 1.5 per unit, and
calculate the voltage at bus 2.
Ic = 0.90 / (j 0.01174 - j 1.50) = j 0.605 per unit
V3 = 0.90 - j 0.605 x j 0.01174 = 0.907 per unit
The changes in the voltage at bus 1 can be computed by multiplying the capacitor current
by the Z12. In this example, the change in voltage is quite small, so this capacitor will
not produce a large change in voltage.
-2.3.12-