第2章 数学基础回顾(上):向量与矩阵分析、范数、特征值与奇异值、李雅普诺夫稳定性基础概念
各位同学,欢迎来到非线性控制的第一道坎——数学基础。说实话,我见过太多人一上来就啃滑模、反步法,结果被矩阵求导卡得死死的。我个人习惯是:先把工具磨利,再砍柴。这一章我们只聊四件事:向量矩阵、范数、特征值与奇异值、还有李雅普诺夫那点直觉。
2.1 向量与矩阵:控制系统的“语言”
你想想看,一个非线性系统,状态变量可能十几个。用手写微分方程?不现实。所以我们用向量表示状态,用矩阵表示关系。比如一个机械臂,关节角度写成向量 q,角速度写成 q_dot,整个系统就是 q 和 q_dot 的演化。
矩阵在控制里最常见的角色——线性化。我在做无人机姿态控制时,就靠雅可比矩阵把非线性模型拍平成线性,然后设计 LQR。嗯,这里要注意:雅可比矩阵是时变的,你得在每个工作点重新算。
核心概念:向量空间、线性无关、基变换。这些是理解能控能观性的前提。
2.2 范数:衡量“大小”的尺子
范数是什么?说白了就是给向量或矩阵量个“长度”。为什么需要它?因为我们要判断误差大不大、系统稳不稳定。
常用的向量范数有:
- 1-范数:各分量绝对值之和。我早期做路径规划时用过,计算快但不够平滑。
- 2-范数:欧几里得距离。最常用,物理意义直观。
- ∞-范数:最大绝对值分量。适合分析最坏情况。
矩阵范数呢?我建议你记住诱导范数——它描述的是“矩阵对向量的放大倍数”。比如谱范数(2-范数),就等于最大奇异值。我在验证系统增益时,经常用这个判断输入输出稳定性。
实战技巧:在 MATLAB 里用 norm() 函数,默认是 2-范数。但如果你做鲁棒控制,记得试试 hinfnorm()——那是 H∞ 范数,专门对付不确定性。
2.3 特征值与奇异值:系统的“指纹”
特征值,学控制的人绕不开。线性系统的稳定性,就看特征值实部是否全负。但非线性系统呢?特征值只能告诉你局部行为——我在调试一个磁悬浮平台时,线性化后特征值全负,结果大扰动下照样发散。为什么?因为非线性项把系统推到了吸引域外面。
奇异值分解(SVD)就更强大了。它能把任意矩阵拆成旋转+缩放+旋转。我在做系统辨识时,用 SVD 降噪——把小的奇异值砍掉,模型立马干净很多。
| 概念 | 定义 | 控制中的应用 |
|---|---|---|
| 特征值 | Av = λv | 线性系统稳定性、模态分析 |
| 奇异值 | A = UΣV^T | 系统增益、鲁棒性、模型降阶 |
避坑指南:我曾经以为特征值和奇异值是一回事,结果在分析非方矩阵时栽了跟头。记住:只有方阵才有特征值,而任何矩阵都有奇异值。
2.4 李雅普诺夫稳定性:直觉比公式更重要
李雅普诺夫稳定性,说白了就是回答一个问题:系统会不会跑飞?
第一法(间接法):线性化后看特征值。简单粗暴,但只适用于局部。第二法(直接法):找个能量函数 V(x),看它是不是一直下降。如果 V 正定、V_dot 负定,那系统就稳定。
我刚开始学的时候,总觉得找 V 函数像玄学。后来做工程多了,发现套路其实有:
- 机械系统用动能+势能
- 电气系统用电感储能+电容储能
- 实在不行,试试二次型 V = x^T P x
举个例子:一个简单的质量-弹簧-阻尼系统,总能量就是 ½mv² + ½kx²。求导后得到 -bv²,负的!说明能量在耗散,系统稳定。你看,不需要解微分方程,就能判断稳定性。
核心思想:李雅普诺夫第二法不要求你知道解,只要求你找到一个“能量”函数。这是非线性控制最优雅的地方。
2.5 本章小结
这一章我们铺了四块基石:向量矩阵是语言,范数是尺子,特征值/奇异值是工具,李雅普诺夫是灵魂。下一章我们会继续聊数学——拉普拉斯变换、传递函数、还有那让人头疼的微分几何。但别怕,一步步来。
最后送你一句话:控制理论里,数学不是目的,是手段。我见过太多人沉迷公式推导,却忘了问“这个定理在工程里怎么用”。保持这种务实的心态,你会走得更远。
课后练习:找一个你熟悉的非线性系统(比如倒立摆),写出它的状态方程,然后尝试找一个候选李雅普诺夫函数。不用完美,先试试看。