李雅普诺夫稳定性、李雅普诺夫第一法、李雅普诺夫第二法及李雅普诺夫函数

李雅普诺夫稳定性、李雅普诺夫第一法、李雅普诺夫第二法及李雅普诺夫函数1 什么是稳定点一个控制系统就和一个社会一样 稳定性是首先要解决的重要问题 是其他一切工作的基础 稳定性问题的字面意思很好理解了 那就是系统在受到扰动后 能否能有能力在平衡态继续工作 大家都知道 历史上社会改革成本很高 且以失败者居多 从控制论的角度来看 就是对社会这个大系统的稳定性研究不够 导致扰动发生后 社会发散了 要研究稳定 首先要研究稳定点 那什么是稳定点呢 我们以发射火箭为例 火箭的简化模型可以看成是一个倒立摆 如下图所示 在最低端施加控制力 来保持其在竖直方向的角度可控 其状态方程如

1 什么是稳定点

一个控制系统就和一个社会一样,稳定性是首先要解决的重要问题,是其他一切工作的基础。稳定性问题的字面意思很好理解了,那就是系统在受到扰动后,能否能有能力在平衡态继续工作。大家都知道,历史上社会改革成本很高,且以失败者居多,从控制论的角度来看,就是对社会这个大系统的稳定性研究不够,导致扰动发生后,社会发散了。

要研究稳定,首先要研究稳定点,那什么是稳定点呢?我们以发射火箭为例:

在这里插入图片描述

其中 γ \gamma γ 为旋转摩擦系数, J t = J + m l 2 J_t=J+ml^2 Jt=J+ml2 , u u u 为施加的外力。现在我们要开始做实验了,假设对火箭不做任何控制,即 u = 0 u=0 u=0 ,这时火箭的状态方程可进一步简化:
d d t [ θ θ ˙ ] = [ θ ˙ m g l J t sin ⁡ θ − γ J t θ ˙ ] \frac{d}{d t}\left[\begin{array}{c} \theta \\ \dot{\theta} \end{array}\right]=\left[\begin{array}{c} \dot{\theta} \\ \frac{m g l}{J_{t}} \sin \theta-\frac{\gamma}{J_{t}} \dot{\theta} \end{array}\right] dtd[θθ˙]=[θ˙JtmglsinθJtγθ˙]

不失一般性,假设我们自己也造了一个火箭,其 m g l = J t = 1 ,    γ = 1 mgl=J_t=1,\;\gamma=1 mgl=Jt=1,γ=1 ,则上述方程变为:
[ x 1 ˙ ( t ) x 2 ˙ ( t ) ] = [ x 2 sin ⁡ ( x 1 ) − x 2 ] \left[\begin{array}{c} \dot{x_1}(t) \\ \dot{x_2}(t) \end{array}\right]=\left[\begin{array}{c} x_2 \\ \sin(x_1)-x_2 \end{array}\right] [x1˙(t)x2˙(t)]=[x2sin(x1)x2]

注意,这个方程虽然看着简单,但确是一个非线性方程,解起来还是费点力气的,我们要借助MATLAB帮我们算一下,并画个图出来看一下,把 x 1 x_1 x1 作为横坐标, x 2 x_2 x2 作为纵坐标,然后随机选择一些初始点,看看向量 [ x 1 , x 2 ] T [x_1,x_2]^T [x1,x2]T 是怎么运动的,轨迹如下图所示:

在这里插入图片描述
可见,这个图形是比较有意思的,其中有三个比较明显的点,貌似是旋涡中心,无论初始条件是什么,最终都要稳定在这三个点上(实际很多,我们只计算了三个),这三个点的坐标目测是 [ ± n π , 0 ] T [\pm n\pi, 0]^T [±nπ,0]T

但是,如果你仔细看,还有一个点, [ 0 , 0 ] T [0,0]^T [0,0]T肯定是数学解,但是似乎在图上并没有明显的显示出来,这是什么原因呢?——这代表着火箭竖直放置,且没有扰动,常识告诉我们这是一个极不稳定的点,就像你把铅笔立在桌子上,稍微风吹草动就倒了,而数值求解的时候,几乎寻找不到这个点。

那其他的稳定点又代表什么呢?——火箭水平躺着 θ = ± π \theta=\pm\pi θ=±π,而且不再变化 θ ˙ = 0 \dot{\theta}=0 θ˙=0,这和我们的常识也是一致的。

可见稳定点就是系统状态不再发生变化的点,它可能不止一个,它也可能很脆弱,稍微有个扰动,就不稳定了。

2 什么是李雅普诺夫稳定

早在1892年,俄国有一个叫李雅普诺夫的学者发表了一篇著名的文章《运动稳定性一般》问题,建立了关于运动稳定的一般理论,光看这个文章的名字就不一般,也确实,在尔后百余年,这个理论在数学、力学和控制理论中全面开花,已经成为稳定性研究方向的基础性理论,俄罗斯人对于数学上和工程上的直觉确实令人赞叹。

在这里插入图片描述
李雅普诺夫稳定性理论研究的是在扰动下稳定点的稳定性问题。

简单来说,如果稳定状态 x e x_e xe 受到扰动后,仍然停留在 x e x_e xe 附近,我们就称 x e x_e xe李雅普诺夫意义下是稳定的 (Lyapunov stable)。

如果更进一步,如果稳定状态 x e x_e xe 受到扰动后,最终都会收敛到 x e x_e xe,我们就称 x e x_e xe李雅普诺夫意义下是渐进稳定的 (Asymptotically stable)。

再进一步,如果稳定状态 x e x_e xe 受到任何扰动后,最终都会收敛到 x e x_e xe ,我们就称 x e x_e xe李雅普诺夫意义下是大范围内渐进稳定的 (Asymptotically stable in large)。

相反,如果稳定状态 x e x_e xe 受到某种扰动后,状态开始偏离 x e x_e xe ,我们就称 x e x_e xe李雅普诺夫意义下是不稳定的 (Unstable)。

且稳定点为 [ 0 0 ] \left[\begin{array}{c}0\\0 \end{array}\right] [00],我们随机取一些很小的扰动,比如 x ( 0 ) = [ 0.01 0.01 ] x(0)=\left[\begin{array}{c} 0.01\\0.01\end{array}\right] x(0)=[0.010.01] x ( 0 ) = [ 0.02 0.02 ] x(0)=\left[\begin{array}{c}0.02\\0.02 \end{array}\right] x(0)=[0.020.02] 以及 x ( 0 ) = [ 0.03 0.03 ] x(0)=\left[\begin{array}{c}0.03\\0.03 \end{array}\right] x(0)=[0.030.03],把 [ x 1 x 2 ] \left[\begin{array}{c}x_1\\x_2 \end{array}\right] [x1x2] 在初始条件下的轨迹画出来,结果如下:
在这里插入图片描述
可以看出,如果初始扰动小,其状态轨迹的区间也小;相反,当初始扰动大的时候,状态轨迹的区间也变大;但是无论如何,状态轨迹的区间都是有限的,而且,如果想减小轨迹的区间,只要保证扰动在某范围内即可。比如对于本范例,要想 ∣ ∣ x ( t ) − x e ∣ ∣ < 0.01 ||x(t)-x_e||<0.01 x(t)xe<0.01 ,只要保证初始扰动 ∣ ∣ x ( 0 ) − x e ∣ ∣ < 0.01 ||x(0)-x_e||<0.01 x(0)xe<0.01 即可。

翻译成严谨的数学语言就是:对于任意的 ϵ > 0 \epsilon>0 ϵ>0 ,存在 δ > 0 \delta>0 δ>0 ,使得如果 ∣ ∣ x ( 0 ) − x e ∣ ∣ < δ ||x(0)-x_e||<\delta x(0)xe<δ ,则对于所有的 t > 0 t>0 t>0 ,都有 ∣ ∣ x ( t ) − x e ∣ ∣ < ϵ ||x(t)-x_e||<\epsilon x(t)xe<ϵ

求解稍微复杂一点,我们直接画出轨迹图如下:

在这里插入图片描述
显然 [ 0 0 ] \left[\begin{array}{c}0\\0 \end{array}\right] [00] 是其稳定点。从轨迹图中可以看出,无论是小扰动(初始点在稳定零点附近),还是大扰动,状态轨迹最终都趋向一个固定的圆。我们套用一下李雅普诺夫稳定定义看一下,该系统是否稳定。我们不妨取 ϵ = 1 \epsilon=1 ϵ=1 ,即在零点周围画个半径为1的圆,看看能否存在 δ \delta δ,使得 ∣ ∣ x ( 0 ) − x e ∣ ∣ < δ ||x(0)-x_e||<\delta x(0)xe<δ,则对于所有的 t > 0 t>0 t>0,都有 ∣ ∣ x ( t ) − x e ∣ ∣ < 1 ||x(t)-x_e||<1 x(t)xe<1。显然, δ \delta δ 是不存在的,因此,该系统是不稳定的。

在这里插入图片描述

2.1 什么是渐进稳定

x 1 ˙ ( t ) = 0 x 2 ˙ ( t ) = 0 \begin{aligned} &\dot{x_1}(t)=0\\ &\dot{x_2}(t)=0 \end{aligned} x1˙(t)=0x2˙(t)=0, 很容易计算该系统的稳定点为: [ 0 0 ] \left[\begin{array}{c}0\\0 \end{array}\right] [00] [ 0 1 ] \left[\begin{array}{c}0\\1 \end{array}\right] [01] [ 0 − 1 ] \left[\begin{array}{c}0\\-1 \end{array}\right] [01],其轨迹图为:
在这里插入图片描述
可见,对于稳定点 [ 0 1 ] \left[\begin{array}{c}0\\1 \end{array}\right] [01] [ 0 − 1 ] \left[\begin{array}{c}0\\-1 \end{array}\right] [01],存在 δ > 0 \delta>0 δ>0,比如图中的 δ = 0.1 \delta=0.1 δ=0.1,在 ∣ ∣ x ( t ) − x e ∣ ∣ < 0.1 ||x(t)-x_e||<0.1 x(t)xe<0.1 的区间内,状态轨迹最终都收敛到这两个稳定点上,因此是渐进稳定的。

而对于点 [ 0 0 ] \left[\begin{array}{c}0\\0 \end{array}\right] [00],我们在其周围添加小扰动,发现无论扰动多么小,轨迹线都会偏离该稳定点,因此属于不稳定点。
在这里插入图片描述

2.2 什么是大范围渐进稳定

对于线性时不变系统,只要矩阵 A A A 的特征值具有负实部,那系统就是大范围渐进稳定的。

2.5 什么是不稳定

同样随机布置一些初始点,看看状态的轨迹如何:

很明显,所有初始状态的轨迹都呈现螺旋发散状,从数学上看,特征值 λ = 1.5 ± 3.84 i \lambda=1.5\pm3.84i λ=1.5±3.84i,具有共轭根,但是实部是正的,因此发散。

在这里插入图片描述
貌似也呈现发散状,但是和前面的例子有所不同,轨迹貌似呈现指数形式,计算状态方程特征值为 λ = [ 3.7 − 2.7 ] \lambda=\left[\begin{array}{c} 3.7\\-2.7 \end{array}\right] λ=[3.72.7] ,有一个不稳定的实根,导致系统发散。由以上两例可以看出,发散的轨迹可以有多种多样。

3 李雅普诺夫第一法

前面我们把稳定点分了几类,我们会发现,还是线性系统比较好计算,而且性能比较好,只要保证矩阵 A A A 具有负实部,就是大范围一致稳定的。因此,我们如果把方程的形式由
x ˙ ( t ) = f ( x ( t ) ) \dot{x}(t)=f(x(t)) x˙(t)=f(x(t))

就会带来很多方便。这就需要将非线性系统在平衡态附近线性化,然后讨论线性化系统的特征值分布来研究原非线性系统的稳定性问题。这种方法,就是李雅普诺夫在他论文中提到的第一种方法,称之为第一法,也叫间接法。

这是一个典型的非线性方程,我们前面计算过了,其有多个稳定点 [ ± n π , 0 ] T [\pm n\pi,0]^T [±nπ,0]T ,我们不妨来研究一下 [ π , 0 ] T [\pi,0]^T [π,0]T 这个点,其附件的状态轨迹为:

在这里插入图片描述
现在将原来的非线性方程线性化,为方便起见,我们定义 z 1 = x 1 − π z_1=x_1-\pi z1=x1π 以及 z 2 = x 2 z_2=x_2 z2=x2,于是可以得到:
sin ⁡ ( π + z 1 ) = − sin ⁡ z 1 ≈ − z 1 \sin(\pi+z_1)=-\sin z_1\approx-z_1 sin(π+z1)=sinz1z1

在新的坐标系下,稳定变为 [ 0 0 ] \left[\begin{array}{c}0\\0\end{array}\right] [00],其轨迹为:

在这里插入图片描述
可见,与原轨迹还是比较接近的。一般的书上,对于李雅普诺夫第一法都是一笔带过,其实在工程实践中,第一法应用非常多,比如复杂的飞机飞行控制,就是将飞机模型线性化成多个线性化模型进行设计。

4 李雅普诺夫第二法

第二法就比较天才了,来源于一个朴素的想法:稳定的系统能量总是不断被耗散的,李雅普诺夫通过定义一个标量函数 V ( x ) V(\boldsymbol{x}) V(x) (通常能代表广义能量)来分析稳定性。这种方法的避免了直接求解方程,也没有进行近似线性化,所以也一般称之为直接法。如果 标量函数 V ( x ) V(\boldsymbol{x}) V(x) 满足:
V ( x ) = 0     if and only if  x = 0 V ( x ) > 0     if and only if  x ≠ 0 V ˙ ( x ) = d d t V ( x ) = ∑ i = 1 n ∂ V ∂ x i f i ( x ) ≤ 0     when  x ≠ 0 \begin{aligned} &V(\boldsymbol{x})=0\; \text { if and only if } \boldsymbol{x}=0\\ &V(\boldsymbol{x})>0\; \text { if and only if } \boldsymbol{x} \neq 0\\ &\dot{V}(\boldsymbol{x})=\frac{d}{d t} V(\boldsymbol{x})=\sum_{i=1}^{n} \frac{\partial V}{\partial x_{i}} f_{i}(x) \leq 0\; \text { when } \boldsymbol{x} \neq 0 \end{aligned} V(x)=0 if and only if x=0V(x)>0 if and only if x=0V˙(x)=dtdV(x)=i=1nxiVfi(x)0 when x=0

则称系统在李雅普诺夫意义下是稳定的,特别的,若 x ≠ 0 x\ne0 x=0 时,有 V ˙ ( x ) < 0 \dot{V}(\boldsymbol{x})<0 V˙(x)<0,则系统是渐进稳定的。举个例子:
x 1 ˙ ( t ) = x 2 − x 1 ( x 1 2 + x 2 2 ) x 2 ˙ ( t ) = − x 1 − x 2 ( x 1 2 + x 2 2 ) \begin{aligned} &\dot{x_1}(t)=x_2-x_1(x_1^2+x_2^2)\\ &\dot{x_2}(t)=-x_1-x_2(x_1^2+x_2^2) \end{aligned} x1˙(t)=x2x1(x12+x22)x2˙(t)=x1x2(x12+x22)

显然当 x ≠ 0 x\ne 0 x=0 时,有 V ˙ ( x ) < 0 \dot{V}(\boldsymbol{x})<0 V˙(x)<0 ,所以系统是渐进稳定的。

详细的李雅普诺夫第二法

可见,如果能合理的选定李雅普诺夫函数,则非常容易的判断系统的稳定性。不过遗憾的是,对于复杂的系统,李雅普诺夫函数的选择可以称得上一门玄学,所以,对于工程师而言,笔者还是喜欢李雅普诺夫第一法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213094.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:34
下一篇 2026年3月18日 下午6:34


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号