Skip to main content

Block Diagrams, Signal Flow, and Mason Rule

Real control systems are built from interconnected subsystems. Nise's reduction chapter shows how to collapse block diagrams and signal-flow graphs into equivalent transfer functions, so that the response and stability tools from earlier chapters can be applied. This is where modeling becomes system analysis: motors, sensors, amplifiers, loads, and feedback paths become one closed-loop expression.

The methods here are algebraic, but they are also organizational. A clean block diagram exposes where disturbances enter, where sensor dynamics sit, and which signals are internal. Signal-flow graphs provide a compact alternative when many loops interact. Mason's gain formula is especially useful when block-diagram reduction becomes visually messy.

A feedback loop block diagram shows an output signal returned to the input through a controller path.

Figure: Feedback loop block diagram in control theory. Image: Wikimedia Commons, Inductiveload, public domain.

Definitions

A block diagram represents subsystem transfer functions as directed blocks connected by signals. A summing junction forms a signed algebraic sum. A pickoff point copies a signal without changing it.

For blocks in series,

Geq(s)=G1(s)G2(s).G_{\text{eq}}(s)=G_1(s)G_2(s).

For blocks in parallel,

Geq(s)=G1(s)+G2(s)G_{\text{eq}}(s)=G_1(s)+G_2(s)

when their outputs are added.

For a single negative-feedback loop,

Geq(s)=G(s)1+G(s)H(s).G_{\text{eq}}(s)=\frac{G(s)}{1+G(s)H(s)}.

For positive feedback, the denominator becomes 1G(s)H(s)1-G(s)H(s).

A signal-flow graph has nodes representing signals and directed branches representing gains. A forward path is a path from input node to output node that does not touch any node more than once. A loop is a closed path that starts and ends at the same node without touching another node more than once. Non-touching loops share no nodes.

Mason's gain formula gives the overall transfer function:

T=k=1NPkΔkΔ,T=\frac{\sum_{k=1}^N P_k\Delta_k}{\Delta},

where PkP_k is the gain of the kkth forward path,

Δ=1Li+LiLjLiLjLm+\Delta=1-\sum L_i+\sum L_iL_j-\sum L_iL_jL_m+\cdots

with products taken over non-touching loops, and Δk\Delta_k is Δ\Delta with all loops touching the kkth forward path removed.

Key results

Moving summing junctions and pickoff points changes local block labels but must preserve every signal equation. Two common transformations are:

MoveRequired change
Move pickoff before a block GG to after itadd 1/G1/G in copied branch
Move pickoff after a block GG to before itadd GG in copied branch
Move summing junction before a block GG to after itmultiply side input by GG
Move summing junction after a block GG to before itdivide side input by GG

Closed-loop block diagrams are usually reduced from inner loops outward. If a diagram has nested loops, reduce the innermost loop first, then combine series and parallel blocks. If loops overlap heavily, construct a signal-flow graph and use Mason's formula.

For nonunity feedback with forward path G(s)G(s) and feedback path H(s)H(s), the closed-loop transfer function from reference to output is

T(s)=G(s)1+G(s)H(s).T(s)=\frac{G(s)}{1+G(s)H(s)}.

The error signal at the summing junction is not necessarily R(s)C(s)R(s)-C(s); it is R(s)H(s)C(s)R(s)-H(s)C(s). This distinction matters when computing steady-state error or interpreting sensor scaling.

State equations can also be represented by signal-flow graphs. Each integrator output is a state variable, and branches correspond to matrix coefficients. This creates a bridge between transfer-function diagrams and state-space models.

A useful reduction habit is to write the signal equations before moving blocks. For example, if X=G(RHY)X=G(R-HY) and Y=PXY=PX, the algebra is unambiguous even when the diagram is visually crowded. After the equations are written, reduction is just substitution. This is often safer than memorizing many diagram moves, especially when disturbances and sensor noise enter at multiple points.

Disturbance paths should be kept separate from reference paths until the end. A closed-loop system has different transfer functions from reference to output, disturbance to output, sensor noise to output, and reference to error. Collapsing the whole diagram into one block too early can hide these distinctions. In design, a controller may improve reference tracking while worsening noise transmission, so separate transfer functions are needed to see the trade-off.

Mason's formula is most helpful when loops overlap. In a graph with several feedback paths, a brute-force block reduction may require repeated movement of summing junctions and pickoff points. Signal-flow graphs instead count forward paths, loops, and non-touching loop products. The price is careful bookkeeping: missing one non-touching loop product changes the determinant Δ\Delta and therefore the final transfer function.

Internal stability is not guaranteed by a pleasant reduced transfer function. If an unstable pole is exactly cancelled by a zero in the algebra, the input-output transfer function may look stable even though an internal signal can grow. Physical systems rarely achieve exact cancellation under parameter uncertainty. For control design, exact cancellation of unstable or lightly damped modes is normally avoided unless a deeper robust-control argument supports it.

Block diagrams also encode units. A summing junction is meaningful only when the incoming signals share compatible units or have already been scaled by transducers. Adding an angle command in radians directly to a voltage feedback signal is physically wrong unless a potentiometer or sensor gain has converted one into the other's units. Many errors in feedback modeling are unit errors disguised as algebra errors.

Reduction should preserve the question being asked. If the task is to find C(s)/R(s)C(s)/R(s), internal error signals may disappear from the final expression. If the task is to size an amplifier, compute actuator effort, or check sensor noise, those internal signals must be retained or recovered after reduction. A single equivalent block is useful for pole and output-response analysis, but engineering design often needs several transfer functions from different inputs to different internal and external signals.

In large diagrams, it is often better to name intermediate transfer functions than to force one enormous expression immediately. For example, reduce an actuator-motor-load group to Gp(s)G_p(s), a sensor-filter group to H(s)H(s), and a compensator to Gc(s)G_c(s), then form GcGp/(1+GcGpH)G_cG_p/(1+G_cG_pH). This keeps algebra readable and makes later design changes localized.

For documentation, include both the original unreduced diagram and the reduced result. The unreduced diagram explains the physical architecture; the reduced transfer function supports calculation. Keeping both prevents later readers from losing the connection between mathematical poles and actual components.

This also makes audits and later redesigns much easier.

It preserves design intent.

It also supports maintenance.

Visual

InterconnectionFormulaStability denominator
seriesG1G2G_1G_2product of denominators before cancellation
parallel sumG1+G2G_1+G_2common denominator after addition
negative feedbackG/(1+GH)G/(1+GH)1+GH=01+GH=0 after clearing fractions
positive feedbackG/(1GH)G/(1-GH)1GH=01-GH=0 after clearing fractions
Mason graphPkΔk/Δ\sum P_k\Delta_k/\DeltaΔ=0\Delta=0

Worked example 1: nested block reduction

Problem: A forward path contains G1(s)=2G_1(s)=2 followed by an inner negative-feedback loop with G2(s)=5/(s+1)G_2(s)=5/(s+1) and H2(s)=0.4H_2(s)=0.4. The result is followed by G3(s)=1/(s+3)G_3(s)=1/(s+3) with outer unity negative feedback. Find the closed-loop transfer function.

Method:

  1. Reduce the inner loop:
G2,cl=G21+G2H2.G_{2,\text{cl}}=\frac{G_2}{1+G_2H_2}.
  1. Substitute:
G2,cl=5s+11+5s+1(0.4)=5s+1+2=5s+3.G_{2,\text{cl}} =\frac{\frac{5}{s+1}}{1+\frac{5}{s+1}(0.4)} =\frac{5}{s+1+2} =\frac{5}{s+3}.
  1. Combine the forward path:
Gforward=G1G2,clG3=25s+31s+3=10(s+3)2.G_{\text{forward}}=G_1G_{2,\text{cl}}G_3 =2\cdot\frac{5}{s+3}\cdot\frac{1}{s+3} =\frac{10}{(s+3)^2}.
  1. Apply outer unity feedback:
T(s)=Gforward1+Gforward=10(s+3)21+10(s+3)2.T(s)=\frac{G_{\text{forward}}}{1+G_{\text{forward}}} =\frac{\frac{10}{(s+3)^2}}{1+\frac{10}{(s+3)^2}}.
  1. Clear the fraction:
T(s)=10(s+3)2+10=10s2+6s+19.T(s)=\frac{10}{(s+3)^2+10} =\frac{10}{s^2+6s+19}.

Checked answer: T(s)=10/(s2+6s+19)T(s)=10/(s^2+6s+19).

Worked example 2: Mason gain formula

Problem: A signal-flow graph has one input-output forward path P1=G1G2G3P_1=G_1G_2G_3. It has two loops: L1=G2H1L_1=-G_2H_1 touching the forward path and L2=G3H2L_2=-G_3H_2 also touching the forward path. The two loops do not touch each other. Find TT.

Method:

  1. Write the determinant:
Δ=1Li+LiLj.\Delta=1-\sum L_i+\sum L_iL_j.
  1. Substitute the loops:
Δ=1(L1+L2)+L1L2.\Delta=1-(L_1+L_2)+L_1L_2.
  1. Replace L1L_1 and L2L_2:
Δ=1(G2H1G3H2)+(G2H1)(G3H2)=1+G2H1+G3H2+G2G3H1H2.\begin{aligned} \Delta &=1-\left(-G_2H_1-G_3H_2\right)+(-G_2H_1)(-G_3H_2)\\ &=1+G_2H_1+G_3H_2+G_2G_3H_1H_2. \end{aligned}
  1. Since both loops touch the only forward path, no loops remain for Δ1\Delta_1:
Δ1=1.\Delta_1=1.
  1. Apply Mason:
T=P1Δ1Δ=G1G2G31+G2H1+G3H2+G2G3H1H2.T=\frac{P_1\Delta_1}{\Delta} =\frac{G_1G_2G_3}{1+G_2H_1+G_3H_2+G_2G_3H_1H_2}.

Checked answer: The determinant factors as (1+G2H1)(1+G3H2)(1+G_2H_1)(1+G_3H_2) because the loops are non-touching.

Code

import sympy as sp

s = sp.symbols("s")
G1 = 2
G2 = 5 / (s + 1)
H2 = sp.Rational(2, 5)
G3 = 1 / (s + 3)

inner = sp.simplify(G2 / (1 + G2 * H2))
forward = sp.simplify(G1 * inner * G3)
closed = sp.simplify(forward / (1 + forward))

print("inner loop:", sp.factor(inner))
print("forward path:", sp.factor(forward))
print("closed-loop T:", sp.factor(closed))

Common pitfalls

  • Reducing a feedback loop before checking the sign at the summing junction.
  • Treating nonunity feedback as if the summing-junction error were RCR-C.
  • Moving pickoff points across blocks without compensating by GG or 1/G1/G.
  • Cancelling pole-zero factors too early. A cancelled unstable internal mode may still matter physically if the realization is not exact.
  • Missing non-touching loop products in Mason's determinant.
  • Forgetting that disturbance transfer functions differ depending on where the disturbance enters.

Connections