Book explainer · Control theory

Constructive Nonlinear Control

A guided tour of R. Sepulchre, M. Janković & P. Kokotović, Constructive Nonlinear Control, Springer (1997) — written for engineers who know linear control and calculus, and want the mechanisms, not the folklore.
The one-sentence summary. For nonlinear systems, a stabilizer you can trust is one that arrives together with its Lyapunov certificate; this book is a toolbox for manufacturing both at once, by exploiting the system's triangular structure — with passivity as the common thread and optimality as the guarantee of robustness margins.

1 · Why “constructive”?

Linear control is a mature engineering discipline: given a model $\dot x = Ax + Bu$, you can systematically produce a stabilizer — pole placement, LQR, $H_\infty$ — and the procedure tells you how robust the result is (gain and phase margins). Nonlinear control, by contrast, has long been split into two halves that don't cooperate:

Geometry (Isidori, Nijmeijer–van der Schaft) Reveals structure: relative degree, zero dynamics, coordinate transformations, normal forms. But taken alone it guarantees no stability margins — a design that exploits an exact cancellation breaks on the first modeling error.
Analysis (Lyapunov, Khalil) Can certify a given closed loop, and converse theorems guarantee that a Lyapunov function exists for every asymptotically stable system. But existence is not construction: nobody tells you how to find the function.

The 1997 book closes the gap with a toolkit attitude: instead of one universal method, it builds a family of design procedures — recipes that take a system of a known structure and output two things at once: the feedback law and the Lyapunov function that certifies it. That pairing is the meaning of “constructive”: the certificate is manufactured by the same steps that produce the controller, so robustness is a by-product of the design, not an afterthought.

Why this matters A stabilizer without a certificate is a leap of faith: you can simulate it, but you don't know what happens outside the simulated trajectories. A stabilizer with a Lyapunov function carries quantitative guarantees — region of attraction, decay rates, and (as Chapter 3 shows) stability margins against unmodeled dynamics.
GEOMETRYstructure discovery:
relative degree, zero dynamics,
triangular forms
CONSTRUCTIONrecursive procedures output
feedback law + Lyapunov function
together
ANALYSISpassivity, ISS, optimality
→ margins & robustness
feedback loop: analysis makes the geometry robust; geometry makes the analysis constructive
Figure 1 — The constructive program. Structure tells the designer what to build; analytic tools certify why it survives imperfect models. Every design in the book is a round trip through these three boxes.

The book's architecture follows the tools (chapter numbers in parentheses): passivity as the basic certificate (Ch. 2), stability margins through inverse optimality (Ch. 3), cascade interconnections and the ISS glue that holds them (Ch. 4), Lyapunov functions assembled from pieces — including a “cross-term” (Ch. 5), and the two recursive engines, backstepping and forwarding, plus their combination (Ch. 6). Two structural classes drive everything: systems that are lower-triangular in the state (“strict feedback”) and systems that are upper-triangular (“strict feedforward”).

Takeaway“Constructive” means the design procedure emits the feedback law and its Lyapunov certificate in the same recursion — geometry picks the scaffold, analysis guarantees the welds.

2 · The language: relative degree, zero dynamics, and what feedback can't change

Before any design, the book fixes a vocabulary. Everything is phrased for systems affine in the input with a chosen output:

$$\dot x = f(x) + g(x)\,u, \qquad y = h(x), \qquad x\in\mathbb{R}^n,\; u,y\in\mathbb{R}^m$$

where $x$ is the state, $u$ the input, $y$ the output (a signal we choose to measure/define — the choice of $h$ is part of the design, a point that recurs throughout). The Lie derivative notation $L_f h(x) = \frac{\partial h}{\partial x}f(x)$ means “rate of change of $h$ along the vector field $f$”; $L_gL_f h$ means differentiate $h$ along $f$, then along $g$.

Why an output at all? Stabilization is the task, so why introduce $y$? Because the output is the handle through which the book's master tool — passivity — works: passivity is a property of a pairing between input and output. Choosing $y = h(x)$ wisely is half of every design.

Relative degree — the number of integrators between $u$ and $y$

The system has relative degree $r$ at $x=0$ if differentiating $y$ repeatedly makes $u$ appear for the first time at the $r$-th derivative, i.e. $L_gL_f^{\,k}h \equiv 0$ for $k \lt r-1$ and the matrix $L_gL_f^{\,r-1}h(0)$ is nonsingular. For a linear system this is exactly the number of integrators between input and output: the excess of poles over zeros. A double integrator $\ddot y = u$ has relative degree 2: the input needs two differentiations of the output to show up.

Normal form and zero dynamics — what hides behind the output

When the relative degree is well defined, a coordinate change $(z,\xi) = (T(x),\,\text{outputs})$ brings the system to its normal form: a chain of $r$ integrators from $u$ to $y$, plus internal states $z$. The zero dynamics are the dynamics of $z$ when the output is held at zero ($y \equiv 0$) — the motion the system executes while looking perfectly calm from the outside. The system is minimum phase if those hidden dynamics are asymptotically stable, and weakly minimum phase if they are merely Lyapunov-stable.

$u$
$\dot\xi_r = v$input channel
(feedback lives here)
$\tfrac{1}{s}$
$\tfrac{1}{s}$
$y = h(x)$
zero dynamics: $\dot z = f_{\rm zd}(z) = q(z,0)$
$r$ integrators, here $r=3$
hidden states — driven by the
constraint $y\equiv 0$, untouched by $u$
Figure 2 — Normal form. Feedback sees the output channel: it can reshape how $y$ responds (the $\dot\xi_r = v$ line), but the relative degree $r$ and the zero-dynamics block are invariant — no feedback $u(\cdot)$ can add, remove, or alter them. They are the system's fingerprints.
Why these two objects decide everything Any feedback $u = \alpha(x) + \beta(x)v$ multiplies the input channel by a nonsingular factor and adds offsets — it changes neither how many integrators separate $u$ from $y$, nor the vector field that runs when $y \equiv 0$. They are the nonlinear analogue of “zeros can't be moved by feedback” in classical control. Every limitation derived later (Section 4) and every structural case split (Sections 8–10) flows from this invariance.
TakeawayRelative degree and zero dynamics are feedback-invariant fingerprints; any design method must live within what they allow.

3 · Passivity: energy as a Lyapunov certificate (Ch. 2)

The book's common thread starts with a physical observation the authors make with disarming candor: think of baking a potato in a microwave — as long as it doesn't burn, the potato's energy can increase only by what the oven supplies. Systems with that property are called dissipative; the special case where the supplied “power” is the product $u^{\!\top}y$ is called passivity.

Why passivity? Because the definition smuggles in a Lyapunov function for free. If a storage function $S(x) \ge 0$ exists with $\dot S \le u^{\!\top}y$ along all trajectories, then $S$ is a Lyapunov candidate — and the feedback $u=-y$ makes $\dot S \le -y^{\!\top}y \le 0$. Stabilization by pure dissipation, no model cancellation anywhere.
$$\textbf{Dissipativity (Def. 2.1):}\quad S(x(T)) - S(x(0)) \;\le\; \int_0^T w\big(u(t),y(t)\big)\,dt \qquad\Longleftrightarrow\qquad \dot S \le w(u,y)$$ $$\textbf{Passivity (Def. 2.2):}\quad w(u,y) = u^{\!\top}y \quad\Longrightarrow\quad \dot S \le u^{\!\top}y$$

$S$ is the storage function (think: energy stored in the system); $\int w\,dt$ is the energy supplied from outside. The available storage $S_a(x) = \sup_{u,T}\big[-\int_0^T w\,dt\big]$ — the most energy you could ever extract from state $x$ — is itself the smallest storage function; any other $S \ge S_a$.

For the affine systems used in designs, passivity has a differential characterization that is the nonlinear cousin of the Kalman–Yakubovich–Popov lemma:

$$\text{passive with storage } S \;\Longleftrightarrow\; L_f S(x) \le 0 \;\;\text{and}\;\; L_g S(x) = h(x)^{\!\top} \quad\text{(linear: } PA + A^{\!\top}P \le 0,\; B^{\!\top}P = C\text{)}$$

$L_fS \le 0$ says the unforced system never generates energy; $L_gS = h^{\!\top}$ says the input enters exactly along the gradient of the storage — the input port is “collocated” with the energy gradient. The second identity is what makes $y$ a natural output: it is the direction in state space in which $u$ does work on the system.

$S=0$
trajectories may only
cross level sets inward
The dissipation inequality $\dot S \le u^{\!\top}y$ is a power balance:
rate of stored energy ≤ power injected at the port
$$\underbrace{\dot S}_{\text{storage rate}} \;\le\; \underbrace{u^{\!\top}y}_{\text{supplied power}}$$
Shut the port: $u = -y$ (dissipative feedback) gives
$$\dot S \;\le\; -\,y^{\!\top}y \;\le\; 0$$
every joule of output is a joule of storage burnt
Figure 3 — Passivity as a one-way energy valve. Level sets of the storage function can be crossed only inward (or not at all when the port is closed). With $u=-y$ the system feeds its own output back as negative work: the loop dissipates its storage to zero.

Interconnections: passivity composes

Why engineers should care about a definition: passive blocks compose. The parallel connection of two passive systems is passive (storages add), and the negative-feedback interconnection of two passive systems is passive (the loop's supply telescopes: $u_1^{\!\top}y_1 + u_2^{\!\top}y_2$ with $u_1 = -y_2,\, u_2 = y_1$ cancels). The book also grades passivity: a system can have an excess or shortage of passivity, written OFP($-\alpha$) / IFP($\rho$) — a shortage of $\alpha$ in the output channel is exactly a disk margin in disguise (Section 5).

$H_1$: passivestorage $S_1$
$H_2$: passivestorage $S_2$
$u_1$
$y_1$
$y_2 = u_1$
$u_2 = -y_1$
loop storage $S_1+S_2$: the supply terms telescope to zero ⟹ the closed loop is passive with no external supply
Figure 4 — Feedback of passive blocks is passive. Cross-injecting outputs makes the two supply terms cancel, so the composite storage $S_1+S_2$ satisfies the dissipation inequality with no external supply. Compositionality is what makes passivity a design language, not merely an analysis tool.

Stability from passivity

With the port closed by $u = -y$, the storage is nonincreasing; stability follows if $S$ is positive definite, and asymptotic stability needs one extra property: ZSD (zero-state detectability — the only solution that keeps $y \equiv 0$ while $u \equiv 0$ is $x \equiv 0$). This is Theorem 2.28, proved by LaSalle's invariance principle: $\dot S \le -y^{\!\top}y$ confines trajectories to the set $\{y = 0\}$, and ZSD says nothing can loiter there except the origin.

Worked example — damped pendulum with a collocated motor

$\dot x_1 = x_2,\quad \dot x_2 = -\sin x_1 - x_2 + u,\quad y = x_2$

Motivation for this choice of output: the velocity is the variable along which the motor does work, so we expect an energy balance. Take the physical energy as storage $S = \tfrac12 x_2^2 + 1 - \cos x_1 \ge 0$. Differentiate along the dynamics (chain rule, then the $\sin$ terms cancel — that cancellation is the KYP condition $L_gS = h$):

$$\dot S = x_2\dot x_2 + \sin x_1\,\dot x_1 = x_2(-\sin x_1 - x_2 + u) + \sin x_1\, x_2 = -y^2 + u\,y.$$

So the pendulum is passive with excess $-y^2$ (it is OFP: strictly dissipative even at $u=0$). Closing the loop with $u = -ky$, $k>0$: $\dot S = -(1+k)y^2 \le 0$. By LaSalle, trajectories converge to the largest invariant set inside $\{y=0\}$; there $y \equiv 0$ forces $x_2 \equiv 0$ and $\dot x_2 = -\sin x_1 = 0$, so the invariant set is the two equilibria $x_1 = 0$ (hanging) and $x_1 = \pm\pi$ (upright), and the energy level $S < 2$ excludes the upright one — within that basin, $x=0$ is GAS. No cancellation of the nonlinearity $\sin x_1$ was needed or performed — the damping injection $u=-ky$ is robust to everything the model got wrong about gravity.

Pendulum phase portrait under damping injection with energy level sets
WOLFRAMFigure 3b — Theorem 2.28 in action. Closed loop $u = -y$ ($k=1$, motor friction 0.2), computed by numerical integration of the vector field (streamlines, blue) over the level sets of the storage $S$ (dashed). Every trajectory crosses the level sets strictly inward — $\dot S = -(1+k)y^2 < 0$ off $\{y=0\}$ — and spirals into the origin (green); the upright equilibria $\pm\pi$ (orange) are the invariant-set caveat inside which LaSalle cannot distinguish, excluded by the energy level $S=2$.
TakeawayPassivity turns an energy audit into a stabilizer: if the storage can only grow through the port, then plugging the port with $u=-y$ makes the stored energy a Lyapunov function.

4 · Feedback passivation — and the two doors it can't open (Ch. 2.4)

A plant is rarely passive as given. Feedback passivation asks: can a feedback transformation $u = \alpha(x) + \beta(x)v$, with $\beta$ invertible, make the system passive from the new input $v$ to the same output $y$? If yes, the recipe above finishes the job with $v = -\kappa y$. The book's central structural result — Theorem 2.47 — says exactly when this is possible:

$$\textbf{Theorem 2.47:}\quad \text{feedback passive with a } C^2 \text{ p.d. storage} \iff \begin{cases}\text{relative degree one at } x=0\\ \text{weakly minimum phase}\end{cases}$$
Why these two conditions — the mechanism In the normal form $\dot z = q(z,\xi),\; \dot\xi = a(z,\xi) + b(z,\xi)u$, passivation with storage $S = W(z) + \tfrac12\xi^{\!\top}\xi$ forces (by differentiating $S$ and matching the $\dot S \le y^{\!\top}v$ inequality) the storage gradient to satisfy $L_gS = h^{\!\top}$, which pins $S$'s $\xi$-part to exactly $\tfrac12\xi^{\!\top}\xi$ — a quadratic in the output only. The remaining freedom, the passivating feedback, can then only shape $\dot\xi$'s offset; it contributes nothing to the $z$-equations. So $W(z)$ must be a Lyapunov function for the zero dynamics already — feedback cannot create it — and the quadratic $\tfrac12\xi^2$ can only absorb the input at one step, hence relative degree one. Sufficiency is constructive: with $W$ given, the feedback $u = b^{-1}\big(-a - (L_pW)^{\!\top} + v\big)$ makes $\dot S \le y^{\!\top}v$ — the cross-terms cancel exactly, which is the small miracle that makes the whole book go round.

Both conditions are feedback-invariant (Section 2), so they are structural: they tell you not “this design fails” but “no design of this type can work.” The book illustrates both doors:

Door 1 — relative degree > 1

$\ddot y = u$ (double integrator), any output with two integrators in front

$\dot y$ does not contain $u$, so no static feedback makes $\tfrac12\xi^2$-style passivation work: the storage would need the term $\tfrac12\dot y^2$ whose derivative involves $\ddot y = u$ — the wrong sign, unfixable without reshaping the storage, which feedback can't do. Key to open it: backstepping (§8).

Door 2 — not minimum phase

$\dot x_1 = x_2,\; \dot x_2 = u,\; y = x_1 - x_2$

Relative degree one ($\dot y = x_2 - u$ contains $u$). But holding $y \equiv 0$ forces $x_1 = x_2$ and $u = x_1$, giving $\dot x_1 = x_1$: the zero dynamics escape. Any passive storage restricted to $y \equiv 0$ would be a Lyapunov function for $\dot x_1 = x_1$ — impossible. Key: forwarding (§9).

Worked example — the book's Example 2.48, in full

$\dot x_1 = x_1^2 x_2, \qquad \dot x_2 = u, \qquad y = x_2$

Step 0 — check the doors. $\dot y = \dot x_2 = u$: relative degree one ✓. Zero dynamics: setting $y \equiv 0$ gives $\dot x_1 = x_1^2 \cdot 0 = 0$ — stable but not attractive: weakly minimum phase ✓. The doors are open; passivation should work.

Step 1 — read off the normal form. Here $(z,\xi) = (x_1, x_2)$: $\dot z = 0 + \underbrace{z^2\xi}_{p(z,\xi)\xi}$, $\dot\xi = u$, $y = \xi$.

Step 2 — apply the passivating feedback. The zero-dynamics Lyapunov function is any $W = \tfrac12 z^2$ ($\dot W = 0 \le 0$ along $\dot z = 0$). The formula gives $u = -\big(L_pW\big)^{\!\top} + v = -z^3 + v$ (since $L_pW = z \cdot z^2 = z^3$), i.e. the transformed system

$$\dot x_1 = x_1^2x_2, \qquad \dot x_2 = -x_1^3 + v, \qquad y = x_2 \qquad\text{is passive: } S = \tfrac12x_1^2 + \tfrac12x_2^2,\;\; \dot S \le y\,v.$$

Step 3 — close the loop. $v = -y$: $\dot S = -y^2$; and $y \equiv v \equiv 0$ forces $x_2 = 0$, then $\dot x_2 = -x_1^3 = 0 \Rightarrow x_1 = 0$ (ZSD) — global asymptotic stability, certified by $S$. Note what was not done: the term $x_1^2x_2$ was never cancelled; the design only shaped the input channel and let the storage's cross-terms cancel.

feedback can reshape the input channel$u = \alpha(x) + \beta(x)v$ — the $\dot\xi$ line is ours to design
feedback cannot touchrelative degree $r$ · zero dynamics $\dot z = q(z,0)$
$\Rightarrow$ passivation works iff the doors are already open: relative degree one weakly minimum phase
recursive designs pick both locks (§8–§9)
Figure 5 — The two structural doors. Feedback owns one lane of the normal form (the input channel) and none of the other two. When the doors are locked — higher relative degree, or unstable zero dynamics — passivation fails for every feedback, and the search must move to procedures that change the question: recursive designs.
TakeawayFeedback passivation is possible exactly when the output already offers a relative-degree-one port onto stable hidden dynamics — otherwise the door must be opened recursively, which is what the rest of the book does.

5 · Stability margins and inverse optimality (Ch. 3)

A stabilizer tuned to the exact model is a museum piece. Linear control quantifies robustness with gain and phase margins; Chapter 3 builds the nonlinear heirs — sector and disk margins — and shows they are passivity in disguise: a loop has a disk margin precisely when a passivity shortage of the linear block fits inside the nonlinearity's sector. The punchline of the chapter is an economics result:

Why optimality ⟹ margins A feedback that is optimal for a cost $\int_0^\infty (l(x) + u^{\!\top}R(x)u)\,dt$ has no “wasted effort”: any perturbation of the loop can only increase the cost, and the quadratic penalty $u^{\!\top}Ru$ bounds how far the loop gain may drift before stability fails. Concretely (§3.4): an optimal stabilizer with $R(x)=I$ has disk margin $D(\tfrac12)$ — the loop stays stable for any gain in $(\tfrac12,\infty)$; with diagonal $R$, sector margin $(\tfrac12,\infty)$. Optimality is a certificate of robustness.

Inverse optimality: optimality without solving the HJB equation

Solving the Hamilton–Jacobi–Bellman PDE for a nonlinear plant is generally hopeless. Freeman–Kokotović's inversion flips the task: design first, certify second. The book's Definition (3.5.2): a stabilizer is inverse optimal if it has the gradient form

$$u = -k(x) = -\tfrac12 R^{-1}(x)\big(L_gV(x)\big)^{\!\top}, \qquad R(x)>0,$$

with $V$ positive (semi)definite and $\dot V \le 0$ already at the detuned gain $u = -\tfrac12 k(x)$ (condition 3.5.3: $L_fV - \tfrac12 L_gV\,k \le 0$). Then the trick: define

$$l(x) := -L_fV(x) + \tfrac12 L_gV(x)\,k(x) \;\;\ge 0 \qquad\text{and the HJB equation } \;\; l + L_fV - \tfrac14 (L_gV)R^{-1}(L_gV)^{\!\top} = 0$$

holds identically (substitute $k = \tfrac12R^{-1}(L_gV)^{\!\top}$: $l + L_fV = \tfrac14(L_gV)R^{-1}(L_gV)^{\!\top}$, exactly the HJB remainder). So the feedback is genuinely optimal for the cost with penalty $l(x)$ — a function that was never chosen, only certified. The practical moral: every gradient-form design with a Lyapunov function is automatically optimal for some meaningful cost, hence carries the disk/sector margin — the recursive designs of Sections 8–9 are built to land in exactly this form, $u = -L_gV$.

Worked example — the book's Example 3.38: cancellation has zero margin

$\dot x = x^2 + u$ — stabilize the origin globally

The cancellation design. Feedback linearization “sees” the destabilizer $x^2$ and erases it: $u_{\rm l} = -x^2 - x$, giving the deceptively clean $\dot x = -x$. Now perturb the loop gain, the cheapest imaginable modeling error — the implemented gain is $(1+\varepsilon)$ times the design:

$$\dot x = x^2 + (1+\varepsilon)\,u_{\rm l}(x) = -\varepsilon\, x^2 - (1+\varepsilon)\,x.$$

For any $\varepsilon \neq 0$ this has a finite-escape solution: for $\varepsilon > 0$ and $x < -\tfrac{1+\varepsilon}{\varepsilon}$, $\dot x < 0$ with $- \varepsilon x^2$ winning — $x \to -\infty$ in finite time (integrate $\dot x \approx -\varepsilon x^2$: blow-up at $t = 1/\varepsilon|x|$, quadratically divergent). The margin is zero.

The dominating (inverse optimal) design. $u^{*}(x) = -x^2 - x\sqrt{x^2+1}$, which dominates rather than cancels: $\dot x = -x\sqrt{x^2+1}$, and under loop-gain error $\dot x = -\varepsilon x^2 - (1+\varepsilon)x\sqrt{x^2+1}$ stays globally stable for every $\varepsilon > -\tfrac12$ (for $x<0$ both terms push $x$ up toward the origin). It also respects the nonlinearity: for $x \to -\infty$, $u^* \to \tfrac12$ — the plant's own $x^2$ already stabilizes on that side, so the controller spends almost nothing there. Same nominal closed-loop behavior, categorically different robustness. Try it:

Closed-loop responses: cancellation escapes, dominating survives
WOLFRAMFigure 6b — The margin, measured. $\dot x = x^2 + (1+\varepsilon)u(x)$ with $\varepsilon = 0.25$ (loop gain ×1.25), integrated numerically from $x(0)\in\{\pm0.5,\pm2,\pm7,\pm20\}$. Left: the cancellation design is globally stable only for the exact gain — the two trajectories starting below the threshold $x = -(1+\varepsilon)/\varepsilon = -5$ (orange) diverge to $-\infty$ in finite time. Right: the dominating (inverse optimal) design absorbs the same perturbation from every initial condition — its disk margin $D(\tfrac12)$ covers all gains above $\tfrac12$.
Demo A · Loop-gain perturbation: cancellation vs. domination
cancellation $u_{\rm l}=-x^2-x$ dominating $u^{*}=-x^2-x\sqrt{x^2+1}$

Closed loop $\dot x = x^2 + (1+\varepsilon)u(x)$ simulated (RK4) from $x(0) \in \{\pm 0.5, \pm 2, \pm 7, \pm 20\}$; a curve leaves the panel when $|x|>60$ (finite escape). At $\varepsilon = 0$ both designs look identical; any $\varepsilon \neq 0$ separates them. Presentation only — no claims are checked by this code.

$u(x)$
$x$
shaded: $\dot V>0$
(stability lost)
as $x\to-\infty$, $u^{*}\to\tfrac12$ — the helpful
nonlinearity works alone
shaded: $\dot V>0$
$u=-x^2$ — pointwise $0$-margin boundary cancellation $-x^2-x$: rides on the boundary, and sits in the third quadrant for $x<-1$ (effort wasted) dominating $-x^2-x\sqrt{x^2+1}$: keeps its distance
Figure 6 — Margin as distance from the cancellable boundary. For $\dot x = x^2+u$ with $V=\tfrac12x^2$, the derivative is $x(x^2+u)$: the parabola $u=-x^2$ is the exact boundary of pointwise stabilizability — safe side is $u\ge-x^2$ for $x<0$ and $u\le-x^2$ for $x>0$. The cancellation design rides on the parabola (any gain error pushes it across); the optimal design keeps a distance that grows with $|x|$.

Control Lyapunov functions: the target the recursions shoot for

The book's designs all manufacture functions of one special kind. $V$ is a control Lyapunov function (CLF) if it is positive definite, radially unbounded, and its derivative can be made negative by some feedback — for input-affine systems, the Artstein–Sontag condition: $L_gV(x)=0 \Rightarrow L_fV(x)<0$ for $x \neq 0$. When a CLF exists, Sontag's formula gives a universal stabilizer:

$$u_{\rm S}(x) \;=\; \begin{cases}-\dfrac{a(x) + \sqrt{a(x)^2 + \big(b^{\!\top}b(x)\big)^2}}{b^{\!\top}b(x)}\; b(x), & b \neq 0\\[2pt] 0, & b = 0\end{cases}\qquad a := L_fV,\;\; b := (L_gV)^{\!\top}$$

— smooth away from the origin, and of inverse-optimal form. The recursive procedures of Sections 8–10 are best read as CLF factories: each step extends a CLF of a subsystem into a CLF of the augmented system, so the certificate and the gradient-form feedback are produced in lockstep.

TakeawayDon't solve the HJB equation — design a stabilizer of the form $u=-\tfrac12R^{-1}(L_gV)^{\!\top}$ with a Lyapunov $V$, and optimality, disk margin, and the cost $l(x)$ all materialize retroactively.

6 · Cascades: the workhorse interconnection (Ch. 4)

Large systems decompose. The book's canonical decomposition is the cascade: a driving subsystem $\xi$, directly actuated, feeding a driven subsystem $z$ through an interconnection $\psi$:

$$\dot z = f(z) + \psi(z,\xi), \qquad \dot\xi = k(\xi) + Bu \qquad\text{(driven)}\qquad\text{(driving)}$$
$u \to \dot\xi = k(\xi) + Bu$
driving: actuated,
to be stabilized first
$\psi(z,\xi)$
interconnection:
the disturbance $\xi$ inflicts on $z$
$\dot z = f(z) + \psi(z,\xi)$
driven: no direct input
one-way: $z$ never talks back
partial-state feedback $u = k(\xi)$ ignores $z$ entirely — when is that enough?
Figure 7a — Cascade structure. The actuated subsystem is stabilized with its own state only; everything hinges on whether the driven $z$-subsystem survives the transient of $\xi$.
Why the answer is subtle Stabilizing $\xi$ makes the disturbance $\xi(t)$ converge to zero — but converging is not the same as harmless. The book's answer has two rungs. First, ISS (input-to-state stability): the $z$-subsystem is ISS if $\|z(t)\| \le \beta(\|z(0)\|,t) + \gamma\big(\sup_{\tau\le t}\|\xi(\tau)\|\big)$ — bounded inputs cause bounded states, vanishing inputs cause vanishing states. Its Lyapunov characterization (Thm 4.13): a positive definite $W$ with $\dot W \le -\chi_2(\|z\|)$ whenever $\|z\| \ge \chi_1(\|\xi\|)$ — “outside a $\xi$-dependent ball, storage drains.” Second, if ISS fails, a growth restriction on $\psi$ (linear growth in $z$, with GS of $\dot z = f(z)$) does the job. Both rungs say the same thing in different currencies: the transient of $\xi$ must not outrun the dissipativity of $z$.
Example 4.15 — ISS verified by completing squares

$\dot z = -z^3 + z^2\,\xi$

With $W = \tfrac12z^2$: $\dot W = -z^4 + \xi z^3$. The interconnection term $z^2\xi$ grows superlinearly in $z$ — the classical growth-restriction route is blocked. Young's inequality $\xi z^3 \le \tfrac34 z^4 + \tfrac14\xi^4$ gives $\dot W \le -\tfrac14 z^4 + \tfrac14\xi^4$: whenever $|z| \ge 2|\xi|$, $\dot W \le -\tfrac{15}{64}z^4 < 0$. That is exactly the ISS-Lyapunov condition, so any converging driver — for instance the driving subsystem $\dot\xi = \xi^2 u$ stabilized by $u = -\xi$, which gives $\dot\xi = -\xi^3$ — drags $z \to 0$: global stabilization certified despite the superlinear growth.

Peaking: when “make $\xi$ faster” backfires

The tempting shortcut — if $\xi$'s transient is the problem, make it vanish faster — is a trap, and the book dissects it with unusual care. Placing the eigenvalues of the $\xi$-subsystem at $-a$ gives $\|\xi(t)\| \le \gamma(a)\,\|\xi(0)\|e^{-at}$, but the transient bound $\gamma(a)$ grows polynomially in $a$ (even for the innocent-looking $\gamma(a) = a$: the peak of $ae^{-at}$ is $a/e$). Fast convergence is bought with tall transients — and a superlinear interconnection converts a tall enough transient into finite-time escape of $z$:

Example 4.29 — the peaking escape

$\dot z = -z^3 + \xi_2^2z^3, \qquad \dot\xi_1 = \xi_2, \qquad \dot\xi_2 = -a^2\xi_1 - 2a\,\xi_2$

The $\xi$-pair is a critically damped oscillator with both eigenvalues at $-a$; from $\xi_1(0)=1, \xi_2(0)=0$ its velocity is $\xi_2(t) = -a^2te^{-at}$, peaking at $ae^{-1}$ — growing linearly in the decay rate. The $z$-equation solves exactly: $\frac{d}{dt}\big(\tfrac{1}{z^{2}}\big) = 2\big(1-\xi_2^2\big)$, so

$$\frac{1}{z^{2}(t)} \;=\; \frac{1}{z^{2}(0)} \;+\; t \;-\; \int_0^t \xi_2^2(\tau)\,d\tau \qquad\text{— escape the moment the sum hits } 0.$$

By the peak time $t_p = 1/a$ the accumulated burn is $\int_0^{t_p}\xi_2^2 \approx a/4$, while the refund is only $t_p + z^{-2}(0) = a^{-1} + z^{-2}(0)$. For any $z(0)$, a large enough $a$ makes the ledger negative: $z$ escapes to infinity before $\xi$ has finished converging. The domain of attraction shrinks as the gain grows. Conclusion: growth restrictions on $\psi$ are not pedantry — they are the exact accounting of who wins the race between $\xi$'s transient and $z$'s dissipation. (Design consequence: either keep gains moderate — semiglobal results — or use designs, like forwarding with saturation, that never let the driven subsystem see the peak.)

Peaking: responses per gain and shrinking domain of attraction
WOLFRAMFigure 7c — The peaking ledger, computed from the exact solution. The $z$-equation has the closed form $\mathrm{d}(z^{-2})/\mathrm{d}t = 2(1-\xi_2^2)$ used above, so no simulation is needed. Left: $z(t)$ from $z(0)=1$ for the three gains: $a=2$ (green) barely notices the driver; $a=6$ (blue) is thrown to $z \approx 3.3$ before crawling back — its transient is amplified by the faster driver; $a=18$ (orange) leaves the plot at $t \approx 0.046$ — escape. Right: the exact critical initial value $z^*(a)$ — the ledger touches zero exactly at $z(0)=z^*$ — falls to zero as the gain grows: the book's conclusion, quantified.
$\xi_2(t) = a^2t\,e^{-at}$
peak $\propto a/e$ grows with the
requested decay rate $a$
$t$
Figure 7b — The peaking transient. Faster eigenvalues ($a = 2, 6, 18$, drawn to a common scale) mean shorter-lived but taller transients: convergence speed is purchased with peak amplitude, and a superlinear interconnection $\psi$ converts the peak into finite-time escape of the driven state.

Case study: the TORA benchmark (§4.4)

The book's running physical example is the Translational Oscillator with Rotating Actuator: a platform of mass $M$ on a spring, with an eccentric mass $m$ rotating on it. The motor torque $u$ is the only actuation, and it influences the platform only through the reaction force of the whirling eccentric mass — a physically literal cascade.

platform $M$, position $q$
eccentric mass $m$,
radius $e$, angle $\theta$
spring $k$ · frictionless · torque $u$ on the rotor
rotor: $\dot x_3 = x_4$,
$u \to \dot x_4$
driving subsystem ($\xi$)
platform: $\dot z_1 = z_2$
$\dot z_2 = -z_1 + \varepsilon\sin z_3$
driven subsystem ($z$)
reaction force $\varepsilon\sin z_3$ couples the rotor angle
into the platform; $\varepsilon$ set by the eccentricity (≈ 0.1)
Cascade coordinates $z_1 = x_1 + \varepsilon\sin x_3,\ z_2 = x_2 + \varepsilon x_4\cos x_3$ split the model into the two blocks above — §4.4 exploits two different splits of the same plant.
Figure 8 — TORA (Bernstein's benchmark). Left: the hardware — an eccentric rotor commandeers the platform through a reaction force. Right: in cascade coordinates the model splits into a conservative oscillator driven by $\varepsilon\sin z_3$ and an actuated rotor. The book designs three controllers for it (partial-state feedback, passivation, and a redesign), all avoiding cancellation of the coupling nonlinearity.
Worked design — TORA by feedback passivation (Example 4.27, condensed)

With $z=(z_1,z_2,z_3)$, $\xi = x_4$ and the feedback linearizing $\dot\xi = v$, the cascade is $\dot z_1 = z_2,\; \dot z_2 = -z_1 + \varepsilon\sin z_3,\; \dot z_3 = \xi,\; \dot\xi = v$. The $z$-subsystem with $\xi$ frozen is a conservative oscillator with potential $\tfrac12(z_1-\varepsilon\sin z_3)^2$, so take

$$W(z) = \tfrac12\big(z_1-\varepsilon\sin z_3\big)^2 + \tfrac12z_2^2 + \tfrac{k_1}{2}z_3^2 \;\;(W\text{ p.d., radially unbounded}), \qquad \dot W = 0 \;\;\text{(GS, not GAS)}.$$

The interconnection into $z$ is $\psi = (0,0,\xi)$, so $L_\psi W = \big(k_1z_3 - (z_1-\varepsilon\sin z_3)\,\varepsilon\cos z_3\big)\xi$, and the passivating feedback $v = -L_\psi W + w$ yields the storage $V = W + \tfrac12\xi^2$ with $\dot V = \xi w$ — passive by construction. ZSD holds (working through $\xi \equiv 0, w \equiv 0$ forces $z_3 \to$ const, then $z_1 = \varepsilon \sin z_3$, then $z_2 = 0$, then the constraint forces $z_3 = 0$); the final loop $w = -k\xi$ gives GAS with the disk margin of an inverse optimal design. The nonlinearity $\varepsilon\sin z_3$ is never cancelled — only its passivity quotient is used.

TakeawayA cascade is only as stabilizable as the driven subsystem's tolerance of the driver's transient: ISS (or a growth restriction) is the currency, and peaking is what happens when you spend more speed than the driven side can absorb.

7 · Composite Lyapunov functions and the cross-term (Ch. 5)

Everything so far needs a Lyapunov function for the whole cascade, not just its pieces. The naive composite $V = W(z) + U(\xi)$ fails for a simple reason: differentiate it.

Why the naive composite fails $\dot V = \underbrace{L_fW}_{\le 0} + \underbrace{L_\psi W}_{\text{sign-indefinite!}} + \underbrace{\dot U}_{\le 0}$. The interconnection term $L_\psi W = \frac{\partial W}{\partial z}\psi(z,\xi)$ is the rate at which the driver pumps energy into $z$ — it can be positive, and no choice of $U$ can fix it because it lives in the wrong coordinate.

The Chapter 5 remedy is to add a third piece with a precise job description: find $\Psi(z,\xi)$ — the cross-term — such that its derivative exactly absorbs the interconnection's work: $\dot\Psi = -L_\psi W$ along the cascade. Such a $\Psi$ is not guessed; it is integrated along the trajectories of the unforced cascade $(\tilde z, \tilde\xi)$ starting at $(z,\xi)$:

$$\boxed{\;\Psi(z,\xi) \;=\; \int_0^{\infty} \big(L_\psi W\big)\big(\tilde z(s;z,\xi),\,\tilde\xi(s;z,\xi)\big)\,ds\;} \qquad\Longrightarrow\qquad V_0 = W(z) + \Psi(z,\xi) + U(\xi)$$

Why the integral converges: $\tilde\xi(s) \to 0$ exponentially, the driven trajectory $\tilde z(s)$ stays bounded, and $\partial W/\partial z$ is bounded along it — the integrand decays geometrically (this is Assumptions 5.1–5.2 territory: GS of the driven subsystem with a radially unbounded $W$; GAS of the driver). Why $V_0$ works: along trajectories, $\frac{d}{dt}\big(W + \Psi\big) = L_fW + L_\psi W - L_\psi W = L_fW \le 0$: the cross-term has surgically removed the indefinite term. Theorem 5.8 then certifies that $V_0$ is positive definite and radially unbounded — the total stored energy of the cascade counting the energy currently on loan to the driver.

The physical reading $\Psi(z,\xi)$ is a ledger of borrowed energy: the total work $\psi$ will inflict on $z$ over the entire future, discounted by $z$'s ability to dissipate. $V_0 = W + \Psi + U$ says the cascade's energy is the stored part, the pledged part, and the driver's part — and the pledge is honest because $\xi$ is returning to zero.
$\big(L_\psi W\big)(t)$
$t=0$
From $(z,\xi)$, ride the unforced cascade $(\tilde z(s),\tilde\xi(s))$ …
$\Psi(z,\xi) = \int_0^\infty (L_\psi W)\,ds$ = total future work of $\psi$ on $z$
time along the cascade
… then stack the three ledgers into one certificate:
$W(z)$  — energy stored in the driven subsystem
$\Psi(z,\xi)$  — energy on loan from the driver (the cross-term)
$U(\xi)$  — energy of the driving subsystem
$V_0 = W + \Psi + U$: p.d., radially unbounded, $\dot V_0 \le L_fW + \dot U \le 0$
Figure 9 — The cross-term construction. Left: the integrand is the instantaneous work of the interconnection along the trajectory that starts at $(z,\xi)$. Right: $V_0$ augments the naive composite by exactly that pledged work, which is why its derivative loses the indefinite term.

Computing the cross-term

Two practical remarks the book is refreshingly honest about. Differentiability: $\Psi$ is continuous and p.d., but may fail to be $C^1$ (needed for $\dot\Psi$) unless extra growth/observability conditions hold; §5.3 develops relaxed constructions — e.g. the change of coordinates $\zeta = z + \int_0^\infty\!\!\ldots$ that folds the cross-term into a squared coordinate, $\Psi = \tfrac12(\zeta^2 - z^2)$-style, sidestepping smoothness. Computability: closed forms exist when the cascade solutions are explicit (linear driver, scalar $z$); otherwise $\Psi$ is a quadrature along trajectories — cheap enough to evaluate, hard to differentiate. This is the price of the method, and it shapes which systems the recursive designs of §8–9 target.

Worked example — a cross-term in closed form (the first step of §9's forwarding)

Cascade: $\dot x_2 = \psi(x_3) = x_3 + x_3^3, \qquad \dot x_3 = -x_3$  (the $x_3$-subsystem already stabilized by $u=-x_3$)

Motivation: $x_2$ is a pure integrator ($\dot x_2 = 0$ when $x_3 = 0$) — globally stable, but $\psi$ pumps $x_3$'s transient into it, so $V = \tfrac12x_2^2 + \tfrac12x_3^2$ has $\dot V = x_2(x_3+x_3^3)$ — sign-indefinite. Apply the construction with $W = \tfrac12x_2^2$, $U = \tfrac12x_3^2$.

Step 1 — the trajectory. $\tilde x_3(s) = x_3e^{-s}$ and $\tilde x_2(s) = x_2 + \int_0^s\psi(\tilde x_3)\,d\tau = x_2 + a(s)$ where $a(s) = x_3(1-e^{-s}) + \tfrac{x_3^3}{3}(1-e^{-3s})$.

Step 2 — the integral, done by a slick trick. Since $a'(s) = \psi(\tilde x_3(s))$, the integrand is $\tilde x_2(s)\,a'(s) = (x_2 + a)\,a'$:

$$\Psi = \int_0^\infty (x_2 + a)\,a'\,ds \;=\; x_2\,a(\infty) + \tfrac12 a(\infty)^2 \;=\; x_2\Big(x_3 + \tfrac{x_3^3}{3}\Big) + \tfrac12\Big(x_3+\tfrac{x_3^3}{3}\Big)^2$$

Step 3 — assemble. $V_0 = \tfrac12x_2^2 + \Psi + \tfrac12x_3^2 = \tfrac12\big(x_2 + x_3 + \tfrac{x_3^3}{3}\big)^2 + \tfrac12x_3^2$: the cross-term folds into a shifted square $\zeta_2 = x_2 + x_3 + x_3^3/3$ — the relaxed change of coordinates in action. Indeed $\dot\zeta_2 = \dot x_2 + (1+x_3^2)\dot x_3 = (x_3 - x_3^2u) + (1+x_3^2)u = x_3 + u$, which vanishes exactly when $u = -x_3$: the coordinate is constant along the stabilized cascade, as the construction demands. This $\zeta_2$ and $V_0$ are precisely the objects the forwarding recursion (§9) manipulates.

Level sets of the cross-term Lyapunov function and the closed-loop flow
WOLFRAMFigure 9b — What the cross-term bought. Level sets (dashed) of the assembled certificate $V_0 = \tfrac12x_3^2 + \tfrac12\zeta_2^2$ for the worked cascade, and the closed-loop flow (blue) under the forwarding control of §9, $u = \alpha_2 = -x_3 - \zeta_2$. The solid line is the shifted coordinate's zero set $\zeta_2 = 0$ — the "valley" the cross-term carved: trajectories slide along it (where $\dot\zeta_2 = u$ holds the pledge) and drain along it into the origin. Every dashed level set is crossed inward — $\dot V_0 = -x_3^2 - x_3\zeta_2 - \zeta_2^2 < 0$ — which is Theorem 5.8 made visible.
TakeawayThe cross-term is a trajectory integral that repays the interconnection's energy debt; it converts “the cascade is stable” into “here is the Lyapunov function,” and its square-root — the shifted coordinate $\zeta = z + \phi$ — is what recursions augment.

8 · Backstepping: recursion down the feedback ladder (Ch. 6.1)

Strict-feedback systems are lower-triangular: the input reaches $x_1$ only through the chain $x_n \to x_{n-1} \to \cdots \to x_1$, with possibly destabilizing nonlinearities hanging off the states:

$$\dot x_1 = x_2 + \varphi_1(x_1), \quad \dot x_2 = x_3 + \varphi_2(x_1,x_2),\;\ldots,\quad \dot x_n = u \qquad\text{(strict feedback)}$$

The output $x_1$ has relative degree $n$ — Door 1 of Section 4 is slammed shut. The book's move is to notice that the sub-system seen by treating $x_2$ as a control is only first-order, hence has relative degree one: a “virtual control.” Designing top-down, one integrator at a time, each step is a legal passivation (Theorem 2.47 applies), and the Lyapunov function is augmented by $\tfrac12(\text{new output})^2$ at each step. The name: on the block diagram, the design walks backwards, from the integrator farthest from $u$, toward the input.

Why the recursion is legal at every step Step $i$ stabilizes the subsystem $(x_1\ldots x_i)$ with $x_{i+1}$ as input, using the CLF $V_i$ built so far, and defines the next output $y_{i+1} = x_{i+1} - \alpha_i$ (the error between the actual state and the just-designed virtual control). Setting $y_{i+1} \equiv 0$ freezes the system exactly at the previously stabilized subsystem — so the zero dynamics of step $i+1$ are GAS by construction, and relative degree is one because $x_{i+1}$ enters $\dot y_{i+1}$ directly. Each step is Theorem 2.47 with the doors already open. The certificate grows as $V_{i+1} = V_i + \tfrac12y_{i+1}^2$.
Worked example — the book's introductory design (6.1.1), in full

$\dot x_1 = x_2 + \theta x_1^2, \quad \dot x_2 = x_3, \quad \dot x_3 = u, \qquad \theta \in [-1,1]$ uncertain

Two instabilities at once: the linear double integrator $(x_2,x_3)$ and the quadratic blow-up $\theta x_1^2$.

Step 1 — stabilize the $x_1$-subsystem with virtual control $x_2 = \alpha_1(x_1)$. Why not cancel? $\alpha_1 = -x_1 - \theta x_1^2$ would need the unknown $\theta$ — and cancellation of an uncertain term has no margin (§5). Instead, dominate: knowing only $|\theta| \le 1$, take $\alpha_1 = -x_1 - x_1^3$ and $V_1 = \tfrac12x_1^2$:

$$\dot V_1\Big|_{x_2=\alpha_1} = -x_1^2\big(1 - \theta x_1 + x_1^2\big) \;\le\; -\tfrac12 x_1^2 - \tfrac12 x_1^4, \qquad\text{since } 1-\theta x_1+x_1^2 = \tfrac12(1+x_1^2) + \tfrac12(x_1-\theta)^2 + \tfrac12(1-\theta^2) \;\ge\; \tfrac12(1+x_1^2).$$

Step 2 — step back through the first integrator. Define $y_2 = x_2 - \alpha_1(x_1)$; differentiating and substituting $\dot x_1 = \alpha_1 + \theta x_1^2 + y_2$ gives $\dot y_2 = x_3 + (1+3x_1^2)(\alpha_1 + \theta x_1^2 + y_2)$. With $V_2 = V_1 + \tfrac12y_2^2$:

$$\dot V_2 = \dot V_1\big|_{y_2=0} \;+\; y_2\Big[x_3 + x_1 - (1+3x_1^2)\big(x_1 + x_1^3 - \theta x_1^2\big)\Big] \;+\; (1+3x_1^2)\,y_2^2.$$

The structural miracle: every potentially positive term now rides on $y_2$ — the passivating output. The cancellation design would set the bracket to zero, but its $\theta$-term is unimplementable (book's eq. 6.1.10); brute-force domination works but “hardens” — the virtual gains balloon polynomially at each step (book's 6.1.11). The book's elegant exit: change the certificate, not the control. Use the modified first-stage function

$$\tilde V_1(x_1) = \int_0^{x_1} (1+3s^2)\big(s + s^3 - \theta s^2\big)\,ds \;\;(\ge 0,\ \text{p.d.: the integrand has the sign of } s), \qquad \tilde V_2 = \tilde V_1 + \tfrac12 y_2^2.$$

Now the $\theta$-group appears twice with opposite signs — once as $\frac{\partial \tilde V_1}{\partial x_1}y_2 = (1+3x_1^2)(x_1+x_1^3-\theta x_1^2)y_2$ and once inside $\dot y_2$ — and cancels exactly in $\dot{\tilde V}_2$ (book's eq. 6.1.14), leaving

$$\dot{\tilde V}_2 \;=\; -(1+3x_1^2)\big(x_1+x_1^3-\theta x_1^2\big)^2 \;+\; y_2\big[\,x_3 + (1+3x_1^2)\,y_2\,\big]$$

Choosing the virtual control $x_3 = \alpha_2 = -(2+3x_1^2)\,y_2$ kills the bracket to $-y_2^2$:

$$\dot{\tilde V}_2 \;=\; -(1+3x_1^2)\big(x_1+x_1^3-\theta x_1^2\big)^2 \;-\; y_2^2 \;\le\; 0.$$

The virtual control $\alpha_2 = -(2+3x_1^2)y_2$ contains no $\theta$, uses less effort than brute domination, and carries a gain margin $[1,\infty)$ — the loop from $y_2$ is passive. (The certificate $\tilde V_1$ does depend on $\theta$ — that is allowed: certificates may know what controllers must not.)

Step 3 — repeat. With $y_3 = x_3 - \alpha_2$, the zero dynamics of $(x_1,x_2)$ are exactly the system just stabilized, so one more passivation gives $V_3 = \tilde V_2 + \tfrac12y_3^2$ and $u = \alpha_3$ making $\dot V_3 \le -(\text{p.d.})$; the only new work is dominating the $\theta$-dependence of $\dot\alpha_2$ (book's §6.1.1). GAS of the full third-order system, globally, for all $|\theta|\le 1$.

design direction — backstepping walks the chain backwards, one legal passivation per integrator:
$u = \alpha_3$step 3
$\tfrac{1}{s}\to x_3$virtual ctrl $\alpha_2$ (step 2)
$\tfrac{1}{s}\to x_2$virtual ctrl $\alpha_1$ (step 1)
$\tfrac{1}{s}\to x_1$
$+\,\theta x_1^2$ enters $\dot x_1$uncertain — dominated, never cancelled
outputs (defined forwards): $y_2 = x_2-\alpha_1$,  $y_3 = x_3-\alpha_2$ — each step's zero dynamics are the previous step's stabilized subsystem
at step $i$: relative degree one w.r.t. $x_{i+1}$ ✓, zero dynamics GAS by construction ✓ — Theorem 2.47 applies with both doors open
certificates: $V_1=\tfrac12x_1^2 \;\to\; V_2 = V_1 + \tfrac12y_2^2 \;\to\; V_3 = V_2 + \tfrac12y_3^2$ — p.d. & radially unbounded at every step
Figure 10 — Strict-feedback structure and the backstepping direction. The plant is a chain of integrators with an uncertain destabilizer hanging off $x_1$; the design starts at the far end of the chain (where the destabilizer lives — the $x_1$-subsystem with virtual control $x_2$) and steps back toward the input.
Demo B · Robust backstepping in the phase plane
click the panel to drop a trajectory

Second-order core of the book's example, $\dot x_1 = x_2 + \theta x_1^2,\ \dot x_2 = u$, under the $\theta$-free backstepping law $u = -(2+3x_1^2)\,y_2$, $y_2 = x_2 + x_1 + x_1^3$, simulated (RK4) for every slider value — the same controller stabilizes all $\theta\in[-1,1]$. Level sets of the $\theta$-dependent certificate $\tilde V_2 = \tilde V_1 + \tfrac12 y_2^2$ are drawn for the current $\theta$. Presentation only.

Design caveats the book is explicit about Quadratic Lyapunov augmentation makes virtual gains grow polynomially through the steps (“hardening”, §6.1.3); the nested high-gain variant trades global for semiglobal results with bounded gains. And domination, not cancellation, is what buys the margins — cancellation designs are inverse-optimal outlaws.
TakeawayBackstepping removes the relative-degree obstacle by treating each state as a virtual control: every step is a legal passivation whose zero dynamics are the previous step's success, and the certificate grows by half a squared error per step.

9 · Forwarding: recursion up the feedforward ladder (Ch. 6.2)

Strict-feedforward systems are upper-triangular — the mirror image: no feedback paths, the input enters the last integrator and nonlinearity-laden feedforward paths leak it upward:

$$\dot x_1 = x_2 + x_3^2 + x_2u, \qquad \dot x_2 = x_3 - x_3^2u, \qquad \dot x_3 = u \qquad\text{(book's (6.2.1))}$$

Backstepping does not apply — the triangular structure points the wrong way, and the first state $x_1$ has relative degree 3. But the missing feedback paths are good news: solutions exist for all time (no finite escape), and the unforced system's instability is merely the drift of a triple integrator. Forwarding is the dual procedure: bottom-up, stabilize the last equation, then augment the Lyapunov function one state at a time using the cross-term construction of §7 — at each step the cross-term is a shifted square $\tfrac12(x + \phi)^2$.

Why forwarding needs no minimum phase The cross-term construction (Theorem 5.8) requires the driven subsystem to be globally stable — not asymptotically, and not minimum-phase in any output sense. At every step the driven part is the previously stabilized augmented system (GAS) preceded by one integrator (stable). So Door 2 of Section 4 — non-minimum phase — simply never comes into play: forwarding stabilizes systems whose zero dynamics (for the natural output) would be violently unstable.
Worked example — the book's forwarding design (6.2.1), step by step

Step 1 — stabilize the last equation. $\dot x_3 = u$ is a passive integrator: storage $V_3 = \tfrac12x_3^2$, feedback $\alpha_3 = -x_3 = -L_gV_3$.

Step 2 — augment by $x_2$ with the cross-term. With $u = \alpha_3$, the cascade is $\dot x_2 = \psi_2(x_3) = x_3 + x_3^3$, $\dot x_3 = -x_3$ — globally stable, and §7's worked example already built its certificate:

$$V_2 = V_3 + \tfrac12\zeta_2^2, \qquad \zeta_2 = x_2 + x_3 + \tfrac{x_3^3}{3} \qquad\Big(\dot\zeta_2 = x_3 + u \;\Rightarrow\; \dot V_2\big|_{u=\alpha_3} = -x_3^2\Big).$$

Restore the freedom $u = \alpha_3 + v_2$: because $\dot\zeta_2 = v_2$ (the shifted coordinate sees the input directly — one more reward of the cross-term) and $\dot V_2 = x_3\dot x_3 + \zeta_2\dot\zeta_2$,

$$\dot V_2 = -x_3^2 + \big(x_3 + \zeta_2\big)v_2, \qquad L_gV_2 = x_3 + \zeta_2 \quad\text{— the } \pm x_3^2 \text{ terms cancel: } \zeta_2(-x_3^2) + \zeta_2(1+x_3^2) = \zeta_2.$$

Choose $v_2 = -(x_3+\zeta_2) = -L_gV_2 + L_gV_3$: then $\dot V_2 = -x_3^2 + x_3v_2 - v_2^2 \le -\tfrac12x_3^2 - \tfrac12v_2^2 < 0$ — GAS/LES of $(x_2,x_3)$, and the control is exactly of inverse-optimal form:

$$\alpha_2 = -L_gV_2 \quad\Longrightarrow\quad \text{OFP}\big(-\tfrac12\big) \text{ w.r.t. } y_2 = L_gV_2,\ \text{disk margin } D\big(\tfrac12\big),\ \text{optimal for } J = \int (l + u^2)\,dt.$$

Step 3 — augment by $x_1$. With $u = \alpha_2$, the $(x_2,x_3)$ subsystem is GAS, and $\dot x_1 = \psi_1(x_2,x_3) = x_2 + x_3^2 + x_2\alpha_2$ feeds it forward. The cascade is again globally stable, so the cross-term construction gives

$$V_1 = V_2 + \tfrac12\big(x_1 + \phi_1(x_2,x_3)\big)^2, \qquad \phi_1(x_2,x_3) = \int_0^\infty \big[\tilde x_2 + \tilde x_3^2 + \tilde x_2\alpha_2\big]\,ds$$

— no closed form this time (the book flags it: evaluate by quadrature or approximate analytically). Because $\zeta_1$ is constant along the $\alpha_2$-flow (that is what the construction built it for), the input coefficient of $\dot V_1$ is exactly the cross-term identity $L_gV_1 = L_gV_2 + \zeta_1\,L_g\zeta_1$, so $\dot V_1\big|_{\alpha_2} \le -\tfrac12(L_gV_2)^2$; choosing $v_1 = -L_gV_1 + L_gV_2$ yields $\dot V_1 \le -\tfrac12(L_gV_1)^2$ and the final law

$$u = \alpha_1 = -L_gV_1: \qquad \text{GAS of the feedforward system, disk margin } D(\tfrac12) \text{ preserved through every step.}$$
A note on the book's printed equations (6.2.7)–(6.2.8) The 1997 printing displays the input coefficient of $\dot V_2$ as $x_3 + \zeta_2(1+x_3^2)$ and correspondingly $v_2 = -\zeta_2(1+x_3^2)$. Direct differentiation of the book's own $V_2$ (its eq. 6.2.4) along its own subsystem (6.2.6) gives the coefficient $x_3 + \zeta_2$ — and the book's optimality chain (6.2.9)–(6.2.11), $v_2 = -L_gV_2 + L_gV_3$ with $L_gV_2 = x_3+\zeta_2$, silently uses exactly that. The self-consistent design is $v_2 = -\zeta_2$ (same $\dot V_2 = -x_3^2 + x_3v_2 - v_2^2$ as the book claims), which is what we derived above; the pedagogy is unaffected.
certificate grows bottom-up: $V_3 = \tfrac12x_3^2 \;\to\; V_2 = V_3 + \tfrac12\big(x_2+x_3+\tfrac{x_3^3}{3}\big)^2 \;\to\; V_1 = V_2 + \tfrac12\big(x_1+\phi_1\big)^2$
$u=\alpha_3$$=-L_gV_3$
$\tfrac{1}{s}\to x_3$
$\tfrac{1}{s}\to x_2$
$\tfrac{1}{s}\to x_1$
final: $u = -L_gV_1$inverse optimal · disk $D(\tfrac12)$
feedforward leaks (no feedback paths):$x_3^2 \to \dot x_1$,  $x_3^2u \to \dot x_2$,  $x_2u \to \dot x_1$
each augmentation = one cross-term integral (§7) yielding a shifted square $\tfrac12(x+\phi)^2$; the margin story propagates through every step
Figure 11 — Strict-feedforward structure and the forwarding direction. No feedback paths (so no finite escape), but the unforced triple integrator drifts. The design starts at the input-side integrator and augments the certificate one state at a time with $\tfrac12(x+\phi)^2$ pieces; the finished law $u=-L_gV_1$ is inverse optimal at every intermediate stage too.

Refinements

Chapter 6.2's second half deals with the two frictions of real feedforward systems. Weak minimum phase isn't needed, but growth is: the cross-term integral converges only if the driven subsystem dominates the interconnection; when the interconnection grows too fast, low-gain forwarding stabilizes a large (semiglobal) region with restrained gains. Saturation designs: inserting saturation functions into the $\alpha$'s keeps the control bounded for all states, decoupling “global boundedness” from “local convergence” — at the price of explicitly trading off the region of attraction against the control magnitude (§6.2.5–6.2.6).

TakeawayForwarding is backstepping's dual for upper-triangular plants: stabilize one integrator, then repeatedly augment the Lyapunov function by the cross-term's shifted square, ending at $u=-L_gV$ — an inverse optimal law with disk margin $D(\tfrac12)$ — all without any minimum-phase assumption.

10 · Interlaced systems: both keys, one lock (Ch. 6.3)

Real structures mix both triangularities. The book's introductory interlaced system feeds back and feeds forward:

$$\dot x_1 = x_2 + x_2x_3, \qquad \dot x_2 = x_3 + x_2^2, \qquad \dot x_3 = u + x_1x_2x_3$$

— not strict feedback ($x_2x_3$ reaches up), not strict feedforward ($x_2^2$, $x_1x_2x_3$ loop back down). The design: start at the middle equation, $\dot x_2 = x_3 + x_2^2$, with $x_3$ as virtual control: $\alpha_1 = -x_2 - x_2^2$ gives $\dot x_2 = -x_2$, $V_1 = \tfrac12x_2^2$. Then one step of forwarding (the top equation sees only $(x_2,x_3)$): with $x_3 = \alpha_1 + v$, the shifted coordinate $\zeta_1 = x_1 + x_2 - \tfrac12x_2^2 - \tfrac13x_2^3$ satisfies $\dot\zeta_1 = (1-x_2^2)\,v$, so $V_2 = V_1 + \tfrac12\zeta_1^2$ and the extra feedback $v = -(1-x_2^2)\zeta_1 = -L_g(V_2-V_1)$ gives $\dot V_2 = -x_2^2 - (1-x_2^2)^2\zeta_1^2$. Then one step of backstepping through the $\dot x_3$ equation: $y = x_3 - \alpha_2$, $V_3 = V_2 + \tfrac12y^2$, and $u = \alpha_3$ makes $\dot V_3$ negative definite. Global stabilization by alternating the two engines — the sequence (forward, back) or (back, forward) is dictated entirely by where the nonlinearities live.

Why this generalizes the design space Backstepping consumes lower-triangularity; forwarding consumes upper-triangularity. An interlaced system has a little of each, and the book's procedure is a parser: decompose the system into scalar blocks, read off which nonlinearity touches which block, and route each augmentation step through whichever engine the local structure permits. For third-order systems the book enumerates all four decompositions (its examples (6.1.1), (6.2.1), (6.3.1), (6.3.8)) — the same state dimension, four different design itineraries.
TakeawayInterlaced designs alternate forwarding and backstepping steps, one scalar block at a time — the structure of the nonlinearities, not taste, dictates the order.

11 · The big picture

structureenginecertificate constructionobstacle removedmargin story
cascadepartial-state feedback + ISScomposite $W+\Psi+U$ (cross-term)—as good as the driver's design
strict feedback (lower-triangular)backstepping (top-down)$V \mathrel{+}= \tfrac12y^2$ per step; $\tilde V$-redesign against uncertaintyrelative degree $r>1$domination ⟹ inverse optimality, sector/disk margins
strict feedforward (upper-triangular)forwarding (bottom-up)$V \mathrel{+}= \tfrac12(x+\phi)^2$ per step (cross-term)minimum phase (not needed!)$u=-L_gV$ at every step: disk $D(\tfrac12)$
interlacedalternating bothmix of the two augmentationsbothinherited from the engines used

Where this sits in the larger theory

With Lyapunov theory: the book is an answer to the converse-theorem gap — existence of $V$ is replaced by construction procedures. With passivity: the storage functions of §3 are the Lyapunov functions of §§8–9; inverse optimality (§5) is the bridge that converts passivity shortages into disk margins. With ISS (Sontag): cascades are held together by ISS-Lyapunov functions; the cross-term is, in spirit, an ISS construction upgraded to a differentiable certificate. With adaptive control (§5.5): the parametric Lyapunov functions $V(x,\theta)$ are exactly the $\tilde V_1$-style modifications of §8 — the same bookkeeping that makes backstepping robust makes it adaptive. With what came after: energy-shaping/IDA-PBC designs, Krstić–Kanellakopoulos–Kokotović's nonrecursive backstepping monograph, and Freeman–Kokotović's robustness analysis all descend from the same program; the book itself points the reader to those complements.

What the method asks of you

The honest limitations, all stated in the book: the structure must be (approximately) triangular — genuinely non-triangular couplings fall outside; cross-terms rarely have closed forms, so quadrature (or symbolic/numerical differentiation of integrals) is part of the design loop; peaking forces semiglobal claims in some classes no matter the design; and quadratic augmentation hardens gains — the $\tilde V$-redesign and saturation tricks temper but do not abolish it.

TakeawayThe book's legacy is a design grammar: read the structure, pick the recursion, augment the certificate per step — and accept the feedback law only in the form $u=-\tfrac12R^{-1}(L_gV)^{\!\top}$, so that margins ride along for free.