Control Systems

The Transfer Function

G(s) = Y(s)/X(s) — the s-domain fingerprint of a linear system

A transfer function is the ratio of a system's output to its input in the Laplace s-domain, written G(s) = Y(s)/X(s) with all initial conditions set to zero. It applies to linear time-invariant (LTI) systems and is a rational function of the complex frequency s = σ + jω. The roots of its numerator are zeros; the roots of its denominator are poles. Setting the denominator to zero gives the characteristic equation, whose roots — the poles — fix stability: a continuous-time system is stable if and only if every pole lies strictly in the left-half plane, Re(s) < 0. Transfer functions turn differential equations into algebra, so block diagrams reduce by simple multiplication and a feedback rule, G/(1+GH), and they are the foundation for root-locus, Bode, and Nyquist analysis used across aerospace, process, and motion control.

  • DefinitionG(s) = Y(s)/X(s), zero initial conditions
  • DomainLaplace s = σ + jω
  • PolesDenominator roots — set natural modes
  • ZerosNumerator roots — shape the response
  • Stable ifAll poles Re(s) < 0 (left-half plane)
  • Feedback ruleT(s) = G/(1 + GH)
  • Applies toLTI SISO systems

Interactive visualization

Press play, or step through manually. The visualization is yours to drive — try it before reading on.

Open visualization fullscreen ↗

Watch the 60-second explainer

A condensed visual walkthrough — narrated, captioned, under a minute.

Why the transfer function matters

Before Laplace methods, analyzing a controlled machine meant solving its differential equations by hand for every input — a fresh integration each time the forcing changed. The transfer function collapses that work into a single algebraic object. Because the Laplace transform maps differentiation to multiplication by s, a differential equation of order n becomes an n-th degree polynomial equation, and the system's entire dynamic personality — how fast it responds, whether it overshoots, whether it is even stable — is read directly from where the roots of that polynomial sit in the complex plane.

  • One object, all inputs. Multiply G(s) by any input transform X(s) to get the output transform Y(s); invert to recover the time response.
  • Diagrams become arithmetic. Series blocks multiply, parallel blocks add, and feedback loops close with G/(1+GH) — no calculus required to reduce a plant model.
  • Stability at a glance. The sign of the real part of every pole answers the single most important question in control: will the loop settle or run away?
  • The gateway to design tools. Root locus, Bode plots, Nyquist criterion, gain and phase margins, and lead-lag compensator design all operate on the transfer function.
  • Universal reach. The same G(s) machinery describes a servo motor, an aircraft pitch loop, an op-amp filter, a chemical reactor's temperature, and a suspension damper.

From differential equation to G(s), step by step

The transfer function is defined only for LTI systems with zero initial conditions. Under those assumptions the Laplace transform of the n-th derivative reduces to sn·(transform), so the recipe is mechanical:

  1. Write the governing ODE relating output y(t) to input x(t).
  2. Laplace-transform both sides with all initial conditions zero, replacing each dk/dtk with sk.
  3. Collect Y(s) and X(s) and form the ratio G(s) = Y(s)/X(s).
  4. Factor numerator and denominator to expose zeros and poles.

The canonical second-order mechanical example is a mass–spring–damper driven by force f(t):

m·y″ + c·y′ + k·y = f(t)  ⟶  (m·s² + c·s + k)·Y(s) = F(s)  ⟶  G(s) = Y(s)/F(s) = 1 / (m·s² + c·s + k)

where m is mass (kg), c is the viscous damping coefficient (N·s/m), k is stiffness (N/m), y is displacement (m), and f is force (N). Written in the standard normalized form,

G(s) = ωn² / (s² + 2ζωn·s + ωn²), with ωn = √(k/m) and ζ = c / (2√(k·m)),

where ωn is the undamped natural frequency (rad/s) and ζ is the dimensionless damping ratio. The two poles sit at s = −ζωn ± ωn√(ζ²−1). For 0 < ζ < 1 they form a complex conjugate pair −ζωn ± jωd with damped frequency ωd = ωn√(1−ζ²), producing a decaying oscillation — the ringing you feel in a car suspension after a pothole.

Poles, zeros, and what the response looks like

Every pole contributes one natural mode to the time response. A real pole at s = −a contributes a decaying exponential e−at with time constant τ = 1/a; the larger a is (the farther left the pole), the faster that mode dies out. A complex conjugate pole pair contributes a damped sinusoid whose envelope decays as e−σt (σ = |real part|) and whose ringing frequency is the imaginary part ωd. Zeros add no modes of their own but reweight how strongly each pole's mode appears; a zero in the right-half plane produces the counterintuitive initial undershoot of a non-minimum-phase system — the output first moves the wrong way, as an aircraft briefly loses altitude when the elevator commands a climb.

Pole location on the s-plane and the resulting time-domain behavior
Pole locationReal part Re(s)Time responseStability
Left-half plane, real< 0Decaying exponential e−atStable
Left-half plane, complex pair< 0Damped oscillation e−σt·sin(ωdt)Stable
On imaginary axis, simple= 0Sustained oscillation sin(ωt)Marginally stable
On imaginary axis, repeated= 0Growing t·sin(ωt)Unstable
Right-half plane> 0Growing exponential e+atUnstable

Stability, the characteristic equation, and feedback

Stability is decided entirely by the denominator. Set the denominator of the closed-loop transfer function to zero and you have the characteristic equation, D(s) = 0, whose roots are the closed-loop poles. A continuous-time LTI system is bounded-input bounded-output (BIBO) stable if and only if every root of D(s) has a strictly negative real part. In practice you rarely factor high-order polynomials by hand: the Routh–Hurwitz criterion counts right-half-plane roots directly from the polynomial coefficients, flagging instability without ever solving for the poles.

Feedback is what makes the characteristic equation interesting. For a forward path G(s) wrapped in a feedback path H(s), block-diagram algebra gives the closed-loop transfer function

T(s) = G(s) / (1 + G(s)·H(s))  (negative feedback),

so the closed-loop characteristic equation is 1 + G(s)H(s) = 0, or equivalently 1 + L(s) = 0 where L(s) = G(s)H(s) is the open-loop transfer function. This single equation is the object that the root locus sweeps as loop gain varies, and that the Nyquist criterion encircles in the complex plane. The block-diagram reduction rules are worth memorizing:

Block-diagram algebra: reducing interconnected blocks to one G(s)
InterconnectionEquivalent transfer functionNote
Series (cascade)G1(s)·G2(s)Blocks multiply; order irrelevant for LTI
Parallel (summed)G1(s) + G2(s)Same input, outputs added at a summing junction
Negative feedbackG(s) / (1 + G(s)·H(s))Standard closed loop
Positive feedbackG(s) / (1 − G(s)·H(s))Sign flips; often destabilizing
Unity feedbackG(s) / (1 + G(s))H(s) = 1; sensor is ideal

Worked example: closing a loop around an integrator plant

Suppose a plant behaves like a motor whose speed integrates its input with a lag, G(s) = K / [s(s + 4)], and we close a unity-feedback loop (H = 1). The closed-loop transfer function is

T(s) = G / (1 + G) = K / [s² + 4s + K].

The characteristic equation is s² + 4s + K = 0. Comparing with s² + 2ζωns + ωn² gives ωn = √K and 2ζωn = 4, so ζ = 2/√K. Pick the loop gain K to place the poles where you want them:

  • K = 4: ζ = 1, poles both at s = −2 — critically damped, fastest response with no overshoot.
  • K = 16: ζ = 0.5, poles at s = −2 ± j2√3 — about 16% overshoot, ωd ≈ 3.46 rad/s of ringing.
  • K = 100: ζ = 0.2, poles at s = −2 ± j9.8 — lightly damped, ~52% overshoot; the loop rings for many cycles.

Note that for any positive K both poles keep a real part of −2, so this particular loop stays stable no matter how hard you push the gain — but the damping ratio, overshoot, and settling behavior swing wildly. That is the everyday design trade the transfer function exposes: raise gain for speed, pay in overshoot and oscillation. Settling time here is roughly ts ≈ 4/(ζωn) = 4/2 = 2 s (the 2% criterion), independent of K in this special case.

Common misconceptions and failure modes

  • "It works with initial conditions." The transfer function is defined only for zero initial conditions. Nonzero states contribute extra terms; use state-space if you need them.
  • "Zeros affect stability." Only poles set stability. Zeros reshape the response and can cause overshoot or undershoot, but a stable system stays stable regardless of zero location.
  • "Cancel a bad pole with a zero." Pole-zero cancellation is fragile — a right-half-plane pole cancelled on paper still exists physically as a hidden unstable mode. Never cancel across the imaginary axis; state-space controllability/observability catches what G(s) hides.
  • "Any input works." Transfer functions describe LTI systems only. Saturation, backlash, and other nonlinearities break the ratio; you must linearize about an operating point first.
  • "More gain is always faster." Higher loop gain speeds response but pushes closed-loop poles toward — and eventually across — the imaginary axis, driving overshoot then outright instability.
  • "Marginally stable is fine." Poles exactly on the jω-axis give undamped oscillation that any real disturbance or modeling error can tip into instability; treat marginal stability as a design failure.

Frequently asked questions

What is a transfer function?

A transfer function is the ratio of a system's output to its input in the Laplace s-domain, written G(s) = Y(s)/X(s), evaluated with all initial conditions set to zero. It applies to linear time-invariant systems and is a rational function of the complex variable s = sigma + j*omega. Because Laplace transforms turn differentiation into multiplication by s, the transfer function is the frequency-domain fingerprint of the differential equation that governs the system.

What are poles and zeros?

Zeros are the roots of the numerator polynomial N(s); at a zero the transfer function value is zero, so those input frequencies are blocked. Poles are the roots of the denominator polynomial D(s); at a pole the magnitude goes to infinity. Poles govern the natural modes of the response — a real pole at s = -a gives a decaying exponential e^(-a*t) with time constant 1/a, and a complex pair sigma +/- j*omega_d gives a damped sinusoid. Zeros do not add modes but reshape how strongly each mode appears and can cause overshoot or undershoot.

How do you find stability from pole locations?

For a continuous-time system, examine the real parts of the poles. The system is bounded-input bounded-output stable if and only if every pole has a strictly negative real part, meaning it lies in the open left-half of the s-plane. A pole on the imaginary axis (Re(s) = 0) is marginally stable, and any pole in the right-half plane (Re(s) > 0) makes the system unstable because it produces a growing exponential. The Routh-Hurwitz criterion checks this without factoring the characteristic polynomial.

What is the characteristic equation?

The characteristic equation is the denominator of the closed-loop transfer function set equal to zero: D(s) = 0. Its roots are the closed-loop poles, so it directly determines stability and the shape of the transient response. For a unity-feedback loop with open-loop transfer function L(s) = G(s)H(s), the characteristic equation is 1 + G(s)H(s) = 0, which is exactly the relation the root locus and Nyquist methods analyze as loop gain varies.

How do you convert an ODE to a transfer function?

Take the Laplace transform of both sides of the differential equation with zero initial conditions. Each time derivative d^n/dt^n becomes s^n, so the ODE becomes an algebraic equation in s. Then solve for the ratio of output transform to input transform. For example, m*y'' + c*y' + k*y = f(t) transforms to (m*s^2 + c*s + k)Y(s) = F(s), giving G(s) = Y(s)/F(s) = 1/(m*s^2 + c*s + k), a second-order system whose poles are the roots of m*s^2 + c*s + k = 0.

What is block-diagram algebra?

Block-diagram algebra is a set of rules for reducing interconnected transfer-function blocks to one equivalent block. Blocks in series multiply: G1(s)G2(s). Blocks in parallel add: G1(s) + G2(s). A negative feedback loop with forward path G(s) and feedback path H(s) reduces to G(s)/(1 + G(s)H(s)); with positive feedback the sign flips to 1 - G(s)H(s). Repeatedly applying these rules collapses any single-input single-output diagram into a single overall transfer function.

What is the difference between a transfer function and state-space?

A transfer function is a single-input single-output, frequency-domain description that captures only the input-to-output behavior and hides internal states. State-space uses matrix equations x' = Ax + Bu, y = Cx + Du to describe the full internal dynamics, handles multiple inputs and outputs, and exposes controllability and observability. You recover the transfer function from state-space via G(s) = C(sI - A)^-1 B + D. Pole-zero cancellation can hide unstable internal modes that a transfer function misses but state-space reveals.