Phantoms, MiGs, and Kinematics: 
The Math of Dogfighting

Erick Espinosa-Juárez, Linköping University

#WolframTechConference

About the presenter

Erick Espinosa-Juárez

Ph.D. Candidate in Aircraft Conceptual Design

Pilot Permit - Ottawa Aviation Services 🇨🇦

BEng. Mech - Universidad Panamericana 🇲🇽

MSc. Aero- Linköping University 🇸🇪

Intern - Wolfram MathCore

A historical note...

Dan Pedresen, the founder of TOPGUN, tells a story...

1969 Tyndall Air Force Base, Florida

In the height of the Vietnam air conflict, seasoned Air Force and Navy pilots gather together...

Image from: Tomlinson, F. J. & Mould, K. T. (1951) Frank Jeannin Tomlinson Collection. [Personal Narrative] Retrieved from the Library of Congress, https://www.loc.gov/item/afc2001001.38164/.

The Air Force presents their view

The Energy-Maneuverability Theory, proposed in 1966 by Major John Boyd (fighter pilot) and Thomas P. Christie (mathematician)

Image from: http://www.aviation-history.com/airmen/boyd.htm

The TOPGUN founders listens

Inter service rivalry was inevitable, the debate begins...

Image from: Archive photo of the Navy Fighter Weapons School (TOPGUN) founding instructors. (Photo: via Dan Pedersen/Hatchette Books)

Boyd makes an infamous remark

“No U.S. pilot should ever dogfight a soviet MiG because it was mathematically proven that the American F-4 Phantom jet was inferior.”

Image from: Archive photo of the USAF, Bucky Sheftall http://hsfeatures.com/features04/mig21pfbs_1.htm

TOPGUN pilots whispered to each other

Jerry “Ski” Sawatzky poked Mel “Rattler” Holmes on the ribs:

Why don' t you say something Rattler?

...what did he say?

Image from: U.S. Navy archive

The Energy-Maneuverability (E-M) Theorem

Mathematical description of an aircraft in terms of its energy state

(Subscript[E, T])=(Subscript[E, K])+(Subscript[E, H])
“Speed + Altitude = Performance”

U.S. Navy National Museum of Naval Aviation photo No. 1996.488.102.002

Airplane models

The American McDonell Douglass F-4 Phantom II

Information obtained online or approximated

F4PhantomDataSI= <|
  "Name"->"F4 Phantom",
  "Thrust" -> Quantity[158534*1.25, "Newtons"], 
  "MTOM" -> Quantity[19417, "Kilograms"], 
  "Length" -> Quantity[19.2, "Meters"], 
  "Wingspan" -> Quantity[11.7, "Meters"], 
  "Height" -> Quantity[5.0, "Meters"], 
  "Sref" -> Quantity[49.2, "Meters"^2], 
  "CD0" -> 0.0224, 
  "kdw"->1.046, 
  "kdwm"->0.256, 
  "dragIncrease"->0.67, 
  "Mcrit"->0.7,
  "e" -> 0.75, 
  "CLmax"->1.2, 
  "CLalpha"->2*Pi*0.8, 
  "CriticalMach"->0.7, 
  "AR"->2.77, 
  "nMax"->7, 
  "Vne"->787, 
  "StallSpeed"->Quantity[124, "Knots"],  
  "Area" -> Quantity[1.10, "Meters"^2], 
  "AspectRatio" -> 2.77, 
  "WingLoading" -> Quantity[383, "Kilograms"/"Meters"^2], 
  "FuelCapacity" -> Quantity[7549, "Liters"] 
|>;

Forces on an aircraft

On an aircraft flying straight-and-level unaccelerated flight, forces are in equilibrium

Lift -> Wings                                    Drag -> Resistance from air

Weight -> Earth’s gravity           Thrust -> Engine

Turning flight

Agility: ability to make rapid, controlled changes in airplane motion

Maneuverability: ability to make rapid changes

Controllability: ability to precisely guide the airplane through such changes

U.S. Navy National Museum of Naval Aviation photo No. 1996.488.102.002

Forces in a turn

The lift vector (L) tilts and gets decomposed into:

(Subscript[L, v])=  L cos(ϕ) -> Vertical component

(Subscript[F, centripetal])= L sin (ϕ) -> Turns the airplane

Manipulate[Module[{
   φ = bank*Degree,     (* bank angle in radians *)
   W = 1.0,                       (* weight = 1 (arbitrary units) *)
   Ltot,                          (* total lift (to keep altitude) *)
   Lv, Lh, n                      (* components and load factor *)},
  (* Increase load factor to keep altitude: Lv = W => L = W / cos(phi) *)
  Ltot = W/Cos[φ];
  Lv   = Ltot*Cos[φ];
  Lh   = Ltot*Sin[φ];
  n    = Ltot/W;                  (* load factor = L / W = sec(phi) *)
  Graphics[{(* Reference point (center of gravity) *)
    {Black, PointSize[0.06], Point[{0, 0}]},
        (* === Forces === *)
    (* Weight (down) *)
    {Brown, Thick, Arrow[{{0, 0}, {0, -W}}],
     Text[Style["Weight", 14, Black], {0, -W - 0.2}]},
    (* Total Lift (tilted by bank) *)
    {Green, Thick, Arrow[{{0, 0}, RotationTransform[φ][{0, Ltot}]}],
     Text[Style["Lift", 14,Green], RotationTransform[φ][{0.12, Ltot + 0.15}]]},
    (* Load factor force (felt opposite to lift) *)
    {RGBColor[0.4, 0.1, 0.6], Thick, 
     Arrow[{{0, 0}, RotationTransform[φ][{0, -n}]}],
     Text[If[bank==0,"",Style["Load Factor (g's)", 12, RGBColor[0.4, 0.1, 0.6]]],
      RotationTransform[φ][{0.15, -n - 0.15}]]},
    (* Lift components *)
    {Directive[Green, Dashed, Thick],
     Arrow[{{0, 0}, {0, Lv}}],      (* vertical *)
     Arrow[{{0, 0}, {Lh, 0}}]       (* horizontal *)},
    Text[If[bank==0,"",Style["L cos(ϕ)", 12, Green]], {-0.25, Lv + 0.12}],
    Text[Style["", 12, Blue], {Lh + 0.2, 0.12}],
    (* Turning forces: Centripetal / Centrifugal *)
    {Orange, Thick, Arrow[{{0, 0}, {Lh, 0}}],
     Text[If[bank==0,"",Style["Centrifugal", 12, Orange]], 
     {Lh + 0.25, -0.15}]},   
    (* === Aircraft reference === *)
    {Black, Thick, 
     Line[RotationTransform[φ][{{-0.6, 0}, {0.6, 0}}]],         (* wings *)
     Line[RotationTransform[φ][{{0, 0}, {0, 0.4}}]]             (* vertical stabilizer *) },
    {Red, Thick, Arrow[{{0, 0}, {-Lh, 0}}],
     Text[If[bank==0,"",Style["Centripetal", 12, Red]],
      {-Lh - 0.4, -0.15}]},
    (* Info box *)
    Inset[Framed[Grid[{{"Bank ϕ: ", 
    NumberForm[bank, {3, 1}], "[deg]"},
    {"Load factor 𝑛: ", NumberForm[n, {3, 2}], "[g's]"}
      }, Alignment -> {{Left, Right, Left}}],Background -> White, FrameStyle -> LightGray, RoundingRadius -> 6],
     Scaled[{0.82, 0.8}]]},PlotRange -> {{-2, 2}, {-2, 2}}, Background->LightBlue,Axes -> False,ImageSize -> Automatic]],
 {{bank, 0, "Bank angle ϕ [deg]"}, -60, 60, 0},   (* bank both directions *)
 TrackedSymbols :> True, ControlPlacement -> Bottom]

Most important turn factors

Turn rate: angular speed [deg/s]

Turn radius: how tight [ft]

Turn rate ω

Angular speed at which an aircraft changes its heading

ω =  ((g (Sqrt[((𝑛)^2)-1]))/V)((180/π))

Begin plotting ω vs. airspeed at constant 𝑛

Turn radius 𝑅

Horizontal distance from the aircraft’s flight path to the center of the circular turn

𝑅=((𝑉)/(𝜔))     →    𝜔=((𝑉)/(𝑅))

Added the  lines of constant radii, aircraft and altitude independent

Airplane limits

Aerodynamic: Wing cannot produce infinite lift

Structural: Airframe and pilot cannot withstand infinite g’s

Lift limit

When the wings cannot produce enough lift to balance a hard turn

(Subscript[ω, stall]) =  ((g )/V)(Sqrt[((((V/(Subscript[V, (Subscript[S, (1 g)])]))))^4)-1])  ×((180/π))

Structural limits

G-limit

Maximum load factor ((Subscript[𝑛, max])) occurs when the structure cannot hold the increased apparent weight

(Subscript[ω, 𝑛, max])= ((g (Sqrt[((Subscript[𝑛, max])^2)-1]))/V)((180/π))

Corner speed ((Subscript[V, A])): maximum instantaneous turn rate

Speed limit  (Subscript[V, NE])

The never exceed speed ((Subscript[V, NE])) is a structural maximum permissible airspeed

Vertical line at  (Subscript[V, NE])

Specific Excess Power ((Subscript[P, S]))

The energetic coin the airplane can trade for manoeuvering

(Subscript[P, S]) =(( (Subscript[P, ava])-(Subscript[P, req]))/W)=((((Subscript[T, ava])-(Subscript[D, tot]))V)/W)

(Subscript[P, S]) > 0 →  Excess energy to trade for climb or acceleration

(Subscript[P, S]) = 0 →  Maximum turn rate without loosing altitude

(Subscript[P, S]) < 0 → Losing energy altitude or speed needs to be sacrificed for turn

How bad is it?

Comparison to published data

Some lines of code vs. a multi-million dollar flight campaign

Back to John Boyd’s Remark

Comparison of a soviet MiG 21 and an american F-4 Phantom

Maximum instantaneous turn rate

Defined by the corner speed ((Subscript[V, A])) : MiG 21 advantage

Maximum sustained turn rate

Turn rate without loosing altitude or speed: MiG 21 advantage

Point where the Ps=0 crosses the lift limit

Maximum Velocity

F-4 Phantom advantage

Types of fighters

F-4 Phantom is an Energy Fighter: fast, zooming, climbing, “hit and run”
MiG-21 is an Angles Fighter: slow, tail chasing, manoeuvering

Tactics are to take the opponent to a flight regime where you are in advantage

In reality it is a combination of both styles

Changes in altitude

Altitude adds another dimension to be considered

What did the TOPGUN pilot say to Boyd?

Sir, I just don’t think you can know anything about another pilot before the first turn. And if you don’t know that, you cannot say that a MiG will win every time.

Image from: U.S. Navy archive

Airplanes can be parametrized, but people cannot

E-M is not wrong, but it has little to say about pilots and tactics

The pilot is a part of the equation

Cannot be quantified or modelled to its full

Image from: Jeppe Gustafsson / TT / svd.se

References

Pedersen, D. (2022). TOPGUN: The Real Story. Penguin Books Ltd. 
Boyd, J. R. (1964). Aerial attack study (rev. Jan. 4, 2016 ed.). Nellis Air Force Base; reproduced by Code 7700. https://code7700.com/pdfs/john_boyd/aerial-attack-study-1964_john_boyd.pdf
International Civil Aviation Organization. (1993). Manual of the ICAO standard atmosphere: Extended to 80 kilometres (262,500 feet) (3rd ed.). ICAO. Retrieved September 30, https://news.ncac.mn/uploads/bookSubject/2022-11/6369ec174ab34.pdf 
Krus, Petter & Abdallah, Alvaro. (2019). Modelling of Transonic and Supersonic Aerodynamics for Conceptual Design and Flight Simulation. 30-34. 10.3384/ecp19162003.  https://www.researchgate.net/publication/336790872_Modelling_of_Transonic_and_Supersonic_Aerodynamics_for_Conceptual_Design_and_Flight_Simulation
Ruijgrok, G. J. J. (2009). Elements of airplane performance (2nd ed.). VSSD. https://resolver.tudelft.nl/uuid:9ff3c7e0-e221-4d8f-bf9e-e144d3cacdc1
The Air Combat Tutorial Library (2020, July 27) Energy Maneuverability #1 - Spitfire MkIX vs Bf 109 K-4. YouTube. https://www.youtube.com/watch?v=Sn4CfaOJGk8

Step by step guide available

Contact me at erick.espinosa.juarez@liu.se

AI usage

During the preparation of this work the author used ChatGPT 5 in order to generate and modify Wolfram Language Code. After using this tool/service, the author reviewed and edited the content as needed and takes full responsibility for the content of the presentation.