Lyapunov 理论把「系统会不会发散」翻译成「能否找到一个沿轨线递减的能量函数」:不解微分方程,用一个标量函数 的符号直接判定稳定性分级。它是非线性系统稳定性分析的通用语言,也是优化收敛性证明与强化学习稳定性分析的现成框架。

核心思想:不解方程,看能量

非线性系统 (状态空间表示 State-Space 的非线性推广)的解一般没有解析表达式——常微分方程的定性理论早已指出:与其求轨迹,不如问轨迹的渐进行为。Lyapunov 1892 年的洞见是:稳定性是能量耗散的表现。给状态空间造一个「广义能量」——正定的碗;若沿任意轨线 只降不升,轨迹就被困在碗的低处,只能滑向平衡点。

论证不依赖线性性与叠加原理,非线性、时变、离散系统通吃;对线性定常系统它退化为极点判据,与系统稳定性 Stability的 Routh–Hurwitz 路线殊途同归。

稳定性的分级定义

设平衡点已平移到原点()。

级别定义直觉
Lyapunov 稳定:初值扰动不被放大
渐近稳定稳定,且 轨迹最终回到平衡点
指数稳定:收敛速度有指数下界

蕴涵链:指数 ⟹ 渐近 ⟹ 稳定,逆命题均不成立:

  • :渐近稳定但不指数——解按 衰减,任何指数率都兜不住
  • 无阻尼摆:能量守恒,轨迹停在等能量闭轨上——稳定但不渐近

各级别还分局部(仅某邻域内成立)与全局(任意初值);渐近稳定的成立范围叫吸引域(region of attraction)。线性系统渐近稳定必全局,非线性吸引域可以有限——这条信息线性化永远给不出来。

直接法:Lyapunov 定理与 LaSalle 不变原理

直接法(第二方法):取 正定(, 时 ),沿系统轨线求导 ,只看符号:

条件结论
稳定
负定渐近稳定
上行 + 径向无界()全局渐近稳定(Barbashin–Krasovskii 定理)
且 指数稳定,速率

附加红利:若某球内 ,则含于该球的最大水平集 整个落在吸引域内—— 顺手给出吸引域的内界估计。

仅半负定时上表止步于「稳定」,LaSalle 不变原理补上最后一环:自治系统的轨迹必趋于 内的最大不变集。阻尼摆是标准示例:取总能量 ,则 只约束 ;但 的不变集还要求 ,能量不够翻顶的初值最终都落到 。

import numpy as np
 
def f(x):                              # 阻尼摆: x = [theta, omega]
    return np.array([x[1], -0.5 * x[1] - np.sin(x[0])])
 
def V(x):                              # Lyapunov 函数 = 动能 + 势能
    return 0.5 * x[1]**2 + 1 - np.cos(x[0])
 
x, dt = np.array([2.5, 0.0]), 1e-2
for _ in range(20000):                 # RK4 积分 200 s
    k1 = f(x)
    k2 = f(x + dt / 2 * k1)
    k3 = f(x + dt / 2 * k2)
    k4 = f(x + dt * k3)
    x_new = x + dt / 6 * (k1 + 2*k2 + 2*k3 + k4)
    assert V(x_new) <= V(x) + 1e-10    # V 单调不增: 每步 dV = -0.5*omega^2*dt
    x = x_new
print(x)                               # ~[0, 0]: dV 仅半负定仍收敛到平衡点 (LaSalle)

时变系统的对应工具是 Barbalat 引理: 且 有界 ⟹ 。自适应控制里大量「 半负定 + 信号有界」的论证都由它收尾。

构造 Lyapunov 函数

逆定理保证渐近稳定的系统必存在 Lyapunov 函数,但没说怎么找——构造是这门理论的艺术部分:

方法做法适用场景
能量法机械/电路系统的总能量有物理背景的对象
二次型试探,接近线性的系统
Krasovskii 方法,要求 Jacobian 处处满足 Jacobian 一致 Hurwitz
变梯度法设 ,用 对称(可积条件)反解 再积分低维系统手算
SOS 规划限定 为多项式,把 、 写成平方和条件交给 SDP 求解器多项式系统,可半自动化

线性系统:Lyapunov 方程

取 ,沿 得 ,判稳归结为 Lyapunov 方程

定理: Hurwitz(特征值实部全负)⟺ 对任意 方程存在唯一正定解 。且指数速率有可计算下界 ——比「极点实部为负」多出一张收敛率证书。

import numpy as np
 
A = np.array([[0.0, 1.0], [-1.0, -0.5]])       # 阻尼摆在原点处的 Jacobian
n, Q = len(A), np.eye(2)
M = np.kron(A.T, np.eye(n)) + np.kron(np.eye(n), A.T)  # 向量化: vec(A^T P + P A) = M vec(P)
P = np.linalg.solve(M, (-Q).flatten()).reshape(n, n)
print(np.linalg.eigvalsh(P))                   # [1.61, 2.64] 全正 → P 正定, A 确为 Hurwitz

与最优控制在同一处接轨:LQR 闭环 下,最优代价 满足 ——最优反馈天然镇定,价值函数自己就是 Lyapunov 函数(详见最优控制 Optimal Control)。

间接法:线性化

间接法(第一方法):在平衡点处取 Jacobian ,用线性近似 的结论反推原系统:

  • Hurwitz ⟹ 原系统局部指数稳定
  • 有右半平面特征值 ⟹ 不稳定
  • 有虚轴特征值 ⟹ 无结论

临界情形的警示样本仍是 :两者 Jacobian 同为 ,稳定性却相反,线性化失效,只能回到直接法( 一行判完)。间接法本质是极点判据的局部化——线性方法在平衡点邻域内继续有效,但邻域多大(吸引域),线性化说了不算。

接口:优化收敛性证明

离散时间把 换成差分: ⟹ 几何衰减;线性情形即离散 Lyapunov 方程 ,稳定域从开左半平面换成开单位圆。

梯度下降的收敛证明是这条判据的直接套用。取 ,对 -光滑的 ,下降引理给出

时右端严格下降—— 沿迭代单调递减,这就是 Lyapunov 论证。非凸场景下 不正定,「稳定到点」退化为「收敛到驻点集」: 正是不变集,结论形态与 LaSalle 原理同构。再假设 PL 条件 ,则每步 ——PL 不等式就是优化版的指数稳定,线性收敛率即 Lyapunov 指数。momentum 更是明证:heavy-ball 写成二阶阻尼系统后,收敛证明的标准做法正是构造二维状态的 Lyapunov 函数。

接口:强化学习中的稳定性

RL 与 Lyapunov 的对应是结构性的(详见控制理论与强化学习 Control and Reinforcement Learning):

  • 价值函数即 Lyapunov 函数:确定性最优控制的 Bellman 方程 沿最优闭环给出 ——一步成本 保证 cost-to-go 严格递减;LQR 是其特例
  • Safe RL:学策略的同时学/验证一个 ,约束 在安全集内成立,取水平集 嵌入安全集作不变域——稳定性证书变成可优化的约束
  • MPC 稳定性:终端代价充当 Lyapunov 函数 + 终端集不变性,是递归可行与闭环收敛的标准证明装置
  • 自适应控制:参数更新律的设计目标就是消去 中的参数误差交叉项——整门学科的证明引擎是同一个