反步法(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. 反步法的局限性
- 模型依赖性强:反步法的设计过程需要系统的精确模型,若模型有较大误差,控制效果可能会下降。
- 计算复杂性:由于逐步设计了多个虚拟控制量,反步法的计算过程较复杂,尤其对于高阶系统,计算负担会显著增加。
- 不适用所有系统:反步法主要适用于可以逐层分解的系统,对于一些耦合性强、结构不明确的非线性系统,反步法可能不适用。