Nodal analysis & the Y-bus
The key idea
The whole network fits in one matrix. Write Kirchhoff's current law at every bus in terms of admittances. The result is I = Y·V. The rule that builds Y is mechanical. Each branch adds its admittance to two diagonal entries and subtracts it from two off-diagonal entries. The finished matrix shows the topology of the network.
The idea
Every network study begins with the same information: what connects to what, and how strong each connection is. Nodal analysis holds that information in a single object, a matrix. A simple rule assembles the matrix. You can apply the rule with a pencil.
Start with Kirchhoff's current law at one bus. The current that enters the bus from outside must leave through the branches. The current in a branch is the voltage difference across the branch times its admittance. For a pure reactance, the admittance is b = 1/x. So the injection at bus 1 is (V₁ − V₂)·b₁₂ plus (V₁ − V₃)·b₁₃.
Now regroup the terms by voltage instead of by branch. The sum of every admittance at bus 1 multiplies V₁. The negative of the connecting admittance multiplies each of the other voltages. Those coefficients are one row of a matrix. Write the same row for every bus, and the result is I = Y·V. Here Y is the bus admittance matrix (the Y-bus).
The regrouping gives the assembly rule directly, and the rule stays simple. A branch between bus i and bus j adds its admittance to the two diagonal entries for i and j. The same branch subtracts its admittance from the two off-diagonal entries that link i and j. Take the branches in any order. Two branches in parallel add together.
The finished matrix matches the topology exactly. The matrix is symmetric, because a branch conducts the same way in both directions. A zero off-diagonal entry means that no branch connects those two buses. An empty row means that no branch reaches that bus, so the bus is an island and no solver can use it. With no shunt elements, every row sums to zero. That result restates Kirchhoff's current law: hold every bus at the same voltage, and no current flows.
The Y-bus is not an optional step before a power flow. Every Newton–Raphson iteration uses this matrix. The solver rebuilds its Jacobian from the Y-bus each round. The matrix holds mostly zeros, and that property keeps large cases fast.
On this page every branch is a pure reactance. The admittance of each branch is the real number b = 1/x, so the matrix holds ordinary numbers. In a production network the entries are complex numbers, and line charging adds shunt terms to the diagonal. The assembly rule is the same in both cases.
Try it
Take branch 2–3 out of service and watch four entries change to zero. Then take out both branches that connect to bus 3. The entire row for bus 3 becomes zero.
branches in service: 3 of 3
| Row | Bus 1 | Bus 2 | Bus 3 |
|---|---|---|---|
| Bus 1 | 15.0 | −10.0 | −5.0 |
| Bus 2 | −10.0 | 14.0 | −4.0 |
| Bus 3 | −5.0 | −4.0 | 9.0 |
symmetric · rows sum to 0 · off-diagonal −b of the branch
point at a branch to highlight the four entries that it writes into
The reactances are in per unit, so each branch carries b = 1/x. Add b to both diagonal entries that the branch connects. Subtract b from both off-diagonal entries. That rule is complete, and it is the reason the matrix matches the topology. Pure reactances keep every entry real here. A production Y-bus holds complex admittances with line charging on the diagonal.
Why it matters
- It is the network in a form a solver can use. The matrix holds impedances and connections only. It has no drawing, no coordinates and no symbols. Every study downstream reads this matrix instead of the diagram.
- The zeros make large cases solvable. A bus connects to only a few other buses, so almost every entry in a real Y-bus is zero. A solver stores and factorizes only the non-zero entries. That method solves a ten-thousand-bus case in seconds.
- An empty row identifies the problem. A solve fails when the network contains an island. The matrix shows the cause: a bus with no admittance to any other bus.
- Change a switch, and then rebuild the matrix. The topology changes the matrix. When you open one branch, four entries change. The power flow that follows solves a different network.
The math, if you want itOptional — the page reads completely without it
The first equation is Kirchhoff's current law at bus 1 of a three-bus network. Each branch current appears as a voltage difference divided by a reactance:
KCL at bus 1
I1 = V1 − V2x12 + V1 − V3x13
Collect the terms by voltage rather than by branch, and the coefficients are one row of the matrix Y:
the same equation, grouped by voltage
I1 = ( 1x12 + 1x13 ) V1 − 1x12 V2 − 1x13 V3
The bracket is Y11, and the two negative coefficients are the entries Y12 and Y13. The general rule follows. A branch between buses i and j with b = 1/x contributes four entries and nothing else:
assembly rule for one branch
Yii += b · Yjj += b · Yij −= b · Yji −= b
All the rows together form a single matrix equation:
the whole network
I = Y · V
In a production network the entries are complex. An off-diagonal entry is −1/(r + jx) rather than −1/x, and line charging puts a shunt susceptance jB/2 on each diagonal. The power flow equations use the same matrix directly, one equation per bus:
complex power injected at bus i
Si = Vi · ( Σk Yik Vk )*
A solver therefore builds the Y-bus once and then reads it on every iteration.
See it in Phasor
You never type a matrix into Phasor. You draw the network and give the branches their impedances. Phasor then assembles the Y-bus from the model, including the switch states. Phasor rebuilds the matrix whenever the topology changes. A study that reports an island or a singular matrix describes the row structure that this lesson builds by hand.