Strict-feedback form

From HandWiki

In control theory, dynamical systems are in strict-feedback form when they can be expressed as

[math]\displaystyle{ \begin{cases} \dot{\mathbf{x}} = f_0(\mathbf{x}) + g_0(\mathbf{x}) z_1\\ \dot{z}_1 = f_1(\mathbf{x},z_1) + g_1(\mathbf{x},z_1) z_2\\ \dot{z}_2 = f_2(\mathbf{x},z_1,z_2) + g_2(\mathbf{x},z_1,z_2) z_3\\ \vdots\\ \dot{z}_i = f_i(\mathbf{x},z_1, z_2, \ldots, z_{i-1}, z_i) + g_i(\mathbf{x},z_1, z_2, \ldots, z_{i-1}, z_i) z_{i+1} \quad \text{ for } 1 \leq i \lt k-1\\ \vdots\\ \dot{z}_{k-1} = f_{k-1}(\mathbf{x},z_1, z_2, \ldots, z_{k-1}) + g_{k-1}(\mathbf{x},z_1, z_2, \ldots, z_{k-1}) z_k\\ \dot{z}_k = f_k(\mathbf{x},z_1, z_2, \ldots, z_{k-1}, z_k) + g_k(\mathbf{x},z_1, z_2, \dots, z_{k-1}, z_k) u\end{cases} }[/math]

where

  • [math]\displaystyle{ \mathbf{x} \in \mathbb{R}^n }[/math] with [math]\displaystyle{ n \geq 1 }[/math],
  • [math]\displaystyle{ z_1, z_2, \ldots, z_i, \ldots, z_{k-1}, z_k }[/math] are scalars,
  • [math]\displaystyle{ u }[/math] is a scalar input to the system,
  • [math]\displaystyle{ f_0, f_1, f_2, \ldots, f_i, \ldots, f_{k-1}, f_k }[/math] vanish at the origin (i.e., [math]\displaystyle{ f_i(0,0,\dots,0) = 0 }[/math]),
  • [math]\displaystyle{ g_1, g_2, \ldots, g_i, \ldots, g_{k-1}, g_k }[/math] are nonzero over the domain of interest (i.e., [math]\displaystyle{ g_i(\mathbf{x},z_1,\ldots,z_k) \neq 0 }[/math] for [math]\displaystyle{ 1 \leq i \leq k }[/math]).

Here, strict feedback refers to the fact that the nonlinear functions [math]\displaystyle{ f_i }[/math] and [math]\displaystyle{ g_i }[/math] in the [math]\displaystyle{ \dot{z}_i }[/math] equation only depend on states [math]\displaystyle{ x, z_1, \ldots, z_i }[/math] that are fed back to that subsystem.[1][page needed] That is, the system has a kind of lower triangular form.

Stabilization

Main page: Backstepping

Systems in strict-feedback form can be stabilized by recursive application of backstepping.[1][page needed] That is,

  1. It is given that the system
    [math]\displaystyle{ \dot{\mathbf{x}} = f_0(\mathbf{x}) + g_0(\mathbf{x}) u_x(\mathbf{x}) }[/math]
    is already stabilized to the origin by some control [math]\displaystyle{ u_x(\mathbf{x}) }[/math] where [math]\displaystyle{ u_x(\mathbf{0}) = 0 }[/math]. That is, choice of [math]\displaystyle{ u_x }[/math] to stabilize this system must occur using some other method. It is also assumed that a Lyapunov function [math]\displaystyle{ V_x }[/math] for this stable subsystem is known.
  2. A control [math]\displaystyle{ u_1(\mathbf{x},z_1) }[/math] is designed so that the system
    [math]\displaystyle{ \dot{z}_1 = f_1(\mathbf{x},z_1) + g_1(\mathbf{x},z_1) u_1(\mathbf{x},z_1) }[/math]
    is stabilized so that [math]\displaystyle{ z_1 }[/math] follows the desired [math]\displaystyle{ u_x }[/math] control. The control design is based on the augmented Lyapunov function candidate
    [math]\displaystyle{ V_1(\mathbf{x},z_1) = V_x(\mathbf{x}) + \frac{1}{2}( z_1 - u_x(\mathbf{x}) )^2 }[/math]
    The control [math]\displaystyle{ u_1 }[/math] can be picked to bound [math]\displaystyle{ \dot{V}_1 }[/math] away from zero.
  3. A control [math]\displaystyle{ u_2(\mathbf{x},z_1,z_2) }[/math] is designed so that the system
    [math]\displaystyle{ \dot{z}_2 = f_2(\mathbf{x},z_1,z_2) + g_2(\mathbf{x},z_1,z_2) u_2(\mathbf{x},z_1,z_2) }[/math]
    is stabilized so that [math]\displaystyle{ z_2 }[/math] follows the desired [math]\displaystyle{ u_1 }[/math] control. The control design is based on the augmented Lyapunov function candidate
    [math]\displaystyle{ V_2(\mathbf{x},z_1,z_2) = V_1(\mathbf{x},z_1) + \frac{1}{2}( z_2 - u_1(\mathbf{x},z_1) )^2 }[/math]
    The control [math]\displaystyle{ u_2 }[/math] can be picked to bound [math]\displaystyle{ \dot{V}_2 }[/math] away from zero.
  4. This process continues until the actual [math]\displaystyle{ u }[/math] is known, and
    • The real control [math]\displaystyle{ u }[/math] stabilizes [math]\displaystyle{ z_k }[/math] to fictitious control [math]\displaystyle{ u_{k-1} }[/math].
    • The fictitious control [math]\displaystyle{ u_{k-1} }[/math] stabilizes [math]\displaystyle{ z_{k-1} }[/math] to fictitious control [math]\displaystyle{ u_{k-2} }[/math].
    • The fictitious control [math]\displaystyle{ u_{k-2} }[/math] stabilizes [math]\displaystyle{ z_{k-2} }[/math] to fictitious control [math]\displaystyle{ u_{k-3} }[/math].
    • ...
    • The fictitious control [math]\displaystyle{ u_2 }[/math] stabilizes [math]\displaystyle{ z_2 }[/math] to fictitious control [math]\displaystyle{ u_1 }[/math].
    • The fictitious control [math]\displaystyle{ u_1 }[/math] stabilizes [math]\displaystyle{ z_1 }[/math] to fictitious control [math]\displaystyle{ u_x }[/math].
    • The fictitious control [math]\displaystyle{ u_x }[/math] stabilizes [math]\displaystyle{ \mathbf{x} }[/math] to the origin.

This process is known as backstepping because it starts with the requirements on some internal subsystem for stability and progressively steps back out of the system, maintaining stability at each step. Because

  • [math]\displaystyle{ f_i }[/math] vanish at the origin for [math]\displaystyle{ 0 \leq i \leq k }[/math],
  • [math]\displaystyle{ g_i }[/math] are nonzero for [math]\displaystyle{ 1 \leq i \leq k }[/math],
  • the given control [math]\displaystyle{ u_x }[/math] has [math]\displaystyle{ u_x(\mathbf{0}) = 0 }[/math],

then the resulting system has an equilibrium at the origin (i.e., where [math]\displaystyle{ \mathbf{x}=\mathbf{0}\, }[/math], [math]\displaystyle{ z_1=0 }[/math], [math]\displaystyle{ z_2=0 }[/math], ... , [math]\displaystyle{ z_{k-1}=0 }[/math], and [math]\displaystyle{ z_k=0 }[/math]) that is globally asymptotically stable.

See also

References

  1. 1.0 1.1 Khalil, Hassan K. (2002). Nonlinear Systems (3rd ed.). Upper Saddle River, NJ: Prentice Hall. ISBN 0-13-067389-7. http://www.egr.msu.edu/~khalil/NonlinearSystems/.