Search Unity

Augmented Proportional Navigation

Discussion in 'Scripting' started by Desprez, Mar 18, 2016.

  1. Desprez

    Desprez

    Joined:
    Aug 31, 2012
    Posts:
    305
    I'm working out a Proportional Navigation implementation for missiles.

    What I have so far works pretty well, but there is an addition part to PN that's supposed to compensate for gravity as well as early course correction. That's Augmented Proportional Navigation. And I can't figure it out.

    Regular PN:
    Acceleration = N * LoS_Rate * V
    https://en.wikipedia.org/wiki/Proportional_navigation
    http://trajectorysolution.com/HomingGuidance.html

    Acceleration in this context I think is a directional vector, as you would see in a physics class.
    N = the Navigation Constant ( typically between 3 to 5 )
    LoS_Rate = the rate the line of sight to the target is crossing your view
    V = closing velocity

    APN:
    Acceleration = N * LoS_Rate * V + N * Nt / 2

    Nt is supposed to be the "Target acceleration amount normal to LOS" and I don't really know what that means.
    How is this different than LoS_Rate? It sounds an awful lot like the same thing, except it must be a magnitude since it's a float in the FLINT implementation, below.

    I looked at other implementations on-line. FLINT seems to be the most relevant.
    http://www.moddb.com/mods/wicmw/features/flint-lead-pursuit-guidance-principles
    http://download.wicmwmod.com/Fun_Mod/presentations/FLINT Jul 2012.pdf
    Now obviously, they have made it work, but there are a number of inconsistencies and I'm having trouble making heads or tails of it.
    Consider the additional term used for APN. They have listed it 3(!) different ways:

    In description and code comments: + (N * Nt ) / 2
    In code: + LOS_Delta * Nt * ( 0.5 * N )
    In .pdf: + ( NC / 2 ) * At

    So I'm at a loss for implementing this.
    I've tried numerous implementations of what the terms might mean.
    Sometimes the missile ends up with no visible change, sometimes it ends up in pure-pursuit, sometimes spirals out of control, or goes in an odd direction.

    It would help greatly to know what APN is SUPPOSED to be doing, because then I could code it. But I can't find any real descriptions, nor working C# code relevant to Unity.

    Any advice?