反步法(Backstepping)是一种非线性控制设计方法,特别适用于具有层次结构的非线性系统。它通过逐步构建一个虚拟控制量序列来处理系统的复杂性,逐步“后退”到原始控制输入的设计,以保证系统的稳定性。反步法主要用于控制复杂的非线性系统,尤其是那些可以被分解成“子系统”的情况。
1. 反步法的基本思路
反步法的基本思路是将系统的复杂非线性动态逐步分解成多个层次,针对每个层次定义新的虚拟控制变量并设计相应的李亚普诺夫函数,使得每一层的误差渐近收敛。这个过程从系统的最终输出(靠近“末端”)开始,逐步“反步”到系统的控制输入,从而形成一个递推式的控制律设计方法。
2. 适用的系统结构
反步法通常用于如下形式的非线性系统:
{
x
˙
1
=
f
1
(
x
1
)
+
g
1
(
x
1
)
x
2
x
˙
2
=
f
2
(
x
1
,
x
2
)
+
g
2
(
x
1
,
x
2
)
u
\begin{cases} \dot{x}_1 = f_1(x_1) + g_1(x_1)x_2 \\ \dot{x}_2 = f_2(x_1, x_2) + g_2(x_1, x_2)u \\ \end{cases}
{x˙1=f1(x1)+g1(x1)x2x˙2=f2(x1,x2)+g2(x1,x2)u
其中,
x
1
x_1
x1是系统的输出或系统的第一层状态,
x
2
x_2
x2 是虚拟控制量,
u
u
u 是最终的控制输入。系统可以有多层状态,每一层状态的动态依赖于上一层状态及控制输入。
3. 反步法的设计步骤
步骤 1:定义误差变量
首先,定义一个跟踪误差,以期望的轨迹或输出
y
d
y_d
yd 为目标。令跟踪误差为:
z
1
=
x
1
−
y
d
z_1 = x_1 - y_d
z1=x1−yd
反步法的目标是让误差
z
1
z_1
z1收敛到零,即
x
1
x_1
x1 逐步接近期望轨迹
y
d
y_d
yd。
步骤 2:设计虚拟控制量
将
z
1
z_1
z1 的导数求出,得到:
z
˙
1
=
x
˙
1
−
y
˙
d
=
f
1
(
x
1
)
+
g
1
(
x
1
)
x
2
−
y
˙
d
\dot{z}_1 = \dot{x}_1 - \dot{y}_d = f_1(x_1) + g_1(x_1)x_2 - \dot{y}_d
z˙1=x˙1−y˙d=f1(x1)+g1(x1)x2−y˙d
为了使
z
1
z_1
z1 收敛,我们引入一个虚拟控制量
α
\alpha
α,来控制
z
1
z_1
z1 的收敛性。选择一个控制律,使得:
α
=
−
k
1
z
1
+
y
˙
d
\alpha = -k_1 z_1 + \dot{y}_d
α=−k1z1+y˙d
其中,
k
1
k_1
k1 是一个正的增益系数。这样设计的虚拟控制量使得
z
˙
1
\dot{z}_1
z˙1 的动态行为趋向于零,从而使
z
1
z_1
z1 收敛。
步骤 3:定义新的误差变量并设计李亚普诺夫函数
由于
x
2
x_2
x2 实际上并不是系统的实际控制输入,而是一个“中间量”(虚拟控制量),我们需要继续设计一个新的误差变量:
z
2
=
x
2
−
α
z_2 = x_2 - \alpha
z2=x2−α
即,
z
2
z_2
z2 表示
x
2
x_2
x2 和虚拟控制量
α
\alpha
α 之间的误差。然后,定义一个新的李亚普诺夫函数来分析这个误差的收敛性。例如,可以选择李亚普诺夫函数:
V
=
1
2
z
1
2
+
1
2
z
2
2
V = \frac{1}{2}z_1^2 + \frac{1}{2}z_2^2
V=21z12+21z22
通过选择适当的控制律,使得这个李亚普诺夫函数的导数为负,从而确保系统的稳定性。
步骤 4:设计最终控制输入 u u u
根据系统方程,将误差
z
2
z_2
z2 的导数求出:
z
˙
2
=
x
˙
2
−
α
˙
=
f
2
(
x
1
,
x
2
)
+
g
2
(
x
1
,
x
2
)
u
−
α
˙
\dot{z}_2 = \dot{x}_2 - \dot{\alpha} = f_2(x_1, x_2) + g_2(x_1, x_2)u - \dot{\alpha}
z˙2=x˙2−α˙=f2(x1,x2)+g2(x1,x2)u−α˙
为使李亚普诺夫函数的导数为负,选择控制输入 (u) 为:
u
=
1
g
2
(
x
1
,
x
2
)
(
−
f
2
(
x
1
,
x
2
)
+
α
˙
−
k
2
z
2
)
u = \frac{1}{g_2(x_1, x_2)} \left(-f_2(x_1, x_2) + \dot{\alpha} - k_2 z_2\right)
u=g2(x1,x2)1(−f2(x1,x2)+α˙−k2z2)
其中,
k
2
k_2
k2 是一个正的增益系数。这样设计的控制律可以保证李亚普诺夫函数的导数始终为负,确保系统的稳定性。
步骤 5:分析系统的稳定性
将设计的控制律代入李亚普诺夫函数的导数中,验证系统的稳定性是否得到保证。最终导出:
V
˙
=
−
k
1
z
1
2
−
k
2
z
2
2
≤
0
\dot{V} = -k_1 z_1^2 - k_2 z_2^2 \leq 0
V˙=−k1z12−k2z22≤0
这表明系统是渐进稳定的。
4. 反步法的优点
- 系统性设计:反步法通过分层设计,将复杂的非线性系统分解成多个较为简单的子系统,使得控制律的设计更为系统化。
- 保证渐进稳定性:反步法设计的控制律可以保证系统误差收敛,且通过李亚普诺夫函数分析可以严格证明系统的稳定性。
- 适应多种非线性系统:反步法不仅适用于简单的线性系统,也适用于具有层次结构的非线性系统。
5. 反步法的局限性
- 模型依赖性强:反步法的设计过程需要系统的精确模型,若模型有较大误差,控制效果可能会下降。
- 计算复杂性:由于逐步设计了多个虚拟控制量,反步法的计算过程较复杂,尤其对于高阶系统,计算负担会显著增加。
- 不适用所有系统:反步法主要适用于可以逐层分解的系统,对于一些耦合性强、结构不明确的非线性系统,反步法可能不适用。