Technique in nonlinear control theory
In control theory, backstepping is a technique developed circa 1990 by Myroslav Sparavalo, Petar V. Kokotovic, and others[1][2][3] for designing stabilizing controls for a special class of nonlinear dynamical systems. These systems are built from subsystems that radiate out from an irreducible subsystem that can be stabilized using some other method. Because of this recursive structure, the designer can start the design process at the known-stable system and "back out" new controllers that progressively stabilize each outer subsystem. The process terminates when the final external control is reached. Hence, this process is known as backstepping.[4]
Backstepping approach[edit]
The backstepping approach provides a recursive method for stabilizing the origin of a system in strict-feedback form. That is, consider a system of the form[4]
![{\displaystyle {\begin{aligned}{\begin{cases}{\dot {\mathbf {x} }}&=f_{x}(\mathbf {x} )+g_{x}(\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<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}}\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1637b9d9e8a86c09f6568b62808ba3ad8a64e0dc)
where
with
,
are scalars, - u is a scalar input to the system,
vanish at the origin (i.e.,
),
are nonzero over the domain of interest (i.e.,
for
).
Also assume that the subsystem
![{\displaystyle {\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/44ddaae489087dd54d55308e2b7cf71ef733cdc8)
is stabilized to the origin (i.e.,
) by some known control
such that
. It is also assumed that a Lyapunov function
for this stable subsystem is known. That is, this x subsystem is stabilized by some other method and backstepping extends its stability to the
shell around it.
In systems of this strict-feedback form around a stable x subsystem,
- The backstepping-designed control input u has its most immediate stabilizing impact on state
. - The state
then acts like a stabilizing control on the state
before it. - This process continues so that each state
is stabilized by the fictitious "control"
.
The backstepping approach determines how to stabilize the x subsystem using
, and then proceeds with determining how to make the next state
drive
to the control required to stabilize x. Hence, the process "steps backward" from x out of the strict-feedback form system until the ultimate control u is designed.
Recursive Control Design Overview[edit]
- It is given that the smaller (i.e., lower-order) subsystem
![{\displaystyle {\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/44ddaae489087dd54d55308e2b7cf71ef733cdc8)
- is already stabilized to the origin by some control
where
. That is, choice of
to stabilize this system must occur using some other method. It is also assumed that a Lyapunov function
for this stable subsystem is known. Backstepping provides a way to extend the controlled stability of this subsystem to the larger system.
- A control
is designed so that the system ![{\displaystyle {\dot {z}}_{1}=f_{1}(\mathbf {x} ,z_{1})+g_{1}(\mathbf {x} ,z_{1})u_{1}(\mathbf {x} ,z_{1})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/da7c0da4a8b2311f656e3f1b432ba3523817bae8)
- is stabilized so that
follows the desired
control. The control design is based on the augmented Lyapunov function candidate ![{\displaystyle V_{1}(\mathbf {x} ,z_{1})=V_{x}(\mathbf {x} )+{\frac {1}{2}}(z_{1}-u_{x}(\mathbf {x} ))^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d16ed2928eb940c7a48c0ec0f03e757fb4f00d50)
- The control
can be picked to bound
away from zero.
- A control
is designed so that the system ![{\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})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dc4d1de0a6f6e107747a74db63ce51406a31a4b9)
- is stabilized so that
follows the desired
control. The control design is based on the augmented Lyapunov function candidate ![{\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}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/469bedc922b11825993ca97afb337326c58e09f7)
- The control
can be picked to bound
away from zero.
- This process continues until the actual u is known, and
- The real control u stabilizes
to fictitious control
. - The fictitious control
stabilizes
to fictitious control
. - The fictitious control
stabilizes
to fictitious control
. - ...
- The fictitious control
stabilizes
to fictitious control
. - The fictitious control
stabilizes
to fictitious control
. - The fictitious control
stabilizes x 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
vanish at the origin for
,
are nonzero for
, - the given control
has
,
then the resulting system has an equilibrium at the origin (i.e., where
,
,
, ...,
, and
) that is globally asymptotically stable.
Integrator Backstepping[edit]
Before describing the backstepping procedure for general strict-feedback form dynamical systems, it is convenient to discuss the approach for a smaller class of strict-feedback form systems. These systems connect a series of integrators to the input of a system with a known feedback-stabilizing control law, and so the stabilizing approach is known as integrator backstepping. With a small modification, the integrator backstepping approach can be extended to handle all strict-feedback form systems.
Single-integrator Equilibrium[edit]
Consider the dynamical system
| | (1) |
where
and
is a scalar. This system is a cascade connection of an integrator with the x subsystem (i.e., the input u enters an integrator, and the integral
enters the x subsystem).
We assume that
, and so if
,
and
, then
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=f_{x}(\underbrace {\mathbf {0} } _{\mathbf {x} })+(g_{x}(\underbrace {\mathbf {0} } _{\mathbf {x} }))(\underbrace {0} _{z_{1}})=0+(g_{x}(\mathbf {0} ))(0)=\mathbf {0} &\quad {\text{ (i.e., }}\mathbf {x} =\mathbf {0} {\text{ is stationary)}}\\{\dot {z}}_{1}=\overbrace {0} ^{u_{1}}&\quad {\text{ (i.e., }}z_{1}=0{\text{ is stationary)}}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f8946c6b0216546bd8a8efb9c22ea6b42dc652d3)
So the origin
is an equilibrium (i.e., a stationary point) of the system. If the system ever reaches the origin, it will remain there forever after.
Single-integrator Backstepping[edit]
In this example, backstepping is used to stabilize the single-integrator system in Equation (1) around its equilibrium at the origin. To be less precise, we wish to design a control law
that ensures that the states
return to
after the system is started from some arbitrary initial condition.
- First, by assumption, the subsystem
![{\displaystyle {\dot {\mathbf {x} }}=F(\mathbf {x} )\qquad {\text{where}}\qquad F(\mathbf {x} )\triangleq f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b9efbbd491d98c954173a822e3c67eebb81e1fef)
- with
has a Lyapunov function
such that
![{\displaystyle {\dot {V}}_{x}={\frac {\partial V_{x}}{\partial \mathbf {x} }}(f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} ))\leq -W(\mathbf {x} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b1d37384df1174f4eb5fc3b55d1b138ee6c15f0b)
- where
is a positive-definite function. That is, we assume that we have already shown that this existing simpler x subsystem is stable (in the sense of Lyapunov). Roughly speaking, this notion of stability means that:
- The function
is like a "generalized energy" of the x subsystem. As the x states of the system move away from the origin, the energy
also grows. - By showing that over time, the energy
decays to zero, then the x states must decay toward
. That is, the origin
will be a stable equilibrium of the system – the x states will continuously approach the origin as time increases. - Saying that
is positive definite means that
everywhere except for
, and
. - The statement that
means that
is bounded away from zero for all points except where
. That is, so long as the system is not at its equilibrium at the origin, its "energy" will be decreasing. - Because the energy is always decaying, then the system must be stable; its trajectories must approach the origin.
- Our task is to find a control u that makes our cascaded
system also stable. So we must find a new Lyapunov function candidate for this new system. That candidate will depend upon the control u, and by choosing the control properly, we can ensure that it is decaying everywhere as well.
- Next, by adding and subtracting
(i.e., we don't change the system in any way because we make no net effect) to the
part of the larger
system, it becomes
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1}+{\mathord {\underbrace {\left(g_{x}(\mathbf {x} )u_{x}(\mathbf {x} )-g_{x}(\mathbf {x} )u_{x}(\mathbf {x} )\right)} _{0}}}\\{\dot {z}}_{1}=u_{1}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aa034c1d1bcf6d18eb5af5e3cc2532147a92b19c)
- which we can re-group to get
![{\displaystyle {\begin{cases}{\dot {x}}={\mathord {\underbrace {\left(f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} )\right)} _{F(\mathbf {x} )}}}+g_{x}(\mathbf {x} )\underbrace {\left(z_{1}-u_{x}(\mathbf {x} )\right)} _{z_{1}{\text{ error tracking }}u_{x}}\\{\dot {z}}_{1}=u_{1}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7569cc1ce2f17e1ea5c77da4f5314c0cf022ec70)
- So our cascaded supersystem encapsulates the known-stable
subsystem plus some error perturbation generated by the integrator.
- We now can change variables from
to
by letting
. So
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=(f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} ))+g_{x}(\mathbf {x} )e_{1}\\{\dot {e}}_{1}=u_{1}-{\dot {u}}_{x}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f91b008ad80ad8ebf7f2240a9c620f20639c0b47)
- Additionally, we let
so that
and
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=(f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} ))+g_{x}(\mathbf {x} )e_{1}\\{\dot {e}}_{1}=v_{1}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/274b79bb64b56078052ad800962785215e946189)
- We seek to stabilize this error system by feedback through the new control
. By stabilizing the system at
, the state
will track the desired control
which will result in stabilizing the inner x subsystem.
- From our existing Lyapunov function
, we define the augmented Lyapunov function candidate
![{\displaystyle V_{1}(\mathbf {x} ,e_{1})\triangleq V_{x}(\mathbf {x} )+{\frac {1}{2}}e_{1}^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3d6c87cc2c5c6dc5cf156bc2e973aa1b6b8e48dc)
- So
![{\displaystyle {\begin{aligned}{\dot {V}}_{1}&={\dot {V}}_{x}(\mathbf {x} )+{\frac {1}{2}}\left(2e_{1}{\dot {e}}_{1}\right)\\&={\dot {V}}_{x}(\mathbf {x} )+e_{1}{\dot {e}}_{1}\\&={\dot {V}}_{x}(\mathbf {x} )+e_{1}\overbrace {v_{1}} ^{{\dot {e}}_{1}}\\&=\overbrace {{\frac {\partial V_{x}}{\partial \mathbf {x} }}\underbrace {\dot {\mathbf {x} }} _{{\text{(i.e., }}{\frac {\operatorname {d} \mathbf {x} }{\operatorname {d} t}}{\text{)}}}} ^{{\dot {V}}_{x}{\text{ (i.e.,}}{\frac {\operatorname {d} V_{x}}{\operatorname {d} t}}{\text{)}}}+e_{1}v_{1}\\&=\overbrace {{\frac {\partial V_{x}}{\partial \mathbf {x} }}\underbrace {\left((f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} ))+g_{x}(\mathbf {x} )e_{1}\right)} _{\dot {\mathbf {x} }}} ^{{\dot {V}}_{x}}+e_{1}v_{1}\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7b762a80fa6b609e8b79c021f76afd5a23dee4a8)
- By distributing
, we see that
![{\displaystyle {\dot {V}}_{1}=\overbrace {{\frac {\partial V_{x}}{\partial \mathbf {x} }}(f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}(\mathbf {x} ))} ^{{}\leq -W(\mathbf {x} )}+{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )e_{1}+e_{1}v_{1}\leq -W(\mathbf {x} )+{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )e_{1}+e_{1}v_{1}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5c9ff50c4645f66b153fb61686c0eac28d950c0c)
- To ensure that
(i.e., to ensure stability of the supersystem), we pick the control law
![{\displaystyle v_{1}=-{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )-k_{1}e_{1}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/91b1563e965278053d79718124366935122be281)
- with
, and so
![{\displaystyle {\dot {V}}_{1}=-W(\mathbf {x} )+{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )e_{1}+e_{1}\overbrace {\left(-{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )-k_{1}e_{1}\right)} ^{v_{1}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e989f216da54fa21c9cbead7553931bb970424e7)
- After distributing the
through,
![{\displaystyle {\begin{aligned}{\dot {V}}_{1}&=-W(\mathbf {x} )+{\mathord {\overbrace {{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )e_{1}-e_{1}{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )} ^{0}}}-k_{1}e_{1}^{2}\\&=-W(\mathbf {x} )-k_{1}e_{1}^{2}\leq -W(\mathbf {x} )\\&<0\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/80e49289d5667918b1cb9df4279b986a834a7e6a)
- So our candidate Lyapunov function
is a true Lyapunov function, and our system is stable under this control law
(which corresponds the control law
because
). Using the variables from the original coordinate system, the equivalent Lyapunov function
| | (2) |
- As discussed below, this Lyapunov function will be used again when this procedure is applied iteratively to multiple-integrator problem.
- Our choice of control
ultimately depends on all of our original state variables. In particular, the actual feedback-stabilizing control law
| | (3) |
- The states x and
and functions
and
come from the system. The function
comes from our known-stable
subsystem. The gain parameter
affects the convergence rate or our system. Under this control law, our system is stable at the origin
.
- Recall that
in Equation (3) drives the input of an integrator that is connected to a subsystem that is feedback-stabilized by the control law
. Not surprisingly, the control
has a
term that will be integrated to follow the stabilizing control law
plus some offset. The other terms provide damping to remove that offset and any other perturbation effects that would be magnified by the integrator.
So because this system is feedback stabilized by
and has Lyapunov function
with
, it can be used as the upper subsystem in another single-integrator cascade system.
Motivating Example: Two-integrator Backstepping[edit]
Before discussing the recursive procedure for the general multiple-integrator case, it is instructive to study the recursion present in the two-integrator case. That is, consider the dynamical system
| | (4) |
where
and
and
are scalars. This system is a cascade connection of the single-integrator system in Equation (1) with another integrator (i.e., the input
enters through an integrator, and the output of that integrator enters the system in Equation (1) by its
input).
By letting
,
, ![{\displaystyle g_{y}(\mathbf {y} )\triangleq {\begin{bmatrix}\mathbf {0} \\1\end{bmatrix}},\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fd1bb024288b30cba7610ac37bc159a3e7000c98)
then the two-integrator system in Equation (4) becomes the single-integrator system
| | (5) |
By the single-integrator procedure, the control law
stabilizes the upper
-to-y subsystem using the Lyapunov function
, and so Equation (5) is a new single-integrator system that is structurally equivalent to the single-integrator system in Equation (1). So a stabilizing control
can be found using the same single-integrator procedure that was used to find
.
Many-integrator backstepping[edit]
In the two-integrator case, the upper single-integrator subsystem was stabilized yielding a new single-integrator system that can be similarly stabilized. This recursive procedure can be extended to handle any finite number of integrators. This claim can be formally proved with mathematical induction. Here, a stabilized multiple-integrator system is built up from subsystems of already-stabilized multiple-integrator subsystems.
![{\displaystyle {\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )u_{x}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c1f27e5879ec086914c75e66fbdcec3a5cd098e7)
- that has scalar input
and output states
. Assume that
so that the zero-input (i.e.,
) system is stationary at the origin
. In this case, the origin is called an equilibrium of the system. - The feedback control law
stabilizes the system at the equilibrium at the origin. - A Lyapunov function corresponding to this system is described by
.
- That is, if output states x are fed back to the input
by the control law
, then the output states (and the Lyapunov function) return to the origin after a single perturbation (e.g., after a nonzero initial condition or a sharp disturbance). This subsystem is stabilized by feedback control law
.
- Next, connect an integrator to input
so that the augmented system has input
(to the integrator) and output states x. The resulting augmented dynamical system is
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1}\\{\dot {z}}_{1}=u_{1}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0bfc7b5064bacf3649b84614ae9a869d991f67e0)
- This "cascade" system matches the form in Equation (1), and so the single-integrator backstepping procedure leads to the stabilizing control law in Equation (3). That is, if we feed back states
and x to input
according to the control law ![{\displaystyle u_{1}(\mathbf {x} ,z_{1})=-{\frac {\partial V_{x}}{\partial \mathbf {x} }}g_{x}(\mathbf {x} )-k_{1}(z_{1}-u_{x}(\mathbf {x} ))+{\frac {\partial u_{x}}{\partial \mathbf {x} }}(f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1d6820f7c3cfcfc3b9a15a97cf19d4a2f42bf8c5)
- with gain
, then the states
and x will return to
and
after a single perturbation. This subsystem is stabilized by feedback control law
, and the corresponding Lyapunov function from Equation (2) is ![{\displaystyle V_{1}(\mathbf {x} ,z_{1})=V_{x}(\mathbf {x} )+{\frac {1}{2}}(z_{1}-u_{x}(\mathbf {x} ))^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d16ed2928eb940c7a48c0ec0f03e757fb4f00d50)
- That is, under feedback control law
, the Lyapunov function
decays to zero as the states return to the origin.
- Connect a new integrator to input
so that the augmented system has input
and output states x. The resulting augmented dynamical system is
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1}\\{\dot {z}}_{1}=z_{2}\\{\dot {z}}_{2}=u_{2}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6adac3ff5d684a3a3f29629f411b82c6001262f2)
- which is equivalent to the single-integrator system
![{\displaystyle {\begin{cases}\overbrace {\begin{bmatrix}{\dot {\mathbf {x} }}\\{\dot {z}}_{1}\end{bmatrix}} ^{\triangleq \,{\dot {\mathbf {x} }}_{1}}=\overbrace {\begin{bmatrix}f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1}\\0\end{bmatrix}} ^{\triangleq \,f_{1}(\mathbf {x} _{1})}+\overbrace {\begin{bmatrix}\mathbf {0} \\1\end{bmatrix}} ^{\triangleq \,g_{1}(\mathbf {x} _{1})}z_{2}&\qquad {\text{ ( by Lyapunov function }}V_{1},{\text{ subsystem stabilized by }}u_{1}({\textbf {x}}_{1}){\text{ )}}\\{\dot {z}}_{2}=u_{2}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/46edc219c009bbc317321b232d7ae6c011584d6f)
- Using these definitions of
,
, and
, this system can also be expressed as ![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}_{1}=f_{1}(\mathbf {x} _{1})+g_{1}(\mathbf {x} _{1})z_{2}&\qquad {\text{ ( by Lyapunov function }}V_{1},{\text{ subsystem stabilized by }}u_{1}({\textbf {x}}_{1}){\text{ )}}\\{\dot {z}}_{2}=u_{2}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0eb2edcd67d116ff3401bc4b36b8fb9624e5d57a)
- This system matches the single-integrator structure of Equation (1), and so the single-integrator backstepping procedure can be applied again. That is, if we feed back states
,
, and x to input
according to the control law ![{\displaystyle u_{2}(\mathbf {x} ,z_{1},z_{2})=-{\frac {\partial V_{1}}{\partial \mathbf {x} _{1}}}g_{1}(\mathbf {x} _{1})-k_{2}(z_{2}-u_{1}(\mathbf {x} _{1}))+{\frac {\partial u_{1}}{\partial \mathbf {x} _{1}}}(f_{1}(\mathbf {x} _{1})+g_{1}(\mathbf {x} _{1})z_{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fdf7688d8d77623c228949761bd3caf0cddf3879)
- with gain
, then the states
,
, and x will return to
,
, and
after a single perturbation. This subsystem is stabilized by feedback control law
, and the corresponding Lyapunov function is ![{\displaystyle V_{2}(\mathbf {x} ,z_{1},z_{2})=V_{1}(\mathbf {x} _{1})+{\frac {1}{2}}(z_{2}-u_{1}(\mathbf {x} _{1}))^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e63bfd665d5b497e92c241f0fa3ab757dc170490)
- That is, under feedback control law
, the Lyapunov function
decays to zero as the states return to the origin.
- Connect an integrator to input
so that the augmented system has input
and output states x. The resulting augmented dynamical system is
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1}\\{\dot {z}}_{1}=z_{2}\\{\dot {z}}_{2}=z_{3}\\{\dot {z}}_{3}=u_{3}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ce57b4a020bc66bcdf2a7ca2dcb43369e398d605)
- which can be re-grouped as the single-integrator system
![{\displaystyle {\begin{cases}\overbrace {\begin{bmatrix}{\dot {\mathbf {x} }}\\{\dot {z}}_{1}\\{\dot {z}}_{2}\end{bmatrix}} ^{\triangleq \,{\dot {\mathbf {x} }}_{2}}=\overbrace {\begin{bmatrix}f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{2}\\z_{2}\\0\end{bmatrix}} ^{\triangleq \,f_{2}(\mathbf {x} _{2})}+\overbrace {\begin{bmatrix}\mathbf {0} \\0\\1\end{bmatrix}} ^{\triangleq \,g_{2}(\mathbf {x} _{2})}z_{3}&\qquad {\text{ ( by Lyapunov function }}V_{2},{\text{ subsystem stabilized by }}u_{2}({\textbf {x}}_{2}){\text{ )}}\\{\dot {z}}_{3}=u_{3}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e9f1896ca92e8e929d716151623d3cb46f5cdb64)
- By the definitions of
,
, and
from the previous step, this system is also represented by ![{\displaystyle {\begin{cases}\overbrace {\begin{bmatrix}{\dot {\mathbf {x} }}_{1}\\{\dot {z}}_{2}\end{bmatrix}} ^{{\dot {\mathbf {x} }}_{2}}=\overbrace {\begin{bmatrix}f_{1}(\mathbf {x} _{1})+g_{1}(\mathbf {x} _{1})z_{2}\\0\end{bmatrix}} ^{f_{2}(\mathbf {x} _{2})}+\overbrace {\begin{bmatrix}\mathbf {0} \\1\end{bmatrix}} ^{g_{2}(\mathbf {x} _{2})}z_{3}&\qquad {\text{ ( by Lyapunov function }}V_{2},{\text{ subsystem stabilized by }}u_{2}({\textbf {x}}_{2}){\text{ )}}\\{\dot {z}}_{3}=u_{3}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/deb2aa2e70b903d38cb8f09d5e4bcfb868287fc0)
- Further, using these definitions of
,
, and
, this system can also be expressed as ![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}_{2}=f_{2}(\mathbf {x} _{2})+g_{2}(\mathbf {x} _{2})z_{3}&\qquad {\text{ ( by Lyapunov function }}V_{2},{\text{ subsystem stabilized by }}u_{2}({\textbf {x}}_{2}){\text{ )}}\\{\dot {z}}_{3}=u_{3}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/826ba2c64d99777e1b9a27dbf3cd250e7e8185a6)
- So the re-grouped system has the single-integrator structure of Equation (1), and so the single-integrator backstepping procedure can be applied again. That is, if we feed back states
,
,
, and x to input
according to the control law ![{\displaystyle u_{3}(\mathbf {x} ,z_{1},z_{2},z_{3})=-{\frac {\partial V_{2}}{\partial \mathbf {x} _{2}}}g_{2}(\mathbf {x} _{2})-k_{3}(z_{3}-u_{2}(\mathbf {x} _{2}))+{\frac {\partial u_{2}}{\partial \mathbf {x} _{2}}}(f_{2}(\mathbf {x} _{2})+g_{2}(\mathbf {x} _{2})z_{3})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c33d85da218df32449d3b8e4e52989043d89be89)
- with gain
, then the states
,
,
, and x will return to
,
,
, and
after a single perturbation. This subsystem is stabilized by feedback control law
, and the corresponding Lyapunov function is ![{\displaystyle V_{3}(\mathbf {x} ,z_{1},z_{2},z_{3})=V_{2}(\mathbf {x} _{2})+{\frac {1}{2}}(z_{3}-u_{2}(\mathbf {x} _{2}))^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/48ba247a79525ac42bab37d5f33723f865f2bc1c)
- That is, under feedback control law
, the Lyapunov function
decays to zero as the states return to the origin.
- This process can continue for each integrator added to the system, and hence any system of the form
![{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1}&\qquad {\text{ ( by Lyapunov function }}V_{x},{\text{ subsystem stabilized by }}u_{x}({\textbf {x}}){\text{ )}}\\{\dot {z}}_{1}=z_{2}\\{\dot {z}}_{2}=z_{3}\\\vdots \\{\dot {z}}_{i}=z_{i+1}\\\vdots \\{\dot {z}}_{k-2}=z_{k-1}\\{\dot {z}}_{k-1}=z_{k}\\{\dot {z}}_{k}=u\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/63fa2791115f78c5ed2aa799c22b1b64c540b503)
- has the recursive structure
![{\displaystyle {\begin{cases}{\begin{cases}{\begin{cases}{\begin{cases}{\begin{cases}{\begin{cases}{\begin{cases}{\begin{cases}{\dot {\mathbf {x} }}=f_{x}(\mathbf {x} )+g_{x}(\mathbf {x} )z_{1}&\qquad {\text{ ( by Lyapunov function }}V_{x},{\text{ subsystem stabilized by }}u_{x}({\textbf {x}}){\text{ )}}\\{\dot {z}}_{1}=z_{2}\end{cases}}\\{\dot {z}}_{2}=z_{3}\end{cases}}\\\vdots \end{cases}}\\{\dot {z}}_{i}=z_{i+1}\end{cases}}\\\vdots \end{cases}}\\{\dot {z}}_{k-2}=z_{k-1}\end{cases}}\\{\dot {z}}_{k-1}=z_{k}\end{cases}}\\{\dot {z}}_{k}=u\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/214071da2aa64fb6048fbf1a35bc3c1b1fc71ad6)
- and can be feedback stabilized by finding the feedback-stabilizing control and Lyapunov function for the single-integrator
subsystem (i.e., with input
and output x) and iterating out from that inner subsystem until the ultimate feedback-stabilizing control u is known. At iteration i, the equivalent system is ![{\displaystyle {\begin{cases}\overbrace {\begin{bmatrix}{\dot {\mathbf {x} }}\\{\dot {z}}_{1}\\{\dot {z}}_{2}\\\vdots \\{\dot {z}}_{i-2}\\{\dot {z}}_{i-1}\end{bmatrix}} ^{\triangleq \,{\dot {\mathbf {x} }}_{i-1}}=\overbrace {\begin{bmatrix}f_{i-2}(\mathbf {x} _{i-2})+g_{i-2}(\mathbf {x} _{i-1})z_{i-2}\\0\end{bmatrix}} ^{\triangleq \,f_{i-1}(\mathbf {x} _{i-1})}+\overbrace {\begin{bmatrix}\mathbf {0} \\1\end{bmatrix}} ^{\triangleq \,g_{i-1}(\mathbf {x} _{i-1})}z_{i}&\quad {\text{ ( by Lyap. func. }}V_{i-1},{\text{ subsystem stabilized by }}u_{i-1}({\textbf {x}}_{i-1}){\text{ )}}\\{\dot {z}}_{i}=u_{i}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/90e5520231588fe674cc91f9c5fc0ec81f01eb8d)
- The corresponding feedback-stabilizing control law is
![{\displaystyle u_{i}(\overbrace {\mathbf {x} ,z_{1},z_{2},\dots ,z_{i}} ^{\triangleq \,\mathbf {x} _{i}})=-{\frac {\partial V_{i-1}}{\partial \mathbf {x} _{i-1}}}g_{i-1}(\mathbf {x} _{i-1})\,-\,k_{i}(z_{i}\,-\,u_{i-1}(\mathbf {x} _{i-1}))\,+\,{\frac {\partial u_{i-1}}{\partial \mathbf {x} _{i-1}}}(f_{i-1}(\mathbf {x} _{i-1})\,+\,g_{i-1}(\mathbf {x} _{i-1})z_{i})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7b7c3b406429304529a263bbb5de75a83bc39297)
- with gain
. The corresponding Lyapunov function is ![{\displaystyle V_{i}(\mathbf {x} _{i})=V_{i-1}(\mathbf {x} _{i-1})+{\frac {1}{2}}(z_{i}-u_{i-1}(\mathbf {x} _{i-1}))^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5dfe9a908d7f6c4322547abe7fa9fc2a394f08f9)
- By this construction, the ultimate control
(i.e., ultimate control is found at final iteration
).
Hence, any system in this special many-integrator strict-feedback form can be feedback stabilized using a straightforward procedure that can even be automated (e.g., as part of an adaptive control algorithm).
Generic Backstepping[edit]
Systems in the special strict-feedback form have a recursive structure similar to the many-integrator system structure. Likewise, they are stabilized by stabilizing the smallest cascaded system and then backstepping to the next cascaded system and repeating the procedure. So it is critical to develop a single-step procedure; that procedure can be recursively applied to cover the many-step case. Fortunately, due to the requirements on the functions in the strict-feedback form, each single-step system can be rendered by feedback to a single-integrator system, and that single-integrator system can be stabilized using methods discussed above.
Single-step Procedure[edit]
Consider the simple strict-feedback system
|