第1章:数学预备知识(一)——线性代数基础
各位同学好,我是老张。在飞控这行摸爬滚打了十几年,今天咱们来聊聊飞行器动力学模型降阶里最基础的数学工具——线性代数。
说实话,很多刚入行的工程师觉得线性代数就是一堆枯燥的公式。但在我眼里,它就像一把瑞士军刀,能帮我们把复杂的动力学问题拆解得明明白白。你想想看,一个六自由度的飞行器模型,动辄几十个状态变量,如果没有这些数学工具,根本无从下手。
1.1 特征值与特征向量——系统的“灵魂”
先说说特征值和特征向量。这个概念,说白了就是描述一个矩阵“拉伸”和“旋转”特性的核心参数。
定义很简单:对于一个方阵 A,如果存在非零向量 v 和标量 λ,使得 Av = λv,那么 λ 就是特征值,v 就是对应的特征向量。
为什么会这么重要?因为飞行器的动力学特性,比如模态频率、阻尼比,本质上就是系统矩阵的特征值。我在做某型无人机纵向稳定性分析时,就是通过特征值判断出短周期模态的阻尼比偏小,后来调整了控制增益才解决问题。
核心要点:特征值的实部决定系统的稳定性(负实部稳定),虚部决定振荡频率。特征向量则告诉我们每个模态的“形状”——哪些状态变量参与了这个模态的运动。
计算特征值的方法有很多,但工程上最常用的是 QR 算法。不过说实话,现在 MATLAB 和 Python 都封装好了,我们更关注的是怎么解读结果。
# Python 示例:计算系统矩阵的特征值
import numpy as np
# 假设一个简化的纵向动力学矩阵
A = np.array([[-0.5, 1.0, 0.0],
[-2.0, -0.8, 0.0],
[0.0, 0.0, -1.2]])
eigenvalues, eigenvectors = np.linalg.eig(A)
print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)
个人经验:我建议你在做模态分析时,先把特征值画在复平面上。一眼就能看出哪些模态是稳定的,哪些可能有问题。我曾经有个项目,就是靠这张图发现了一个被忽略的螺旋模态不稳定。
1.2 奇异值分解(SVD)——矩阵的“解剖刀”
接下来是奇异值分解。如果说特征值只适用于方阵,那 SVD 就是“通吃”所有矩阵的利器。
任何 m×n 的矩阵 A 都可以分解为:A = UΣVᵀ。其中 U 和 V 是正交矩阵,Σ 是对角矩阵,对角线上的元素就是奇异值。
你可能会问:这玩意儿在飞控里有什么用?用处大了去了!
- 模型降阶:通过保留最大的几个奇异值,可以近似原矩阵。这就是所谓的“截断 SVD”。
- 系统辨识:在 ERA(特征系统实现算法)中,SVD 是核心步骤,用来提取系统的可控性和可观性子空间。
- 传感器布局:通过分析观测矩阵的奇异值,可以判断哪些传感器对系统状态的估计最有效。
避坑指南:我曾经在做一个柔性机翼的模型降阶时,直接对所有奇异值做了截断,结果降阶后的模型在特定频率下完全失稳。后来才发现,有些小奇异值对应的模态虽然能量低,但却是结构的关键耦合模态。所以,截断前一定要做物理分析!
# SVD 分解示例
import numpy as np
# 假设一个 4×3 的传递函数矩阵
H = np.array([[1.0, 0.5, 0.2],
[0.3, 2.0, 0.1],
[0.1, 0.4, 3.0],
[0.2, 0.3, 0.5]])
U, S, Vt = np.linalg.svd(H)
print("奇异值:", S)
print("保留前2个奇异值的近似:")
H_approx = U[:, :2] @ np.diag(S[:2]) @ Vt[:2, :]
print(H_approx)
1.3 矩阵范数——衡量“大小”的尺子
最后聊聊矩阵范数。说白了,就是给矩阵一个“长度”的概念。在模型降阶中,我们经常需要比较两个模型的“接近程度”,这时候范数就派上用场了。
常用的范数有几种:
| 范数类型 | 定义 | 工程含义 |
|---|---|---|
| Frobenius 范数 | ||A||F = √(∑aij²) | 所有元素的平方和,类似向量的 2-范数 |
| 谱范数(2-范数) | ||A||2 = σmax(A) | 最大奇异值,代表系统的最大增益 |
| 1-范数 | ||A||1 = maxj ∑|aij| | 最大列和,反映输入到输出的最大影响 |
| ∞-范数 | ||A||∞ = maxi ∑|aij| | 最大行和,反映最坏情况下的输出 |
我的习惯:在做模型降阶误差分析时,我通常用谱范数。因为它直接对应系统的 H∞ 范数,能给出最坏情况下的误差上界。但如果你需要整体误差的“平均”水平,Frobenius 范数更合适。
举个例子,假设我们有一个全阶模型 G 和一个降阶模型 Ĝ,误差矩阵 E = G - Ĝ。如果 ||E||2 很小,说明降阶模型在所有频率下的响应都很接近原模型。但如果某个频率下误差很大,谱范数可能无法反映——这时候就需要结合频率响应分析了。
知识体系总览
下面这张图是我自己整理的,把这三个数学工具在飞控模型降阶中的关系画清楚了。
从这张图可以看得很清楚:特征值分析是基础,SVD 是核心工具,矩阵范数则是评价标准。三者环环相扣,缺一不可。
一点建议:刚开始学的时候,别急着背公式。先理解每个工具能解决什么问题。比如你拿到一个飞行器模型,先问自己:我要分析稳定性(特征值)?还是要降阶(SVD)?或者要评估误差(范数)?带着问题去学,效率高得多。
好了,这一章的内容就到这里。线性代数这块儿是后面所有降阶方法的基础,建议你花点时间把代码跑一跑,亲手算几个例子。下一章咱们会聊到更具体的模型降阶方法——到时候这些数学工具就会派上大用场了。