Part 1 · Chapter 5

Signal Flow Graphs and Mason's Gain Formula

Block-diagram reduction is reliable but slow, and it collapses into bookkeeping the moment loops cross. The signal flow graph reframes the same system as a network of nodes and directed branches — and Mason's gain formula then reads the transfer function straight off that network, in a single pass, with no moving of points and no nested algebra. This chapter builds the graph, defines its vocabulary, and turns Mason's rule into a routine you can trust.

Control Systems Prof. Mithun Mondal Reading time ≈ 45 min
i What you'll learn
  • What a signal flow graph (SFG) is, and why it is often faster than block-diagram reduction.
  • The vocabulary of nodes, branches, path gains, forward paths, loops, and non-touching loops.
  • How to convert a block diagram — or a set of linear equations — into an equivalent signal flow graph.
  • The basic SFG reduction rules: series, parallel, and loop (self-loop) elimination.
  • Mason's gain formula: \(T = \dfrac{1}{\Delta}\sum_k P_k\Delta_k\), and exactly what \(\Delta\) and \(\Delta_k\) mean.
  • A repeatable procedure for reading any single-input/single-output transfer function off the graph in one pass.
Section 5-1

Why Signal Flow Graphs?

Chapter 4 closed with a warning: when feedback paths cross or loops overlap, block-diagram reduction degenerates into endless moving of summing and take-off points, and a single sign slip ruins the whole chain. The signal flow graph, introduced by S. J. Mason in 1953, sidesteps that entirely. It represents the same linear system as a graph — variables become nodes, and the gains that relate them become directed branches — and a single algebraic formula then delivers the transfer function without any rearrangement of the diagram.

The two representations carry identical information. A block diagram is more intuitive to read; a signal flow graph is faster to solve. For a clean single loop the difference is minor, but for a multi-loop, multi-path network the SFG plus Mason's rule is dramatically less error-prone.

The core idea. A signal flow graph is just a graphical bookkeeping of a set of simultaneous linear algebraic equations. Mason's formula is the closed-form solution of those equations by inspection — Cramer's rule, read off the picture instead of written as a matrix.
Section 5-2

Elements and Terminology

A signal flow graph is built from two elements only. A node is a point that represents a system variable. A branch is a directed line segment joining two nodes, labelled with a gain (transmittance) that multiplies the signal as it passes. The value at any node equals the sum of all signals entering it, and that value is transmitted unchanged along every branch leaving it.

x₁ a x₂ x₂ = a · x₁
A branch multiplies; its gain relates the two node variables

From these two primitives comes a small vocabulary that Mason's formula speaks in. Learn it once and the rule becomes mechanical.

TermMeaning
Input (source) nodeA node with only outgoing branches — the independent variable, e.g. \(R(s)\).
Output (sink) nodeA node with only incoming branches — the variable solved for, e.g. \(C(s)\).
Mixed nodeA node with both incoming and outgoing branches.
PathAny continuous, same-direction sequence of branches.
Forward pathA path from the input node to the output node along which no node is met twice.
Path gainThe product of the branch gains along a path.
LoopA closed path that returns to its start node, meeting no other node twice.
Loop gainThe product of the branch gains around a loop.
Non-touching loopsLoops that share no common node.
🔑
Node rule and transmission rule
\[ x_j = \sum_i a_{ij}\,x_i \qquad\text{(node = sum of incoming signals)} \]

Every node adds what flows in and broadcasts the result to all outgoing branches. Two loops touch if they share at least one node; if they share none, they are non-touching — the single most important distinction in Mason's formula.

Section 5-3

Building the Graph

A signal flow graph can be drawn directly from a set of linear equations or translated from an existing block diagram. From equations, write each dependent variable on the left, place a node for every variable, and draw an incoming branch for each term on the right, labelled with its coefficient. From a block diagram, the translation is almost mechanical:

Block-diagram featureSignal-flow-graph equivalent
Each signal / variableA node
A block \(G(s)\)A branch of gain \(G(s)\)
Summing pointA node where branches meet (signs absorbed into branch gains)
Take-off (branch) pointA node with several outgoing branches
Negative feedback \(H\)A feedback branch of gain \(-H\)
R E C 1 G −H
The standard negative-feedback loop as a signal flow graph

The graph above encodes \(E = R - HC\) and \(C = GE\). Notice how the summing point's subtraction has been folded into the feedback branch as a gain of \(-H\): in an SFG every operation lives on a branch, so signs travel with the gains. This single loop is the worked check in Section 5-8, where Mason's formula reproduces the familiar \(G/(1+GH)\).

Section 5-4

Basic SFG Reduction Rules

Before invoking Mason, it helps to know the three elementary equivalences — they let you simplify a graph by hand and they reveal why Mason's formula has the shape it does. They are the SFG mirror of cascade, parallel, and feedback from Chapter 4.

a b ≡ gain ab
Series: gains multiply
a b ≡ gain a+b
Parallel: gains add
a b ≡ a / (1 − ab)
Loop: \(a/(1-ab)\)
Loop (self-loop) elimination
\[ \frac{x_{\text{out}}}{x_{\text{in}}} = \frac{a}{1 - L}, \qquad L = ab = \text{loop gain} \]
Spot the pattern. The loop rule already contains the seed of Mason's formula: a denominator of \(1-L\). When several loops are present, that denominator generalises to the graph determinant \(\Delta\) — the subject of Section 5-6 — and the numerator becomes a sum over forward paths.
Section 5-5

Mason's Gain Formula

Rather than reduce the graph step by step, Mason's gain formula gives the overall transfer function between an input node and an output node directly. It is the central result of this chapter.

🔑
Mason's gain formula
\[ T = \frac{C(s)}{R(s)} = \frac{1}{\Delta}\sum_{k} P_k\,\Delta_k \]

where \(P_k\) is the gain of the \(k\)-th forward path, \(\Delta\) is the graph determinant, and \(\Delta_k\) is the cofactor of forward path \(k\) — the determinant of the part of the graph left untouched by that path.

Each forward path contributes its own gain, weighted by how much of the loop structure it leaves alone. A path that passes through every loop in the graph carries \(\Delta_k = 1\); a path that misses some loops keeps those loops alive inside \(\Delta_k\). The three quantities are:

SymbolDefinition
\(P_k\)Gain of the \(k\)-th forward path (input node to output node).
\(\Delta\)Graph determinant, built from all loop gains (Section 5-6).
\(\Delta_k\)The determinant \(\Delta\) re-evaluated with every loop that touches path \(k\) deleted.
Section 5-6

The Determinant Δ and Non-Touching Loops

The graph determinant collects the entire loop structure of the diagram into one expression. It is an alternating sum: individual loops are subtracted, pairs of non-touching loops are added back, triples are subtracted, and so on.

🔑
Graph determinant
\[ \Delta = 1 - \sum_i L_i + \sum_{i,j} L_iL_j - \sum_{i,j,k} L_iL_jL_k + \cdots \]

\(\displaystyle\sum_i L_i\) sums every individual loop gain; \(\displaystyle\sum_{i,j} L_iL_j\) sums the gain products of every pair of non-touching loops; \(\displaystyle\sum_{i,j,k} L_iL_jL_k\) sums the products of every triple of mutually non-touching loops; and the pattern continues with alternating signs.

The whole subtlety lives in the words non-touching. Two loops contribute a product term only if they share no node — if they touch, the pair simply does not appear. So building \(\Delta\) is a two-step inventory: first list every loop gain, then find every group of loops that are mutually non-touching and form their products with the correct sign.

The cofactor \(\Delta_k\) is computed by the very same formula, but applied to the sub-graph that remains after removing all loops touching path \(k\). In the common case where a forward path runs through every loop, nothing remains and \(\Delta_k = 1\).

Sanity check. If a graph has no loops at all, \(\Delta = 1\) and every \(\Delta_k = 1\), so Mason's formula collapses to \(T = \sum_k P_k\) — exactly the cascade-and-parallel result of Chapter 4. The loop terms are precisely what feedback adds.
Section 5-7

A Systematic Procedure

Applied carelessly, Mason's formula invites the same sign errors as block-diagram reduction. Applied as a fixed checklist, it is almost foolproof. Work through these steps in order, writing each list out in full before assembling the answer.

StepWhat to do
1Draw the SFG; mark the input node \(R\) and output node \(C\).
2List every forward path and its gain \(P_k\).
3List every loop and its gain \(L_i\) (carry signs carefully).
4Identify all sets of non-touching loops (pairs, triples, …).
5Assemble \(\Delta = 1 - \sum L_i + \sum L_iL_j - \cdots\).
6For each path, form \(\Delta_k\) by deleting the loops it touches.
7Substitute into \(T = \dfrac{1}{\Delta}\sum_k P_k\Delta_k\).
🔑
The discipline that prevents errors
List paths → list loops → find non-touching sets → assemble Δ → form each Δk → substitute

Never skip the non-touching inventory in step 4: it is the only place the formula differs from a naïve "one minus the sum of loops," and it is where almost every mistake is made.

Section 5-8

Worked Examples

1 Single loop — the consistency check

Problem. Apply Mason's formula to the negative-feedback graph of Section 5-3 (forward branch \(G\), feedback branch \(-H\)) and recover \(C/R\).

Solution. There is one forward path \(P_1 = G\) and one loop \(L_1 = -GH\). The path touches the loop, so \(\Delta_1 = 1\):

Working
\[ \Delta = 1 - L_1 = 1 + GH, \qquad T = \frac{P_1\Delta_1}{\Delta} = \frac{G}{1+GH} \]

Identical to the Chapter 4 feedback rule — the two methods agree, as they must.

2 Pure cascade — no loops

Problem. Three branches \(G_1, G_2, G_3\) form a single chain from \(R\) to \(C\). Find \(T\).

Solution. One forward path, no loops, so \(\Delta = 1\) and \(\Delta_1 = 1\):

Working
\[ T = \frac{P_1\Delta_1}{\Delta} = G_1G_2G_3 \]

With no feedback, Mason's formula reduces to the plain cascade product.

3 Numeric single loop

Problem. A unity-feedback loop has forward gain \(G(s)=\dfrac{10}{s+2}\). Use Mason's rule to find \(C/R\) and its pole.

Solution. \(P_1 = G\), \(L_1 = -G\), \(\Delta = 1 + G\), \(\Delta_1 = 1\):

Working
\[ T = \frac{G}{1+G} = \frac{10/(s+2)}{1 + 10/(s+2)} = \frac{10}{s+12} \]

A single pole at \(s=-12\): closing the loop pulled the open-loop pole from \(-2\) deeper into the left half-plane, speeding the response.

4 Two non-touching loops

Problem. A graph has a single forward path \(P_1 = G_1G_2G_3\) and two loops, \(L_1 = -G_1H_1\) (around the first stage) and \(L_2 = -G_3H_2\) (around the third stage), that share no node. Find \(T\).

Solution. Because \(L_1\) and \(L_2\) are non-touching, their product appears in \(\Delta\):

Working
\[ \Delta = 1 - (L_1 + L_2) + L_1L_2 = 1 + G_1H_1 + G_3H_2 + G_1G_3H_1H_2 \]

The forward path touches both loops, so \(\Delta_1 = 1\), giving:

Result
\[ T = \frac{G_1G_2G_3}{1 + G_1H_1 + G_3H_2 + G_1G_3H_1H_2} \]

Forgetting the non-touching product term \(L_1L_2\) is the classic Mason mistake — and would drop the last term in the denominator.

R x₁ x₂ x₃ C G₁ G₂ G₃ −H₁ −H₂
Two loops sharing no node — their gain product enters Δ
5 Two forward paths, one loop

Problem. A graph has two forward paths, \(P_1\) and \(P_2\), and a single loop \(L_1\) that touches \(P_1\) but not \(P_2\). Write \(T\).

Solution. The determinant is \(\Delta = 1 - L_1\). Path 1 touches the loop, so \(\Delta_1 = 1\); path 2 misses it, so \(\Delta_2 = 1 - L_1\):

Working
\[ T = \frac{P_1\Delta_1 + P_2\Delta_2}{\Delta} = \frac{P_1 + P_2(1 - L_1)}{1 - L_1} \]

The cofactor keeps the loop alive in the second numerator term — exactly the case where block-diagram reduction would have demanded several point moves.

6 Three touching loops

Problem. A forward path \(P_1\) is wrapped by three loops \(L_1, L_2, L_3\) that all share at least one common node (none are mutually non-touching). Find \(T\).

Solution. Since no pair is non-touching, no product terms survive in \(\Delta\), and the path touches all three loops so \(\Delta_1 = 1\):

Working
\[ \Delta = 1 - (L_1 + L_2 + L_3), \qquad T = \frac{P_1}{1 - (L_1 + L_2 + L_3)} \]

When every loop touches every other, Mason's formula is simply "forward path over one minus the sum of loop gains" — the quickest case of all.

Review

Chapter Summary

Two elements

Nodes are variables; branches carry gains. A node sums its inputs and broadcasts the result.

Vocabulary

Forward path, path gain, loop, loop gain — and the crucial idea of non-touching loops.

Conversion

Blocks → branches, summing/take-off points → nodes, negative feedback → a \(-H\) branch.

Mason's formula

\(T = \dfrac{1}{\Delta}\sum_k P_k\Delta_k\) reads the transfer function off the graph in one pass.

Determinant

\(\Delta = 1 - \sum L_i + \sum L_iL_j - \cdots\); products only for non-touching loop sets.

Cofactor

\(\Delta_k\) is \(\Delta\) with the loops touching path \(k\) removed; \(\Delta_k=1\) if the path hits them all.

Practice

Problems

For each graph, run the procedure of Section 5-7: list forward paths, list loops, find the non-touching sets, assemble \(\Delta\), form each \(\Delta_k\), then substitute. Difficulty rises down the list.

  1. Draw the signal flow graph for the equations \(x_2 = a\,x_1 + b\,x_3\) and \(x_3 = c\,x_2\). Label nodes and branches.
  2. A single forward path of gain \(G\) has one feedback loop \(L_1 = -GH\). Write \(\Delta\) and \(T\).
  3. Three branches \(G_1, G_2, G_3\) are in cascade with no feedback. Use Mason's rule to confirm \(T = G_1G_2G_3\).
  4. A unity-feedback loop has \(G(s)=\dfrac{20}{s(s+4)}\). Apply Mason's formula and find \(C/R\).
  5. A graph has loops \(L_1\) and \(L_2\) sharing no common node. Write \(\Delta\) explicitly, including the product term.
  6. For the same graph, the single forward path touches both loops. State each \(\Delta_k\) and write \(T\).
  7. Two forward paths \(P_1, P_2\) exist; one loop \(L_1\) touches \(P_1\) only. Write \(T\) with the correct cofactors.
  8. Convert a block diagram with forward path \(G_1G_2\) and feedback \(H\) tapped after \(G_1\) only into an SFG, then solve by Mason's rule.
  9. A graph has loops \(L_1, L_2, L_3\) where only \(L_1\) and \(L_3\) are non-touching. Build \(\Delta\) term by term.
  10. With a reference \(R\) and a disturbance \(D\) entering at an interior node, use Mason's formula to write \(C(s)\) as the superposition of both inputs (compute the two transfer functions separately, same \(\Delta\)).
  11. A two-path, two-loop graph has \(P_1\) touching both loops and \(P_2\) touching neither. Write \(T\) and identify which loops survive in \(\Delta_2\).
  12. Explain in one or two sentences why Mason's gain formula handles crossing feedback paths more cleanly than block-diagram reduction, referring to the role of the non-touching-loop terms in \(\Delta\).
Tip: the single most common error in Mason's rule is mishandling non-touching loops — either inventing a product term for loops that actually touch, or omitting one for loops that do not. Before assembling \(\Delta\), draw the loops in colour and check, pair by pair, whether they share any node. That one habit eliminates most mistakes.