有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(上)
在讲述固定时间收敛前,我们可以先简单讲述一下渐进收敛和有限时间收敛、固定时间收敛、预定时间收敛都是在其基础上发展而来。
一、稳定性定义
考虑由以下方程描述的非线性自治系统:
x ˙ ( t ) = f ( x ( t ) ) , x ( 0 ) = x 0 , (1.1) \dot{x}(t) = f(x(t)), \quad x(0) = x_0, \tag{1.1} x˙(t)=f(x(t)),x(0)=x0,(1.1)
其中, x ∈ R ℓ x \in \mathbb{R}^\ell x∈Rℓ 是状态变量, f : D → R ℓ f : \mathcal{D} \to \mathbb{R}^\ell f:D→Rℓ 是定义在原点附近的开邻域 D \mathcal{D} D 上的上半连续映射,且对任意 x ∈ D x \in \mathcal{D} x∈D,集合 f ( x ) f(x) f(x) 非空,同时对所有 $ t > 0 $ 有 f ( 0 ) = 0 f(0) = 0 f(0)=0。若 f ( x ( t ) ) f(x(t)) f(x(t)) 不连续,则系统 (1.1) 的解按 Filippov 意义理解。设 x ( t , x 0 ) x(t, x_0) x(t,x0) 为系统 (1.1) 柯西问题的任意解。
定义 1.1 系统 (1.1) 在原点处的平衡点为:
- 李雅普诺夫稳定:若对任意 ε > 0 \varepsilon > 0 ε>0,存在 δ = δ ( ε ) > 0 \delta = \delta(\varepsilon) > 0 δ=δ(ε)>0,使得当 ∀ ∥ x 0 ∥ < δ \forall \|x_0\| < \delta ∀∥x0∥<δ 时,有 ∥ x ( t , x 0 ) ∥ < ε \|x(t, x_0)\| < \varepsilon ∥x(t,x0)∥<ε 对所有 $ t > 0 $ 成立;
- 局部渐近稳定:若它是稳定的,且可以选取 δ \delta δ 使得当 ∀ ∥ x 0 ∥ < δ \forall \|x_0\| < \delta ∀∥x0∥<δ 时, lim t → ∞ ∥ x 0 ∥ = 0 \lim_{t \to \infty} \|x_0\| = 0 limt→∞∥x0∥=0;
- 全局渐近稳定:若它是稳定的,且对所有 x 0 ∈ R ℓ x_0 \in \mathbb{R}^\ell x0∈Rℓ,有 lim t → ∞ ∥ x 0 ∥ = 0 \lim_{t \to \infty} \|x_0\| = 0 limt→∞∥x0∥=0;
- 不稳定:若它不满足稳定性条件。
定义 1.2 原点是系统 (1.1) 的有限时间稳定平衡点,当且仅当原点是李雅普诺夫稳定的,并且存在原点的一个开邻域 N ⊆ D \mathcal{N} \subseteq \mathcal{D} N⊆D 和一个正定函数 T ( x 0 ) = sup x ( t , x 0 ) inf { T ≥ 0 : x ( t , x 0 ) = 0 对所有 t ≥ T , x 0 ∈ N } T(x_0) = \sup_{x(t, x_0)} \inf\{T \geq 0 : x(t, x_0) = 0 \text{ 对所有 } t \geq T, \, x_0 \in \mathcal{N}\} T(x0)=supx(t,x0)inf{T≥0:x(t,x0)=0 对所有 t≥T,x0∈N}(称为收敛时间函数),使得对所有 x ( 0 ) ∈ N ∖ { 0 } x(0) \in \mathcal{N} \setminus \{0\} x(0)∈N∖{0},有 T ( x 0 ) < ∞ T(x_0) < \infty T(x0)<∞。此外,若 N = R ℓ \mathcal{N} = \mathbb{R}^\ell N=Rℓ,则原点是全局有限时间稳定平衡点。有限时间稳定性隐含渐近稳定性。
定义 1.3 原点是系统 (1.1) 的固定时间稳定平衡点,若它是全局有限时间稳定的,且收敛时间函数 T ( x 0 ) T(x_0) T(x0) 被一个实数 T max > 0 T_{\max} > 0 Tmax>0 限制,即 T ( x 0 ) ≤ T max , ∀ x 0 ∈ R ℓ T(x_0) \leq T_{\max}, \, \forall x_0 \in \mathbb{R}^\ell T(x0)≤Tmax,∀x0∈Rℓ。
定义 1.4 一个函数 V ( x ) : D → R V(x):\mathcal{D} \to \mathbb{R} V(x):D→R,满足 V ( 0 ) = 0 V(0)=0 V(0)=0 被称作:
- 正定函数:若 V ( x ) > 0 , ∀ x ∈ D ∖ { 0 } V(x) > 0, \, \forall x \in \mathcal{D} \setminus \{0\} V(x)>0,∀x∈D∖{0}
- 半正定函数:若 V ( x ) ≥ 0 , ∀ x ∈ D ∖ { 0 } V(x) \geq 0, \, \forall x \in \mathcal{D} \setminus \{0\} V(x)≥0,∀x∈D∖{0}
- 负定函数:若 V ( x ) < 0 , ∀ x ∈ D ∖ { 0 } V(x) < 0, \, \forall x \in \mathcal{D} \setminus \{0\} V(x)<0,∀x∈D∖{0}
- 半负定函数:若 V ( x ) ≤ 0 , ∀ x ∈ D ∖ { 0 } V(x) \leq 0, \, \forall x \in \mathcal{D} \setminus \{0\} V(x)≤0,∀x∈D∖{0}
注意:为了便于固定时间稳定相关结论的推导以及公式的简化,这里我们定义符号 ⌈ x ⌋ = ∣ x ∣ sign ( x ) \lceil x \rfloor = |x| \operatorname{sign}(x) ⌈x⌋=∣x∣sign(x),其中 sign ( x ) \operatorname{sign}(x) sign(x) 为符号函数。
二、李雅普诺夫函数
假设存在一个连续可微的正定函数 V ( x ) : D → R V(x) : \mathcal{D} \to \mathbb{R} V(x):D→R,且满足 V ( x ) > 0 , ∀ x ∈ D ∖ { 0 } V(x) > 0, \, \forall x \in \mathcal{D} \setminus \{0\} V(x)>0,∀x∈D∖{0}。则:
- 局部稳定性:若 V ˙ ( x ( t ) ) ≤ 0 , ∀ x ∈ D \dot{V}(x(t)) \leq 0, \, \forall x \in \mathcal{D} V˙(x(t))≤0,∀x∈D,则原点是系统 (1.1) 的局部稳定平衡点;
- 局部渐近稳定性:若 V ˙ ( x ( t ) ) < 0 , ∀ x ∈ D ∖ { 0 } \dot{V}(x(t)) < 0, \, \forall x \in \mathcal{D} \setminus \{0\} V˙(x(t))<0,∀x∈D∖{0},则原点是局部渐近稳定平衡点;
- 全局稳定性:若 D = R ℓ \mathcal{D} = \mathbb{R}^\ell D=Rℓ 且 V ( x ) V(x) V(x) 径向无界(即 lim ∥ x ∥ → ∞ V ( x ) = ∞ \lim_{\|x\| \to \infty} V(x) = \infty lim∥x∥→∞V(x)=∞),上述结论可推广至全局。
满足上述条件的 V ( x ) V(x) V(x) 称为系统 (1.1) 的李雅普诺夫函数。
如何简单的理解李雅普诺夫函数呢?我个人觉的简单理解就是能量。李雅普诺夫函数的值就是能量的值,李雅普诺夫函数平衡点就是能量最小的时候的值,也就是在系统设计时期望的系统状态,所以很多时候我们会将李雅普诺夫函数设计为 V = 1 2 e e T V = \frac{1}{2} e e^T V=21eeT,也就是误差的乘积,从这个角度来理解就是我们期望误差最小。
想象一个小球放在一个碗里:
- 稳定平衡点(碗底):如果小球受到扰动,它会来回摆动,最终因为摩擦力(能量耗散)而回到碗底。
- 不稳定平衡点(倒扣的碗顶):小球稍微一动就会滚下去,无法回到原点。
- 如果这个“能量” 随时间不断减小(即 V ˙ ( x ) < 0 \dot V(x) < 0 V˙(x)<0),那么系统最终会趋于稳定(小球停在碗底)。
- 如果“能量” 不增加(即 V ˙ ( x ) ≤ 0 \dot V(x) \le 0 V˙(x)≤0),系统可能稳定(但不一定收敛到平衡点)。
三、渐进稳定
3.1、定义
利用Lyapunov直接法,可以给出系统渐进稳定的充要条件如下:对于原点 x = 0 x=0 x=0 的平衡点,如果存在一个 Lyapunov 函数 V ( x ) V(x) V(x) 满足以下条件:
- V ( 0 ) = 0 V(0) = 0 V(0)=0 且 V ( x ) V(x) V(x) 是正定的(查看定义1.4)
- V ˙ ( 0 ) = 0 \dot V(0) = 0 V˙(0)=0 且 V ˙ ( x ) \dot V(x) V˙(x) 是负定的(查看定义1.4)
那么系统是渐进稳定的,此外,若 V ( x ) V(x) V(x) 是径向无界的(即当 ∣ ∣ x ∣ ∣ → ∞ ||x|| \to \infty ∣∣x∣∣→∞ 时 V ( x ) → ∞ V(x) \to \infty V(x)→∞),则原点全局渐进稳定。
3.2、示例
假设我们针对以下二阶非线性系统通过李雅普诺夫渐进稳定进行设计:
{ x ˙ 1 = x 2 x ˙ 2 = x 1 2 + x 2 + u (3.1) \begin{cases} {\dot x}_1 = x_2 \\ {\dot x}_2 = x_1^2 + x_2 + u \\ \end{cases} \tag{3.1} {x˙1=x2x˙2=x12+x2+u(3.1)
首先我们期望状态收敛到零点,即 x 1 = 0 , x 2 = 0 x_1 = 0, x_2=0 x1=0,x2=0,那么我们可以设计李雅普诺夫函数为:
V ( x ) = 1 2 x 1 2 + 1 2 x 2 2 (3.2) V(x) = \frac{1}{2} x_1^2 + \frac{1}{2} x_2^2 \tag{3.2} V(x)=21x12+21x22(3.2)
那么 V ( 0 ) = 0 V(0) = 0 V(0)=0 且 V ( x ) V(x) V(x) 是正定的。计算 V ˙ ( x ) {\dot V} (x) V˙(x)
V ˙ ( x ) = x 1 x ˙ 1 + x 2 x ˙ 2 = x 1 x 2 + x 2 ( x 1 2 + x 2 + u ) = x 1 x 2 + x 1 2 x 2 + x 2 2 + x 2 u (3.3) \begin{aligned} \dot V(x) &= x_1 \dot x_1 + x_2 \dot x_2 \\ &= x_1x_2 + x_2(x_1^2 + x_2 + u) \\ &= x_1x_2 + x_1^2 x_2 + x_2^2 + x_2u \end{aligned} \tag{3.3} V˙(x)=x1x˙1+x2x˙2=x1x2+x2(x12+x2+u)=x1x2+x12x2+x22+x2u(3.3)
为了使得 V ˙ ( x ) \dot V(x) V˙(x) 负定,可以构造 u u u 为 u = − x 1 − x 1 2 − k x 2 u = -x_1 - x_1^2 - kx_2 u=−x1−x12−kx2 其中 k > 1 k>1 k>1 为标量。带入 u u u 可得
V ˙ ( x ) = x 1 x 2 + x 1 2 x 2 + x 2 2 + x 2 ( − x 1 − x 1 2 − k x 2 ) = ( 1 − k ) x 2 2 (3.4) \begin{aligned} \dot V(x) &= x_1x_2 + x_1^2 x_2 + x_2^2 + x_2(-x_1 - x_1^2 - kx_2) \\ &= (1-k) x_2^2 \end{aligned} \tag{3.4} V˙(x)=x1x2+x12x2+x22+x2(−x1−x12−kx2)=(1−k)x22(3.4)
这样 V ˙ ( x ) \dot V(x) V˙(x) 就是一个负定的函数了。我们使用 Matlab 来验证一下:
3.2.1、代码:
x_1 = zeros(1, 1e5);
x_2 = zeros(1, 1e5);
u = zeros(1, 1e5);% 初始化
x_1(1, 1) = 100;
x_2(1, 1) = -10;
dt = 1e-3;% 参数
k = 10;for i = 1:(1e5-1)% 计算控制量u(1,i) = - x_1(1,i) - x_1(1,i).^2 - k .* x_2(1,i);% 计算微分dx_1 = x_2(1,i);dx_2 = x_1(1,i)^2 + x_2(1,i) + u(1,i);% 更新状态量,为了简单直接采用欧拉法x_1(1, i+1) = x_1(1, i) + dx_1 .* dt;x_2(1, i+1) = x_2(1, i) + dx_2 .* dt;
end
3.2.2、绘图:
可以从图中看出,我们给的控制量是可以使得系统状态最终稳定的。
说点人话就是,渐进系统保证了当时间趋于无穷时,系统会趋于稳定,李雅普诺夫函数趋于零。