数学基础回顾:向量与矩阵运算、范数定义、函数极值求解
各位同学,欢迎来到第二章。说实话,做制导控制这些年,我最大的体会就是——数学基础不牢,后面推导公式时真的会一头雾水。今天咱们就把向量、矩阵、范数、极值这些老伙计请出来,好好捋一捋。别怕,我会用项目里的实际例子带大家理解。
2.1 向量与矩阵:制导问题的“语言”
在机动目标拦截问题里,我们描述目标位置、导弹速度、相对运动关系,用的全是向量和矩阵。说白了,这就是我们和飞行器对话的“语法”。
2.1.1 向量运算
一个三维向量 r = [x, y, z]^T 可以表示目标相对于导弹的位置。我习惯用列向量,因为后面做矩阵乘法时更顺手。
基本运算包括:
- 加法/减法:对应分量相加减。比如相对速度 v_rel = v_target - v_missile。
- 点积(内积):a · b = a_1 b_1 + a_2 b_2 + a_3 b_3。物理意义是一个向量在另一个方向上的投影长度。我在做视线角速率估算时,经常用点积来算夹角。
- 叉积(外积):a × b 得到垂直于 a 和 b 的新向量。这个在计算角动量、视线旋转速率时特别有用。
重要提醒:叉积不满足交换律!a × b = - (b × a)。我曾经在推导制导律时搞反了符号,结果仿真里导弹直接朝反方向飞……嗯,从那以后我每次写叉积都会多看一眼顺序。
2.1.2 矩阵运算
矩阵在制导控制里主要干两件事:线性变换和表示二次型。比如状态转移矩阵、协方差矩阵、Hessian矩阵,都是老朋友。
核心运算:
- 矩阵乘法:C = A × B,要求A的列数等于B的行数。我个人习惯先检查维度,再动手算。
- 转置:A^T,行变列,列变行。在推导最优控制中的Riccati方程时,转置符号满天飞,千万别漏了。
- 逆矩阵:A^{-1},满足 A × A^{-1} = I。注意,只有方阵且行列式不为零时才有逆。我在实际代码里很少直接求逆,一般用Cholesky分解或LU分解来解线性方程组,数值稳定性更好。
小技巧:如果你在MATLAB里写代码,尽量用 A \ b 而不是 inv(A) * b。前者更快,也更准。
2.2 范数定义:衡量“大小”的尺子
范数,说白了就是给向量或矩阵量个“长度”。在最优制导里,我们经常要最小化某个范数,比如控制能量最小化就是最小化控制向量的2-范数平方。
2.2.1 向量范数
常用的向量范数有三种:
| 范数类型 | 定义 | 物理意义/用途 |
|---|---|---|
| 1-范数 | ||x||_1 = Σ|x_i| | 稀疏优化,燃料最优问题 |
| 2-范数(欧几里得范数) | ||x||_2 = √(Σx_i^2) | 能量最优,最常用 |
| ∞-范数 | ||x||_∞ = max|x_i| | 最坏情况分析,鲁棒控制 |
你想想看,在拦截问题中,如果我们想最小化导弹的过载(加速度),通常用2-范数平方作为代价函数。为什么?因为2-范数平方求导方便,而且物理上对应能量。
2.2.2 矩阵范数
矩阵范数稍微复杂一点。最常用的是Frobenius范数和诱导2-范数(谱范数)。
- Frobenius范数:||A||_F = √(ΣΣ a_{ij}^2),就是把矩阵拉直成向量算2-范数。
- 谱范数:||A||_2 = σ_max(A),即A的最大奇异值。这个在分析系统稳定性时很关键。
注意:矩阵范数要满足相容性条件,即 ||AB|| ≤ ||A|| · ||B||。我在做误差分析时,如果忽略了这一点,估计出来的误差上界会偏小,导致实际系统不稳定。切记!
2.3 函数极值求解:最优制导的“心脏”
最优制导的本质,就是在满足动力学约束的前提下,找一个控制量u(t),使得某个性能指标J最小。这就绕不开函数极值求解。
2.3.1 无约束极值
对于标量函数 f(x),极值点满足一阶必要条件:f'(x) = 0。二阶充分条件:f''(x) > 0 是极小值,f''(x) < 0 是极大值。
对于多元函数 f(x),梯度 ∇f(x) = 0 是必要条件。Hessian矩阵 ∇²f(x) 正定是极小值的充分条件。
我记得有一次在推导比例导引法的能量最优形式时,就是通过令性能指标对导航比的偏导为零,得到了最优导航比N=3的经典结论。你看,极值求解直接给出了工程上用了半个世纪的参数。
2.3.2 有约束极值:拉格朗日乘子法
实际制导问题都有约束,比如导弹最大过载限制、终端脱靶量要求。这时候要用拉格朗日乘子法。
考虑问题:
min f(x)
s.t. g(x) = 0
构造拉格朗日函数:L(x, λ) = f(x) + λ^T g(x)。然后令 ∇L = 0 求解。
举个例子,在最优制导律推导中,我们经常要最小化控制能量,同时保证终端脱靶量为零。这就是典型的等式约束极值问题。
核心思想:拉格朗日乘子λ的物理意义可以理解为“约束的边际成本”。在制导里,λ的大小反映了为了满足终端约束,我们需要付出多少控制代价。这个直觉很重要。
2.3.3 变分法与最优控制
当优化变量是函数u(t)而不是数值时,我们就进入了变分法的领域。最优控制中的Pontryagin极小值原理,本质上就是变分法在控制问题中的推广。
核心步骤:
- 写出性能指标 J = φ(x(t_f)) + ∫ L(x, u, t) dt
- 构造哈密顿函数 H = L + λ^T f(x, u, t)
- 由最优性条件 ∂H/∂u = 0 得到控制律
- 由协态方程 dλ/dt = -∂H/∂x 得到λ的演化
说实话,我第一次学变分法时也觉得抽象。后来在项目中用C++实现了一个线性二次型调节器(LQR),看着导弹真的按照最优轨迹飞向目标,那种感觉——嗯,数学没白学。
2.4 本章知识体系
下面这张图总结了本章的核心逻辑,我建议你保存下来,后面学制导律推导时随时回来对照。
我的建议:学数学不是为了考试,是为了能用它描述物理世界。每次推导公式时,想想这个量在导弹-目标相对运动里代表什么。比如梯度方向就是最速下降方向,对应制导里“尽快减小脱靶量”的直觉。这样学,事半功倍。
好了,数学基础就复习到这里。下一章我们会正式进入最优控制理论的核心——Pontryagin极小值原理。到时候你会发现,今天讲的这些,全都会用上。
公众号:蓝海资料掘金营,微信deep3321