动态表面控制DSC简单介绍
1. 动态表面控制由来
动态表面控制(Dynamic Surface Control, DSC)是非线性控制领域的一种方法,基于李雅普诺夫稳定性理论,其构建方式和过程与反步法(Backstepping)十分类似。掌握反步法对于理解动态表面控制有较大帮助,因此在阅读本文章之前,建议阅读笔者另一篇关于反步法的文章Backstepping反步法控制四旋翼无人机(2)。
反步法是一种非常有效的现代控制方法,避开了难以控制的非线性函数,直接设计控制律,用数学方法规避难以控制的部分,直接使用简单易控的控制律。但其也存在缺点,即每一步控制律的设计都需要用到上一步的微分,当方程维度较大或运算时间较长时,容易发生微分爆炸的问题,使得计算效率和速度大大下降。
相比反步法,DCS方法用一个一阶惯性环节近似代替微分计算,从而避免了微分爆炸的问题。
2. 动态表面控制的理论介绍
这里简单以一个三阶系统为例:
x
1
˙
=
x
2
+
f
1
(
x
⃗
)
x
2
˙
=
x
3
+
f
2
(
x
⃗
)
x
3
˙
=
u
+
f
3
(
x
⃗
)
y
=
x
1
\begin{aligned} \dot{x_1} &= x_2 + f_1(\vec{x}) \\ \dot{x_2}&=x_3+f_2(\vec{x}) \\ \dot{x_3}&=u+f_3(\vec{x}) \\ y&=x_1 \end{aligned}
x1˙x2˙x3˙y=x2+f1(x)=x3+f2(x)=u+f3(x)=x1在反步法中,设误差
z
1
=
y
−
y
d
z_1=y-y_d
z1=y−yd其中
y
y
y为实际输出值,
y
d
y_d
yd为期望值(d表示desired)。那么其导数为
z
˙
1
=
y
˙
−
y
˙
d
=
x
˙
1
−
y
˙
d
=
x
2
+
f
1
−
y
˙
d
\begin{aligned} \dot{z}_1&=\dot{y}-\dot{y}_d \\ &=\dot{x}_1-\dot{y}_d \\ &=x_2+f_1-\dot{y}_d \end{aligned}
z˙1=y˙−y˙d=x˙1−y˙d=x2+f1−y˙d
1) 李雅普诺夫函数 V 1 V_1 V1的设计与求导
此时设李雅普诺夫函数
V
1
V_1
V1为
V
1
=
1
2
z
1
2
V_1=\frac{1}{2}z_1^2
V1=21z12并对其求导有
V
˙
1
=
z
1
z
˙
1
=
z
1
(
x
2
+
f
1
−
y
˙
d
)
(1)
\begin{aligned} \dot{V}_1&=z_1 \dot{z}_1 \\ &=z_1 \left( x_2+f_1-\dot{y}_d \right) \end{aligned} \tag{1}
V˙1=z1z˙1=z1(x2+f1−y˙d)(1)现在先设一阶惯性环节满足
T
2
x
˙
2
v
+
x
2
v
=
α
1
T_2 \dot{x}_{2v}+x_{2v}=\alpha_1
T2x˙2v+x2v=α1其中
v
v
v表示virtual。
在此基础上定义误差
z
2
z_2
z2与误差
γ
2
\gamma_2
γ2:
z
2
=
x
2
−
x
2
v
(2)
z_2=x_2-x_{2v} \tag{2}
z2=x2−x2v(2)
γ
2
=
x
2
v
−
α
1
(3)
\gamma_2=x_{2v}-\alpha_1 \tag{3}
γ2=x2v−α1(3)这两个误差的含义是:
z
2
z_2
z2表示物理量
x
2
x_2
x2的实际值与期望值(即虚拟控制量
x
2
v
x_{2v}
x2v)的误差,
γ
2
\gamma_2
γ2表示物理量
z
2
z_2
z2的期望值
x
2
v
x_{2v}
x2v与一阶惯性环节输入量
α
1
\alpha_1
α1之间的误差。
现在根据(2)(3)两式可以推出
x
2
=
z
2
+
x
2
v
x
2
v
=
γ
2
+
α
1
\begin{aligned} x_2&=z_2+x_{2v} \\ x_{2v}&=\gamma_2+\alpha_1 \end{aligned}
x2x2v=z2+x2v=γ2+α1那么(1)式有
V
˙
1
=
z
1
(
x
2
+
f
1
−
y
˙
d
)
=
z
1
(
z
2
+
x
2
v
+
f
1
−
y
˙
d
)
=
z
1
(
z
2
+
γ
2
+
α
1
+
f
1
−
y
˙
d
)
(4)
\begin{aligned} \dot{V}_1&=z_1 \left( x_2+f_1-\dot{y}_d \right) \\ &= z_1 \left( z_2+x_{2v}+f_1-\dot{y}_d \right) \\ &= z_1 \left( z_2+\gamma_2+\alpha_1+f_1-\dot{y}_d \right) \end{aligned} \tag{4}
V˙1=z1(x2+f1−y˙d)=z1(z2+x2v+f1−y˙d)=z1(z2+γ2+α1+f1−y˙d)(4)此时可以将控制律
α
1
\alpha_1
α1设计为
α
1
=
y
˙
d
−
f
1
−
k
1
z
1
(5)
\alpha_1=\dot{y}_d-f_1-k_1z_1 \tag{5}
α1=y˙d−f1−k1z1(5)于是
V
˙
1
=
z
1
(
z
2
+
γ
2
+
α
1
+
f
1
−
y
˙
d
)
=
z
1
(
z
2
+
γ
2
+
y
˙
d
−
f
1
−
k
1
z
1
+
f
1
−
y
˙
d
)
=
z
1
(
z
2
+
γ
2
−
k
1
z
1
)
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
(6)
\begin{aligned} \dot{V}_1&= z_1 \left( z_2+\gamma_2+\alpha_1+f_1-\dot{y}_d \right) \\ &= z_1 \left( z_2+\gamma_2+\dot{y}_d-f_1-k_1z_1+f_1-\dot{y}_d \right) \\ &= z_1 \left( z_2+\gamma_2-k_1z_1 \right) \\ &= -k_1z_1^2+z_1\left( z_2+\gamma_2 \right) \end{aligned} \tag{6}
V˙1=z1(z2+γ2+α1+f1−y˙d)=z1(z2+γ2+y˙d−f1−k1z1+f1−y˙d)=z1(z2+γ2−k1z1)=−k1z12+z1(z2+γ2)(6)
2) 李雅普诺夫函数 V 2 V_2 V2的设计与求导
可以看到,(6)里出现了另一个误差量
z
2
z_2
z2。因此,需要把
z
2
z_2
z2也设计进李雅普诺夫函数里:
V
2
=
1
2
z
1
2
+
1
2
z
2
2
V_2=\frac{1}{2}z_1^2+\frac{1}{2}z_2^2
V2=21z12+21z22对其求导
V
˙
2
=
z
1
z
˙
1
+
z
2
z
˙
2
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
z
˙
2
(7)
\begin{aligned} \dot{V}_2&=z_1\dot{z}_1+z_2\dot{z}_2 \\ &= -k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \dot{z}_2 \tag{7} \end{aligned}
V˙2=z1z˙1+z2z˙2=−k1z12+z1(z2+γ2)+z2z˙2(7)现在考虑
z
˙
2
\dot{z}_2
z˙2的表达式。从式(2)中可以得到
z
˙
2
=
x
˙
2
−
x
˙
2
v
=
x
3
+
f
2
−
x
˙
2
v
(8)
\dot{z}_2=\dot{x}_2-\dot{x}_{2v}=x_3+f_2-\dot{x}_{2v} \tag{8}
z˙2=x˙2−x˙2v=x3+f2−x˙2v(8)于是问题最终归结于求出
x
˙
2
v
\dot{x}_{2v}
x˙2v。由于
T
2
x
˙
2
v
+
x
2
v
=
α
1
T_2 \dot{x}_{2v}+x_{2v}=\alpha_1
T2x˙2v+x2v=α1,从式(2)(3)可以得出
x
˙
2
v
=
α
1
−
x
2
v
T
2
=
−
γ
2
T
2
(9)
\dot{x}_{2v}=\frac{\alpha_1-x_{2v}}{T_2}=-\frac{\gamma_2}{T_2} \tag{9}
x˙2v=T2α1−x2v=−T2γ2(9)把公式(9)代入(8)有
z
˙
2
=
x
3
+
f
2
−
x
˙
2
v
=
x
3
+
f
2
+
γ
2
T
2
(10)
\dot{z}_2=x_3+f_2-\dot{x}_{2v}=x_3+f_2+\frac{\gamma_2}{T_2} \tag{10}
z˙2=x3+f2−x˙2v=x3+f2+T2γ2(10)再把(10)带回入(7)有
V
˙
2
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
z
˙
2
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
(
x
3
+
f
2
+
γ
2
T
2
)
\begin{aligned} \dot{V}_2 &= -k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \dot{z}_2 \\ &= -k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \left(x_3+f_2+\frac{\gamma_2}{T_2} \right) \end{aligned}
V˙2=−k1z12+z1(z2+γ2)+z2z˙2=−k1z12+z1(z2+γ2)+z2(x3+f2+T2γ2)现在又设第二个一阶惯性环节为
T
3
x
˙
3
v
+
x
3
v
=
α
2
T_3 \dot{x}_{3v}+x_{3v}=\alpha_2
T3x˙3v+x3v=α2及对应的误差
z
3
=
x
3
−
x
3
v
z_3=x_3-x_{3v}
z3=x3−x3v
γ
3
=
x
3
v
−
α
2
\gamma_3=x_{3v}-\alpha_2
γ3=x3v−α2于是
x
3
=
z
3
+
x
3
v
,
x
3
v
=
γ
3
+
α
2
⟹
x
3
=
z
3
+
γ
3
+
α
2
x_3=z_3+x_{3v},\quad x_{3v}=\gamma_3+\alpha_2 \Longrightarrow x_3=z_3+\gamma_3+\alpha_2
x3=z3+x3v,x3v=γ3+α2⟹x3=z3+γ3+α2从而
V
˙
2
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
(
x
3
+
f
2
+
γ
2
T
2
)
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
(
z
3
+
γ
3
+
α
2
+
f
2
+
γ
2
T
2
)
\begin{aligned} \dot{V}_2&=-k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \left(x_3+f_2+\frac{\gamma_2}{T_2} \right) \\ &= -k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \left(z_3+\gamma_3+\alpha_2+f_2+\frac{\gamma_2}{T_2} \right) \end{aligned}
V˙2=−k1z12+z1(z2+γ2)+z2(x3+f2+T2γ2)=−k1z12+z1(z2+γ2)+z2(z3+γ3+α2+f2+T2γ2)设第二个控制量
α
2
\alpha_2
α2为
α
2
=
−
f
2
−
γ
2
T
2
−
z
1
−
k
2
z
2
\alpha_2=-f_2-\frac{\gamma_2}{T_2}-z_1-k_2z_2
α2=−f2−T2γ2−z1−k2z2则
V
˙
2
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
(
z
3
+
γ
3
+
α
2
+
f
2
+
γ
2
T
2
)
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
(
z
3
+
γ
3
−
f
2
−
γ
2
T
2
−
z
1
−
k
2
z
2
+
f
2
+
γ
2
T
2
)
=
−
k
1
z
1
2
+
z
1
(
z
2
+
γ
2
)
+
z
2
(
z
3
+
γ
3
−
z
1
−
k
2
z
2
)
=
−
k
1
z
1
2
−
k
2
z
2
2
+
z
1
γ
2
+
z
2
(
z
3
+
γ
3
)
(11)
\begin{aligned} \dot{V}_2&=-k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \left(z_3+\gamma_3+\alpha_2+f_2+\frac{\gamma_2}{T_2} \right) \\ &= -k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \left(z_3+\gamma_3-f_2-\frac{\gamma_2}{T_2}-z_1-k_2z_2+f_2+\frac{\gamma_2}{T_2} \right) \\ &= -k_1z_1^2+z_1\left( z_2+\gamma_2 \right) +z_2 \left(z_3+\gamma_3-z_1-k_2z_2 \right) \\ &= -k_1z_1^2 -k_2z_2^2+z_1\gamma_2+z_2 \left(z_3+\gamma_3 \right) \end{aligned} \tag{11}
V˙2=−k1z12+z1(z2+γ2)+z2(z3+γ3+α2+f2+T2γ2)=−k1z12+z1(z2+γ2)+z2(z3+γ3−f2−T2γ2−z1−k2z2+f2+T2γ2)=−k1z12+z1(z2+γ2)+z2(z3+γ3−z1−k2z2)=−k1z12−k2z22+z1γ2+z2(z3+γ3)(11)
3) 总体李雅普诺夫函数 V 3 V_3 V3的设计与求导
同理,设计
V
3
V_3
V3为
V
3
=
1
2
z
1
2
+
1
2
z
2
2
+
1
2
z
3
2
V_3=\frac{1}{2}z_1^2+\frac{1}{2}z_2^2+\frac{1}{2}z_3^2
V3=21z12+21z22+21z32对其求导
V
˙
3
=
z
1
z
˙
1
+
z
2
z
˙
2
+
z
3
z
˙
3
=
−
k
1
z
1
2
−
k
2
z
2
2
+
z
1
γ
2
+
z
2
(
z
3
+
γ
3
)
+
z
3
z
˙
3
(12)
\begin{aligned} \dot{V}_3&=z_1\dot{z}_1+z_2\dot{z}_2+z_3\dot{z}_3 \\ &= -k_1z_1^2 -k_2z_2^2+z_1\gamma_2+z_2 \left(z_3+\gamma_3 \right) +z_3 \dot{z}_3 \tag{12} \end{aligned}
V˙3=z1z˙1+z2z˙2+z3z˙3=−k1z12−k2z22+z1γ2+z2(z3+γ3)+z3z˙3(12)同样地,现在考虑
z
˙
3
\dot{z}_3
z˙3的表达式。参照式(2)(3)可以得到
z
3
=
x
3
−
x
3
v
(13)
z_3=x_3-x_{3v} \tag{13}
z3=x3−x3v(13)
γ
3
=
x
3
v
−
α
2
(14)
\gamma_3=x_{3v}-\alpha_2 \tag{14}
γ3=x3v−α2(14)以及
z
˙
3
=
x
˙
3
−
x
˙
3
v
=
u
+
f
3
−
x
˙
3
v
(15)
\dot{z}_3=\dot{x}_3-\dot{x}_{3v}=u+f_3-\dot{x}_{3v} \tag{15}
z˙3=x˙3−x˙3v=u+f3−x˙3v(15)于是问题最终归结于求出
x
˙
3
v
\dot{x}_{3v}
x˙3v。由于
T
3
x
˙
3
v
+
x
3
v
=
α
2
T_3 \dot{x}_{3v}+x_{3v}=\alpha_2
T3x˙3v+x3v=α2,从式(13)(14)可以得出
x
˙
3
v
=
α
2
−
x
3
v
T
3
=
−
γ
3
T
3
(16)
\dot{x}_{3v}=\frac{\alpha_2-x_{3v}}{T_3}=-\frac{\gamma_3}{T_3} \tag{16}
x˙3v=T3α2−x3v=−T3γ3(16)把公式(16)代入(15)有
z
˙
3
=
u
+
f
3
−
x
˙
3
v
=
u
+
f
3
+
γ
3
T
3
(17)
\dot{z}_3=u+f_3-\dot{x}_{3v}=u+f_3+\frac{\gamma_3}{T_3} \tag{17}
z˙3=u+f3−x˙3v=u+f3+T3γ3(17)再把(17)带回入(12)有
V
˙
3
=
−
k
1
z
1
2
−
k
2
z
2
2
+
z
1
γ
2
+
z
2
(
z
3
+
γ
3
)
+
z
3
z
˙
3
=
−
k
1
z
1
2
−
k
2
z
2
2
+
z
1
γ
2
+
z
2
(
z
3
+
γ
3
)
+
z
3
(
u
+
f
3
+
γ
3
T
3
)
(18)
\begin{aligned} \dot{V}_3&= -k_1z_1^2 -k_2z_2^2+z_1\gamma_2+z_2 \left(z_3+\gamma_3 \right) +z_3 \dot{z}_3 \\ &= -k_1z_1^2 -k_2z_2^2+z_1\gamma_2+z_2 \left(z_3+\gamma_3 \right) +z_3 \left( u+f_3+\frac{\gamma_3}{T_3} \right) \\ \end{aligned} \tag{18}
V˙3=−k1z12−k2z22+z1γ2+z2(z3+γ3)+z3z˙3=−k1z12−k2z22+z1γ2+z2(z3+γ3)+z3(u+f3+T3γ3)(18)这里终于可以进行实际控制量
u
u
u的设计了。设
u
u
u具有以下形式
u
=
−
f
3
−
γ
3
T
3
−
k
3
z
3
−
z
2
u=-f_3-\frac{\gamma_3}{T_3}-k_3z_3-z_2
u=−f3−T3γ3−k3z3−z2那么(18)式变成
V
˙
3
=
−
k
1
z
1
2
−
k
2
z
2
2
+
z
1
γ
2
+
z
2
(
z
3
+
γ
3
)
+
z
3
(
u
+
f
3
+
γ
3
T
3
)
=
−
k
1
z
1
2
−
k
2
z
2
2
+
z
1
γ
2
+
z
2
(
z
3
+
γ
3
)
+
z
3
(
−
f
3
−
γ
3
T
3
−
k
3
z
3
−
z
2
+
f
3
+
γ
3
T
3
)
=
−
k
1
z
1
2
−
k
2
z
2
2
+
z
1
γ
2
+
z
2
(
z
3
+
γ
3
)
+
z
3
(
−
k
3
z
3
−
z
2
)
=
−
k
1
z
1
2
−
k
2
z
2
2
−
k
3
z
3
2
+
z
1
γ
2
+
z
2
γ
3
\begin{aligned} \dot{V}_3&= -k_1z_1^2 -k_2z_2^2+z_1\gamma_2+z_2 \left(z_3+\gamma_3 \right) +z_3 \left( u+f_3+\frac{\gamma_3}{T_3} \right) \\ &= -k_1z_1^2 -k_2z_2^2+z_1\gamma_2+z_2 \left(z_3+\gamma_3 \right) +z_3 \left( -f_3-\frac{\gamma_3}{T_3}-k_3z_3-z_2+f_3+\frac{\gamma_3}{T_3} \right) \\ &= -k_1z_1^2 -k_2z_2^2+z_1\gamma_2+z_2 \left(z_3+\gamma_3 \right) +z_3 \left( -k_3z_3-z_2 \right) \\ &= -k_1z_1^2 -k_2z_2^2-k_3z_3^2+z_1\gamma_2+z_2 \gamma_3 \end{aligned}
V˙3=−k1z12−k2z22+z1γ2+z2(z3+γ3)+z3(u+f3+T3γ3)=−k1z12−k2z22+z1γ2+z2(z3+γ3)+z3(−f3−T3γ3−k3z3−z2+f3+T3γ3)=−k1z12−k2z22+z1γ2+z2(z3+γ3)+z3(−k3z3−z2)=−k1z12−k2z22−k3z32+z1γ2+z2γ3上式即为最后采用的实际控制量
u
u
u的表达式。总李雅普诺夫函数
V
3
V_3
V3在一定量的
z
1
γ
2
+
z
2
γ
3
z_1\gamma_2+z_2 \gamma_3
z1γ2+z2γ3下可以达到
V
˙
3
≤
0
\dot{V}_3 \leq 0
V˙3≤0。这也反映了DSC的一个缺点,即必须小心选取
T
i
T_i
Ti,这样才能使得
V
˙
3
≤
0
\dot{V}_3 \leq 0
V˙3≤0。