Block diagrams: trace signals and derive the feedback loop

Read control block diagrams by naming signals and checking each junction. Combine series and parallel paths, derive feedback transfer functions, and compare reference, disturbance, and sensor-error responses.

By 15 min read

What you will learn

  • Write equations for the named signals and signed junctions in a control diagram.
  • Combine compatible scalar linear blocks in series and parallel.
  • Derive separate output paths for a reference, plant disturbance, and sensor error.
  • Connect the closed-loop pole to stable, marginal, and unstable responses.
  • Explain why sensor scaling changes the meaning of a reference.

Before you start

A block diagram tells you which signal affects which calculation. An arrow into a controller carries different information from an arrow into a plant. Moving a disturbance between those arrows changes the system you describe.

You can check a diagram by writing one equation for each block and junction. The resulting algebra explains its output without relying on a memorized feedback formula.

Read block diagrams one signal at a time

Start with three drawing rules:

  • A block maps its input signal to its output signal.
  • A summing junction adds or subtracts incoming signals according to their marked signs.
  • A branch copies a signal to another route. It does not split the signal's value.

For a linear time-invariant block, Y(s) = G(s)U(s) describes the zero-initial-state input-output relation. The transfer-function lesson explains the Laplace variable s and the initial-state assumption. Uppercase letters here denote Laplace transforms; lowercase letters denote time signals.

Signals that meet at a sum must have compatible units. A controller can convert a speed error into a torque command, so its gain carries the corresponding units. A line crossing another line does not create a connection unless the diagram marks a junction.

MIT's block-diagram tutorial derives feedback equations by following these signal relations. A drawing is useful because you can inspect both the computation and the connections that the computation assumes.

Multiply blocks connected in series

Suppose input R passes through A, producing X, then through B, producing Y. The two equations give:

X = AR
Y = BX = BAR
Y/R = BA

For example, use the compatible scalar blocks A(s) = 2/(s + 2) and B(s) = 3/(s + 3). Their series connection has transfer function 6/[(s + 2)(s + 3)]. Its DC gain is 1, the product of the two individual DC gains.

MathWorks' series documentation defines this output-to-input connection and its multiplication order. Scalar transfer functions commute, but transfer matrices generally do not. Retaining BA records that A acts first.

Before replacing two blocks with their product, preserve any branch or added input between them. An intermediate signal can matter elsewhere even when the reference-to-output product looks simple.

Add paths that share the same input

Now send the same input R into A and B. Add their outputs at a positive summing junction:

Y = AR + BR = (A + B)R
Y/R = A + B

Using the previous blocks, the parallel transfer function is:

2/(s + 2) + 3/(s + 3)
= (5s + 12) / [(s + 2)(s + 3)]

The DC gain is now 2. Each branch sees the full input, and the junction adds the resulting outputs. A minus sign on the second input would give A − B.

MathWorks' parallel documentation specifies a shared input and summed outputs. Both conditions matter: unrelated input signals cannot simply merge into a single A + B path.

Derive the feedback denominator

Let C be a controller, G a plant, and H the return measurement block. With negative feedback and no other inputs:

E = R − HY
U = CE
Y = GU = GC(R − HY)
(1 + GCH)Y = GCR
Y/R = GC / (1 + GCH)

The denominator's plus sign comes from moving the subtracted return term to the left side. With positive feedback, the first junction adds HY and the denominator becomes 1 − GCH.

Use σ to keep both cases in one equation: σ = +1 means negative feedback, while σ = −1 means positive feedback. Then E = R − σHY and Y/R = GC/(1 + σGCH).

These are scalar, well-defined linear interconnections. A reduced external transfer function can hide internal behavior after pole-zero cancellation in a larger system. The one-state example below checks its internal pole directly from its differential equation.

Keep disturbances and sensor errors at their entry points

Add a physical disturbance D at the plant input, after the controller. Add sensor error N after the measurement block H, before the first junction. Give the intermediate signals names:

M = HY + N
E = R − σM
U = CE
V = U + D
Y = GV

Substitute those equations while keeping each external input separate:

(1 + σGCH)Y = GCR + GD − σGCN

The reference passes through C and G. The disturbance bypasses C. Sensor error passes through C and G with the sign from the first junction. All three contributions share the same closed-loop denominator.

If the error entered before H, its path would also include H. If a disturbance added directly to the plant output, its numerator would change too. The labeled entry point is part of the model.

Give the example plant physical units

Use a horizontal rotating joint with inertia J = 1 kg·m² and viscous coefficient B = 1 N·m·s/rad. Its output y is speed; its input v is applied torque. There is no gravity torque about the chosen axis.

J dy/dt = v − By
G(s) = Y(s)/V(s) = 1/(Js + B)
G(s) = 1/(s + 1) using the stated numerical units

The last line suppresses the physical coefficients' units to keep the algebra readable. The open plant has a one-second time constant. Controller gain K converts a speed error to torque, while the dimensionless sensor gain h scales the reported speed.

SignalMeaningUnits
rReference for the measurement channelrad/s
yPhysical joint speedrad/s
hyScaled output before sensor errorrad/s
nError added after the sensor gainrad/s
m = hy + nReturned measurementrad/s
eSigned comparison signalrad/s
uController torque outputN·m
dExternal disturbance torqueN·m
v = u + dTotal plant-input torqueN·m

The controller is C = K and the measurement block is H = h. K has units N·m·s/rad. The lab omits feedforward, torque saturation, delay, and sampled control so that the diagram's linear signal relations hold throughout.

Calculate each input-to-output path

Insert C = K, H = h, and G = 1/(s + 1). Define the numerical decay coefficient a = 1 + σKh. With the other external inputs set to zero, the three transfer paths are:

Y/R = K/(s + a)
Y/D = 1/(s + a)
Y/N = −σK/(s + a)

For negative feedback with K = h = 1, they become 1/(s + 2), 1/(s + 2), and −1/(s + 2). Equal-sized numerical reference and sensor-error steps therefore cancel when d = 0. Equal-sized reference and positive-disturbance contributions add.

Sensor gain also changes the reference's meaning. With h = 0.5, K = 1, and d = n = 0, the stable physical output approaches 1/(1 + 0.5) = 2/3 rad/s. The returned measurement approaches only 1/3 rad/s.

For negative feedback with h positive and no disturbance or sensor error, larger K drives the measured value hy toward r. The limiting physical output is r/h. For a nonzero reference, it equals r only when h = 1; the lab's finite gain still leaves a measured error.

Setting h = 0 removes the output's influence on the comparison signal. It leaves m = n, so the sensor-error input still affects the controller. Setting K = 0 cuts the reference and sensor-error paths to y, while the disturbance can still move the plant.

Connect the pole to the time response

For constant selected inputs from time zero and y(0) = 0, substitute the signal equations into the plant. In the stated numerical units:

dy/dt = F − ay
a = 1 + σKh, F = Kr + d − σKn
y(t) = F[1 − exp(−at)]/a when a ≠ 0
y(t) = Ft when a = 0

With units shown, a = (B + σKh)/J has units 1/s, and F = (Kr + d − σKn)/J has units rad/s². The homogeneous, or unforced, response to an initial speed offset is y₀ exp(−at). Its pole is −a.

PoleHomogeneous behaviorConstant-input response
Negative, a > 0Initial deviations decayApproaches F/a
Zero, a = 0Initial deviations persistA nonzero F creates a ramp
Positive, a < 0Initial deviations growGenerally grows exponentially

The zero-pole case is marginal in its homogeneous behavior. It is not bounded-input bounded-output stable: a bounded nonzero constant forcing creates an unbounded ramp. For a positive pole, F/a is an algebraic equilibrium, not a general settling value.

If the inputs cancel exactly so F = 0 and y starts at zero, even the unstable model produces a zero curve. A tiny nonzero initial speed then grows exponentially. The plot alone cannot prove stability from one chosen input and initial state.

Trace the diagram and inspect its response

The diagram names every intermediate signal. All selected inputs begin at zero time and stay constant; n is a deterministic sensor-error step. The replay evaluates the exact response above without a time-stepping approximation.

Trace each signal

Connect a diagram to its output

Follow the reference through the controller and plant. The disturbance adds torque at the plant input. Sensor error adds to the scaled output before the feedback junction.

1.00
1.00
1.00
0.00
0.00

The plant has J = 1 kg·m² and B = 1 N·m·s/rad. Its numeric equation is dy/dt = v − y, with y in rad/s and v in N·m. All selected inputs start at time zero; y starts at zero. The sensor error is a constant step, not random noise.

Negative feedback block diagram with separate disturbance and sensor-error inputsReference r enters the top summing junction. The return measurement m equals h times output y plus sensor error n. The junction subtracts m to r, producing error e. Gain K maps e to controller output u. A second junction adds disturbance d, producing plant input v. Plant G maps v to output y. The output branches through sensor gain h and the sensor-error sum to return to the first junction. At the selected time, y is 0.490842 radians per second and e is 0.509158 radians per second.reK = 1udv1 / (s + 1)yhhynm+−++++
Arrows carry signals in their marked direction. The output branch copies y without dividing it. K and h use the selected gains. The first junction switches between e = r − m and e = r + m; both disturbance and sensor-error junctions keep their plus signs.
2.00
Plant output over time with a stable closed-loop poleThe exact output curve runs from zero to four seconds. At 2.000000 seconds the output is 0.490842 radians per second. The pole is -2.000000 per second. Stability describes the homogeneous dynamics, including when the selected inputs produce a zero output.024-11Time (s)Output y (rad/s)
Blue shows the exact continuous-time response; the dot marks the replay time. The scale adjusts to include the full four-second curve. No actuator saturation, sensor delay, or sampled controller enters this model.
Reference r (rad/s)
1.000000
Measured signal m (rad/s)
0.490842
Error e (rad/s)
0.509158
Controller output u (N m)
0.509158
Plant input v (N m)
0.509158
Plant output y (rad/s)
0.490842
Closed-loop pole (1/s)
-2.000000
Loop stability
Stable
Steady output y (rad/s)
0.500000

The negative pole makes deviations decay. The steady-output prediction applies if these constant inputs remain in place.

At the default K = h = r = 1 with negative feedback, a = 2 and F = 1. At 2 s, the physical output is (1 − exp(−4))/2 = 0.490842 rad/s. The measurement matches y, so e = 1 − y = 0.509158 rad/s and u = v = 0.509158 N·m.

The difference v − y = 0.018316 gives the numerical speed derivative in rad/s². The output approaches 0.5 rad/s. Finite proportional gain supplies torque through a nonzero error, and this experiment has no feedforward term to supply the nominal holding torque.

Try these changes:

  1. Add d = +0.5 N·m. At 2 s, y becomes 0.736263 rad/s; u falls to 0.263737 N·m, while v includes the extra disturbance torque.
  2. Reset, then add n = +0.25 rad/s. At 2 s, physical output falls to 0.368132 rad/s, but the measurement reads 0.618132 rad/s.
  3. Select positive feedback with K = h = 1. The pole is zero and the reference step produces y = t.
  4. Increase K to 2 in positive feedback. The pole moves to +1/s and y = 2[exp(t) − 1], reaching 12.778112 rad/s at 2 s.
  5. Keep that unstable pole and set r, d, and n to zero. The flat zero curve leaves the instability label unchanged.

Positive feedback below Kh = 1 still gives a negative pole for this plant. Negative feedback with nonnegative K and h is stable in this particular first-order model. More complex plants need their own pole and internal-stability analysis.

The stability criteria lesson studies a loop with three first-order lags. Compare its Routh table, Nyquist curve, and gain and phase margins to see how increasing negative-feedback gain can cross a stability boundary.

Reproduce the signals in Python

This standard-library example evaluates the same exact solution at 2 s. The expm1 function evaluates exp(x) − 1 accurately for small x, which helps when a is close to zero. The a = 0 branch uses the exact ramp limit.

from math import expm1

def signals(K, h, r, d, n, sigma, t=2.0):
    a = 1.0 + sigma * K * h
    F = K * r + d - sigma * K * n
    y = F * t if a == 0 else F * (-expm1(-a * t)) / a
    m = h * y + n
    e = r - sigma * m
    u = K * e
    v = u + d
    pole = 0.0 if a == 0 else -a
    status = "stable" if a > 0 else "marginal" if a == 0 else "unstable"
    return y, m, e, u, v, pole, status

cases = [
    ("negative", 1, 1, 1, 0, 0, 1),
    ("nonunity", 1, 0.5, 1, 0, 0, 1),
    ("disturbance", 1, 1, 1, 0.5, 0, 1),
    ("sensor error", 1, 1, 1, 0, 0.25, 1),
    ("zero pole", 1, 1, 1, 0, 0, -1),
    ("growing pole", 2, 1, 1, 0, 0, -1),
    ("zero sensor", 1, 0, 1, 0, 0.25, 1),
    ("unforced unstable", 2, 1, 0, 0, 0, -1),
]
for label, *parameters in cases:
    y, m, e, u, v, pole, status = signals(*parameters)
    print(f"{label}: y={y:.6f}, m={m:.6f}, e={e:.6f}, u={u:.6f}, v={v:.6f}; {status}")

Expected output:

negative: y=0.490842, m=0.490842, e=0.509158, u=0.509158, v=0.509158; stable
nonunity: y=0.633475, m=0.316738, e=0.683262, u=0.683262, v=0.683262; stable
disturbance: y=0.736263, m=0.736263, e=0.263737, u=0.263737, v=0.763737; stable
sensor error: y=0.368132, m=0.618132, e=0.381868, u=0.381868, v=0.381868; stable
zero pole: y=2.000000, m=2.000000, e=3.000000, u=3.000000, v=3.000000; marginal
growing pole: y=12.778112, m=12.778112, e=13.778112, u=27.556224, v=27.556224; unstable
zero sensor: y=0.648499, m=0.250000, e=0.750000, u=0.750000, v=0.750000; stable
unforced unstable: y=0.000000, m=0.000000, e=0.000000, u=0.000000, v=0.000000; unstable

Try it yourself

Exercise 1: distinguish series and parallel connections

Use compatible scalar blocks A = 2/(s + 2) and B = 3/(s + 3). Find the series transfer function, the positive parallel transfer function, and both DC gains. Which connection sends the full input directly into both blocks?

Check your answer: Series gives 6/[(s + 2)(s + 3)], with DC gain 1. Positive parallel gives (5s + 12)/[(s + 2)(s + 3)], with DC gain 2.

The parallel connection copies the full input to both blocks and sums their outputs. In series, B receives A's output.

Exercise 2: change the sensor gain and switch the feedback sign

Use K = 2, h = 0.5, r = 1, d = −0.5, and n = +0.25 in the lab's units. First use negative feedback. Find a, F, the pole, y(2), and the stable output limit. Then switch to positive feedback and calculate y(2) and the stability classification.

Check your answer: Negative feedback gives a = 1 + 2(0.5) = 2 and F = 2 − 0.5 − 2(0.25) = 1. The pole is −2/s, y(2) = (1 − exp(−4))/2 = 0.490842 rad/s, and the output approaches 0.5 rad/s.

Positive feedback gives a = 1 − 2(0.5) = 0 and F = 2 − 0.5 + 2(0.25) = 2. The response is y = 2t, so y(2) = 4 rad/s. The zero pole is marginal for homogeneous motion, and the ramp shows the failure of bounded-input bounded-output stability.

Sources and further study

Continue with open-loop and closed-loop control to compare the behavior created by these connections. Keep each input's entry point visible when deciding what the controller can correct.