← Back to Autonomy

A short illustrated monograph · Vol. I, No. 1

Ten Ideas Every Control Engineer Needs

ByMajid Mazouchi

These ten ideas (feedforward, time delay, the Padé approximant, non-minimum-phase behavior, gain scheduling, the step response, the trio of Nichols / Nyquist / Bode diagrams, the notch filter, the gang of six transfer functions, and passivity) turn up almost every time a real controller meets a real plant. They are the thin bridges between clean textbook loops and the messy analog world of delays, saturations, inverse responses, and mode resonances.

Each idea gets its own short chapter: a plain-language explanation, a live figure you can push around, a short list of where it shows up, and practical notes from the field. The concepts are tightly coupled. Delay ties to Padé which ties to non-minimum phase; gain scheduling extends feedforward; the notch filter is a special case read inside-out; the gang of six is what you actually measure; passivity is the ultimate stability guarantee. The closing section makes those links explicit.

The motivation for this volume came from watching Brian Douglas's MATLAB Tech Talks, the Control Systems in Practice series end to end. It's an unusually lucid sustained treatment of practical control theory, and I found myself rewatching episodes often enough that I wanted a single place where the ideas could sit side by side with live figures I could actually push around. Every chapter here is paired one-to-one with its source screencast in the companion section at the end. This monograph is a complement to those videos, not a substitute.

Section I

What Is Feedforward Control?

Feedback reacts. Feedforward anticipates. A feedback loop measures the output, compares it to the reference, and acts on the error. This is robust (it corrects for anything that goes wrong), but it is inherently reactive: the disturbance must first corrupt the output before the controller can push back.

Feedforward takes a different route. If you can measure (or model) the disturbance (or the reference change) directly, you can inject a compensating command before the output moves at all. With a perfect model, a feedforward term can cancel a disturbance entirely, leaving feedback to clean up only what the model missed.

u(t)  =  uff(d, r)  +  ufb(e)

In practice you almost always use both: feedforward does the heavy lifting (nominal compensation from a model), and feedback cleans up model mismatch, noise, and unmeasured disturbances. The figure below lets you see this trade-off directly: crank the model accuracy down and watch feedback struggle to recover alone.

reference r(t) feedback only feedback + feedforward disturbance d(t)
Feedforward model accuracy80%
Feedback gain Kp2.0
Plant time constant τₚ1.0 s
FIG IOutput response to a step disturbance at t = 2 s, for a first-order plant 1/(τₚs+1) with disturbance entering at the plant input. Feedforward cancels the disturbance almost instantly when the model is accurate; feedback alone must let the error build before it can react.

Where it shows up

  • Motor current loops. HCI (high-current injection) feedforward voltage precomputed from i_d, i_q, ω.
  • Flux weakening. Voltage-margin feedforward to keep the inverter out of saturation.
  • Machine tool servos. Acceleration & jerk feedforward for point-to-point moves.
  • Web / film lines. Line-speed feedforward into tension controllers.
  • HVAC. Outside-air-temperature feedforward into supply-air loops.

Practical notes

  • Feedforward amplifies noise on the measured disturbance; filter it before differentiating.
  • An inverse-plant feedforward can be fragile: it inverts all dynamics, including any non-minimum-phase ones (see §IV).
  • In AUTOSAR embedded code, feedforward LUTs (e.g. HCI voltage maps) must cover the full operating region, including deep saturation, or else feedback takes over and rings.
  • Always test with the feedforward path disconnected. If the loop cannot survive without it, feedback is under-designed.

Section II

Why Time Delay Matters

Every real feedback loop has delay. Some of it is visible: a sensor's sample-and-hold, the compute budget from ADC trigger to PWM update, the transport lag of fluid in a pipe. Some is hidden: group delay in an anti-aliasing filter, a CAN-bus scheduling slot, or a zero-order hold in a downstream DAC. It all adds up.

Pure delay is an oddly simple operator. In the frequency domain it has magnitude 1 at every frequency (it changes nothing about amplitude), but its phase drops linearly without bound:

e−sτ :  |e−jωτ| = 1,    ∠e−jωτ = −ωτ

That unbounded phase is the whole problem. Each added radian of phase eats into your phase margin. As a crude but useful estimate, a loop crossing over at ωc can tolerate delay only until ωc · τ reaches roughly 1 rad; beyond that the margin is gone and the loop starts ringing or goes unstable.

reference (step) output with delay stability boundary
Loop delay τ0.30 s
PI gain Kp1.5
Integral gain Ki1.2
FIG IIClosed-loop step response of 1/(s+1)·e−sτ under PI control. Start with small τ and a well-damped response, then slide the delay up and watch phase margin erode into sustained oscillation and finally instability.

Where it shows up

  • Digital current loops in motor drives: PWM update + ADC + compute ≈ 1.5 PWM periods of delay.
  • Thermal & chemical process control (reactors, extruders, molds).
  • Remote & cloud control: round-trip network latency.
  • Long fluid loops: pipelines, chilled-water headers, fuel lines.
  • Networked / bus-scheduled controllers (CAN, FlexRay, CAN-FD).

Practical notes

  • The Smith predictor compensates delay by predicting the output, but it needs an accurate plant model to work.
  • In motor drives, computational delay usually dominates over transport delay. Push ADC triggering close to PWM update and minimize task-to-task latency.
  • If you can't model the delay, detune: a gain-phase margin of (6 dB, 45°) will swallow most real-world surprises.
  • Anti-aliasing filters add delay too; their group delay at low frequencies is roughly the filter's time constant.

Section III

Why Padé Approximations Are Great

Classical control theory loves rational transfer functions: a polynomial in s over another polynomial in s. With a rational model you can place poles, draw a root locus, write a state-space form, compute H norms, and hand the model to every tool in the MATLAB / Simulink pipeline.

But e−sτ is transcendental. It is not rational. To use delay inside classical design and simulation tools, you must approximate it by a rational function. The Padé approximation is the canonical choice. The [n/n] Padé approximant for e−sτ is the unique rational function of degree n/n whose Taylor series agrees with e−sτ through order 2n.

e−sτ ≈  1 − sτ/2 + (sτ)²/12 1 + sτ/2 + (sτ)²/12   (order 2/2)

The [n/n] Padé has a beautiful property: the numerator is the complex-conjugate of the denominator, so |Padé(jω)| ≡ 1 for all frequencies. It is all-pass, just like pure delay. Only the phase differs, and the higher the order, the further out in frequency the phase matches. The figure compares the phase of Padé orders 1 through 4 against the true delay.

true delay −ωτ Padé 1/1 Padé 2/2 Padé 3/3 Padé 4/4
Delay τ (sec)1.0 s
Max frequency ω (rad/s)20
FIG IIIBode phase of Padé approximants of e−sτ against the true linear phase −ωτ. The magnitude is identically 1 for both; only the phase matters. Order 2/2 typically covers loop crossover plus a decade; order 4/4 is usually plenty.

Where it shows up

  • Control design: representing delay in MATLAB/Simulink for bode, nyquist, root-locus, and state-space tools.
  • Circuit simulation: modeling wave propagation on transmission lines.
  • MPC and state-space: augmenting the state vector with Padé states to capture delay in the prediction model.
  • Model reduction: approximating complex actuator/driver chains by low-order rational functions.

Practical notes

  • Order 2/2 is usually enough for control-design tasks up to roughly ωτ ≈ 1. Order 4/4 handles ωτ ≈ 2–3.
  • In embedded MIL/SIL with TargetLink, represent delay natively (integer-sample shift); it is exact, cheaper, and mirrors the ECU.
  • Never invert a Padé for feedforward cancellation. Its RHP zeros become RHP poles of the inverse.
  • For a nonlinear-simulation pipeline, you can mix: Padé in the linearized model used for design, and an integer-sample shift in the plant used for validation.

Section IV

What Are Non-Minimum Phase Systems?

A linear system is non-minimum phase (NMP) if it has zeros (or unstable poles) in the right-half s-plane. The name is historical: among all stable rational systems with the same magnitude response, the one with all zeros in the left half-plane has the minimum possible phase lag. Any zero you push into the right half-plane adds phase lag without changing magnitude, precisely the same behavior as delay.

The most striking consequence is inverse response: step the input and the output moves the wrong way first before recovering. This isn't an artifact; it's geometrically inevitable for any system with a real RHP zero.

reference (step) output y(t)
RHP zero location z1.5
Second pole a2.0
FIG IVOpen-loop step response of G(s) = (1 − s/z) / [(s+1)(s+a)]. As z approaches the origin, the initial "wrong-way" excursion grows deeper. A smaller z means a harder controller problem: bandwidth is fundamentally limited to roughly z/2.

Where it shows up

  • Power converters: boost and buck-boost topologies in CCM have an RHP zero in their vout/d transfer function.
  • Aircraft pitch: elevator input first pitches down (the tail lifts) before the whole aircraft pitches up.
  • Ship steering / cars in reverse: rudder and wheel turns initially displace the hull / rear the wrong way.
  • Boiler level with cold feed: opening feedwater first lowers the drum level (bubbles collapse).
  • Underactuated robots and flexible manipulators with non-collocated sensing.

Practical notes

  • You cannot stably cancel a RHP zero by feedforward inversion, because its inverse has a RHP pole.
  • Design heuristic: bandwidth ≲ 0.5·z for a real RHP zero at s = z.
  • Delay, when approximated by Padé (§III), becomes NMP by construction, which is why delay imposes the same kind of bandwidth limit.
  • In a motor current loop the electromagnetic plant is minimum-phase, but the digital implementation (delay + sampling) drags it into NMP territory.
  • If a deep inverse response is unacceptable, fix it at the plant level: change the sensor location, add an actuator, or restructure the topology (e.g. slope-compensation / current-mode in a boost).

Section V

What Is Gain Scheduling?

Real plants are rarely linear. An aircraft's pitch dynamics change dramatically with airspeed; a motor's inductance falls with iron saturation; a chemical reactor's time constant shifts with temperature. You could design a single, conservative linear controller that works adequately everywhere (and in practice it often performs poorly everywhere), or you could design several linear controllers, each tuned for a local operating point, and switch or blend between them as the plant's parameters drift.

That second approach is gain scheduling. It's arguably the most widely-used "nonlinear" control technique in industry precisely because it isn't really nonlinear; it's a clever use of linear tools. You pick a scheduling variable (airspeed, throttle, rotor speed, temperature), tune linear controllers at several operating points, and interpolate the gains as the variable moves.

Kp(θ)  =  Kp,0  +  (Kp,1 − Kp,0) · θ    (linear schedule, θ ∈ [0,1])
reference (step) fixed controller (tuned at θ = 0.5) scheduled controller
Operating point θ0.50
Plant parameter spread
FIG VClosed-loop step response of a plant K(θ) / (τ(θ)s + 1) whose gain and time constant vary with the operating point θ. The red trace uses a single PI controller tuned at θ = 0.5; the teal trace adjusts its gains with θ. Slide θ to extremes to watch the fixed controller oscillate or drag.

Where it shows up

  • Aircraft flight control. Gains scheduled on Mach number, dynamic pressure, altitude.
  • Turbine & engine control. Fuel-flow gains scheduled on rotor speed and inlet pressure.
  • Power electronics. Compensator gains scheduled on duty cycle or input voltage.
  • Motor drives. Current-loop gains scheduled on operating point: saturation, temperature, speed.
  • Process industries. PID gains scheduled on production rate or ambient temperature.

Practical notes

  • The scheduling variable must be measurable and should vary slowly relative to the closed-loop bandwidth. Fast variations violate the quasi-LTI assumption.
  • Hidden coupling hazard: nothing guarantees stability between scheduling points. Always simulate through trajectories, not just at design points.
  • Gain scheduling composes beautifully with feedforward (§I): schedule your FF maps too.
  • In AUTOSAR-compliant embedded code, schedules are implemented as LUTs with linear interpolation. Keep the LUT dense enough that the interpolation error is below the gain tuning margin.

Section VI

The Step Response

The step response is the most-used diagnostic in all of control. Feed a system a sudden jump at its input and watch what comes out. In that single trace you can read almost everything about the closed loop: rise time (how fast it gets going), overshoot (how badly it oscillates past the target), settling time (how long until it's done ringing), and steady-state error (whether it ever gets there exactly).

For a canonical second-order underdamped system with natural frequency ωₙ and damping ratio ζ, these metrics have clean closed-form expressions:

Mp = e−ζπ/√(1−ζ²)   ·   tp = π / (ωn√(1−ζ²))   ·   ts ≈ 4 / (ζωn)

The trade-off is unavoidable: fast rise ↔ more overshoot ↔ longer settling. These three metrics live on one Pareto curve, and a controller designer's job is to pick a point on that curve. The figure below is the classic second-order step response, annotated live with the standard metrics.

reference output y(t) ±2% band
Natural frequency ωₙ (rad/s)2.0
Damping ratio ζ0.30
FIG VISecond-order step response G(s) = ωₙ²/(s² + 2ζωₙs + ωₙ²). Annotated with overshoot Mp, peak time tp, and 2 % settling time ts. Try ζ = 0.707 for the classic "critically underdamped" design point.

Where it shows up

  • Spec sheets and requirements. Overshoot/rise-time/settling-time are the universal language of servo requirements.
  • PID tuning methods. Ziegler-Nichols reaction-curve, Cohen-Coon, and the IMC tunings are all step-response-based.
  • Regression testing. Nightly CI step-response tests catch drift in controller performance across firmware revisions.
  • Commissioning. The first check on any new servo: does the step response meet spec?

Practical notes

  • The step input must be large enough to dominate noise but small enough not to saturate the actuator. A 10 %–20 % of full scale is usually right.
  • Real systems rarely have just a pole pair; zeros distort the response. A nearby LHP zero accelerates rise and boosts overshoot; a RHP zero causes inverse response (§IV).
  • Settling within 2 % is the common engineering spec. For precision servos, 1 % or even 0.1 % bands matter.
  • In MATLAB, stepinfo() gives you all of these metrics in one line.

Section VII

Nichols, Nyquist & Bode: Three Views of One Loop

Every LTI transfer function has a frequency response L(jω), a complex number at each frequency. You can draw that same information three different ways, and each one makes a different design question easy. The Bode plot stacks magnitude (in dB) and phase (in degrees) against log ω. The Nyquist plot is the path of L(jω) in the complex plane as ω runs from 0 to ∞. The Nichols chart puts phase on the x-axis and magnitude-in-dB on the y-axis.

They are the same object, drawn three ways. Which view you pick depends on the question:

Bode (mag & phase)
Nyquist
Nichols
Loop gain K1.0
Second pole p₂5.0
FIG VIIThe same loop transfer function L(s) = K / [s·(s+1)·(s+p₂)] rendered three ways. The red dot marks the Nyquist critical point (−1, 0). Watch all three diagrams move together as you change K; each one tells you a different thing, but there's only one underlying L(jω).

Where each shines

  • Bode: loop shaping, PID tuning, reading gain/phase margins, identifying plant from data.
  • Nyquist: stability proofs, systems with RHP poles, conditionally-stable loops, passivity analysis (§X).
  • Nichols: QFT (Quantitative Feedback Theory) design, aerospace loop-shaping where closed-loop M-circles matter.

Practical notes

  • A gain margin of 6 dB and a phase margin of 45° are the traditional targets. Anything tighter and real-plant variation will bite.
  • Bode plots lie about stability when the plant has RHP poles. Always check the Nyquist when in doubt.
  • Nichols makes the bandwidth-overshoot trade-off visual: the loop curve tangent to the M = 1.3 contour picks your resonant peak.
  • Modern tools (MATLAB margin, nyquist, nichols) draw all three automatically from a single tf or ss object.

Section VIII

A Better Way to Think About a Notch Filter

A notch filter is a narrow frequency killer. It passes everything except a tight band around a specific frequency ωₙ, where it slams the magnitude down, ideally to zero. Used everywhere: to remove mains hum (50/60 Hz), to suppress a mechanical resonance that your servo loop is about to excite, or to null out a tonal noise source.

The usual textbook way to think about a notch is "two zeros on the imaginary axis, two nearby poles". That's correct but not very illuminating. A more useful framing, the one Brian Douglas uses in his Part 5 video, is to see a notch as an inverted oscillator:

Hnotch(s)  =  s² + 2ζzωns + ωn² s² + 2ζpωns + ωn²

Numerator and denominator are both the same resonant polynomial, with only the damping term different. When ζz < ζp, the numerator dips deeper than the denominator near ωₙ, producing the notch. When ζz = 0, the zero is exactly on the imaginary axis and the notch is infinitely deep. The ratio ζzp sets depth; ζp alone sets width.

notch |H(jω)| in dB 0 dB line
Notch frequency ωₙ (rad/s)10.0
Zero damping ζ_z (depth)0.02
Pole damping ζ_p (width)0.3
FIG VIIIBode magnitude of a second-order notch. Pull ζz toward zero for a deep null; increase ζp for a wider notch. The shape at low and high frequencies remains flat at 0 dB; only the local behavior near ωₙ changes.

Where it shows up

  • Motor drives. Notching out mechanical torsional resonances before the current loop excites them.
  • Disk drives and optical pickups. Notching sled-mode resonances to keep tracking servos stable.
  • Power electronics. Notching at the switching frequency when feedback must be taken before the output filter.
  • Audio & instrumentation. Removing 50/60 Hz mains hum from ECG, EEG, seismometers, etc.
  • Vibration isolation on optical benches, lithography stages, and satellite pointing systems.

Practical notes

  • A notch costs phase everywhere, not just at ωₙ. The wider the notch, the more phase it robs from the rest of the loop, and you may lose stability at crossover.
  • Resonance frequencies drift with temperature, loading, and aging. A too-narrow notch misses the moving target. Adaptive notches are the right answer when the resonance wanders.
  • Implemented discretely (bilinear transform), very deep notches near Nyquist frequency become numerically fragile. Use double precision or rescale.
  • When you see the Brian-Douglas "inverted oscillator" framing, you'll never look at a notch the same way again.

Section IX

The Gang of Six in Control Theory

A closed loop has more than one transfer function. Beginners think in terms of reference-to-output: what the plant does when you ask it to do something. But the real loop has multiple inputs (reference r, disturbance d, sensor noise n) and multiple signals you care about (output y, control u). The relationships between them are the gang of four:

S = 11+PC  ·  T = PC1+PC  ·  PS = P1+PC  ·  CS = C1+PC

Add a prefilter (a 2-DOF controller) and you get two more: the gang of six. Each transfer function governs a different performance question: S is disturbance rejection, T is reference tracking and noise transmission, PS is disturbance-to-output, CS is actuator effort. You cannot make all four small simultaneously. Bode's integral theorem forbids it. This is the waterbed effect: push down |S| here, it pops up there.

|S|: sensitivity |T|: compl. sensitivity |PS|: dist. to output |CS|: control effort
Proportional gain Kp2.0
Integral gain Ki1.0
FIG IXMagnitudes of the four closed-loop transfer functions for plant P = 1/(s+1) under PI control C = Kp + Ki/s. Watch the waterbed: pushing Kp down flattens |S| at low frequency but lifts |T| and |CS| at high frequency. You design the loop by trading these curves against one another.

What each curve tells you

  • |S| low at low ω → good disturbance rejection. Peak of |S| bounds worst-case amplification; keep below 6 dB.
  • |T| low at high ω → good noise rejection. Bandwidth of |T| = closed-loop bandwidth.
  • |PS| → how much a disturbance at the plant input shows up at the output.
  • |CS| → how hard the actuator works. If this peaks anywhere, actuator saturation is likely.

Practical notes

  • H and μ-synthesis are essentially tools to shape all four curves simultaneously against weighted specs.
  • The peak of |S| is a robustness measure: MS ≤ 1.4 → loop stays stable for ≥ 30 % plant variation.
  • Don't declare victory just because |T| meets the reference-tracking spec. Check |CS| against your actuator's bandwidth and |PS| against expected disturbance spectra.
  • In a 2-DOF controller (prefilter + feedback), the gang of four becomes the gang of six; two extra TFs capture how the prefilter shapes reference response without moving the disturbance paths.

Section X

Passivity-Based Control to Guarantee Stability

A system is passive if it cannot produce energy on its own. It can only store or dissipate the energy fed into it. The classical example is a collection of springs, masses, and dashpots: no matter how you push on it, it will not generate kinetic or potential energy from thin air. Passivity turns out to be an astonishingly powerful stability tool because of one beautiful fact:

That's a remarkable claim. You don't need to know the plant exactly: you don't need the mode frequencies, you don't need accurate damping estimates, you don't even need a model. If your plant is passive and your controller is strictly passive, the closed loop is stable. Full stop.

For linear systems, passivity has a clean frequency-domain test: the Nyquist plot must lie entirely in the closed right-half plane, which equivalently means Re{G(jω)} ≥ 0 at every frequency. Non-collocated sensor/actuator pairs tend to violate this; collocated pairs tend to preserve it.

collocated (passive) non-collocated (not passive) Re = 0 (passivity boundary)
Second mode ratio ω₂/ω₁3.0
Modal damping ζ0.05
FIG XNyquist plots of a two-mode flexible structure. The teal curve (collocated sensor-actuator pair, modes summed) stays entirely in the right-half plane: passive, and stable under any passive controller. The red curve (non-collocated, modes differenced) wraps around the origin into the left-half plane and loses passivity; its stability is now model-dependent.

Where it shows up

  • Flexible structures: satellites, aircraft wings, robotic arms, large antennas. Collocated rate feedback is the textbook "always stable" controller.
  • Robot manipulators: passivity-based control (Ortega & Spong) is the foundation of many industrial torque-control schemes.
  • Teleoperation. The only rigorous way to guarantee stability with arbitrary communication delay.
  • Power grid and microgrids. Passivity-based droop control for inverters, converters.
  • Haptics. Ensuring a human-in-the-loop controller cannot extract energy from the operator.

Practical notes

  • Collocation is (almost) enough: a velocity sensor and a force actuator at exactly the same point on a flexible structure yield a passive map. Non-collocation breaks passivity.
  • Any finite delay breaks passivity. In sampled-data systems, care must be taken that the discrete controller remains passive; this is hard near Nyquist frequency.
  • Passivity is more restrictive than stability. You trade some achievable bandwidth for an iron-clad stability guarantee.
  • For nonlinear systems, the tool is the storage function: find a positive-definite V(x) such that V̇ ≤ u·y, and you have a Lyapunov-like stability certificate.

Coda

Synthesis & Use Cases

These ten ideas are not ten separate topics. They're one interconnected story about closed-loop design told from ten different angles:

  1. Delay (§II) is transcendental and erodes phase margin, so we rationalize it via Padé (§III), which introduces RHP zeros, which is exactly non-minimum phase (§IV).
  2. NMP plants have hard bandwidth limits, so we reach for feedforward (§I) to get around the feedback limit. But FF that inverts an NMP plant is unstable, so we come back to feedback.
  3. When the plant is simply nonlinear, we don't need new control theory; we use gain scheduling (§V) to deploy many linear controllers across the operating envelope.
  4. The step response (§VI) is how we measure whether any of this actually worked. Rise time, overshoot, settling time are the acceptance tests.
  5. The frequency-domain picture comes in three flavors (§VII): Bode to design, Nyquist to prove stability, Nichols to hit bandwidth specs. They're the same L(jω), three ways.
  6. When a resonance threatens crossover stability, a notch filter (§VIII), best understood as an inverted oscillator, surgically removes the offending frequency.
  7. The real closed-loop design game is shaping the gang of six (§IX), not just reference-to-output. The waterbed effect forbids making everything small, so you trade.
  8. When the plant is genuinely unknowable (a flexible structure with hundreds of modes), passivity (§X) provides stability that survives arbitrary unmodeled dynamics: the ultimate robustness guarantee.

The controllers that work in production use all ten ideas in balance: feedforward for nominal performance, feedback for robustness, gain scheduling for nonlinearity, Padé or native sample-shift for delay modeling, notches for resonances, Nichols/Bode for design, step-response metrics for acceptance, the gang-of-six for trade-off analysis, and passivity where model uncertainty is overwhelming. Good controllers don't beat any of these constraints. They live inside them gracefully.

Screencast Companion

All ten concepts in this monograph are treated at video length by Brian Douglas in the MATLAB Tech Talks, Control Systems in Practice series. The cards below are arranged in the same order as the chapters of the monograph; each links to the matching episode.

References & Further Reading

  1. K. J. Åström & R. M. Murray, Feedback Systems: An Introduction for Scientists and Engineers, 2nd ed. (Princeton Univ. Press, 2020). See Ch. 11 (frequency domain) and Ch. 14 on fundamental limits; the canonical treatment of NMP bandwidth bounds.
  2. G. C. Goodwin, S. F. Graebe & M. E. Salgado, Control System Design (Prentice Hall, 2001). Chs. 8 & 24 cover minimum-phase vs non-minimum-phase design trade-offs at length.
  3. O. J. M. Smith, "A controller to overcome dead time," ISA Journal, vol. 6, no. 2, pp. 28–33, 1959. The original Smith predictor paper.
  4. G. A. Baker & P. Graves-Morris, Padé Approximants, 2nd ed. (Cambridge Univ. Press, 1996). Rigorous mathematical treatment; Ch. 1 is enough for most control engineers.
  5. R. W. Erickson & D. Maksimović, Fundamentals of Power Electronics, 3rd ed. (Springer, 2020). Ch. 8–9 derive the RHP zero of boost-family converters from first principles.
  6. W. Leonhard, Control of Electrical Drives, 3rd ed. (Springer, 2001). Feedforward voltage decoupling in field-oriented control.
  7. D. E. Seborg, T. F. Edgar, D. A. Mellichamp & F. J. Doyle III, Process Dynamics and Control, 4th ed. (Wiley, 2016). Industrial-practice treatment of delay and feedforward-plus-feedback cascades.
  8. J. Doyle, B. Francis & A. Tannenbaum, Feedback Control Theory (Macmillan, 1992). The Bode integral and sensitivity-trade-off viewpoint on NMP systems.
  9. H. Bode, Network Analysis and Feedback Amplifier Design (Van Nostrand, 1945). The original source for the phrase "minimum phase" and the gain–phase relation.
  10. B. Douglas, Control Systems in Practice [video series], MATLAB Tech Talks, The MathWorks. Companion episodes for each of the four concepts above are linked in the screencast section (p. vi).