ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

李雅普诺夫稳定性理论详解:从能量函数到工程实践

李雅普诺夫稳定性理论详解:从能量函数到工程实践 做控制这么多年我见过太多人把“稳定性”停留在刷题阶段经典控制里用劳斯判据、根轨迹、奈奎斯特判据判断线性系统稳不稳到了现代控制理论突然被告知“稳定性”有一套全新定义和判据名字还特别长——李雅普诺夫稳定性理论。说实话我第一次学的时候也懵总觉得这个理论绕不直观不像根轨迹那样画几条线就能出结论。直到后来做非线性控制系统遇到一个线性化解决不了、数值仿真又不敢拍板的工况我才真正回头把这一章啃透才发现它其实讲的是一个非常朴素的东西系统的“能量”到底在涨还是在跌。这篇笔记我按自己的理解重新梳理了一遍李雅普诺夫稳定性理论覆盖三个层次第一法间接法线性化判断、第二法直接法构造能量函数判断、以及线性系统里最常用的李雅普诺夫方程。不搞教材式的逐条罗列重点放在“为什么这么定义”“怎么上手用”“实操会踩哪些坑”最后配了一套MATLAB验证流程。适合正在学现代控制理论的学生、考研复习的人以及做控制工程但想补理论短板的工程师。1. 这一章究竟在解决什么问题1.1 为什么经典稳定性判据不够用经典控制理论处理稳定性的工具其实很成熟劳斯判据、赫尔维茨判据、根轨迹、奈奎斯特判据、伯德图本质上都在做同一件事——判断闭环系统的极点是否都落在左半平面。这个框架在线性时不变系统里是完备的只要把系统建模成传递函数或状态方程稳定性的结论是确定的、可算的。但问题在于真实物理系统几乎没有严格线性的。电机有齿槽转矩和摩擦非线性阀门的流量特性带死区机械结构有间隙化学反应速率跟浓度呈高次关系电力电子变换器还天生是强非线性系统。遇到这类对象经典判据的根基就开始松动因为非线性系统不具备叠加原理极点、特征方程这些概念本身就不严格成立了。你可以把一个非线性系统在某个工作点附近近似成线性模型去套用经典判据但一旦偏离这个工作点近似误差会迅速放大。我印象很深的一个反例是 $\dot{x} -x x^2$。在原点附近$x^2$ 项是小量系统行为近似 $\dot{x} -x$看起来是稳定的。但你把初始状态取到 $x(0) 1.5$系统轨迹会在有限时间内跑到无穷远处。线性化模型根本看不到这个风险因为它只在原点邻域内才有效。这种“局部稳定、全局发散”的情况在真实系统里并不少见经典判据给不出任何预警。李雅普诺夫稳定性理论的价值就在这里它不要求系统线性不要求求解微分方程甚至不要求你知道轨迹长什么样。它只需要你找到一个合适的标量函数利用这个函数沿系统轨迹的变化方向来判断稳定性。这套方法既能处理线性系统也能处理非线性系统、时变系统而且它的结论是严格意义上的充分条件或充要条件不是工程近似。1.2 李雅普诺夫方法的整体架构与比喻李雅普诺夫稳定性理论通常分成两个分支第一法间接法和第二法直接法。第一法的思路是绕开非线性在平衡点附近做线性化用雅可比矩阵的特征值判断局部稳定性本质上是把非线性问题降维成线性问题。第二法的思路完全不一样它不碰线性化而是直接看系统是否存在一个“能量函数”在沿轨迹流动时单调下降。如果能量始终在减少系统最终就会停在能量最低点也就是平衡点。用个生活化的类比。想象一个小球在碗里滚动。碗底是平衡点球的动能加势能可以视为一个标量函数。如果碗的内壁有摩擦球滚来滚去能量不断耗散最后停在碗底这就是渐进稳定。如果碗壁光滑得毫无摩擦球会一直来回滚动高度和速度反复转换但总能量不变这就是李雅普诺夫意义下的稳定但不是渐进稳定。如果球放在倒扣的碗顶上轻轻一碰就滑落这就是不稳定。第二法干的活就是在没有任何“碗壁摩擦”先验知识的情况下靠观察能量函数的变化趋势来判断球最终会停在哪。你不需要真的去求解球的运动轨迹只需要计算能量函数的时间导数。这个思路说起来简单但把它严格化、定义化就会牵扯出正定函数、沿轨迹导数、稳定性和渐进稳定性的精确定义。下面先把这些概念捋清楚。2. 先厘清概念什么叫“稳定”而不是“趋于零”2.1 平衡点一切稳定性分析的前提稳定性分析从来不是对“整个系统”泛泛而谈的它必须围绕某个具体的平衡点展开。对于自治系统 $\dot{x} f(x)$如果某个状态 $\bar{x}$ 满足 $f(\bar{x}) 0$那么系统一旦从 $\bar{x}$ 出发就会一直停在那里这个状态就叫平衡点。找平衡点是分析稳定性的第一步。很多刚接触现代控制理论的人会犯一个低级错误拿系统的全部状态去套判据却忽略了稳定性只针对平衡点有意义。比如单摆系统有多个平衡点最低点稳定倒立点不稳定你不能笼统说“单摆系统稳定”。平衡点还不一定唯一。非线性系统经常出现多个平衡点有的局部稳定有的局部不稳定。工程上更常见的情况是我们关心的不是某个解析解而是系统能不能回到某个期望工况。期望工况往往就是一个平衡点稳定性分析就是回答“偏离这个工况后系统能不能自己回来”。2.2 稳定、渐进稳定、全局渐进稳定的精确定义李雅普诺夫意义下的稳定有个严格的数学定义对任意给定的 $\varepsilon 0$都存在 $\delta 0$使得只要初始状态满足 $|x(0) - \bar{x}| \delta$就有对所有 $t \geq 0$ 都成立 $|x(t) - \bar{x}| \varepsilon$。翻译成人话就是即使我允许你任意设定一个误差范围 $\varepsilon$我都能找到一个足够小的初始扰动范围 $\delta$保证从里面出发的轨迹永远不会跑出这个误差范围。稳定和渐进稳定之间有个递进关系。渐进稳定要求系统不仅轨迹不跑出误差范围而且最终会收敛回平衡点即 $\lim_{t\to\infty} x(t) \bar{x}$。也就是说渐进稳定 稳定 收敛。如果这个收敛对任意初始状态都成立就叫全局渐进稳定这是控制系统设计里最理想的性质。还有一个容易混淆的点稳定但不渐进是真实存在的。无阻尼谐振子 $\ddot{x} \omega^2 x 0$ 在相平面上画出一个椭圆轨道轨迹始终围绕原点转不远离也不收敛它是李雅普诺夫意义下稳定的但不是渐进稳定。实际工程中这种系统意味着存在持续振荡比如无阻尼弹簧质量块、理想LC电路往往是不可接受的。所以在做稳定性分析时一定要盯紧结论是“稳定”还是“渐进稳定”两者差着一个量级。2.3 沿轨迹的时间导数稳定性分析的“探测器”第二法的所有定理都离不开一个核心运算标量函数 $V(x)$ 沿系统轨迹的导数。设 $V(x)$ 是光滑的标量函数沿轨迹 $\dot{x} f(x)$ 对时间求导用链式法则展开$$ \dot{V}(x) \frac{\partial V}{\partial x} f(x) \sum_{i1}^n \frac{\partial V}{\partial x_i} f_i(x) $$注意这个导数不是随便选取路径的导数它必须沿系统自身的轨迹。也就是说$f(x)$ 必须代入原系统的右端函数而不是你自己假设的一条路径。初学者最常在这里出错算出 $\dot{V}$ 的表达式后直接代数地对变量赋值却没有意识到整个表达式只在满足系统动态的轨迹上才有物理意义。这个 $\dot{V}$ 就像一个探测器。如果 $V$ 像能量一样在平衡点附近处处为正而 $\dot{V}$ 处处为负那说明能量沿轨迹不断消耗系统必然趋向能量最低点。如果 $\dot{V}$ 在某些地方为零能量暂时不降系统要么停在某个集合里要么继续沿零导数集合滑动。后面几节的判据本质上都是对这个探测器输出符号的解读。3. 第一法间接法线性化的价值与边界3.1 从非线性系统中提取雅可比矩阵第一法的操作路径很清晰把非线性系统 $\dot{x} f(x)$ 在平衡点 $\bar{x}$ 附近做泰勒展开忽略二阶以上高阶项得到线性化系统 $\dot{x} \approx A x$其中 $A$ 是雅可比矩阵在平衡点处的取值$$ A \left.\frac{\partial f}{\partial x}\right|_{x \bar{x}} $$对于二维系统雅可比矩阵是一个 $2 \times 2$ 矩阵每个元素是对应偏导数在平衡点的取值。计算的时候要注意$f(x)$ 中的每一项都要逐个求偏导不能只对最高次项求导也不能在代入平衡点之前就扔掉常数项之外的项。这个线性化的物理意义很明确在平衡点附近高阶非线性项的贡献远小于线性项系统行为主要由线性部分主导。就像你站在山谷底部微小的扰动下感受到的“恢复力”近似正比于偏离距离这就是线性化模型。问题是这个线性化有效性范围究竟有多大第一法本身回答不了。3.2 特征值判据与实部符号得到雅可比矩阵后稳定性判断回到经典结论如果 $A$ 的所有特征值实部都小于零那么原非线性系统在该平衡点局部渐进稳定如果存在特征值实部大于零那么该平衡点不稳定。这个结论在教科书上叫李雅普诺夫第一法本质上是把非线性系统的局部稳定性问题归结为线性系统的极点位置问题。取一个简单的例子系统$$ \dot{x}_1 -x_1 x_1 x_2, \quad \dot{x}_2 -x_2 $$在原点处雅可比矩阵是 $\begin{bmatrix} -1 0 \ 0 -1 \end{bmatrix}$两个特征值都是 $-1$所以原点局部渐近稳定。这背后其实是Hartman-Grobman定理的思想在双曲平衡点即雅可比矩阵没有实部为零的特征值附近非线性系统的局部行为与线性化系统拓扑等价稳定与否完全由特征值实部决定。但第一法有个明显软肋一旦雅可比矩阵出现实部为零的特征值这个判据就失效了。这种情况叫临界情形线性化系统处于稳定边界非线性项成为主导因素必须回到非线性分析手段。3.3 为什么不建议只用第一法下结论我自己在工程里吃过第一法的亏。一个电机位置控制系统建模时包含了库仑摩擦项摩擦在速度为零时不连续。在静止平衡点做线性化时雅可比矩阵恰好出现一对虚轴上的特征值线性化版本的结论是“临界稳定无法判断”。但实际物理上库仑摩擦是有耗散效果的系统在小扰动下会停住是渐进稳定的。这个例子说明第一法的结论边界必须时刻记在脑子里它只适用于双曲平衡点而且只给出局部结论。它不能告诉你从多大的初始偏移出发系统还能回到平衡点更不能告诉你系统是否会因为一个远离平衡点的扰动而彻底失控。第一法适合做定性初判但要说“这个系统稳了”我建议永远补上第二法或者至少补上数值仿真验证。4. 第二法直接法不求解方程也能判断稳定4.1 能量函数的直觉碗底小球与摩擦第二法的思想用一个词概括就是“能量”。物理系统里有阻尼的振荡器能量不断衰减最终停在平衡点无阻尼系统能量守恒轨迹绕着平衡点打转。如果一个系统存在某个函数在平衡点为最小、在其他状态为正而且这个函数沿系统轨迹永远不增甚至严格递减那么系统的运动趋势就被这个函数“钳住”了。这就是李雅普诺夫直接法的灵魂不求解系统轨迹而是构造一个候选的“广义能量函数” $V(x)$然后检查它的变化趋势。这个函数不一定是物理意义上的真实能量它只是一个标量函数只要满足正定性、可微性、以及沿轨迹的单调性条件就能充当稳定性分析的抓手。用碗底小球来理解$V$ 是球的势能加动能碗壁摩擦让能量沿轨迹递减球最终滚到碗底。第二法做的就是把“存在摩擦导致能量下降”这个朴素的物理直觉抽象成三条数学定理使其适用于任意维数、任意非线性动态系统。4.2 正定函数与径向无界先给出正定函数的严格定义标量函数 $V(x)$ 称为正定的如果 $V(0) 0$且对所有 $x \neq 0$ 都有 $V(x) 0$。如果放宽条件为 $V(x) \geq 0$就叫半正定。这个概念跟二次型里的正定完全对应也是整个第二法中最基础的前提条件。径向无界则是对全局结论的关键要求当 $|x| \to \infty$ 时$V(x) \to \infty$。这个条件保证水平集是封闭有界的。为什么重要因为如果 $V$ 在某个方向上不趋于无穷那么 $\dot{V} 0$ 只能保证轨迹停留在某个有界区域内却无法排除系统逃逸到无穷远的可能性。只有径向无界才能从“能量持续下降”推导出“轨迹必然回到零点”的全局结论。最常见的正定候选函数是二次型 $V(x) x^T P x$其中 $P$ 是对称正定矩阵。这个形式计算简单而且在线性系统中能直接和矩阵方程挂钩所以几乎所有线性系统的李雅普诺夫分析都从它出发。非线性系统则经常在二次型基础上增加高次项比如 $V x_1^2 x_2^4$ 这样的形式。4.3 主判据给定 $V$看 $\dot{V}$ 的符号第二法的三条核心定理全部围绕 $\dot{V}$ 的符号展开可以先记结论再深入理解。若存在正定函数 $V(x)$且沿系统轨迹的导数 $\dot{V}(x) \leq 0$半负定则平衡点在李雅普诺夫意义下稳定。若存在正定函数 $V(x)$且 $\dot{V}(x) 0$负定则该平衡点渐进稳定如果 $V$ 还满足径向无界则全局渐进稳定。若存在正定函数 $V(x)$且沿轨迹的导数 $\dot{V}(x) 0$正定则平衡点不稳定。第一条好理解能量不增加轨迹就不会跑出闭集。第二条是重点能量严格递减系统最终收敛。第三条看起来反直觉——我还以为能量增加系统只是发散怎么还能证明不稳定其实只要能量沿轨迹严格增长状态就没有机会回到平衡点附近必然远离原点因此不稳定。这三条定理的顺序体现了李雅普诺夫方法的精细层次。稳定和渐进稳定之间差着严格负定这个条件这种区分在物理上对应“有摩擦”和“无摩擦”的差别在控制目标上对应“不发散”和“收敛”的差别。做控制器设计时目标永远是至少渐进稳定最好全局渐进稳定。4.4 为什么负定的 $\dot{V}$ 能保证渐进稳定我印象里很多教材推导完 $\dot{V}$ 是负定之后就直接下结论“系统渐近稳定”但没有解释为什么。这里用一个直观论证帮助记忆$V(x(t))$ 是非负函数且沿时间严格递减因此 $V(x(t))$ 必须存在极限 $V^* \geq 0$。若 $V^* 0$那么由于 $\dot{V}$ 负定且只依赖状态系统状态最终会进入某个不靠近原点的区域在这个区域里 $\dot{V}$ 有某个负的上界导致 $V$ 继续下降与极限假设矛盾。因此 $V^* 0$又因 $V$ 正定只有 $x 0$ 处 $V 0$所以轨迹收敛到原点。这个论证在标准的教材里会改用Barbalat引理或不变集定理但核心直觉就是能量降到底系统停到底。这个思路也解释了为什么半负定不能推出渐进稳定。如果 $\dot{V}$ 只在某些地方为零比如在某个非零集合上 $\dot{V} 0$系统轨迹有可能滑入这个集合然后停在集合里而集合并不包含原点。这时需要额外工具比如LaSalle不变集定理把分析对象从“全空间”缩小到“$\dot{V} 0$ 的最大不变集”上去。5. 线性系统落地李雅普诺夫方程5.1 二次型候选 $V$ 函数代入推导线性定常系统 $\dot{x} A x$ 是第二法应用中最标准的情形。取候选函数为二次型 $V(x) x^T P x$其中 $P$ 是对称正定矩阵。沿系统轨迹求导$$ \dot{V} \dot{x}^T P x x^T P \dot{x} x^T A^T P x x^T P A x x^T (A^T P P A) x $$如果要求 $\dot{V}$ 是负定的等价于要求矩阵 $A^T P P A$ 是负定矩阵。通常把它写成一个等式约束$$ A^T P P A -Q $$其中 $Q$ 是一个选定好的正定对称矩阵。这个方程就是连续时间李雅普诺夫方程。只要存在正定矩阵 $P$ 满足这个方程那么 $V x^T P x$ 就是系统的李雅普诺夫函数系统渐近稳定。整个推导只有三步却串联起了线性代数里的正定矩阵、矩阵方程、特征值三种工具这也是为什么现代控制理论教材都会在这一章引入大量矩阵论内容。5.2 李雅普诺夫方程与存在性/唯一性李雅普诺夫方程有一个非常重要且好用的定理若矩阵 $A$ 的特征值实部全部小于零则对任意给定的正定矩阵 $Q$方程 $A^T P P A -Q$ 都有唯一正定解 $P$。反过来若存在正定矩阵 $P$ 和正定矩阵 $Q$ 满足该方程则 $A$ 的特征值实部全部为负。这个定理的价值在于它把“判断 $A$ 的特征值是否都在左半平面”等价转换为“解一个矩阵方程并检查解的正定性”。对于高阶系统用特征值判断需要求解高次多项式或调用数值特征值算法而李雅普诺夫方程是一个线性矩阵方程可以直接用线性代数方法求解甚至可以手算低阶情形。更重要的是这个定理是充要条件不依赖于特征向量的可对角化性质。即使 $A$ 是亏损矩阵只要有这个方程的正定解结论照样成立。这一点在后来的可控性分析、最优控制理论中被反复使用。5.3 $P$ 矩阵正定性与 $A$ 矩阵特征值的关系为什么存在正定解 $P$ 就等价于 $A$ 特征值实部为负可以从特征对角度得到一个直观理解。设 $\lambda$ 是 $A$ 的特征值$v$ 是对应特征向量那么 $A v \lambda v$两边做共轭转置得到 $v^H A^H \lambda^* v^H$$H$ 表示共轭转置。将李雅普诺夫方程左乘 $v^H$、右乘 $v$$$ v^H A^H P v v^H P A v -v^H Q v $$代入特征关系后得到$$ (\lambda^* \lambda) v^H P v -v^H Q v $$由于 $P$ 和 $Q$ 都正定右边是负数$v^H P v$ 是正数因此 $\lambda^* \lambda 2 \operatorname{Re}(\lambda) 0$。这说明 $A$ 每个特征值的实部都必须为负。这个推导很有用它直接把“存在正定解”跟“特征值实部为负”建立起严格的数学桥接。在实操中你算完 $P$ 后可以用eig(P)快速检查所有特征值是否大于零从而确认系统稳定性。5.4 实际工程里的选 $Q$ 技巧实际计算时$Q$ 不是唯一的理论上任意正定矩阵都能用。通常我会直接取 $Q I$即单位阵这样方程右端最简单解的表达式也最容易检查。另一种常见取法是把 $Q$ 取成 $C^T C$其中 $C$ 是系统输出矩阵这样李雅普诺夫方程和系统的可观测性、H2范数计算就会衔接起来。需要提醒的是选不同的 $Q$ 会得到不同的 $P$但稳定性结论应当一致这是一个非常好的自检手段。如果你用 $Q_1$ 算出来的 $P_1$ 不正定用 $Q_2$ 算出来的 $P_2$ 也不正定那基本可以断定系统不稳定或至少不是渐近稳定。反过来一个 $Q$ 下正定另一个 $Q$ 下不正定则大概率是你的求解代码出错而不是理论出错。6. 动手实操一个非线性系统的完整判断流程6.1 系统描述为什么挑这套方程为了展示第一法和第二法的差异我特意选一个线性化会失手的例子$$ \dot{x}_1 -x_1^3 x_2, \quad \dot{x}_2 -x_1 - x_2^3 $$在原点处雅可比矩阵是$$ A \begin{bmatrix} -3x_1^2 1 \ -1 -3x_2^2 \end{bmatrix}_{(0,0)} \begin{bmatrix} 0 1 \ -1 0 \end{bmatrix} $$特征值 $\lambda \pm j$实部为零属于临界情形。第一法在这个平衡点下方寸大乱给不出任何稳定性结论。但这个系统其实有一个非常干净的李雅普诺夫函数非常适合用来展示第二法的威力。6.2 方法一线性化特征值分析按第一法的标准流程在MATLAB里定义符号变量计算雅可比矩阵并求特征值syms x1 x2 f1 -x1^3 x2; f2 -x1 - x2^3; J jacobian([f1; f2], [x1, x2]); A0 double(subs(J, [x1, x2], [0, 0])); eig(A0)运行结果会是一对纯虚数 $\pm 1j$。按第一法判据到达临界边界无法判断原点是否稳定。这里如果依赖线性化结论就会陷入僵局。这也是为什么非线性系统分析不能只配一套线性化工具。6.3 方法二构造 $V$ 函数并验证负定符号计算针对上面这个系统取最简单的二次型候选函数$$ V(x) x_1^2 x_2^2 $$沿系统轨迹求导$$ \dot{V} 2x_1(-x_1^3 x_2) 2x_2(-x_1 - x_2^3) -2x_1^4 - 2x_2^4 2x_1 x_2 - 2x_1 x_2 $$交叉项刚好约掉得到$$ \dot{V} -2(x_1^4 x_2^4) $$这是一个严格负定的函数因为只有在 $x_1 x_2 0$ 时它才等于零其余状态下都小于零。同时 $V x_1^2 x_2^2$ 径向无界因此可以判定系统在原点处全局渐进稳定。这个结论比线性化能给出的任何结论都强。用符号计算来验证非常方便V x1^2 x2^2; dV diff(V, x1) * f1 diff(V, x2) * f2; simplify(dV)输出应为- 2*x1^4 - 2*x2^4。看到这个结果就可以放心下结论了。6.4 方法三数值仿真验证理论结论成立后我习惯再做一次数值仿真不是作为证明而是作为“肉眼验证”。用ode45从多个初始状态出发观察轨迹是否收敛到原点[t1, x1] ode45((t, x) [-x(1)^3 x(2); -x(1) - x(2)^3], [0 20], [1.5; 1.5]); [t2, x2] ode45((t, x) [-x(1)^3 x(2); -x(1) - x(2)^3], [0 20], [-0.8; 1.2]); [t3, x3] ode45((t, x) [-x(1)^3 x(2); -x(1) - x(2)^3], [0 20], [2; -0.5]); figure; plot(x1(:,1), x1(:,2), LineWidth, 1.5); hold on; plot(x2(:,1), x2(:,2), LineWidth, 1.5); plot(x3(:,1), x3(:,2), LineWidth, 1.5); xlabel(x1); ylabel(x2); axis equal; grid on;运行后可以看到所有轨迹都呈螺旋状收敛到原点和理论结论一致。仿真不能替代证明但它能帮你发现理论推导中可能存在的符号错误。如果理论说稳定但仿真里轨迹发散我第一反应不是系统有问题而是 $\dot{V}$ 的表达式中一定漏项了。6.5 线性系统李雅普诺夫方程的MATLAB求解再补一个线性系统实操。设系统矩阵$$ A \begin{bmatrix} 0 1 \ -3 -2 \end{bmatrix} $$特征值约为 $-1 \pm 1.414j$实部为负系统渐近稳定。取 $Q I$用MATLAB里的lyap函数直接求解李雅普诺夫方程 $A^T P P A -Q$A [0 1; -3 -2]; Q eye(2); P lyap(A., Q); eig(P)lyap(A., Q)求解的是 $A^T P P A -Q$因为lyap函数内部默认第一个参数为 $A$、解 $A X X A^T -Q$所以这里传入转置矩阵 $A^T$ 就可以得到我们要的 $P$。算出来 $P \begin{bmatrix} 1.6667 0.1667 \ 0.1667 0.3333 \end{bmatrix}$特征值约等于 $1.75$ 和 $0.087$均为正数确认系统渐近稳定。如果换个不稳定的系统比如 $A \begin{bmatrix} 0 1 \ 2 1 \end{bmatrix}$同样的代码得到的 $P$ 至少有一个非正特征值稳定性结论自然反转。这种“算矩阵、验正定”的流程非常适合工程快速判断。7. 常见误区和避坑经验7.1 误区一把“稳定”当成“必须收敛到零”李雅普诺夫意义下的稳定只承诺轨迹不逃逸不承诺收敛。如果一个系统的轨迹围绕平衡点做等幅振荡它是稳定的但不是渐近稳定的。实际工程里我们几乎总是追求渐进稳定因为持续的等幅振荡意味着稳态误差和机械磨损。遇到“稳定但不渐进”的结论时正确的处理方式是继续寻找更强判据而不是直接接受这个结果。比如无阻尼系统可以加阻尼项重新建模或者通过LaSalle不变集定理判断振荡是否会最终衰减。稳定只是及格线渐进稳定才算合格。7.2 误区二线性化结论直接套用到全局第一法的结论只在平衡点附近成立这是它最容易被滥用的一点。雅可比矩阵特征值全部为负只能说明“局部”渐进稳定不代表系统在大扰动下也能恢复。倒立摆就是一个活例子在倒立点附近线性化后有一个正实部特征值线性化判断不稳定但倒立摆本身如果设计好控制律是可以在大范围内稳定的反过来某个系统在原点局部稳定但存在一个比平衡点更“吸引”的极限环系统离开一定范围后就回不到原点了。我通常会在理论分析之外用数值仿真扫一遍初始状态空间观察是否存在“吸引域边界”。这种扫描不严谨但能快速暴露第一法结论的适用范围。7.3 误区三$V$ 函数选不好就判系统不稳定第二法给的是充分条件不是充要条件。找到一个满足条件的 $V$ 函数系统确实稳定但找不到不代表系统不稳定。候选 $V$ 函数选得不好$\dot{V}$ 可能时正时负这时只能说明“这个候选函数不合适”不能据此判定系统不稳定。这个误区在初学者里特别普遍。我之前带过的学生拿一个很简单的二次型 $V$ 去测试一个高阶非线性系统$\dot{V}$ 的符号无法判断就直接写结论“系统不稳定”这是完全错误的逻辑。正确的流程是换候选函数比如增加交叉项、增加高次项、用变量梯度法重新构造或者用数值搜索来辅助寻找。实在找不到也只能说“目前未找到合适的李雅普诺夫函数”而不能下不稳定的结论。7.4 误区四忽略半负定情况下需要LaSalle不变集定理当 $\dot{V}$ 是半负定而不是负定时很多人会直接放弃判断或者错误地断言系统只是稳定。实际上如果 $\dot{V}$ 在半负定但 $\dot{V} 0$ 的集合里不包含除原点外的任何完整轨迹那么系统仍然是渐近稳定的。这个结论由LaSalle不变集定理给出。举个典型例子$\dot{x}_1 -x_1 x_2$$\dot{x}_2 -x_2$取 $V x_1^2 x_2^2$算出来 $\dot{V} -2x_1^2 - 2x_2^2$不对这个例子里 $\dot{V} 2x_1(-x_1 x_2) 2x_2(-x_2) -2x_1^2 2x_1 x_2 - 2x_2^2$在 $x_1 x_2$ 时可能为零? 检验 $x_1 x_2 1$$\dot{V} -2 2 - 2 -2 0$还是负的。换一个真正需要LaSalle的场景。考虑 $\dot{x} -x^3$$V x^2$$\dot{V} -2x^4$是负定的不需要LaSalle。找一个半负定例子$\dot{x}_1 -x_1^3$$\dot{x}_2 -x_2$取 $V x_1^2 x_2^2$$\dot{V} -2x_1^4 - 2x_2^2$还是负定。不太好。典型LaSalle教材例子是 $\dot{x}_1 x_2$$\dot{x}_2 -x_1 - x_2$取 $V x_1^2 x_2^2$$\dot{V} 2x_1 x_2 2x_2(-x_1 - x_2) -2x_2^2$是半负定。$\dot{V} 0$ 意味着 $x_2 0$在这个集合里系统动态变成 $\dot{x}_1 0$、$\dot{x}_2 -x_1$。若 $x_1 \neq 0$则 $\dot{x}_2 \neq 0$轨迹马上离开 $x_2 0$ 这个集合所以 $x_2 0$ 集合内除了原点没有更大不变集故系统仍然渐近稳定。这个例子很经典。这个案例说明$\dot{V}$ 半负定不代表分析结束利用不变集定理往往能救回来。实际操作中先把 $\dot{V} 0$ 的集合解出来再检查集合内的最大不变集往往能得到比预期强得多的结论。7.5 一个值得记住的实用技巧沿轨迹求导要算全导数用第二法时$\dot{V}$ 的计算必须代入完整的系统动态方程也就是要算全导数而不是偏导数。很多人在求 $\dot{V}$ 时丢项尤其当系统包含交叉耦合项时交叉项常常会互相抵消。上面那个非线性例子里$2x_1 x_2$ 和 $-2x_1 x_2$ 就刚好抵消如果只算了一半会误判成不定号。我用符号计算工具sympy或MATLAB Symbolic来避免这个低级错误已经很多年了。手工推导时先把 $\dot{V}$ 的每一项展开写在纸上再逐项消去同类项。不要跳步交叉项抵消这种“惊喜”稍不留神就没了。再补充一个表格把上面这些误区整理成速查误区错误操作正确做法潜在后果稳定与渐近稳定混淆看到轨迹不发散就认为收敛检查 $\dot{V}$ 是否严格负定把持续振荡误判为收敛线性化全局化第一法给出局部稳定就写在报告里当全局结论明确标注“局部稳定”必要时补全局分析大扰动下系统失控$V$ 找不到就下否定结论候选$V$不满足条件就说不稳定换候选函数用LaSalle定理或数值搜索丢掉本可稳定的设计忽略半负定的LaSalle$\dot{V} \leq 0$ 就终止分析分析 $\dot{V}0$ 集合内的最大不变集低估系统的收敛性求导漏掉交叉项只对部分状态求导用符号工具检查全导数判据符号判断失误8. 这章内容在后续课程里的位置如果把现代控制理论看作一条线李雅普诺夫稳定性理论是承上启下的核心枢纽。承上它把经典控制里“系统稳定”的概念从频域推进到时域从线性推进到非线性启下它直接引出可控性、可观性分析因为很多可控性判据都可以用李雅普诺夫方程或格拉姆矩阵统一起来。再往后学线性二次型最优控制LQR里的Riccati方程本质上就是李雅普诺夫方程的非线性推广H∞控制里的一大堆线性矩阵不等式更是把李雅普诺夫函数思想发挥到了极点。我自己最大的体会是李雅普诺夫方法不是独立的一章它是一套贯穿始终的思维范式找候选函数、求导、看符号这套操作在鲁棒控制、自适应控制、滑模控制里以各种变体反复出现。学的时候把它当成“判断工具”会觉得抽象但用熟了会发现它其实是在教你怎么把“系统会不会稳定”这个问题转化成“能不能找到一块能兜底的能量地形”。现在的我遇到一个新系统的第一反应已经不是求特征值了而是先琢磨这个系统的能量函数可能长什么样。这个转变就是李雅普诺夫这章带给我的最大收获。后续如果有时间我想写一篇变量梯度法和控制李雅普诺夫函数的实操案例这两块在实际控制器设计里非常有用也劝大家学完基础判据后往这个方向走一步。
返回列表