
刚入行做控制的时候我在调一套机械臂关节伺服仿真里PD参数调好后位置误差曲线很快收敛到零看起来很漂亮。但评审会上前辈问了一个让我记到现在的问题你凭什么说这个闭环是稳定的我当时只能把仿真图递过去他摇摇头说仿真只证明了你跑的那条轨迹没问题不能证明系统本身稳定。真正能回答这个问题的工具就是李雅普诺夫第二方法也就是直接法。它不需要求解系统的微分方程而是通过构造一个类似“能量”的标量函数V(x)观察它沿系统轨迹的变化趋势来判定稳定性。这篇文章不打算堆公式定义我会从第二方法的核心直觉讲起把正定函数、沿轨导数、稳定性分级、LaSalle不变集定理这些概念逐一拆开配四道完整例题再分享几类构造V函数的工程方法和踩坑经验适合刚学非线性控制、在复习自动控制原理或者需要在工程评审里做严格稳定性论证的工程师。1. 先回答一个工程直觉问题为什么仿真收敛不能证明系统稳定1.1 第一方法线性化的成立条件和两个软肋很多人在学校最早接触的稳定性判定是李雅普诺夫第一方法也就是间接法。它的核心思路很简单在平衡点附近把非线性系统线性化然后看雅可比矩阵的特征值实部。如果所有特征值实部都小于零就说系统局部渐近稳定。这个方法是有效的Hartman-Grobman定理保证在双曲平衡点附近非线性流形和线性化系统的流形拓扑等价。但它在工程上一直让我不太安心原因有二。第一个软肋是临界情形。只要某个特征值实部恰好为零线性化的结论就作废了稳定性由更高阶的非线性项决定。比如系统ẋ -x³线性化后是ẋ 0特征值在虚轴上可实际系统到处收敛于零。反过来系统ẋ x³同样线性化为零实际轨迹却会发散。这种情况在工程里不罕见机械臂接近奇异位形时线性化雅可比矩阵就经常出现近零特征值只靠线性化判断容易翻车。第二个软肋更现实局部性。线性化给出的“渐近稳定”只覆盖平衡点周围一个很小很小的邻域它不告诉你这个邻域到底有多大。可工程上最想知道的事情恰恰是给定多大的初始偏差系统还能拉回来。你去问线性化分析它只能沉默。所以真正做产品级控制器验证时我基本不会只依赖第一方法必须配一个能给出定量结论的工具。1.2 第二方法的核心直觉不求解轨迹只盯能量第二方法的出发点是一种非常物理化的直觉如果一个系统是稳定的那么它的某种“广义能量”在运动过程中应该不能自发增加。单摆没有阻尼时总机械能守恒摆来摆去但不会停下来这对应“稳定但不渐近收敛”一旦加入阻尼能量沿着运动轨迹不断损耗摆最终停在最低点这就是“渐近稳定”。这个直觉的神奇之处在于它根本不需要解微分方程。你只需要构造一个标量函数V(x)它在原点处为零、在原点以外的考察区域内为正然后计算它沿着系统轨迹的时间导数。只要这个导数非正就说明V在衰减系统状态被“压”在一族不断缩小的等值面里不会跑远如果导数是严格负的那么V一路下降轨迹必然被推向V的最小值点也就是原点。这就是李雅普诺夫第二方法——或者叫直接法——的全部框架。它把复杂的微分方程定性分析装进了一个标量函数的单调性判断里。对非线性系统来说这一招尤其好用因为解非线性方程几乎不可能但找一个正定函数并求导数手算也能完成。这里需要停顿一下强调一个我后来带新人时常提醒的点。很多人把V̇ 0当成“证明稳定”的终点其实漏了前提V本身必须正定。V正定保证原点是V的“洼地”V̇负定保证轨迹一直在往洼地走。两个条件缺一不可。后面例题里你会看到V选择不当会让整个证明失效而且错误经常藏在V的正定性检查上。1.3 第二方法能站住脚的深层原因拓扑与比较函数如果要稍微往深处看一眼第二方法为什么能有这么强的结论背后有两层支撑。第一层是拓扑观点。V的正定等值面一族把原点层层包围V̇≤0意味着轨迹只能从外层的等值面往内层穿永远出不去。这等于是用一族闭曲面把状态空间“装订”起来不需要知道轨迹具体怎么走就知道它跑不出某个等值面。对于渐近稳定V̇ 0 等价于轨迹在不停地穿过更小的等值面最后被压到原点。第二层更精细的刻画需要用一类特殊的比较函数就是K类函数。一个连续严格递增且满足α(0) 0的函数α如果满足α₁(‖x‖) ≤ V(x) ≤ α₂(‖x‖)那么V的正定性就能跟状态范数建立可量化的关系。这个概念看起来抽象作用却很实在它是区分普通稳定和一致稳定、甚至定量估计收敛速率的关键工具。你在论文里看到“从K类函数的角度”“输入到状态稳定”这些说法本质上都在用它。有了这层理解后面的定理分级才不容易混乱。教科书上罗列的稳定、渐近稳定、全局渐近稳定等结论并不是同一句话换了个说法而是条件逐渐加强、结论也逐渐加强的阶梯。下面我按这个阶梯逐级拆开。2. 判定稳定性的底层工具正定性、V函数与沿轨导数2.1 V(x)应该长什么样从机械能到一般李雅普诺夫函数先给一个实操中最好用的理解方式V(x)就是系统状态的“能量计”。它本身必须是状态x的函数不显含时间t这是处理自治系统的标准设定对于非自治系统V往往还要显式带t但是本文只讨论自治系统这样V̇的定义区最简洁。数学上正定函数的要求是三条第一V(0) 0第二在考察的包含原点的区域D内对任意x ≠ 0都有V(x) 0第三V连续可微。看起来简单但注意“连续可微”这个条件常被忽略。你构造一个带绝对值或者带尖角的V在原点处不可导V̇就不存在整套方法立刻失效。我见过有人用V |x₁| x₂²做候选因为不可导根本没法算沿轨导数。最经典的正定函数自然是二次型V xᵀPx其中P是正定对称矩阵。它的正定性可以由主子式全部为正来验证。但不要以为V一定得是二次型。V x₁⁴ 3x₁²x₂² x₂⁶也是正定的虽然它没有任何二次项。判断正定性本质上就是判断这个函数在原点除了零点之外是否严格大于零不限于某项次数。从物理系统出发时V通常就选系统的总能量。机械臂系统的总机械能、电路系统的电磁储能、热力学系统的自由能都是天然的候选V。这就是第二方法跟物理直觉结合得最紧密的地方也是为什么“能量法”这个名字在很多教科书里被直接拿来称呼它。2.2 沿轨导数V̇为什么能代表系统的耗散性有了V之后怎么算它沿系统轨迹的变化给定自治系统ẋ f(x)V对时间的全导数可以写成链式法则V̇(x) ∂V/∂x₁ f₁(x) ∂V/∂x₂ f₂(x) … ∂V/∂xₙ fₙ(x)在数学上更紧凑的写法是V̇ ∇Vᵀ f(x) L_f V(x)这里L_f V叫V关于向量场f的李导数。这个名字听起来高级实际含义很朴素V随着系统流一起运动时单位时间内变化的速率。关键的物理解读在这里。如果V̇(x) ≤ 0 对D内一切x都成立就说明系统的“能量”在运动过程中永不增加。哪怕它某一段不降也只是暂时持平绝不可能自己涨回去。这样V(x(t))是有界单调非增函数必然有极限状态x(t)就被限制在某个紧集里不会逃逸。如果V̇(x) 0符号严格为负那更进一层每当状态偏离原点V就在严格下降没有一个非原点的地方能让能量停留。于是系统状态不断“滑”向V的极小值点也就是原点。这里有一个我经常向前同事强调的实操判断算完V̇之后先别急着看全空间符号先看它在“除了原点之外的地方”是不是严格小于零。如果某个非零状态恰好让V̇ 0后续必须用LaSalle不变集定理补一步否则不能直接给出渐近稳定结论。2.3 线性系统直接用Lyapunov方程求V的数学原理当系统退化为线性定常系统ẋ Ax时V的构造有明确公式不用瞎猜。取V xᵀPx其中P是待定的对称正定矩阵把它代入沿轨导数V̇ xᵀ(AᵀP PA)x为了让系统渐近稳定我们希望V̇是负定的最简单粗暴的做法是令AᵀP PA -Q其中Q是某个给定的正定对称矩阵最常用的是Q I。这个矩阵方程就叫李雅普诺夫方程它是线性的对给定的A和QP可以通过展开方程逐元素解出来。为什么这个方程值得单独拿出来讲因为对线性系统它给出的是充要条件A的所有特征值实部为负等价于对任意正定Q方程都存在唯一正定解P。所以你解出一个正定的P就等于严格证明了系统全局渐近稳定而且V xᵀPx还附带给出了一个二次型的能量解释。工程上用MATLAB只需要一行lyap(A, Q)或者P lyap(A, Q)但手算一道两阶的题能极大加深对这个过程的记忆。第4章例4我会把完整的矩阵展开过程写出来。这里提醒一个容易踩的坑如果A有纯虚特征值方程仍然可能有解但解出的P可能不正定。这对应临界稳定情形此时第二方法只能给出“稳定”而不能给出“渐近稳定”。不要看到一个P就急着说稳先检查P是否正定再检查V̇是否确实是负定的两个条件合成一条完整证据链。3. 四个稳定性结论的适用条件稳定、渐近稳定、全局稳定与LaSalle定理3.1 稳定与渐近稳定之间差的那一点“稳定”和“渐近稳定”在日常中文里听起来差不多在控制理论里差得非常多。稳定只承诺如果初始状态离原点足够近那么之后所有时刻的状态都控制在一个给定的范围内。它不承诺收敛到原点也不承诺收敛到任何地方。典型的例子就是无阻尼单摆它在平衡点附近做等幅振荡能量守恒稳定但不渐近稳定因为轨迹不会最终停在原点。对应到V函数上稳定对应V正定且V̇≤0。V̇只要求非正允许它等于零在某个非零集合上一直成立。这时候系统能量不增加但也可能不减少轨迹就在某个等值面上打转。而渐近稳定要求在原点邻域内V̇严格负定也就是对一切非零状态能量都在严格下降轨迹最终被拖回原点。这个差别在工程里的实际意义很大。一个只稳定不渐近稳定的系统本质上存在“持续的振荡模式”位置误差可能一直在允许的范围内波动但永远不为零。对需要精确定位的伺服系统来说稳定是不够的你必须证明渐近稳定。3.2 全局渐近稳定径向无界与单平衡点缺一不可把渐近稳定的结论从局部推广到全状态空间需要额外两个条件这也是新手最容易掉进去的坑。第一个条件是径向无界。定义是当‖x‖ → ∞时V(x) → ∞。直观上V的等值面要随着V增大而无限向外扩张把整个状态空间都包住。如果没有这个条件V可能只在某个有限区域内是“碗状”的一旦初值跑出这个区域V就不再能提供约束系统完全可能发散。局部渐近稳定和全局渐近稳定的差距就在V的这个“碗口”开不开到无穷远。第二个条件经常被忽略全局渐近稳定要求系统在整个状态空间内只有原点这一个平衡点。如果系统除了原点还有别的平衡点比如一个三维系统同时有两个稳定的平衡点那就不可能做到全局渐近稳定因为从一个平衡点出发的轨迹根本不会离开更不可能收敛到另一个。这是逻辑上的必要条件跟V怎么选无关。造一个例子来说明一维系统ẋ -x(x² - 1)它有x0、x±1三个平衡点。有人在原点附近取V x²V̇ -2x²(x² - 1)。在|x|1区域内V̇是负的看起来系统渐近稳定。但如果取初值x2状态会被x1这个平衡点挡住根本回不到原点。如果当初只验证V在局部正定没有检查全局条件就会得出错误结论。3.3 LaSalle不变集定理处理V̇半负定的补救方案工程系统里V̇ 0在非零集合上成立的情形太常见了尤其是机械系统。弹簧-质量-阻尼系统用总机械能做V的时候阻尼项只出现在速度状态上V̇ -cx₂²只在x₂ 0处为零。如果速度为零但位移不为零V̇ 0你没法直接得到渐近稳定结论但工程直觉告诉我们系统最终应该会稳定下来。这里需要的正是LaSalle不变集定理。定理的表述是这样的如果V在某个紧的正不变集Ω上正定V̇ ≤ 0那么系统的轨迹最终会收敛到E {x ∈ Ω : V̇(x) 0}的最大不变子集M中。如果M里除了原点没有其他轨迹能停留那么原点就是渐近稳定的。使用这个定理有一个关键动作拿到V̇ 0的集合后必须把它代回原系统方程看有没有一条非零的完整轨迹能够一直停留在这个集合里。比如V̇ -x₂²令x₂ 0且x₂恒为零那么ẋ₂也必须恒为零把x₂ 0、ẋ₂ 0代入第二个状态方程通常能解得x₁也只能是零。这样就排除了非零轨迹停留在E里的可能推论出渐近稳定成立。3.4 工程中怎么选择定理层级给你一个我在实际分析中用的决策顺序可以当作清单先判断系统是不是线性定常。如果是优先走Lyapunov方程路线结论最强还能量化收敛速率。如果是非线性系统先从物理意义找能量函数求出V̇看符号。V̇严格负定且V径向无界直接给全局渐近稳定结论。V̇只是半负定用LaSalle定理补检查确认V̇ 0集合中没有非零不变轨迹。V̇有正有负V选择失败换候选V或者用区域分解分别分析。只关心某个工作点附近的稳定性可以接受局部结论那就不强求径向无界但要在结论里明确说明这是局部渐近稳定并尽量用仿真或数值方法估计吸引域范围。这套决策顺序看起来朴素但它能防止你在一篇论文里看到V̇≤0就直接抄结论。很多系统不是不满足LaSalle定理而是忘了验证“最大不变集只有原点”这一步。4. 例题实战从线性到非线性四道完整解答4.1 例1二次型V直接证明全局渐近稳定第一个例子是最典型、也最容易被误认为“太简单”的非线性系统ẋ₁ x₂ - x₁(x₁² x₂²) ẋ₂ -x₁ - x₂(x₁² x₂²)直观上看这个系统的非线性项带了一个径向“阻尼因子”ρ x₁² x₂²系统有把状态往原點拽的趋势。我取候选V x₁² x₂²这显然正定且当‖x‖→∞时V→∞径向无界。求沿轨导数V̇ 2x₁[x₂ - x₁ρ] 2x₂[-x₁ - x₂ρ] 2x₁x₂ - 2x₁²ρ - 2x₁x₂ - 2x₂²ρ -2ρ(x₁² x₂²) -2(x₁² x₂²)²这个表达式在任何非零状态处都严格小于零在原点处等于零所以V̇负定。由Barbashin-Krasovskii定理系统全局渐近稳定。这道题值得注意的地方是V̇化简时交叉项2x₁x₂恰好抵消了。这种抵消不是偶然的而是系统本身带有一个类似“旋转对称”的结构能量法天然适配。如果系统里交叉项抵消不完全V̇会出现不定符号就得考虑加交叉项这正是后面第5章要讲的技巧。4.2 例2弹簧-质量-阻尼系统的能量法证明第二个例子从物理直觉出发。质量-弹簧-阻尼系统mẍ cẋ kx 0其中m、c、k都是正常数。令x₁ xx₂ ẋ写成状态方程ẋ₁ x₂ ẋ₂ -(k/m)x₁ - (c/m)x₂系统总机械能是势能与动能之和V(x) ½kx₁² ½mx₂²这个V正定且径向无界。沿轨导数V̇ kx₁x₂ mx₂[-(k/m)x₁ - (c/m)x₂] kx₁x₂ - kx₁x₂ - cx₂² -cx₂²注意V̇只含x₂项它是半负定而不是负定的因为在形如(x₁, 0)的状态处V̇ 0物理含义是弹簧压缩到某一位置且速度刚好为零的那一刻机械能不再减少但下一刻弹簧会重新把质量块推起来动能又会变化所以这不是一个能停留的状态。用LaSalle定理收尾。V̇ 0等价于x₂ 0且要求x₂在整个运动过程中恒为零则ẋ₂也必须恒为零。把这两个条件代入第二个状态方程得到0 -(k/m)x₁所以x₁ 0。于是V̇ 0的集合里最大的不变集只有原点系统渐近稳定。这道题是整个第二方法里我最喜欢的一道因为它完全复现了物理直觉能量单调下降掉到最低点时停下来而且只有最低点能停住。工程上判断一个有阻尼机械系统稳不稳先写总机械能再求导看耗散项这个习惯能让你在复杂模型里快速建立第一版候选V。4.3 例3V̇半负定情形下用LaSalle定理收尾第三个例子换成非线性刚度系统它的V̇同样半负定但非线性更强ẋ₁ x₂ ẋ₂ -x₁³ - x₂物理上可以理解为一个带线性阻尼的“三次方弹簧”系统恢复力不是kx而是x₁³阻尼项是-x₂。候选V仿照机械能构造但势能项要按x₁⁴走V(x) ¼x₁⁴ ½x₂²正定性和径向无界都满足。沿轨导数V̇ x₁³x₂ x₂(-x₁³ - x₂) x₁³x₂ - x₁³x₂ - x₂² -x₂²又是半负定只有在x₂ 0时为零。用LaSalle定理。V̇ 0要求x₂恒等于零于是ẋ₂恒等于零。将x₂ 0代入系统方程得到0 -x₁³ - 0因此x₁ 0。所以V̇ 0集合中只有原点是完整不变集系统全局渐近稳定。这道题跟例2结构很像但它有一个明显的非线性项x₁³线性化的雅可比矩阵在原点处会退化特征值计算容易出问题用第一方法很难收场。第二方法却几乎不用增加工作量就解决了。这就是直接法对非线性系统的统治力所在。做题时别急着说“V̇≤0所以稳定”一定要补LaSalle定理那一步这一补才是完整证明。4.4 例4线性系统Lyapunov方程的矩阵求解全过程第四个例子展示线性系统和Lyapunov方程的手算流程。系统ẋ₁ -2x₁ x₂ ẋ₂ x₁ - 3x₂矩阵形式A [[-2, 1], [1, -3]]。令Q I待解方程AᵀP PA -I。设P [[p, q], [q, r]]P对称所以两个交叉项用同一个q。先算PAPA [[p, q], [q, r]] [[-2, 1], [1, -3]] [[-2pq, p-3q], [-2qr, q-3r]]再算AᵀP。由于Aᵀ [[-2, 1], [1, -3]]恰好和原A一样这个矩阵是对称的所以AᵀP和PA在数值上相等。于是AᵀP PA 2PA -I即PA -½I。这样展开方程更简单。逐元素比较-2p q -½ p - 3q 0 -2q r 0 q - 3r -½由p 3q代入第一个方程-6q q -½即-5q -½所以q 0.1p 0.3。由r 2q 0.2。带回第四个方程验算0.1 - 0.6 -0.5一致。解得P [[0.3, 0.1], [0.1, 0.2]]。最后验证P正定一阶主子式p 0.3 0二阶主子式det(P) 0.3×0.2 - 0.1×0.1 0.06 - 0.01 0.05 0所以P正定。于是V 0.3x₁² 0.2x₁x₂ 0.2x₂²是系统的李雅普诺夫函数沿轨导数V̇ -x₁² - x₂²严格负定系统全局渐近稳定。如果系统矩阵不是对称的手算时PA和AᵀP必须分开算我上面这个例子里两者相等属于对称矩阵的特殊福利不要养成偷懒的习惯。实际工程里矩阵阶数一高都是直接上lyap(A, Q)但低阶手算一次能让你彻底明白P的每个元素从哪来、正定性验证为什么不可或缺。5. 找不到V函数怎么办三种工程构造法与避坑经验5.1 二次型方案线性系统与局部判定的首选前面例1和例4已经展示了二次型V xᵀPx的巨大威力。对线性定常系统它是标准答案。对非线性系统二次型也可以作为第一版候选尤其是当非线性项不足以破坏二次型衰减的时候。有一个实用的操作套路先把非线性系统在原点线性化算出线性部分的特征值。如果特征值实部全为负那么线性系统李雅普诺夫方程能给出一个P把这个P拿过来构造V xᵀPx再直接代入原非线性系统求V̇。很多时候V̇在原点附近仍然是负定的因为非线性高阶项在局部的影响小于二次型的主衰减项这样就能证明局部渐近稳定。而且用这个方法还能顺带估计一个吸引域范围找V̇ 0的某个等值面把所有使V̇ ≤ 0的区域内的最大等值面包出来即可。如果直接代入后V̇出现正定项解决办法是给V加上适当地高次项把这部分非线性“吸收”掉。这就是所谓“二次型高次校正项”的思路实践中非常高效。5.2 变量梯度法从梯度反推V当猜V变得很困难时可以反过来从梯度出发构造V这个方法叫变量梯度法。它的操作步骤很清晰假设V的梯度∇V A(x)x其中A(x)是一个含待定参数的矩阵。要求∇V的各分量必须满足旋度条件∂(∇V)ᵢ/∂xⱼ ∂(∇V)ⱼ/∂xᵢ这样沿不同路径积分出的V才能一致。把∇V代入V̇ (∇V)ᵀ f(x)选择参数让V̇尽可能负定可以是严格负定也可以是半负定配合LaSalle。解出参数后沿一条路径积分V(x) ∫₀ˣ∇V(x)·dx通常沿坐标轴分段积分最方便。这个方法看起来机械实际很考验“选择A(x)结构”的经验。两阶系统可以先从对角形A(x) diag(a₁(x), a₂(x))试起不行再引入非对角项。它最大的价值是让V的构造变成“参数设计条件校验”而不是纯靠灵感拍脑袋适合系统阶数不高的非线性分析。5.3 Krasovskii方法直接用系统右侧函数做候选还有一类构造法直接使用系统右侧函数f(x)来建立V典型代表是Krasovskii方法。它取V(x) f(x)ᵀ f(x)也就是把速度向量本身当成“能量”来度量。沿轨导数V̇ fᵀJf fᵀJᵀf fᵀ(J Jᵀ)f其中J ∂f/∂x是系统的雅可比矩阵。如果J Jᵀ在考察区域D内负定那么V̇就是负定的系统局部渐近稳定。这个方法的优点是完全不靠物理直觉拿到f(x)就能试。缺点是条件相当苛刻要求J Jᵀ负定意味着系统“处处耗散”很多系统并不满足。推广版本是取V fᵀWf其中W是正定常数矩阵条件变成JᵀW WJ负定这本质上是线性矩阵不等式的最早雏形。现在很多LMI工具包里做的稳定性分析思想源头就在这。对工程人来说Krasovskii方法更适合给一个快速判定的“抛石问路”如果J Jᵀ明显有正特征值你就知道这个候选V没戏趁早换方向不要在一条道上死磕。5.4 我踩过的坑V不唯一、半负定误判、忽略径向无界这节专门写我实际踩过的坑每一条都对应一次返工。第一个坑是“V不唯一所以随便选”。事实恰恰相反V的选择高度依赖系统结构。选对了V̇计算三五步就干净利落选错了V̇里全是无法判断符号的交叉项。我早期做非线性系统分析时在V x₁² x₂²上死磕代数化简做了快两页纸符号还是不定。后来意识到这个系统本质上有“旋转阻尼”的结构加了交叉项2εx₁x₂之后V̇马上就干净了。经验法则交叉项不是修饰而是用来消除V̇里不可判号部分的武器。第二个坑是混淆“V̇≤0”和“渐近稳定”。只要V̇ 0在非零集合上出现就必须补LaSalle定理检查否则结论不成立。我在一份技术评审意见里就见过这样的问题报告只写“选取V xᵀPx求导得V̇ ≤ 0故系统渐近稳定”中间跳过了不变集检验。审稿人追问一句“如果状态停留在V̇ 0的集合里怎么办”整个逻辑链就断了。第三个坑是忘记径向无界。局部稳定和全局稳定之间就差这一个条件可它太容易被忽略。有一类系统在远端V虽然趋向无穷但V̇在某个有限区域内变号导致轨迹逃逸后能量重新上升。这种系统很可能存在一个有限吸引域局部渐近稳定成立全局结论不成立。所以在结论里必须写明“全局”还是“局部”这两个词的证据要求完全不同。第四个坑藏在符号判断里。V̇的表达式经常可以分解成好几项有些项显然为负有些项有正有负。新手容易抓住负的部分就下结论。正确做法是尝试给正项做不等式放缩比如用2ab ≤ a² b²等恒等式把正项包进负项里只有放缩后整体仍为负才能下结论。这一步往往是整套证明的胜负手。6. 稳定性分析在工程设计中的真实用途6.1 从“证明稳”到“设计稳”控制李雅普诺夫函数稳定性分析不只是验证还可以直接指导控制器设计。思想很简单如果你在构造V的同时把控制量u当成一个自由变量纳入V̇的表达式中那么你就能反过来“设计”u让V̇强制变成负定。这种V叫做控制李雅普诺夫函数CLF。举个例子系统ẋ f(x) g(x)u给定一个正定V计算V̇ L_fV L_gV·u。只要选择u使得L_fV L_gV·u 0就能保证闭环稳定。这个逻辑几乎是直接的。更妙的是Sontag公式它给出了一种通用设计当L_gV 0时采用一个特殊的切换策略当L_gV不为零时选u -(L_fV sqrt((L_fV)² (L_gV)⁴))/L_gV这样V̇就严格负定。后推设计、滑模控制这些非线性控制方法本质上都在套这个框架。所以我建议工程师别把李雅普诺夫方法只当成“验证工具”它更是“设计工具”。6.2 观测器误差动力学分析另一个高频率用途是状态观测器的误差分析。设计一个观测器时你得到的不再是状态本身而是状态估计真正的状态和估计值之间的误差动态方程通常可以写成线性或非线性系统。这时候稳定性分析的对象就是误差方程。实际项目里我常看到观测器仿真曲线收敛得很漂亮但没有人证明过误差动力学渐近稳定。一旦系统工作点变动或者初始误差较大观测器发散的情况就会在实机上冒出来。正确流程是写出误差e x - x̂的动态方程构造V(e)证明原点是渐近稳定的然后把仿真当成辅助验证而不是反过来。这个流程做完观测器才能放心上实机。6.3 我的实操习惯和一个小技巧最后分享一个我个人的工作习惯。拿到一个新的非线性系统我不会马上开始构造V而是先做两件事第一用数值方法在多个初值下跑仿真感受系统真实行为是收敛、振荡还是发散这能给我一个关于V的“感性预期”第二检查系统有没有天然的能量结构比如机械能、拉格朗日量如果有直接把它当第一版候选V分析它的V̇通常能定位出到底哪些项在耗散能量哪些项在注入能量。一个小技巧是在算V̇的时候先不要把每一项都展到最开。保留我所谓的“结构型写法”比如把(x₁² x₂²)当作整体ρ来化简往往比完全展开更容易看出符号。例1能快速化简就是因为先把ρ作为整体保留展开之后交叉项自己消掉了。代数展开虽然不会错但会让符号判断变得困难。李雅普诺夫第二方法真正的价值不只是考试里的证明题而是给你一种看待系统的语言任何系统都可以问一句它的能量函数是什么这个能量是在增加还是在减少这比盯着某一条仿真曲线去猜要可靠得多。我后来做每一次控制方案评审都会要求自己的闭环逻辑里至少有一个V函数和它的V̇符号判定这是从那次被前辈追问之后养成的习惯也建议你试试。