Skip to content

A personal project exploring how to model, simulate, and predict missile trajectories

License

Notifications You must be signed in to change notification settings

cdoswald/missile-intercepts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Probabilistic Missile Intercept Model

The primary goals for this project are to:

  1. Develop a simplified missile intercept model and simulate the model in Google Earth

  2. Investigate methods for predicting a missile's trajectory under various levels of uncertainty about the missile's launchpoint, intended target, current position, velocity, etc.


KML Example 2

Getting Started

Setting Up the Virtual Environment

The environment.yml file contains all of the packages needed to run the code in this repository:

  1. Open an Anaconda Prompt
  2. Create a new virtual environment: conda env create -f environment.yml
  3. Activate the virtual environment: conda activate missile_env

Setting Model Parameters

All configuration parameters are set via the Config file.

Parameter descriptions, formats, and datatypes are specified in the Config file.

Config Example 1

Additional missile simulations can be created by adding new columns to the right of the existing simulations.

Running the Model

To run the missile intercept model:

  1. Set the Config file parameters
  2. Open Anaconda prompt and activate the missile_env virtual environment
  3. Run python main.py
  4. View the resulting KML files (in the kml folder) in Google Earth

Methodology

Ballistic Missile

  • User specifies the latitude and longitude of the missile launchpoint (LP) and aimpoint (AP) and the missile's constant horizontal velocity (km/s), which are used to calculate the great-circle distance to the target (km) and total time-to-target (sec)
  • The apogee of the ballistic trajectory is reached when the missile is halfway to the target (i.e., 0.5 * total time-to-target)
  • The time-to-apogee (sec) is multiplied by the absolute value of the gravitational acceleration (km/s^2) to determine the missile's initial vertical velocity (km/s)
  • Integrating the vertical velocity equation, the missile's altitude (km) at timestep t (sec) is calculated as alt_km(t) = initial_vertical_velocity * t + 0.5 * gravitational_acceleration * t^2

Terminal Interceptor

  • [IN PROGRESS]

Limitations

The plan is to add complexity to the model over time. Currently, the model does not take into account any of the following:

  • Aerodynamic drag
  • Propulsive thrust
  • Changes in missile mass (e.g., after burning fuel)
  • Rotation of the Earth

COLLADA Models

The 3D missile objects displayed in Google Earth are specified as COLLADA (.dae) files. The easiest way to create your own COLLADA file is through Blender.

The missile object created in Blender should be oriented such that the nose cone is parallel to and points in the direction of the positive z-axis (in a right-handed coordinate system), with the base of the missile sitting on the plane created by the x and y-axes (in other words, the missile should appear as though it were standing upright and centered on the launch pad).

Example orientation:

Blender Missile Orientation Example

Sources

About

A personal project exploring how to model, simulate, and predict missile trajectories

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published