第四章:纯比例导引法(PPN)——最经典的制导律之一

各位同学,今天我们来聊聊纯比例导引法。说实话,PPN 是我在工程中接触最多的制导律之一。为什么?因为它简单、可靠,而且物理意义非常清晰。我在做某型空地导弹的制导律设计时,最初就是用 PPN 作为基准方案,后来才逐步加入其他修正。

PPN 的全称是 Pure Proportional Navigation,翻译过来就是「纯比例导引」。它和理想比例导引(IPN)的区别,说白了就是:PPN 只控制导弹的航向角速率,而 IPN 还考虑了目标加速度的补偿。嗯,这个区别很关键,我们后面会详细讲。

4.1 PPN 的数学模型

先看模型。PPN 的核心假设是:导弹的航向角速率与视线角速率成正比。公式很简单:

a_m = N * V_c * λ_dot

其中:

  • a_m:导弹的法向过载(制导指令)
  • N:导航比,通常取 3~5
  • V_c:接近速度(导弹与目标在视线方向上的相对速度)
  • λ_dot:视线角速率

你想想看,这个公式的物理意义是什么?就是「视线转得越快,导弹就转得越猛」。我在项目中遇到过一个问题:如果 N 选得太小(比如 N=2),导弹会追不上目标;选得太大(比如 N=6),导弹会过度响应,导致过载饱和。所以 N 的选取是个经验活。

4.2 制导指令的生成

生成制导指令,其实就三步:

  1. 测量视线角速率 λ_dot:通常由导引头或雷达提供
  2. 计算接近速度 V_c:由导弹和目标的速度矢量投影得到
  3. 乘以导航比 N:得到法向过载指令

下面是我写的一个 Python 仿真函数,用于生成 PPN 制导指令:

def ppn_guidance(missile_pos, target_pos, missile_vel, target_vel, N=4):
    """
    纯比例导引法制导指令生成
    输入:
        missile_pos, target_pos: 位置向量 (x, y)
        missile_vel, target_vel: 速度向量 (vx, vy)
        N: 导航比,默认 4
    输出:
        a_m: 法向过载指令 (标量)
    """
    # 计算视线向量
    los = target_pos - missile_pos
    R = np.linalg.norm(los)  # 相对距离
    
    # 计算视线角速率
    los_unit = los / R
    V_rel = target_vel - missile_vel
    # 视线角速率的近似计算
    lambda_dot = np.cross(los_unit, V_rel) / R
    
    # 计算接近速度
    V_c = -np.dot(los_unit, V_rel)
    
    # 生成制导指令
    a_m = N * V_c * lambda_dot
    
    return a_m

这段代码我用了很多次。注意看,我用了 np.cross 来计算视线角速率,这是二维情况下的简化写法。三维情况要复杂一些,但思路是一样的。

小技巧: 在实际工程中,λ_dot 通常会有噪声。我建议加一个低通滤波器,比如一阶惯性环节,时间常数取 0.05~0.1 秒。否则指令会抖得厉害。

4.3 PPN 与 IPN 的区别

好,重点来了。PPN 和 IPN 到底有什么区别?我用一个表格来说明:

对比项 PPN(纯比例导引) IPN(理想比例导引)
控制对象 航向角速率 视线角速率
目标加速度补偿 有(理论上完全补偿)
脱靶量 非零(目标机动时) 理论上为零
工程实现难度 高(需要精确估计目标加速度)
适用场景 低速、弱机动目标 高速、强机动目标

为什么会这样?我解释一下。PPN 只关心「视线怎么转」,它不管目标是不是在加速。而 IPN 会去估计目标的加速度,然后补偿掉。听起来 IPN 更好,对吧?但问题是,目标加速度很难精确估计。我曾经在一个项目中尝试用 IPN,结果因为加速度估计误差太大,制导指令反而比 PPN 还差。嗯,有时候「简单」反而是优势。

注意: PPN 对目标机动很敏感。如果目标做 5g 以上的机动,PPN 的脱靶量会显著增大。这时候要么提高导航比 N,要么切换到其他制导律。

4.4 知识体系图

下面我用一张 SVG 图来展示 PPN 的核心逻辑和与 IPN 的关系:

纯比例导引法(PPN)知识体系 PPN 核心 输入:λ_dot, V_c (视线角速率、接近速度) 输出:a_m (法向过载指令) 关键参数:导航比 N 典型值:3~5 N 越大,响应越快,但易饱和 与 IPN 的区别 PPN:控制航向角速率 IPN:控制视线角速率 + 补偿 工程注意事项 λ_dot 需滤波 目标机动时需调整 N 总结:PPN 简单可靠,适合弱机动目标 目标强机动时,考虑 IPN 或其他改进型

4.5 避坑指南

最后,分享几个我踩过的坑:

  • 导航比 N 的选取:我曾经在一个项目中用了 N=3,结果目标做 3g 机动时脱靶量达到了 5 米。后来改成 N=4.5,脱靶量降到了 1 米以内。但 N 不能太大,否则指令会振荡。
  • 接近速度 V_c 的计算:注意 V_c 是标量,不是矢量。我见过有人直接用相对速度的模,这是错的。V_c 必须是视线方向上的投影。
  • 仿真步长:PPN 对仿真步长比较敏感。我建议步长取 0.001~0.01 秒,否则数值积分会发散。
核心要点: PPN 是所有比例导引法的基础。你把它搞懂了,后面学 APN、IPN、RTPN 都会轻松很多。记住:先理解物理意义,再写代码,最后调参数。

好了,这一章就到这里。PPN 虽然简单,但它是制导律的基石。下一章我们会讲增广比例导引法(APN),看看怎么在 PPN 的基础上加入目标加速度补偿。嗯,到时候你会看到,APN 其实就是 PPN 加了一个「修正项」。

专注资料整理