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]
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]
\begin{align}\begin{cases} x |
&=fx(x)+gx(x)
z | |||
|
1&=f1(x,z1)+g1(x,z1)
z | |||
|
2&=f2(x,z1,z2)+g2(x,z1,z2)
z | |||
|
i&=fi(x,z1,z2,\ldots,zi-1,zi)+gi(x,z1,z2,\ldots,zi-1,zi)zi+1 for1\leqi<k-1\\ \vdots\\
z |
k-1&=fk-1(x,z1,z2,\ldots,zk-1)+gk-1(x,z1,z2,\ldots,zk-1)
z | |||
|
k&=fk(x,z1,z2,\ldots,zk-1,zk)+gk(x,z1,z2,...,zk-1,zk)u \end{cases}\end{align}
where
x\inRn
n\geq1
z1,z2,\ldots,zi,\ldots,zk-1,zk
fx,f1,f2,\ldots,fi,\ldots,fk-1,fk
fi(0,0,...,0)=0
g1,g2,\ldots,gi,\ldots,gk-1,gk
gi(x,z1,\ldots,zk) ≠ 0
1\leqi\leqk
Also assume that the subsystem
x |
=fx(x)+gx(x)ux(x)
x=0
ux(x)
ux(0)=0
Vx
bf{z}
In systems of this strict-feedback form around a stable subsystem,
zn
zn
zn-1
zi
zi+1
z1
z2
z1
x |
=fx(x)+gx(x)ux(x)
is already stabilized to the origin by some control
ux(x)
ux(0)=0
ux
Vx
u1(x,z1)
z |
1=f1(x,z1)+g1(x,z1)u1(x,z1)
is stabilized so that
z1
ux
V1(x,z1)=Vx(x)+
1 | |
2 |
(z1-ux(x))2
The control
u1
V |
1
u2(x,z1,z2)
z |
2=f2(x,z1,z2)+g2(x,z1,z2)u2(x,z1,z2)
is stabilized so that
z2
u1
V2(x,z1,z2)=V1(x,z1)+
1 | |
2 |
(z2-u1(x,z1))2
The control
u2
V |
2
zk
uk-1
uk-1
zk-1
uk-2
uk-2
zk-2
uk-3
u2
z2
u1
u1
z1
ux
ux
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
fi
0\leqi\leqk
gi
1\leqi\leqk
ux
ux(0)=0
x=0
z1=0
z2=0
zk-1=0
zk=0
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 asystem 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.
Consider the dynamical system
where
x\inRn
z1
z1
We assume that
fx(0)=0
u1=0
x=0
z1=0
\begin{cases} x |
=fx(\underbrace{0
(x,z1)=(0,0)
In this example, backstepping is used to stabilize the single-integrator system in Equation around its equilibrium at the origin. To be less precise, we wish to design a control law
u1(x,z1)
(x,z1)
(0,0)
x |
=F(x) where F(x)\triangleqfx(x)+gx(x)ux(x)
with
ux(0)=0
Vx(x)>0
V |
|
(fx(x)+gx(x)ux(x))\leq-W(x)
where
W(x)
Vx
Vx(x)
Vx(x(t))
x=0
x=0
W(x)
W(x)>0
x=0
W(0)=0
V |
x\leq-W(x)
V |
x
x=0
Our task is to find a control that makes our cascaded
(x,z1)
gx(x)ux(x)
x |
(x,z1)
\begin{cases}x |
=fx(x)+gx(x)z1+d{\underbrace{\left(gx(x)ux(x)-gx(x)ux(x)\right)}0
which we can re-group to get
\begin{cases}x |
=d{\underbrace{\left(fx(x)+gx(x)ux(x)\right)}F(x)
So our cascaded supersystem encapsulates the known-stable
x |
=F(x)
(x,z1)
(x,e1)
e1\triangleqz1-ux(x)
\begin{cases}x |
=(fx(x)+gx(x)ux(x))+ gx(x)
e | |||
|
1=u1-
u |
x\end{cases}
Additionally, we let
v1\trianglequ1-
u |
x
u1=v1+
u |
x
\begin{cases}x |
=(fx(x)+gx(x)ux(x))+gx(x)
e | |||
|
1=v1\end{cases}
We seek to stabilize this error system by feedback through the new control
v1
e1=0
z1
ux
Vx
V1(x,e1)\triangleqVx(x)+
1 | |
2 |
2 | |
e | |
1 |
So
\begin{align} V |
1 &=
V |
x(x)+
1 | |
2 |
\left(2e1
e |
1\right)\\ &=
V |
x(x)+e1
e |
1\\ &=
V |
x(x)+e1
| |||||
\overbrace{v | |||||
1} |
\\ &=\overbrace{
\partialVx | \underbrace{ | |
\partialx |
x |
By distributing
\partialVx/\partialx
V |
1=\overbrace{
\partialVx | |
\partialx |
(fx(x)+gx(x)
{ | |
u | |
x(x))} |
\leq-W(x)}+
\partialVx | |
\partialx |
gx(x)e1+e1v1\leq-W(x)+
\partialVx | |
\partialx |
gx(x)e1+e1v1
To ensure that
V |
1\leq-W(x)<0
v1=-
\partialVx | |
\partialx |
gx(x)-k1e1
with
k1>0
V |
1 =-W(x)+
\partialVx | |
\partialx |
gx(x)e1+e1\overbrace{\left(-
\partialVx | |
\partialx |
gx(x)-k1e1
v1 | |
\right)} |
After distributing the
e1
\begin{align} V |
1 &=-W(x)+
|
gx(x)e1 -e1
\partialVx | |
\partialx |
0 | |
g | |
x(x)} |
So our candidate Lyapunov function
V1
v1
u1
v1\trianglequ1-
u |
x
As discussed below, this Lyapunov function will be used again when this procedure is applied iteratively to multiple-integrator problem.
v1
The states and
z1
fx
gx
ux
x |
=F(x)
k1>0
(x,z1)=(0,0)
Recall that
u1
ux
u1
u |
x
u |
x
So because this system is feedback stabilized by
u1(x,z1)
V1(x,z1)
V |
1(x,z1)\leq-W(x)<0
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
where
x\inRn
z1
z2
u2
u1
By letting
y\triangleq\begin{bmatrix}x\ z1\end{bmatrix}
fy(y)\triangleq\begin{bmatrix}fx(x)+gx(x)z1\ 0\end{bmatrix}
gy(y)\triangleq\begin{bmatrix}0\ 1\end{bmatrix},
By the single-integrator procedure, the control law
uy(y)\trianglequ1(x,z1)
z2
V1(x,z1)
u2
u1
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.
x |
=fx(x)+gx(x)ux
that has scalar input
ux
x=[x1,x2,\ldots,
T | |
x | |
n] |
\inRn
fx(x)=0
ux=0
x=0
ux(x)
Vx(x)
That is, if output states are fed back to the input
ux
ux(x)
ux
ux
u1
\begin{cases} x |
=fx(x)+gx(x)
z | |||
|
1=u1 \end{cases}
This "cascade" system matches the form in Equation , and so the single-integrator backstepping procedure leads to the stabilizing control law in Equation . That is, if we feed back states
z1
u1
u1(x,z
|
gx(x)-k1(z1-ux(x))+
\partialux | |
\partialx |
(fx(x)+gx(x)z1)
with gain
k1>0
z1
z1=0
x=0
u1
V1(x,z1)=Vx(x)+
1 | |
2 |
(z1-ux(x))2
That is, under feedback control law
u1
V1
u1
u2
\begin{cases} x |
=fx(x)+gx(x)
z | |||
|
1=
z | |||
|
2=u2 \end{cases}
which is equivalent to the single-integrator system
\begin{cases} \overbrace{\begin{bmatrix}
x | \ |
z |
1\end{bmatrix}
| |||||
} |
=\overbrace{\begin{bmatrix}fx(x)+gx(x)z1\ 0\end{bmatrix}
\triangleqf1(x1) | |
} |
+ \overbrace{\begin{bmatrix}0\ 1\end{bmatrix}
\triangleqg1(x1) | |
} |
z2& (byLyapunovfunctionV1,subsystemstabilizedbyu1(bf{x}1)\\
z |
2=u2 \end{cases}
Using these definitions of
x1
f1
g1
\begin{cases} x |
1=f1(x1)+g1(x1)z2& (byLyapunovfunctionV1,subsystemstabilizedbyu1(bf{x}1)\\
z |
2=u2 \end{cases}
This system matches the single-integrator structure of Equation , and so the single-integrator backstepping procedure can be applied again. That is, if we feed back states
z1
z2
u2
u2(x,z1,z
|
g1(x1)-k2(z2-u1(x1))+
\partialu1 | |
\partialx1 |
(f1(x1)+g1(x1)z2)
with gain
k2>0
z1
z2
z1=0
z2=0
x=0
u2
V2(x,z1,z2)=V1(x1)+
1 | |
2 |
(z2-u1(x1))2
That is, under feedback control law
u2
V2
u2
u3
\begin{cases} x |
=fx(x)+gx(x)
z | |||
|
1=
z | |||
|
2=
z | |||
|
3=u3 \end{cases}
which can be re-grouped as the single-integrator system
\begin{cases} \overbrace{\begin{bmatrix}
x | \ |
z |
|
2\end{bmatrix}
| |||||
} |
=\overbrace{\begin{bmatrix}fx(x)+gx(x)z2\ z2\ 0\end{bmatrix}
\triangleqf2(x2) | |
} |
+ \overbrace{\begin{bmatrix}0\ 0\ 1\end{bmatrix}
\triangleqg2(x2) | |
} |
z3& (byLyapunovfunctionV2,subsystemstabilizedbyu2(bf{x}2)\\
z |
3=u3 \end{cases}
By the definitions of
x1
f1
g1
\begin{cases} \overbrace{\begin{bmatrix}
x |
|
2\end{bmatrix}
| |||||
} |
=\overbrace{\begin{bmatrix}f1(x1)+g1(x1)z2\ 0\end{bmatrix}
f2(x2) | |
} |
+ \overbrace{\begin{bmatrix}0\ 1\end{bmatrix}
g2(x2) | |
} |
z3& (byLyapunovfunctionV2,subsystemstabilizedbyu2(bf{x}2)\\
z |
3=u3 \end{cases}
Further, using these definitions of
x2
f2
g2
\begin{cases} x |
2=f2(x2)+g2(x2)z3& (byLyapunovfunctionV2,subsystemstabilizedbyu2(bf{x}2)\\
z |
3=u3 \end{cases}
So the re-grouped system has the single-integrator structure of Equation , and so the single-integrator backstepping procedure can be applied again. That is, if we feed back states
z1
z2
z3
u3
u3(x,z1,z2,z
|
g2(x2)-k3(z3-u2(x2))+
\partialu2 | |
\partialx2 |
(f2(x2)+g2(x2)z3)
with gain
k3>0
z1
z2
z3
z1=0
z2=0
z3=0
x=0
u3
V3(x,z1,z2,z3)=V2(x2)+
1 | |
2 |
(z3-u2(x2))2
That is, under feedback control law
u3
V3
\begin{cases} x |
=fx(x)+gx(x)z1& (byLyapunovfunctionVx,subsystemstabilizedby
u | |||
|
1=
z | |||
|
2=
z | |||
|
i=zi+1\\ \vdots\\
z |
k-2=zk-1\\
z |
k-1=
z | |||
|
k=u \end{cases}
has the recursive structure
\begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} x |
=fx(x)+gx(x)z1& (byLyapunovfunctionVx,subsystemstabilizedby
u | |||
|
1=
z | |||
|
2=
z | |||
|
i=zi+1\end{cases}\\ \vdots \end{cases}\\
z |
k-2=zk-1\end{cases}\\
z |
k-1=
z | |||
|
k=u \end{cases}
and can be feedback stabilized by finding the feedback-stabilizing control and Lyapunov function for the single-integrator
(x,z1)
z2
\begin{cases} \overbrace{\begin{bmatrix}
x | \ |
z |
|
2\ \vdots\
z |
i-2\
z |
i-1\end{bmatrix}
| |||||
} |
=\overbrace{\begin{bmatrix}fi-2(xi-2)+gi-2(xi-1)zi-2\ 0\end{bmatrix}
\triangleqfi-1(xi-1) | |
} |
+ \overbrace{\begin{bmatrix}0\ 1\end{bmatrix}
\triangleqgi-1(xi-1) | |
} |
zi& (byLyap.func.Vi-1,subsystemstabilizedbyui-1(bf{x}i-1)\\
z |
i=ui \end{cases}
The corresponding feedback-stabilizing control law is
ui(\overbrace{x,z1,z2,...,z
\triangleqxi | ||
)=- | ||
i} |
\partialVi-1 | |
\partialxi-1 |
gi-1(xi-1)-ki(zi-ui-1(xi-1))+
\partialui-1 | |
\partialxi-1 |
(fi-1(xi-1)+gi-1(xi-1)zi)
with gain
ki>0
Vi(xi)=Vi-1(xi-1)+
1 | |
2 |
(zi-ui-1(xi-1))2
By this construction, the ultimate control
u(x,z1,z2,\ldots,zk)=uk(xk)
i=k
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.
Consider the simple strict-feedback system
where
x=[x1,x2,\ldots,
T | |
x | |
n] |
\inRn
z1
u1
z1
g1(x,z1) ≠ 0
u1
ua1
u1(x,z1) =
1 | |
g1(x,z1) |
\left(ua1-f1(x,z1)\right)
g1 ≠ 0
\begin{cases} x |
=fx(x)+gx(x)
z | |||
|
1=f1(x,z1)+g1(x,z1)\overbrace{
1 | |
g1(x,z1) |
\left(ua1-f1(x,z1)
u1(x,z1) | |
\right)} |
\end{cases}
\begin{cases} x |
=fx(x)+gx(x)
z | |||
|
1=ua1\end{cases}
ua1
ux(x)
Vx(x)
ua1
(x,z | ||||
|
gx(x)-k1(z1-ux(x))+
\partialux | |
\partialx |
(fx(x)+gx(x)z1)
k1>0
with gain
k1>0
Because this strict-feedback system has a feedback-stabilizing control and a corresponding Lyapunov function, it can be cascaded as part of a larger strict-feedback system, and this procedure can be repeated to find the surrounding feedback-stabilizing control.
As in many-integrator backstepping, the single-step procedure can be completed iteratively to stabilize an entire strict-feedback system. In each step,
That is, any strict-feedback system
\begin{cases} x |
=fx(x)+gx(x)z1& (byLyapunovfunctionVx,subsystemstabilizedby
u | |||
|
1=f1(x,z1)+g1(x,z1)
z | |||
|
2=f2(x,z1,z2)+g2(x,z1,z2)
z | |||
|
i=fi(x,z1,z2,\ldots,zi)+gi(x,z1,z2,\ldots,zi)zi+1\\ \vdots\\
z |
k-2=fk-2(x,z1,z2,\ldotszk-2)+gk-2(x,z1,z2,\ldots,zk-2)zk-1\\
z |
k-1=fk-1(x,z1,z2,\ldotszk-2,zk-1)+gk-1(x,z1,z2,\ldots,zk-2,zk-1)
z | |||
|
k=fk(x,z1,z2,\ldotszk-1,zk)+gk(x,z1,z2,\ldots,zk-1,zk)u \end{cases}
\begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} \begin{cases} x |
=fx(x)+gx(x)z1& (byLyapunovfunctionVx,subsystemstabilizedby
u | |||
|
1=f1(x,z1)+g1(x,z1)
z | |||
|
2=f2(x,z1,z2)+g2(x,z1,z2)
z | |||
|
i=fi(x,z1,z2,\ldots,zi)+gi(x,z1,z2,\ldots,zi)zi+1\end{cases}\\ \vdots \end{cases}\\
z |
k-2=fk-2(x,z1,z2,\ldotszk-2)+gk-2(x,z1,z2,\ldots,zk-2)zk-1\end{cases}\\
z |
k-1=fk-1(x,z1,z2,\ldotszk-2,zk-1)+gk-1(x,z1,z2,\ldots,zk-2,zk-1)
z | |||
|
k=fk(x,z1,z2,\ldotszk-1,zk)+gk(x,z1,z2,\ldots,zk-1,zk)u \end{cases}
(x,z1)
z2
\begin{cases} \overbrace{\begin{bmatrix}
x | \ |
z |
|
2\ \vdots\
z |
i-2\
z |
i-1\end{bmatrix}
| |||||
} |
=\overbrace{\begin{bmatrix}fi-2(xi-2)+gi-2(xi-2)zi-2\ fi-1(xi)\end{bmatrix}
\triangleqfi-1(xi-1) | |
} |
+ \overbrace{\begin{bmatrix}0\ gi-1(xi)\end{bmatrix}
\triangleqgi-1(xi-1) | |
} |
zi& (byLyap.func.Vi-1,subsystemstabilizedbyui-1(bf{x}i-1)\\
z |
i=fi(xi)+gi(xi)ui \end{cases}
ui(\overbrace{x,z1,z2,...,z
\triangleqxi | ||
) = | ||
i} |
1 | |
gi(xi) |
\left(\overbrace{-
\partialVi-1 | |
\partialxi-1 |
gi-1(xi-1) - ki\left(zi-ui-1(xi-1)\right) +
\partialui-1 | |
\partialxi-1 |
(fi-1(xi-1) + gi-1(xi-1)zi)
Single-integratorstabilizingcontrolua i(xi) | |
} |
- fi(xi-1) \right)
ki>0
Vi(xi)=Vi-1(xi-1)+
1 | |
2 |
(zi-ui-1(xi-1))2
u(x,z1,z2,\ldots,zk)=uk(xk)
i=k
. Hassan K. Khalil . 2002 . 3rd . Nonlinear Systems . 978-0-13-067389-3 . . Upper Saddle River, NJ.