积分反步法
核心思想
通过将部分状态变量视为“虚拟控制量”,为设计其中间控制率,从而递归地构造整个系统的控制器。
系统描述
考虑以下三阶反馈系统:
{x˙1=x2+x12x˙2=x3+x22x˙3=u(1) \begin{cases} \dot{x}_1 = x_2 + x_1^2 \\ \dot{x}_2 = x_3 + x_2^2 \\ \dot{x}_3 = u \end{cases} \tag{1} ⎩⎨⎧x˙1=x2+x12x˙2=x3+x22x˙3=u(1)
一、第一步
令 z1=x1z_1 = x_1z1=x1,则:
z˙1=x2+x12(2) \dot{z}_1 = x_2 + x_1^2 \tag{2} z˙1=x2+x12(2)
将 x2x_2x2 视为控制变量,为其设置一个虚拟控制率 α1\alpha_1α1,定义误差变量:
z2=x2−α1(3) z_2 = x_2 - \alpha_1 \tag{3} z2=x2−α1(3)
将(3)式带入(2)式可以得到:
z˙1=α1+x12+z2(4) \dot{z}_1 = \alpha_1 + x_1^2 + z_2 \tag{4} z˙1=α1+x12+z2(4)
在这一步中,我们的目的是设计虚拟控制率 α1\alpha_1α1,使得 z1=0z_1 = 0z1=0。
设计 Lyapunov 函数:
V1=12z12(5) V_1 = \frac{1}{2} z_1^2 \tag{5} V1=21z12(5)
对其求一阶导数:
V˙1=z1z˙1=z1(x2+x12)=z1(z2+α1+x12)=z1z2+z1(α1+x12)(6) \dot{V}_1 = z_1 \dot{z}_1 = z_1(x_2 + x_1^2) = z_1(z_2 + \alpha_1 + x_1^2) = z_1 z_2 + z_1(\alpha_1 + x_1^2) \tag{6} V˙1=z1z˙1=z1(x2+x12)=z1(z2+α1+x12)=z1z2+z1(α1+x12)(6)
为了使 z1→0z_1 \to 0z1→0,我们选择虚拟控制率:
α1=−c1z1−x12(7) \alpha_1 = -c_1 z_1 - x_1^2 \tag{7} α1=−c1z1−x12(7)
所以 Lyapunov 导函数有:
V˙1=−c1z12+z1z2(8) \dot{V}_1 = -c_1 z_1^2 + z_1 z_2 \tag{8} V˙1=−c1z12+z1z2(8)
其中 c1c_1c1 为正的常数,若 z2=0z_2 = 0z2=0,则有 V˙1=−c1z12\dot{V}_1 = -c_1 z_1^2V˙1=−c1z12,说明 z1z_1z1 渐近稳定。
二、第二步
对(3)式求导:
z˙2=x˙2−α˙1=x3+x22+(c1z˙1+2x1x˙1)=x3+x22+(x2+x12)(c1+2x1)(9) \dot{z}_2 = \dot{x}_2 - \dot{\alpha}_1 = x_3 + x_2^2 + (c_1 \dot{z}_1 + 2x_1 \dot{x}_1) = x_3 + x_2^2 + (x_2 + x_1^2)(c_1 + 2x_1) \tag{9} z˙2=x˙2−α˙1=x3+x22+(c1z˙1+2x1x˙1)=x3+x22+(x2+x12)(c1+2x1)(9)
将 x3x_3x3 视为新的控制变量,为其设置新的虚拟控制量 α2\alpha_2α2,定义新的误差变量:
z3=x3−α2(10) z_3 = x_3 - \alpha_2 \tag{10} z3=x3−α2(10)
现在的控制目标变成了 z2→0z_2 \to 0z2→0,所以我们设计 Lyapunov 函数:
V2=V1+12z22(11) V_2 = V_1 + \frac{1}{2} z_2^2 \tag{11} V2=V1+21z22(11)
对其求导可得 V˙2=V˙1+z2z˙2\dot{V}_2 = \dot{V}_1 + z_2 \dot{z}_2V˙2=V˙1+z2z˙2,将(8)(9)(10)带入:
V˙2=−c1z12+z1z2+z2(z3+α2+x22+(x2+x12)(c1+2x1))(12) \dot{V}_2 = -c_1 z_1^2 + z_1 z_2 + z_2 (z_3 + \alpha_2 + x_2^2 + (x_2 + x_1^2)(c_1 + 2x_1)) \tag{12} V˙2=−c1z12+z1z2+z2(z3+α2+x22+(x2+x12)(c1+2x1))(12)
为了使 z2→0z_2 \to 0z2→0,我们设计新的虚拟控制率(注意无法消除 z3z_3z3 项):
α2=−z1−c2z2−x22−(c1+2x1)(x2+x12)(13) \alpha_2 = -z_1 - c_2 z_2 - x_2^2 - (c_1 + 2x_1)(x_2 + x_1^2) \tag{13} α2=−z1−c2z2−x22−(c1+2x1)(x2+x12)(13)
其中 c2c_2c2 是一个正的常数,所以 Lyapunov 导函数为:
V˙2=−c1z12−c2z22+z2z3=−∑i=12cizi2+z2z3(14) \dot{V}_2 = -c_1 z_1^2 - c_2 z_2^2 + z_2 z_3 = -\sum_{i=1}^{2} c_i z_i^2 + z_2 z_3 \tag{14} V˙2=−c1z12−c2z22+z2z3=−i=1∑2cizi2+z2z3(14)
当 z3=0z_3 = 0z3=0 时,V˙2=−∑i=12cizi2\dot{V}_2 = -\sum_{i=1}^{2} c_i z_i^2V˙2=−∑i=12cizi2,因此 z1z_1z1 与 z2z_2z2 都将渐进收敛于 0。
三、第三步
继续处理(1)式中的最后一个方程,推导误差变量 z3=x3−α2z_3 = x_3 - \alpha_2z3=x3−α2 的导数:
z˙3=x˙3−α˙2=u−∂α2∂x1x˙1−∂α2∂x2x˙2(15) \dot{z}_3 = \dot{x}_3 - \dot{\alpha}_2 = u - \frac{\partial \alpha_2}{\partial x_1} \dot{x}_1 - \frac{\partial \alpha_2}{\partial x_2} \dot{x}_2 \tag{15} z˙3=x˙3−α˙2=u−∂x1∂α2x˙1−∂x2∂α2x˙2(15)
将(1)带入(15)得:
z˙3=u−∂α2∂x1(x2+x12)−∂α2∂x2(x3+x22)(16) \dot{z}_3 = u - \frac{\partial \alpha_2}{\partial x_1}(x_2 + x_1^2) - \frac{\partial \alpha_2}{\partial x_2}(x_3 + x_2^2) \tag{16} z˙3=u−∂x1∂α2(x2+x12)−∂x2∂α2(x3+x22)(16)
在(16)式中实际控制输入 uuu 出现了,因此我们可以自由设计它。我们的目标是设计合适的控制率 uuu,使得所有的误差变量 z1,z2,z3z_1, z_2, z_3z1,z2,z3 全部渐进收敛到 0。为此我们选择:
V3=V2+12z32(17) V_3 = V_2 + \frac{1}{2} z_3^2 \tag{17} V3=V2+21z32(17)
对其求导:
V˙3=V˙2+z3z˙3=−∑i=12cizi2+z2z3+z3z˙3=−∑i=12cizi2+z3(u+z2−∂α2∂x1(x2+x12)−∂α2∂x2(x3+x22))(18) \dot{V}_3 = \dot{V}_2 + z_3 \dot{z}_3 = -\sum_{i=1}^{2} c_i z_i^2 + z_2 z_3 + z_3 \dot{z}_3 \\ = -\sum_{i=1}^{2} c_i z_i^2 + z_3 \left( u + z_2 - \frac{\partial \alpha_2}{\partial x_1}(x_2 + x_1^2) - \frac{\partial \alpha_2}{\partial x_2}(x_3 + x_2^2) \right) \tag{18} V˙3=V˙2+z3z˙3=−i=1∑2cizi2+z2z3+z3z˙3=−i=1∑2cizi2+z3(u+z2−∂x1∂α2(x2+x12)−∂x2∂α2(x3+x22))(18)
设计控制输入 uuu 为:
u=−z2−c3z3+∂α2∂x1(x2+x12)+∂α2∂x2(x3+x22)(19) u = -z_2 - c_3 z_3 + \frac{\partial \alpha_2}{\partial x_1}(x_2 + x_1^2) + \frac{\partial \alpha_2}{\partial x_2}(x_3 + x_2^2) \tag{19} u=−z2−c3z3+∂x1∂α2(x2+x12)+∂x2∂α2(x3+x22)(19)
其中 c3c_3c3 是一个正的常数,最终得到的 Lyapunov 导函数为:
V˙3=−∑i=13cizi2 \dot{V}_3 = -\sum_{i=1}^{3} c_i z_i^2 V˙3=−i=1∑3cizi2
满足所有变量渐进收敛到 0。