Part 4 · Chapter 16

The Bus Admittance Matrix

Every network study from here to the end of the book begins by turning a drawing into the single matrix equation \(\mathbf{I} = \mathbf{Y}_{bus}\mathbf{V}\) — and the remarkable thing about that matrix is that it can be written down by inspection, entry by entry, without solving anything.

Electric Power Systems Prof. Mithun Mondal Reading time ≈ 50 min
i What you'll learn
  • Why nodal analysis and not loop analysis is the natural language of a power network, and what a "bus" is in circuit terms.
  • How a generator behind a reactance becomes a Norton current injection plus a diagonal admittance, so that the whole system reads \(\mathbf{I}=\mathbf{Y}\mathbf{V}\).
  • The two rules — \(Y_{ii}\) sums every admittance at bus \(i\), \(Y_{ij}\) negates the admittance between \(i\) and \(j\) — and the short-circuit definitions that justify them.
  • How half-line charging from the nominal-\(\pi\) model of Chapter 11 and the \(\pi\) equivalent of an off-nominal tap transformer enter the matrix.
  • Why \(\mathbf{Y}_{bus}\) is symmetric, sparse and diagonally dominant, when it is singular, and what a phase shifter does to the symmetry.
  • The general formulation \(\mathbf{Y}_{bus}=\mathbf{A}^{T}\mathbf{y}\,\mathbf{A}\) and why it is needed when circuits are mutually coupled.
  • Kron reduction: eliminating buses at which no current is injected, and what it costs in fill-in.
Section 16-1

From a Drawing to a Set of Equations

Part 1 built a picture and Parts 2 and 3 filled in its numbers. Chapter 3 collapsed three conductors into one line on a single-line diagram. Chapter 4 put every generator, transformer, line and load onto one MVA base so that impedances drawn on opposite sides of a transformer could be connected without a turns-ratio in the way, and the result was the impedance diagram — a genuine circuit whose elements happen to be per-unit complex numbers. Chapters 10 to 14 supplied the model of each line in that circuit.

What has not yet been said is how to solve it. For a three-bus example one can write mesh equations and grind through them. For the four-hundred-bus network of a regional grid that approach collapses, for three reasons that are worth separating.

The first is bookkeeping. A network with \(b\) branches and \(n+1\) nodes has \(b-n\) independent loops, and there is no canonical way to choose them — every choice gives a different, equally valid mesh matrix, and none of them can be written down from the input data without first constructing a tree. Nodes, by contrast, are handed to you: the data for a power system arrives as a list of branches, each identified by the pair of buses it joins.

The second is the form of the problem. Chapter 18 will pose the load flow problem, and it specifies real and reactive power at buses. Generation is scheduled at a bus, load is measured at a bus, a voltage is regulated at a bus. Nothing in power system operation is specified around a loop.

The third is size. In a real network each bus is connected to two, three or four others, never to four hundred. A nodal matrix of order \(n\) therefore has of the order of \(3n\) non-zero entries out of \(n^2\) — for \(n=400\) that is about \(1200\) numbers instead of \(160{,}000\). Exploiting that emptiness is what makes large-system computation possible at all, and it is a property of the nodal formulation specifically.

🔑
The object of this chapter
\[ \mathbf{I}_{bus} = \mathbf{Y}_{bus}\,\mathbf{V}_{bus} \]

\(\mathbf{V}_{bus}\) is the column of \(n\) bus voltages measured with respect to the reference node, \(\mathbf{I}_{bus}\) the column of currents injected into those buses from outside the transmission network, and \(\mathbf{Y}_{bus}\) an \(n \times n\) complex symmetric matrix that depends only on the network and not at all on its loading.

The matrix is the network. \(\mathbf{Y}_{bus}\) contains every line, transformer, reactor and capacitor, and nothing else. Change the load and \(\mathbf{I}_{bus}\) changes while \(\mathbf{Y}_{bus}\) does not. Open a breaker and two diagonal entries and one off-diagonal pair change while everything else stays put. That separation between topology and operating point is what allows a load flow to be re-run a thousand times a day on a matrix that is built once.
Section 16-2

Buses, Injections and the Reference Node

A bus is the meeting point of components in a power system: the rigid conductor, of copper or aluminium, to which a generator, a transformer winding, several outgoing lines and a load are all bolted. Its resistance and its own reactance are negligible compared with everything connected to it, so it has no voltage drop along its length and every element attached to it sees exactly the same voltage. In circuit terms, a bus is a node.

The reference node is the neutral, tied to ground. A system with \(n\) buses therefore has \(n+1\) nodes and \(n\) independent nodal equations, the reference contributing the equation that is the sum of the others and hence carries no new information. Bus voltages are always phase-to-neutral quantities, in per unit on the base of Chapter 4.

The injected current \(I_i\) at bus \(i\) is the net current flowing into the bus from everything that is not part of the transmission network — positive when it flows into the bus. A generator injects; a load draws, so its injection is negative; a bus with neither has \(I_i = 0\).

Generators, however, are not naturally current sources. Chapter 26 will model a synchronous machine as an internal voltage \(E\) behind a reactance \(x_s\), which is a Thévenin source. Norton's theorem converts it:

Source conversion, the step that makes \(\mathbf{I}=\mathbf{Y}\mathbf{V}\) possible
\[ E \text{ behind } z_s \;\;\longrightarrow\;\; I_s = \frac{E}{z_s}\;\text{ in parallel with }\; y_s = \frac{1}{z_s} \]

The current source \(I_s\) joins the injection vector; the parallel admittance \(y_s\) is a shunt from the bus to the reference and joins the diagonal of \(\mathbf{Y}_{bus}\). Every voltage source in the diagram is dealt with this way, and once they all have been, the network contains nothing but admittances and current sources — which is precisely the network for which nodal analysis was invented.

Loads receive the same treatment when they are modelled at constant impedance: a load drawing \(S_L\) at voltage \(V\) is represented by \(y_L = S_L^{*}/|V|^2\), a shunt admittance added to the diagonal. This is exactly what stability studies do in Chapter 28. It is worth noticing where the treatment fails, because that failure is the origin of the next five chapters: a load specified at constant power cannot be written as an admittance at all, since its equivalent admittance depends on the very voltage that is being solved for. The load flow problem of Chapter 18 is nonlinear for that reason alone.

Section 16-3

Nodal Analysis, Bus by Bus

Take a four-bus network of the kind drawn below. Call the series admittance of the line joining buses \(i\) and \(j\) by \(y_{ij}\), and let \(y_{i0}\) be any admittance from bus \(i\) directly to the reference — a shunt reactor, a capacitor bank, a constant-impedance load or a source admittance from a Norton conversion.

Bus 1 Bus 2 Bus 3 Bus 4 y₁₂ y₃₄ y₁₃ y₂₄ y₂₃ y₁₀ y₂₀ y₃₀ y₄₀ I₁ I₂ buses 3 and 4 have no injection: I₃ = I₄ = 0
A four-bus network; every branch admittance and every shunt has one place to go in the matrix

Apply Kirchhoff's current law at bus 1. The injected current must equal the sum of the currents leaving through the shunt and through each line, and the current in a line is its admittance times the voltage difference across it:

KCL at bus 1
\[ I_1 = y_{10}V_1 + y_{12}\big(V_1 - V_2\big) + y_{13}\big(V_1 - V_3\big) \]
\[ \;\;\;= \big(y_{10}+y_{12}+y_{13}\big)V_1 \;-\; y_{12}V_2 \;-\; y_{13}V_3 \;+\; 0\cdot V_4 \]

The whole content of the chapter is visible in the second line. Collecting terms in the bus voltages has produced a coefficient on \(V_1\) that is the sum of every admittance touching bus 1, coefficients on \(V_2\) and \(V_3\) that are the negatives of the admittances joining them to bus 1, and a zero on \(V_4\) because no branch runs from bus 1 to bus 4. Repeat at the other three buses:

KCL at buses 2, 3 and 4
\[ I_2 = -y_{12}V_1 + \big(y_{20}+y_{12}+y_{23}+y_{24}\big)V_2 - y_{23}V_3 - y_{24}V_4 \]
\[ 0 = -y_{13}V_1 - y_{23}V_2 + \big(y_{30}+y_{13}+y_{23}+y_{34}\big)V_3 - y_{34}V_4 \]
\[ 0 = \phantom{-y_{13}V_1\;} - y_{24}V_2 - y_{34}V_3 + \big(y_{40}+y_{24}+y_{34}\big)V_4 \]

Stacked into matrix form these four scalar equations are exactly \(\mathbf{I}=\mathbf{Y}_{bus}\mathbf{V}\):

The four-bus admittance matrix
\[ \begin{bmatrix} I_1\\ I_2\\ 0\\ 0 \end{bmatrix} = \begin{bmatrix} y_{10}{+}y_{12}{+}y_{13} & -y_{12} & -y_{13} & 0\\[2pt] -y_{12} & y_{20}{+}y_{12}{+}y_{23}{+}y_{24} & -y_{23} & -y_{24}\\[2pt] -y_{13} & -y_{23} & y_{30}{+}y_{13}{+}y_{23}{+}y_{34} & -y_{34}\\[2pt] 0 & -y_{24} & -y_{34} & y_{40}{+}y_{24}{+}y_{34} \end{bmatrix} \begin{bmatrix} V_1\\ V_2\\ V_3\\ V_4 \end{bmatrix} \]

Nothing about this construction depended on there being four buses, or on the particular pattern of connections. It generalises immediately, and once generalised it never needs to be re-derived.

Section 16-4

The Two Construction Rules

🔑
Building \(\mathbf{Y}_{bus}\) by inspection
\[ Y_{ii} = y_{i0} + \sum_{k \neq i} y_{ik}, \qquad\qquad Y_{ij} = Y_{ji} = -\,y_{ij} \;\;(i \neq j) \]

The diagonal entry at bus \(i\) is the sum of every admittance connected to bus \(i\), shunts included. The off-diagonal entry is the negative of the admittance joining buses \(i\) and \(j\), and zero if no branch joins them.

These two lines are the working tool, and they are why nobody ever inverts anything to obtain \(\mathbf{Y}_{bus}\). One pass over the branch list suffices: for each branch \((i,j)\) with admittance \(y\), add \(y\) to \(Y_{ii}\), add \(y\) to \(Y_{jj}\), subtract \(y\) from \(Y_{ij}\) and from \(Y_{ji}\). For each shunt, add it to the diagonal. The cost is proportional to the number of branches, not to the square of the number of buses.

The entries also have an independent meaning, which is worth having because it is the meaning that survives into Chapter 17. Read the matrix equation one row at a time, \(I_i = \sum_k Y_{ik}V_k\), and set every bus voltage to zero except one.

Short-circuit definitions of the entries
\[ Y_{ii} = \left.\frac{I_i}{V_i}\right|_{V_k = 0,\; k\neq i}, \qquad\qquad Y_{ij} = \left.\frac{I_i}{V_j}\right|_{V_k = 0,\; k\neq j} \]

\(Y_{ii}\) is the self or driving-point admittance at bus \(i\): the current that must be injected at \(i\) to hold it at unit voltage while every other bus is short-circuited to the reference. Since all the other ends of the branches at bus \(i\) are then grounded, those branches all appear in parallel between bus \(i\) and ground — which is precisely the sum in the rule above.

\(Y_{ij}\) is the mutual or transfer admittance: the current injected at bus \(i\) when bus \(j\) alone is raised to unit voltage. With bus \(i\) held at zero, a current \(y_{ij}V_j\) arrives at bus \(i\) through the branch, and to keep bus \(i\) at zero volts an equal current must be drawn out — that is, the injection at \(i\) is \(-y_{ij}V_j\). The minus sign in the rule is not a convention; it is the direction of that current.

Two practical remarks follow. When the whole network is drawn as a reactance diagram, as Chapter 4 does for fault studies, every element is an inductive susceptance and every \(y\) is negative imaginary. The diagonal entries are then negative imaginary and the off-diagonal entries positive imaginary — a sign pattern that provides a fast check on any hand calculation. And \(Y_{ij}\) is emphatically not the reciprocal of anything in the corresponding impedance matrix: \(Z_{ij} \neq 1/Y_{ij}\), a point Chapter 17 will make much of.

bus i Iᵢ yᵢⱼyᵢₖyᵢₗ VⱼVₖVₗ yᵢ₀ Iᵢ = yᵢ₀Vᵢ + yᵢⱼ(Vᵢ−Vⱼ) + yᵢₖ(Vᵢ−Vₖ) + yᵢₗ(Vᵢ−Vₗ)
One KCL statement per bus; collecting terms in V puts every admittance in exactly one place
Section 16-5

Shunts, Line Charging and Off-Nominal Taps

Chapter 11 represented a medium line by the nominal-\(\pi\) circuit: the whole series impedance in the middle and half the total shunt admittance at each end. Chapter 12 showed that the equivalent-\(\pi\) of an exact long line has the same shape with modified values. Either way, every line arrives at the matrix as three admittances, and each has exactly one home.

🔑
A \(\pi\)-modelled line between buses \(i\) and \(j\)
\[ Y_{ii} \mathrel{+}= y_{ij} + \frac{Y_{ch,ij}}{2}, \qquad Y_{jj} \mathrel{+}= y_{ij} + \frac{Y_{ch,ij}}{2}, \qquad Y_{ij} \mathrel{-}= y_{ij} \]

The half-charging admittance is purely capacitive, \(Y_{ch}/2 = jB/2\), and it appears only on the diagonal — it connects the bus to the reference, not to another bus. A shunt reactor installed to control the Ferranti rise of Chapter 14, or a capacitor bank installed for voltage support as in Chapter 34, enters the diagonal in exactly the same way.

The transformer is the interesting case. Chapter 4 showed that a transformer at its nominal turns ratio disappears in per unit, leaving only its leakage impedance — which is then just another branch. But transformers have tap changers, and a tap set away from nominal leaves a residual ratio \(a\) that per-unit scaling has not removed. The device is then a leakage admittance \(y\) in series with an ideal transformer of per-unit ratio \(a:1\), and it must be modelled honestly.

Place the ideal transformer on the bus-\(i\) side, with the leakage admittance between the fictitious node \(t\) and bus \(j\). By the definition of an ideal transformer, \(V_t = V_i/a\), and since it neither stores nor dissipates energy, \(V_i I_i^{*} = V_t I_t^{*}\), which for real \(a\) gives \(I_t = a I_i\). The current through the leakage branch is \(I_t = y(V_t - V_j)\), so

Deriving the tap-changer entries
\[ I_i = \frac{I_t}{a} = \frac{y}{a}\left(\frac{V_i}{a} - V_j\right) = \frac{y}{a^{2}}V_i - \frac{y}{a}V_j \]
\[ I_j = y\big(V_j - V_t\big) = -\frac{y}{a}V_i + y\,V_j \]
🔑
Off-nominal tap transformer, tap \(a\) on the bus-\(i\) side
\[ Y_{ii} \mathrel{+}= \frac{y}{a^{2}}, \qquad Y_{jj} \mathrel{+}= y, \qquad Y_{ij} = Y_{ji} \mathrel{-}= \frac{y}{a} \]

Equivalently, a \(\pi\) network with series admittance \(y/a\), a shunt \(\dfrac{1-a}{a^{2}}\,y\) at the tap-side bus and a shunt \(\dfrac{a-1}{a}\,y\) at the other. The two shunts are of opposite sign: a tap above nominal looks like a capacitor at the tap bus and a reactor at the far bus, which is exactly the reactive redistribution that raising a tap actually performs.

bus i bus j a : 1 (ideal) t y V_t = V_i / a, I_t = a I_i is equivalent to y / a (1−a) y / a² (a−1) y / a the two shunts always carry opposite signs, and both vanish at a = 1
An off-nominal tap becomes a π network — series y/a with equal-and-opposite-signed shunts

Setting \(a=1\) collapses the \(\pi\) back to the plain branch \(y\), which is the check every such derivation should be given. A phase-shifting transformer has a complex ratio \(a = |a|e^{j\alpha}\), and the same derivation then gives \(Y_{ij} = -y/a^{*}\) while \(Y_{ji} = -y/a\). Those are not equal, so a phase shifter destroys the symmetry of \(\mathbf{Y}_{bus}\) — and with it any hope of a \(\pi\) equivalent, since no passive \(\pi\) can be asymmetric.

Section 16-6

Symmetry, Sparsity, Dominance and Singularity

Four structural properties follow directly from the construction rules, and each one is exploited somewhere later in the book.

Symmetry. \(Y_{ij} = -y_{ij} = -y_{ji} = Y_{ji}\), because a line or a transformer conducts equally in both directions. Only \(n(n+1)/2\) of the \(n^2\) entries need be stored, and the linear solvers of Chapters 19 and 20 can exploit the symmetry to halve their work. The exception, as just noted, is the phase-shifting transformer.

Sparsity. \(Y_{ij}\) is non-zero only when a branch joins buses \(i\) and \(j\). A network with \(n\) buses and \(b\) branches has exactly \(2b\) non-zero off-diagonal entries and at most \(n\) non-zero diagonal entries. Real transmission systems have \(b \approx 1.5n\), so the density is about \(4/n\): under \(2\%\) for a two-hundred-bus system, and falling as the system grows.

Diagonal dominance. From the rules, \(|Y_{ii}| = \big|y_{i0}+\sum_k y_{ik}\big|\) while \(\sum_{j\neq i}|Y_{ij}| = \sum_k |y_{ik}|\). Whenever the branch admittances have similar angles — which they do, since transmission lines are all predominantly inductive — the diagonal entry is at least as large as the sum of the off-diagonals in its row, with strict inequality at every bus carrying a shunt. This is exactly the condition under which the Gauss-Seidel iteration of Chapter 19 is guaranteed to converge, and it is the structural reason that method works on power networks at all when it fails on arbitrary matrices.

Singularity. Suppose no bus has any connection to the reference — no line charging, no shunt, no source admittance. Then every row of \(\mathbf{Y}_{bus}\) sums to zero, because the diagonal is the sum of the branch admittances at that bus and the off-diagonals are their negatives. A matrix whose rows all sum to zero annihilates the vector of all ones, so it is singular and cannot be inverted.

🔑
When \(\mathbf{Y}_{bus}\) is singular
If the network contains no path to the reference node, \(\mathbf{Y}_{bus}\) is singular and \(\mathbf{Z}_{bus}=\mathbf{Y}_{bus}^{-1}\) does not exist.

The physical statement is that with no ground connection, all bus voltages could be raised by any common constant without changing a single branch current — the solution is only determined up to that constant. Line charging capacitance, a shunt reactor, a grounded generator neutral or a constant-impedance load all break the degeneracy. In practice \(\mathbf{Y}_{bus}\) built from real line data is never singular, but a reactance diagram drawn for a quick hand calculation often is, and inverting it is then a meaningless operation.

Section 16-7

The Singular Transformation \(\mathbf{A}^{T}\mathbf{y}\mathbf{A}\)

Construction by inspection is fast and it is what one does by hand. It has one blind spot: it assumes the branches are electrically independent of each other. They are not always. Two circuits strung on the same tower are mutually coupled, and in the zero-sequence networks of Chapter 23 that coupling is far too large to ignore. A formulation that handles it must treat the branch set as a whole.

Regard the \(b\) branches, detached from one another, as the primitive network. Each branch \(p\) has a voltage \(v_p\) across it and a current \(i_p\) through it, and the set is related by the primitive admittance matrix \(\mathbf{y}\), of order \(b \times b\), diagonal if there is no mutual coupling and with off-diagonal entries where there is.

Connect the branches by defining the bus incidence matrix \(\mathbf{A}\), of order \(b \times n\): the entry \(A_{pi}\) is \(+1\) if branch \(p\) leaves bus \(i\), \(-1\) if it enters bus \(i\), and \(0\) if branch \(p\) does not touch bus \(i\). The reference node gets no column. Then three statements complete the derivation.

The three statements
\[ \text{(i) KVL:}\quad \mathbf{v} = \mathbf{A}\,\mathbf{V}_{bus}, \qquad \text{(ii) element law:}\quad \mathbf{i} = \mathbf{y}\,\mathbf{v}, \qquad \text{(iii) KCL:}\quad \mathbf{I}_{bus} = \mathbf{A}^{T}\mathbf{i} \]

Statement (i) says a branch voltage is the difference of the two bus voltages it spans, which is what the \(+1\) and \(-1\) in a row of \(\mathbf{A}\) pick out. Statement (iii) says the current injected at a bus is the sum of the branch currents leaving it, which is what the \(+1\) and \(-1\) in a column of \(\mathbf{A}\) pick out — the transpose is doing genuine work, not cosmetic rearrangement. Substituting (i) into (ii) into (iii):

🔑
Singular transformation
\[ \mathbf{I}_{bus} = \mathbf{A}^{T}\mathbf{y}\,\mathbf{A}\,\mathbf{V}_{bus} \qquad\Longrightarrow\qquad \boxed{\;\mathbf{Y}_{bus} = \mathbf{A}^{T}\,\mathbf{y}\,\mathbf{A}\;} \]

The transformation is called singular because \(\mathbf{A}\) is rectangular — it maps \(n\) bus voltages onto \(b \ge n\) branch voltages and cannot be inverted. Nothing is lost by that: the map runs in the direction the physics does.

The construction carries its own consistency check. Complex power delivered to the network computed at the buses must equal the power computed branch by branch:

Power invariance
\[ \mathbf{V}_{bus}^{*T}\mathbf{I}_{bus} = \mathbf{V}_{bus}^{*T}\mathbf{A}^{T}\mathbf{y}\,\mathbf{A}\,\mathbf{V}_{bus} = \big(\mathbf{A}\mathbf{V}_{bus}\big)^{*T}\mathbf{y}\big(\mathbf{A}\mathbf{V}_{bus}\big) = \mathbf{v}^{*T}\mathbf{i} \]

When \(\mathbf{y}\) is diagonal the product \(\mathbf{A}^{T}\mathbf{y}\mathbf{A}\) reproduces the two inspection rules exactly, entry for entry — Example 5 verifies it on a small network. The formulation earns its keep when \(\mathbf{y}\) is not diagonal, and it is also the natural starting point for a computer program, which is handed a branch list and would rather build \(\mathbf{A}\) than reason about which entries to increment.

Section 16-8

Kron Reduction and Node Elimination

Many buses in a large model exist only as junctions. No generator feeds them, no load draws from them; they are the point where three lines meet, or the far side of a transformer whose only purpose is to change voltage. At such a bus the injected current is exactly zero, and a bus with zero injection carries no information that the rest of the network does not already contain. It can be eliminated, shrinking the matrix.

Order the buses so that the ones to be kept, with injections \(\mathbf{I}_A\), come first, and the ones to be eliminated, with \(\mathbf{I}_x = \mathbf{0}\), come last. Partition accordingly:

Partitioned form
\[ \begin{bmatrix} \mathbf{I}_A \\ \mathbf{0} \end{bmatrix} = \begin{bmatrix} \mathbf{K} & \mathbf{L} \\ \mathbf{L}^{T} & \mathbf{M} \end{bmatrix} \begin{bmatrix} \mathbf{V}_A \\ \mathbf{V}_x \end{bmatrix} \]

The lower block reads \(\mathbf{0} = \mathbf{L}^{T}\mathbf{V}_A + \mathbf{M}\mathbf{V}_x\), which determines the eliminated voltages in terms of the retained ones, \(\mathbf{V}_x = -\mathbf{M}^{-1}\mathbf{L}^{T}\mathbf{V}_A\). Substituting into the upper block removes \(\mathbf{V}_x\) entirely:

🔑
Node elimination by matrix partitioning
\[ \mathbf{I}_A = \Big(\mathbf{K} - \mathbf{L}\,\mathbf{M}^{-1}\mathbf{L}^{T}\Big)\mathbf{V}_A \;\;\Longrightarrow\;\; \mathbf{Y}_{bus}^{\,\text{red}} = \mathbf{K} - \mathbf{L}\,\mathbf{M}^{-1}\mathbf{L}^{T} \]

The reduced matrix is still symmetric, and it reproduces the exact relation between the retained bus voltages and their injections. The eliminated voltages are not lost — they are recovered afterwards from \(\mathbf{V}_x = -\mathbf{M}^{-1}\mathbf{L}^{T}\mathbf{V}_A\).

Eliminating one bus at a time reduces \(\mathbf{M}\) to a single number and the formula to the arithmetic form always used in practice, Kron's reduction:

Kron's formula for eliminating bus \(p\)
\[ Y_{ij}^{\,\text{new}} = Y_{ij} - \frac{Y_{ip}\,Y_{pj}}{Y_{pp}} \]

applied to every retained pair \((i,j)\), after which row \(p\) and column \(p\) are deleted. The formula is the generalisation of the star-delta transformation: eliminating a node with three branches leaves the three branches of the corresponding delta, and eliminating a node with two branches simply puts them in series, as Example 6 confirms.

Kron reduction is used to shrink a transmission network down to its generator internal buses in transient stability studies (Chapter 28), and to remove passive junction buses before a fault study. It has one cost that must be understood. If buses \(i\) and \(j\) were both connected to \(p\) but not to each other, then \(Y_{ij}\) was zero and \(Y_{ip}Y_{pj}/Y_{pp}\) is not — a new non-zero entry appears where there was none. This is fill-in, and it destroys sparsity: a reduced matrix over a handful of retained buses is typically full. Eliminating a bus of high degree is expensive, which is why sparse solvers spend real effort choosing an elimination order that minimises the fill-in produced.

The same arithmetic, under two names. Kron's formula is the update step of Gaussian elimination applied to a symmetric matrix. Reducing a network and factorising its admittance matrix are literally the same computation, which is why a program that factorises \(\mathbf{Y}_{bus}\) to solve \(\mathbf{Y}\mathbf{V}=\mathbf{I}\) can be stopped part way through and read as a reduced-network model.
Section 16-9

What Y-Bus Is For, and Where Z-Bus Takes Over

The admittance matrix is not an end in itself. Everything in Parts 4 and 5 is built on it, and the shape of each application explains why it is built the way it is.

Load flow. Chapter 18 poses the central problem of system operation: given the power injected or drawn at every bus, find every bus voltage. The bridge from \(\mathbf{I}=\mathbf{Y}\mathbf{V}\) to that statement is one line of algebra. The injection at bus \(i\) is \(I_i = \sum_k Y_{ik}V_k\), and the complex power injected there is \(S_i = V_iI_i^{*}\), so

The load flow equations, in terms of \(\mathbf{Y}_{bus}\)
\[ P_i - jQ_i = V_i^{*}\sum_{k=1}^{n} Y_{ik}\,V_k, \qquad i = 1,2,\dots,n \]

The unknowns \(V_k\) appear quadratically — once directly and once conjugated — which is why no amount of matrix algebra solves the load flow and why Chapters 19 and 20 are about iteration. What matters here is that the coefficients of that nonlinear system are the entries of \(\mathbf{Y}_{bus}\), and nothing else.

Gauss-Seidel (Chapter 19) rearranges the equation above to give \(V_i\) in terms of the other voltages and sweeps through the buses repeatedly. Each sweep touches only the non-zero entries in a row, so the cost per iteration is proportional to the number of branches. The matrix is never inverted and never even factorised.

Newton-Raphson (Chapter 20) differentiates the same equations to build a Jacobian whose sparsity pattern is inherited directly from \(\mathbf{Y}_{bus}\), and solves a sparse linear system each iteration. The fast decoupled variant goes further and uses constant matrices derived from the imaginary part of \(\mathbf{Y}_{bus}\) alone, factorising them once for the entire solution.

Fault studies want something else. A three-phase fault at bus \(k\) drives the whole network from that one point, and what is needed is the driving-point impedance seen at bus \(k\) together with the transfer impedances from \(k\) to every other bus — that is, column \(k\) of \(\mathbf{Z}_{bus} = \mathbf{Y}_{bus}^{-1}\). Here the sparsity that made \(\mathbf{Y}_{bus}\) attractive works against us: the inverse of a sparse matrix is full, so \(\mathbf{Z}_{bus}\) has \(n^2\) meaningful entries and cannot be written down by inspection from the network. Chapter 17 therefore abandons inversion altogether and builds \(\mathbf{Z}_{bus}\) directly, one branch at a time, by an algorithm that adds each element to a growing network.

\(\mathbf{Y}_{bus}\)\(\mathbf{Z}_{bus}\)
How obtainedBy inspection from the branch listBy a building algorithm, or by inverting \(\mathbf{Y}_{bus}\)
StructureSparse — density about \(4/n\)Full — every entry non-zero
Entry meaningShort-circuit driving-point and transfer admittancesOpen-circuit driving-point and transfer impedances
Effect of a line outageFour entries changeEvery entry changes
Natural useLoad flow (Chapters 18–20), stability, state estimationFault analysis (Chapters 21, 24, 25)
Relation\(\mathbf{Z}_{bus} = \mathbf{Y}_{bus}^{-1}\), but \(Z_{ij} \neq 1/Y_{ij}\) for any \(i,j\)
Why the reciprocal statement matters. \(Y_{12}\) is measured with every bus but 2 shorted to ground; \(Z_{12}\) is measured with every bus but 2 open-circuited. They describe the network under opposite extreme conditions, so there is no reason for them to be reciprocals and in general they are not. Writing \(Z_{12}=1/Y_{12}\) is the most persistent single error in this part of the subject.
Section 16-10

Worked Examples

1 A three-bus reactance network by inspection

Problem. Three buses are joined by lines of per-unit reactance \(j0.20\) between buses 1 and 2, \(j0.25\) between 1 and 3 and \(j0.40\) between 2 and 3, all on the common base of Chapter 4. Line charging is neglected. Form \(\mathbf{Y}_{bus}\) and comment on its invertibility.

Solution. Convert each impedance to an admittance, remembering \(1/j = -j\):

Branch admittances
\[ y_{12} = \frac{1}{j0.20} = -j5.0, \qquad y_{13} = \frac{1}{j0.25} = -j4.0, \qquad y_{23} = \frac{1}{j0.40} = -j2.5 \]

Apply the two rules. Each diagonal sums the admittances at its bus; each off-diagonal is the negative of the branch admittance:

Bus admittance matrix
\[ \mathbf{Y}_{bus} = \begin{bmatrix} -j9.0 & j5.0 & j4.0\\ j5.0 & -j7.5 & j2.5\\ j4.0 & j2.5 & -j6.5 \end{bmatrix} \]

The sign pattern is the expected one for a pure reactance network — negative imaginary on the diagonal, positive imaginary off it. Every row sums to zero, however: \(-j9.0+j5.0+j4.0 = 0\), and likewise for the others. The matrix is therefore singular. This is the situation of Section 16-6: with no shunt anywhere, the network has no connection to the reference and \(\mathbf{Z}_{bus}\) does not exist. Example 2 fixes it.

2 Adding line charging

Problem. The three lines of Example 1 have total charging susceptances of \(j0.04\), \(j0.05\) and \(j0.06\) per unit respectively. Include them and show that the singularity is removed.

Solution. The nominal-\(\pi\) model of Chapter 11 puts half of each line's charging at each end, so bus 1 receives \(j0.02\) from line 1–2 and \(j0.025\) from line 1–3, and so on. Only the diagonal changes:

Diagonal entries with charging
\[ Y_{11} = -j9.0 + j0.020 + j0.025 = -j8.955 \]
\[ Y_{22} = -j7.5 + j0.020 + j0.030 = -j7.450 \]
\[ Y_{33} = -j6.5 + j0.025 + j0.030 = -j6.445 \]
Resulting matrix
\[ \mathbf{Y}_{bus} = \begin{bmatrix} -j8.955 & j5.000 & j4.000\\ j5.000 & -j7.450 & j2.500\\ j4.000 & j2.500 & -j6.445 \end{bmatrix} \]

Row sums are now \(j0.045\), \(j0.050\) and \(j0.055\) — the half-charging admittances at each bus, exactly as they should be, since with all bus voltages equal the only current that flows is the charging current to ground. Non-zero row sums mean the matrix no longer annihilates the vector of ones, and it is invertible. Note also that the off-diagonal entries have not moved: charging admittance connects a bus to the reference, never to another bus.

3 A four-bus system from a line data table

Problem. Form \(\mathbf{Y}_{bus}\) for the four-bus system whose per-unit line data is tabulated below. The half-charging susceptance is given for each end of each line.

Line\(R\) (pu)\(X\) (pu)\(y = 1/(R+jX)\)Half charging
1–20.020.06\(5.00 - j15.00\)\(j0.030\)
1–30.080.24\(1.25 - j3.75\)\(j0.025\)
2–30.060.18\(1.667 - j5.00\)\(j0.020\)
2–40.060.18\(1.667 - j5.00\)\(j0.020\)
3–40.010.03\(10.00 - j30.00\)\(j0.010\)

Solution. The admittances in the table come from rationalising, for instance

A representative conversion
\[ y_{12} = \frac{1}{0.02+j0.06} = \frac{0.02-j0.06}{0.02^2+0.06^2} = \frac{0.02-j0.06}{0.0040} = 5.00 - j15.00 \]

Now accumulate. Bus 1 carries lines to 2 and 3 and their two half-charging terms:

Diagonal entries
\[ Y_{11} = (5.00-j15.00)+(1.25-j3.75)+j0.055 = 6.250 - j18.695 \]
\[ Y_{22} = (5.00-j15.00)+(1.667-j5.00)+(1.667-j5.00)+j0.070 = 8.333 - j24.930 \]
\[ Y_{33} = (1.25-j3.75)+(1.667-j5.00)+(10.00-j30.00)+j0.055 = 12.917 - j38.695 \]
\[ Y_{44} = (1.667-j5.00)+(10.00-j30.00)+j0.030 = 11.667 - j34.970 \]
Off-diagonal entries
\[ Y_{12} = -5.00+j15.00, \quad Y_{13} = -1.25+j3.75, \quad Y_{14} = 0 \]
\[ Y_{23} = Y_{24} = -1.667+j5.00, \quad Y_{34} = -10.00+j30.00 \]

The zero at \(Y_{14}\) records that buses 1 and 4 are not directly connected — one zero out of sixteen entries here, but the same effect gives well over ninety per cent zeros on a realistic system. As a check, the sum of every entry in row 1 is \(6.25-j18.695-5.00+j15.00-1.25+j3.75 = j0.055\), which is precisely the half-charging admittance at bus 1.

4 A transformer with its tap off nominal

Problem. A transformer of leakage reactance \(j0.10\) per unit joins buses 1 and 2, with its tap changer set to \(a = 1.05\) on the bus-1 side. Find its contribution to \(\mathbf{Y}_{bus}\) and its \(\pi\) equivalent, and verify that the two agree.

Solution. The leakage admittance is \(y = 1/j0.10 = -j10.0\), and \(a^2 = 1.1025\). From the derivation of Section 16-5:

Matrix entries
\[ Y_{11} = \frac{y}{a^{2}} = \frac{-j10.0}{1.1025} = -j9.0703, \qquad Y_{22} = y = -j10.0 \]
\[ Y_{12} = Y_{21} = -\frac{y}{a} = \frac{j10.0}{1.05} = j9.5238 \]

The \(\pi\) equivalent has series admittance \(y/a = -j9.5238\) and shunts

Shunt branches of the equivalent \(\pi\)
\[ \text{at bus 1:}\quad \frac{1-a}{a^{2}}\,y = \frac{-0.05}{1.1025}(-j10.0) = +j0.4535 \]
\[ \text{at bus 2:}\quad \frac{a-1}{a}\,y = \frac{0.05}{1.05}(-j10.0) = -j0.4762 \]

Checking: at bus 1 the diagonal is the series plus the shunt, \(-j9.5238 + j0.4535 = -j9.0703\), which matches \(Y_{11}\); at bus 2 it is \(-j9.5238 - j0.4762 = -j10.0\), which matches \(Y_{22}\). The shunt at the tap side is a positive susceptance — capacitive — and the one at the far side inductive. Raising the tap at bus 1 therefore behaves, as far as the rest of the network is concerned, like installing a small capacitor there and a small reactor at bus 2, which is the reactive transfer that a tap change actually accomplishes.

5 The same network by singular transformation

Problem. Rebuild \(\mathbf{Y}_{bus}\) for the network of Example 1 using \(\mathbf{Y}_{bus} = \mathbf{A}^{T}\mathbf{y}\mathbf{A}\), and confirm it agrees with the inspection result.

Solution. Number the branches: element 1 from bus 1 to bus 2, element 2 from bus 1 to bus 3, element 3 from bus 2 to bus 3. Taking \(+1\) where an element leaves a bus and \(-1\) where it enters, the incidence matrix and the primitive admittance matrix are

Incidence and primitive matrices
\[ \mathbf{A} = \begin{bmatrix} 1 & -1 & 0\\ 1 & 0 & -1\\ 0 & 1 & -1 \end{bmatrix}, \qquad \mathbf{y} = \begin{bmatrix} -j5.0 & 0 & 0\\ 0 & -j4.0 & 0\\ 0 & 0 & -j2.5 \end{bmatrix} \]

Each column of \(\mathbf{A}\) is the pattern of one bus. Computing the product entry by entry, \(\big(\mathbf{A}^{T}\mathbf{y}\mathbf{A}\big)_{ij} = \sum_p y_p A_{pi}A_{pj}\):

Selected entries
\[ Y_{11} = (-j5.0)(1)^2 + (-j4.0)(1)^2 + (-j2.5)(0)^2 = -j9.0 \]
\[ Y_{12} = (-j5.0)(1)(-1) + (-j4.0)(1)(0) + (-j2.5)(0)(1) = j5.0 \]
\[ Y_{23} = (-j5.0)(-1)(0) + (-j4.0)(0)(-1) + (-j2.5)(1)(-1) = j2.5 \]

and the remaining entries in the same way, giving exactly the matrix of Example 1. The structure of the sum makes both inspection rules obvious: a diagonal entry collects \(y_p\) once for every element touching that bus, since \(A_{pi}^2 = 1\); an off-diagonal entry collects \(y_p\) with the product \((+1)(-1)\), hence the minus sign. Had elements 1 and 2 been mutually coupled, \(\mathbf{y}\) would carry off-diagonal terms and the inspection rules would no longer apply — but this product would still be correct.

6 Eliminating a bus, and checking it against series-parallel

Problem. No current is injected at bus 3 of the network of Example 1. Eliminate it by Kron's formula and verify the result by elementary circuit reduction.

Solution. With \(p=3\) and \(Y_{33} = -j6.5\), apply \(Y_{ij}^{\,\text{new}} = Y_{ij} - Y_{i3}Y_{3j}/Y_{33}\) to the three retained pairs:

Kron reduction
\[ Y_{11}^{\,\text{new}} = -j9.0 - \frac{(j4.0)(j4.0)}{-j6.5} = -j9.0 - \frac{-16}{-j6.5} = -j9.0 + j2.4615 = -j6.5385 \]
\[ Y_{12}^{\,\text{new}} = j5.0 - \frac{(j4.0)(j2.5)}{-j6.5} = j5.0 - \frac{-10}{-j6.5} = j5.0 + j1.5385 = j6.5385 \]
\[ Y_{22}^{\,\text{new}} = -j7.5 - \frac{(j2.5)(j2.5)}{-j6.5} = -j7.5 + j0.9615 = -j6.5385 \]
Reduced matrix
\[ \mathbf{Y}_{bus}^{\,\text{red}} = \begin{bmatrix} -j6.5385 & j6.5385\\ j6.5385 & -j6.5385 \end{bmatrix} \]

Check it directly. Bus 3 carries only two branches, so removing it leaves those two in series: \(j0.25 + j0.40 = j0.65\) between buses 1 and 2. That path is in parallel with the original \(j0.20\):

Series-parallel check
\[ y_{12}^{\,\text{eq}} = \frac{1}{j0.20} + \frac{1}{j0.65} = -j5.0 - j1.5385 = -j6.5385 \]
\[ \text{equivalently}\quad z = \frac{(j0.20)(j0.65)}{j0.85} = j0.15294 \]

The reduced matrix is exactly the two-bus admittance matrix of a single branch of \(-j6.5385\), which is what circuit reduction gives. It is also still singular, and necessarily so: eliminating a bus cannot create a connection to the reference where none existed. Notice finally that no fill-in occurred here only because buses 1 and 2 were already connected; had the network been a plain chain 1–3–2, the elimination would have created a non-zero \(Y_{12}\) out of nothing.

Review

Chapter Summary

The equation

\(\mathbf{I}_{bus} = \mathbf{Y}_{bus}\mathbf{V}_{bus}\), with the reference node excluded and all quantities in per unit.

Diagonal

\(Y_{ii}\) is the sum of every admittance at bus \(i\), shunts to the reference included.

Off-diagonal

\(Y_{ij} = -y_{ij}\), and zero when no branch joins the two buses.

Sources

Norton conversion turns \(E\) behind \(z_s\) into an injection \(E/z_s\) plus a diagonal \(1/z_s\).

Taps

A tap \(a\) gives \(y/a^2\), \(y\) and \(-y/a\); the \(\pi\) shunts are opposite in sign and vanish at \(a=1\).

Structure

Symmetric, sparse and diagonally dominant — and singular if nothing connects to the reference.

General form

\(\mathbf{Y}_{bus}=\mathbf{A}^{T}\mathbf{y}\mathbf{A}\) handles mutual coupling that inspection cannot.

Reduction

Kron: \(Y_{ij} - Y_{ip}Y_{pj}/Y_{pp}\) removes a zero-injection bus, at the cost of fill-in.

Practice

Practice Problems

All impedances are per unit on a common base. Where charging is given as a total, remember to place half at each end of the line.

  1. A four-bus system has lines 1–2 (\(j0.25\)), 1–3 (\(j0.20\)), 2–3 (\(j0.50\)), 2–4 (\(j0.40\)) and 3–4 (\(j0.10\)). Form \(\mathbf{Y}_{bus}\) by inspection and state which entries are zero and why.
  2. Each line in Problem 1 has a total charging susceptance of \(j0.02\) per unit. Rebuild the diagonal of \(\mathbf{Y}_{bus}\) and verify that each row now sums to the total half-charging admittance at that bus.
  3. A generator of internal voltage \(1.05\angle0^\circ\) behind a reactance of \(j0.15\) is connected at bus 1 of Problem 1, and a constant-impedance load of \(0.8 + j0.4\) per unit at rated voltage sits at bus 4. Show how each modifies \(\mathbf{I}_{bus}\) and \(\mathbf{Y}_{bus}\).
  4. A transformer of leakage reactance \(j0.08\) joins buses 2 and 3 with its tap set to \(0.95\) on the bus-2 side. Compute the three matrix entries and the two \(\pi\) shunt branches, and state which of them is capacitive.
  5. Show that for a network of \(n\) buses and \(b\) branches with no mutual coupling, \(\mathbf{Y}_{bus}\) has exactly \(2b\) non-zero off-diagonal entries. Hence find the percentage of non-zero entries for \(n=200\), \(b=290\).
  6. For the three-bus network of Example 1 of this chapter, write the incidence matrix \(\mathbf{A}\) with bus 3 taken as the reference instead of ground, and compute \(\mathbf{A}^{T}\mathbf{y}\mathbf{A}\). Explain why the result is now a non-singular \(2\times2\) matrix.
  7. A four-bus system has \(\mathbf{Y}_{bus}\) with \(Y_{14}=Y_{41}=0\) and no injection at bus 3. Eliminate bus 3 by Kron's formula in symbolic form and identify every new non-zero entry created. Under what condition on the original entries does no fill-in occur?
  8. Two identical transmission lines run on the same towers between buses 1 and 2, with self impedance \(j0.30\) each and mutual impedance \(j0.10\) between them. Explain why the inspection rules give the wrong answer, form the primitive matrix \(\mathbf{y}\) and the incidence matrix \(\mathbf{A}\), and obtain the correct \(\mathbf{Y}_{bus}\).
Tip: check every \(\mathbf{Y}_{bus}\) by summing its rows. In a network whose only connections to the reference are line charging and shunts, each row sum must come out to exactly the shunt admittance at that bus — nothing more and nothing less, because all branch terms cancel between the diagonal and the off-diagonals of that row. A row sum that is wrong tells you at once which bus was mis-assembled, which is far quicker than re-deriving the whole matrix.