副标题:当我们把导弹制导回路看成一台"时序反馈网络",比例导引律究竟在学什么?
解读来源:N.A. 施耐德《导弹导引和追踪——运动学、动力学和控制》第 5 章
开场:我们先看看黑盒外面发生了什么
想象你手里有一枚导弹,它要追踪一架匀速飞行的目标。你没有给它一张三维地图,也没有让它解算复杂的轨道优化,你只给了它一条极其简单的规则:
“你的航向转动速率,要正比于目标视线转动的速率。”
就这么一句话,构成了现代制导理论的基石——比例导引法(Proportional Navigation, PN)。美国海军在 1945 年就已经在使用这个名称,而它的数学本质直到今天仍在所有主流空空、面空导弹中运行。
听起来太简单了对吧?一个比例系数 N,乘上一个视线角速率 λ̇,就得到了导弹的转向指令。别急,当我们像拆解神经网络一样层层剥开这个"比例"关系,你会发现里面藏着一整座微分方程的迷宫,还有**真比例(TPN)与纯比例(PPN)**两条截然不同的几何路径。我们今天就用读论文的方式,把这本经典教材的第 5 章拆成一张认知地图。
第一步:宏观视角——制导回路长什么样?
在继续之前,我们先解决第一个认知疑点:比例导引法在整枚导弹里到底坐在哪个位置?
如果画成图会是什么样子?想象一个标准的反馈控制回路——目标在动,导弹也在动,两者之间有一根虚拟的"视线"(Line of Sight, LOS)连接。导引头测量这根视线的转动快慢,制导计算机把这个转动速率乘以一个增益 N,输出给舵机,舵机让导弹转弯,转弯后又改变了视线的几何关系……循环往复,直到碰撞。
这张图就是教材中的图 5.1 和图 5.2 的抽象。注意这个结构和全连接层 y = σ(Wx + b) 的相似性:
- 输入 x:视线角速率 λ̇(目标相对于导弹的"运动特征")
- 权重 W:导引系数 N(一个需要精心设计的超参数,像学习率)
- 输出 y:导弹的航向速率指令 γ̇_Mc(或直接是横向加速度 a_Mc)
- 反馈回路:导弹的运动反过来改变 λ̇,形成闭环
所以 PN 本质上不是一个"开环预测模型",而是一个带反馈的动态控制系统。这和 RNN 处理时序信号的方式异曲同工:每一步的隐藏状态(这里对应导弹的航向)都由当前输入(视线转动)和上一时刻状态共同决定。
第二步:中观视角——"比例"二字到底比例了什么?
现在我们已经了解了制导回路的全貌。接下来要解决的认知疑点是:为什么叫"比例"导引?这个比例关系到底建立在谁和谁之间?
教材在 5.1 节给出了平面情况下的核心公式:
γ̇<sub>Mc</sub> = N λ̇ (5.1)
a<sub>Mc</sub> = k λ̇ (5.2)
k = N v<sub>M</sub> (由 a<sub>M</sub> = v<sub>M</sub> γ̇<sub>M</sub> 导出)
用大白话说:导弹的航向角转动速率 γ̇_M,与目标视线角转动速率 λ̇,两者之间保持一个固定比例 N。N 就是"导引系数",通常取 3~5。
但这里有个直觉陷阱。你可能会想:“如果目标视线转得快,导弹就转得快,这不就是追着目标屁股跑吗?” 没错,当 N = 1 时,它确实退化成了纯追踪法(Pure Pursuit)——导弹始终对准目标的瞬时位置,轨迹会非常弯曲,末端需要极大的过载。
那如果 N 很大呢?教材 5.3.1 节说,当 N → ∞ 时,制导回路中的 λ̇ 被强制压到接近零,导弹几乎直线飞向一个碰撞点,这就是平行导引(Parallel Navigation)。此时视线几乎不转动,就像两条平行线最终相交于无穷远——当然实际上是在碰撞点交汇。
如果画成图会是什么样子?想象导弹的轨迹是一根橡皮筋,N 就是橡皮筋的硬度:
教材图 5.3 给出了静止目标情况下不同 N 值的轨迹。注意那个特殊的 N = 2:此时式 (5.7) 描述的是一个圆,而且式 (5.8) 的横向加速度 a_M 恰好是一个与距离无关的常数。这就像深度学习里某个损失函数的"拐点"——在这个超参数下,系统的动力学特性发生了质变。
第三步:微观视角——平面运动学的向量级计算
现在我们已经了解了 N 的物理意义。接下来要解决的认知疑点是:如果导弹和目标都在一个平面上,这些"转动速率"到底怎么从位置向量算出来?
别急,我们先看一个 toy example。假设目标静止不动,导弹以恒定速度 v_M 飞向它。教材 5.3.2 节给出了平面运动学方程组 (5.6):
ṙ = -v<sub>M</sub> cos δ
r λ̇ = -v<sub>M</sub> sin δ
γ̇<sub>M</sub> = λ̇ + δ̇
这里 r 是弹目距离,δ 是导弹速度矢量与视线的夹角(称为"前置角"),γ_M 是导弹的航向角。这三个方程就像 RNN 的状态转移方程:
- 第一个方程说:距离在缩短,缩短的速度取决于导弹速度在视线方向的分量。
- 第二个方程说:视线在转动,转动的快慢取决于导弹速度在视线垂直方向的分量(再除以距离 r)。
- 第三个方程是几何关系:导弹航向的变化 = 视线转动 + 前置角变化。
现在把 PN 的导引律 γ̇_M = N λ̇ 代入第三个方程,立刻得到:
δ̇ = (N - 1) λ̇
这是一个极其简洁的结果:前置角 δ 的变化率与视线转动率成正比,比例系数是 (N-1)。当 N = 1 时,δ̇ = 0,前置角不变——这就是纯追踪。当 N > 1 时,导弹在转弯的同时不断"提前量"在增大。
教材进一步给出了静止目标下的闭式解 (5.7) 和 (5.8):
r/r<sub>0</sub> = [ sin(δ<sub>0</sub> + (N-1)λ) / sin δ<sub>0</sub> ]<sup>1/(N-1)</sup>
a<sub>M</sub> = [N v<sub>M</sub>² sin δ<sub>0</sub> / r<sub>0</sub>] (r/r<sub>0</sub>)<sup>N-2</sup>
注意式 (5.8) 中那个 (r/r₀)^(N-2)。当导弹接近目标(r → 0)时:
- 如果 N > 2,a_M → 0(越来越轻松)
- 如果 N < 2,a_M → ∞(需要无限大的过载,物理上不可能)
- 如果 N = 2,a_M = 2v_M²/r₀ sin δ₀ = 常数(完美!)
这就是教材强调的:N = 2 是一个动力学临界点。在这个点上,导弹不需要在末端疯狂拉过载,就像训练神经网络时找到了一个刚好收敛的学习率。
第四步:中观视角——TPN 与 PPN 的分岔
现在我们已经了解了平面 PN 的标量形式。接下来要解决的认知疑点是:为什么教材突然冒出两个版本——真比例导引(TPN)和纯比例导引(PPN)?它们到底在争什么?
这是整章最精彩的分岔路口。我们先看定义:
纯比例导引(PPN)——式 (5.3):
a<sub>Mc</sub> = N w × v<sub>M</sub>
加速度垂直于导弹自身的速度矢量 v_M。w 是视线角速度向量。这就像 RNN 里的"自回归门":导弹根据自己的运动状态来决定转向。
真比例导引(TPN)——式 (5.4) / (5.13):
a<sub>Mc</sub> = k w × l<sub>r</sub> (三维推广后为式 5.38: a<sub>Mc</sub> = -(k/r) v<sub>C⊥</sub>)
加速度垂直于视线方向 r(l_r 是视线单位向量)。这就像"注意力机制":导弹始终关注视线方向的法平面,根据目标偏离视线的快慢来施加加速度。
如果画成图会是什么样子?教材图 5.5 给出了几何关系:
在平面情况下,TPN 的 Γ = 0,PPN 的 Γ = δ(因为 PPN 的加速度沿 v_M 法线,而 v_M 与 r 的夹角是 δ)。教材式 (5.24) 给出了统一的有效导引常数:
N' ≜ k cos Γ / v<sub>C</sub> = N v<sub>M</sub> cos Γ / v<sub>C</sub>
对 TPN,Γ = 0,所以 N’ = N v_M / v_C。对 PPN,Γ = δ,所以 N’ = N v_M cos δ / v_C。
关键洞察来了:PPN 的有效增益会随着前置角 δ 变化而衰减(乘以 cos δ)。当导弹航向接近视线方向时(δ → 0),PPN 和 TPN 几乎一样;但当 δ 很大时,PPN 的实际"控制力"会打折。这就像神经网络里的梯度消失——信号经过一层非对齐的变换后衰减了。
教材 5.5.3 节比较了两者:
- TPN 分析起来更简洁,有漂亮的闭式解(像 ReLU 的简洁求导)。
- PPN 的攻击区更大,对初始条件不敏感(鲁棒性更好,像 Dropout)。
- TPN 的控制需求(速度增量积分)更高,尤其在 N 较小时。
第五步:微观视角——三维空间的向量级实现
现在我们已经了解了 TPN 和 PPN 的几何分岔。接下来要解决的认知疑点是:如果把战场从二维平面扩展到三维空间,这些标量公式怎么变成向量运算?
这是从 toy example 到真实规模的跳跃。教材 5.6 节给出了三维向量形式的 PN 家族。
第一步,定义视线角速度向量 w(式 5.36):
w = (r × ṙ) / r² = [r × (v<sub>T</sub> - v<sub>M</sub>)] / r² = [r × (-v<sub>C</sub>)] / r²
这里 r 是弹目相对位置向量,v_C = v_M - v_T 是接近速度向量。这个 w 描述了视线在三维空间中绕轴转动的快慢和方向。如果你熟悉刚体转动,这就是瞬时转动轴的概念。
第二步,把接近速度分解:
v<sub>C</sub> = v<sub>C∥</sub> + v<sub>C⊥</sub>
其中 v_C∥ 平行于视线(负责靠近或远离),v_C⊥ 垂直于视线(负责视线转动)。这就像是把全连接层的输出分解成"有用分量"和"干扰分量"。
第三步,TPN 的三维形式(式 5.38):
a<sub>Mc,TPN</sub> = -(k / r) v<sub>C⊥</sub>
太漂亮了!TPN 的加速度指令只与垂直于视线的接近速度分量成正比,方向恰好是消除这个分量的方向。这就像注意力机制里的"残差修正":看到目标偏离视线的速度有多大,就产生一个反向的加速度把它拉回来。
第四步,PPN 的三维形式(式 5.34):
a<sub>Mc,PPN</sub> = N (w × v<sub>M</sub>)
PPN 的加速度垂直于导弹速度 v_M,大小与视线转动率 ||w|| 和速度 ||v_M|| 的乘积成正比。教材证明了一个重要性质:PPN 的加速度向量始终与 r 和 v_C 共面,这个平面被称为交会平面。也就是说,一旦进入 PPN 制导,导弹虽然可以在三维空间飞行,但它的机动始终被限制在一个由初始几何决定的平面内——就像一层二维流形嵌入在三维空间中。
如果画成图会是什么样子?
教材图 5.10 和图 5.11 给出了具体算例。图 5.11 展示了 PPN 在三维空间中的轨迹:导弹先爬升再俯冲,最终命中目标,而整个轨迹的投影始终被约束在交会平面内。
第六步:中观视角——近似法与精确法的动力学
现在我们已经了解了三维向量实现。接下来要解决的认知疑点是:教材为什么要分"近似法"(5.4 节)和"精确法"(5.5 节)?近似到底近在哪里?
这类似于机器学习里的局部线性化。教材在 5.4 节引入了一个关键假设:NCC(Near Collision Course,接近碰撞路线)。它假设导弹已经接近一条理想的碰撞直线,视线角 λ 很小,且接近速度 v_C 近似平行于视线。
在这个假设下,横向位移 y = r λ ≈ v_C τ λ,其中 τ = t_f - t 是剩余时间(time-to-go)。这就像 RNN 中的时间步长——我们知道序列还剩多少步,就可以调整当前的学习强度。
教材推导出了真比例导引的微分方程 (5.14):
r ω̇ + 2 ω ṙ + k ω = 0
其中 ω = λ̇ 是视线角速率。引入剩余时间 τ 后,方程变为 (5.15):
v<sub>C</sub> τ dω/dτ + (2v<sub>C</sub> - k) ω = 0
这个一阶线性 ODE 的解非常优雅(式 5.16):
ω(τ) = ω<sub>0</sub> (τ / t<sub>f</sub>)<sup>N'-2</sup>
其中 N’ = k / v_C 被称为"有效导引常数"。注意这个幂律形式——它像极了优化算法里的学习率衰减策略!当 τ → 0(即将碰撞)时:
- 若 N’ > 2,ω → 0(视线停止转动,完美收敛)
- 若 N’ < 2,ω → ∞(发散,导弹失控)
- 若 N’ = 2,ω = ω₀ = 常数(临界状态)
教材反复强调:N’ > 2 是比例导引收敛的充要条件。这就像训练神经网络时,学习率必须大于某个下界才能收敛(虽然类比方向相反,但"存在临界超参数"的直觉是一样的)。
更进一步,教材式 (5.20) 给出了基于零控脱靶量(Zero Effort Miss, ZEM) 的另一种表达:
m(t, τ) = y(t) + ẏ(t) τ
a<sub>Mc</sub>(t) = N' m(t, τ) / τ²
这里的 m(t, τ) 表示:如果现在突然关闭发动机,导弹按惯性飞行 τ 时间后会偏离目标多远。制导指令正比于这个预期脱靶量,反比于剩余时间的平方。这就像模型预测控制(MPC):预测未来的误差,提前施加修正。
第七步:微观视角——结构化伪代码与 PN 家族谱系
现在我们已经了解了动力学求解的脉络。接下来要解决的认知疑点是:如果让我写一段代码来实现 PN 制导,核心逻辑应该怎么组织?TPN 和 PPN 的代码差异究竟在哪一行?
别急,我们先看一个通用的结构化伪代码。下面这段代码把教材 5.1~5.6 节的核心公式封装成了一个统一的制导核:
Algorithm: Unified Proportional Navigation Guidance Core
Input: 导弹状态 {r_vec, v_M_vec, γ_M},
目标状态 {r_T_vec, v_T_vec},
导引系数 N,
模式 mode ∈ {TPN, PPN, IPN}
最大加速度 a_max
Output: 三维加速度指令 a_Mc_vec
// 第一步:计算相对几何
r_vec ← r_T_vec - r_M_vec
r_norm ← ||r_vec||
l_r ← r_vec / r_norm // 视线单位向量
v_C_vec ← v_M_vec - v_T_vec // 接近速度向量
v_C_norm ← ||v_C_vec||
// 第二步:计算视线角速度向量 w(式 5.36)
w_vec ← (r_vec × v_C_vec) / r_norm² // 三维角速度向量
// 第三步:根据模式分支选择导引律
if mode == TPN then
// 真比例导引:加速度垂直于视线(式 5.38)
v_C_parallel ← (v_C_vec · l_r) l_r // 平行于视线的分量
v_C_perp ← v_C_vec - v_C_parallel // 垂直于视线的分量
k ← N * v_M_norm // 增益常数
a_Mc_vec ← -(k / r_norm) * v_C_perp
else if mode == PPN then
// 纯比例导引:加速度垂直于导弹速度(式 5.34)
a_Mc_vec ← N * (w_vec × v_M_vec)
else if mode == IPN then
// 理想比例导引:加速度垂直于接近速度(式 5.41)
a_Mc_vec ← N * (w_vec × v_C_vec)
// 等价形式:-(N/r_norm²) (r_vec × ṙ_vec) × ṙ_vec
end
// 第四步:动力学饱和(现实约束)
a_norm ← ||a_Mc_vec||
if a_norm > a_max then
a_Mc_vec ← a_max * (a_Mc_vec / a_norm)
end
// 第五步:计算有效导引常数(用于稳定性监控)
if mode == TPN then
N_prime ← k / v_C_norm
else if mode == PPN then
// 式 5.24:N' = N v_M cos Γ / v_C,平面下 Γ = δ
cos_Gamma ← cos( arccos( (v_M_vec · l_r) / v_M_norm ) )
N_prime ← N * v_M_norm * cos_Gamma / v_C_norm
end
if N_prime <= 2 then
TriggerWarning("有效导引常数 N' ≤ 2,系统可能发散")
end
return a_Mc_vec, N_prime
注意代码中三个模式的分支:
- TPN 只提取
v_C_perp,像注意力机制里的"Query-Key 对齐"。 - PPN 用
w × v_M,像自回归网络里的"历史状态依赖"。 - IPN(理想比例导引) 用
w × v_C,教材 5.7.1 节指出它实际上是 GPN(广义比例导引)的近似最优解,攻击区最大,拦截最快,但能耗也更高——这就像模型里的"高精度模式",效果好但算力贵。
教材 5.7.2 节的预估导引律(Predictive Guidance)则像前馈网络:它持续预测一条直线碰撞路线 CC,然后计算当前航向与 CC 的偏差 Δδ,产生指令 a_Mc = K_R Δδ。当预测增益 K → ∞ 时,它退化为标准 TPN。
而 5.7.3 节的苏恩导引律(Schoen) 则像自适应优化器:第一种形式是"加权 PN",引入了随时间指数衰减的增益(式 5.52);第二种形式甚至把 λ̇ 的指数改成了 1/2(式 5.53),就像 Adam 优化器里对梯度做平方根缩放。
如果画成 PN 家族的谱系图会是什么样子?
第八步:闭环——这在实际制导中意味着什么?
好了,我们已经从制导回路的外观一路拆到了三维向量运算、微分方程稳定性、以及 PN 家族的谱系。在继续之前,让我们停下来回答一个工程师最关心的问题:这些公式在导弹的实战设计里意味着什么?
8.1 导引系数 N 的工程选择
教材反复出现的核心约束是 N’ > 2。在实际系统中,N 通常取 3~5。为什么不是越大越好?
- N 越大,弹道越直(越接近平行导引),但初始段需要极大的横向加速度(像大学习率导致梯度爆炸)。
- N 越小,弹道越弯,但末端可能追不上目标(像学习率太小收敛慢)。
- 教材式 (5.25) 的注指出:当 N’ = 3 时,由积分 ∫ a_M² dτ 定义的控制需求达到最小值。这就是工程上的" sweet spot "——能量最优。
8.2 对抗机动目标需要多少过载?
这是实战中最硬的指标。教材式 (5.28) 给出了拦截机动目标时的加速度比:
(a<sub>M</sub> / a<sub>T</sub>)<sub>f</sub> = N' / (N' - 2)
当 N’ = 3 时,导弹需要的末端横向过载是目标的 3 倍。当 N’ = 4 时,是 2 倍。这就是为什么现代空空导弹要有 30g~50g 的过载能力——不是因为它想飞得猛,而是比例导引的数学本质要求它必须比目标机动得更快。
8.3 TPN vs PPN 的实战取舍
- TPN 适合分析、仿真和理论设计,因为它的微分方程有闭式解,像深度学习里"可解释的线性模型"。
- PPN 更适合工程实现,因为它对初始误差不敏感,鲁棒性好,像"带 Dropout 的深层网络",虽然理论分析麻烦,但实战中更耐造。
- 在三维空间中,PPN 天然约束在交会平面内,而 TPN 需要额外的坐标分解。因此很多现代导弹的导引头在工程实现上更接近 PPN 的变种。
8.4 从教材到代码的最后一步
如果你今天想动手验证,建议按这个路径:
- 先用 N = 2, 静止目标 的 toy example 复现图 5.3 的圆轨迹(验证你的运动学积分器是否正确)。
- 再切换到 N = 3, 非机动目标,复现图 5.7 的 TT 坐标系轨迹。
- 最后加入 三维非平面初始条件(教材 5.6.2 节的 χ = 40° 算例),对比 PPN 和 TPN 的轨迹差异。
尾声:我们现在站在哪里?
让我们回到开头那个"比例"的直觉。现在你已经知道:
- 宏观上,PN 是一个反馈控制回路,导引系数 N 就像全连接层的权重或 RNN 的门控增益。
- 中观上,N = 1 是纯追踪,N = 2 是临界圆轨迹,N → ∞ 是平行导引;TPN 和 PPN 是两条不同的几何实现路径。
- 微观上,平面运动学方程 (5.6) 和三维向量公式 (5.34/5.38) 描述了从标量到矩阵的完整实现。
- 动力学上,N’ > 2 是收敛的硬性边界,N’ = 3 是能量最优的工程 sweet spot。
- 家族谱系上,从 TPN、PPN 到 IPN、预估导引律、Schoen 导引律,本质上都是在修改"比例"的对象和增益的调度策略。
如果画成一张完整的认知地图,它大概长这样:
409



被折叠的 条评论
为什么被折叠?



