Missile Guidance
A Max Westerman Project | Iron Dome Intercepting Rockets
What does it do?
This program simulates the interception of a moving target by a missile, taking into account variables such as starting position and velocity, interception speed, and ground collision. It generates 3D coordinates of the two objects and plots them in 3D to generate a visual representation of the interception path and providing data on the proximity of the missile to the target at each time step.
You can also change the smoothness of the target and interceptor lines, the randomness of the target's movement, the blast radius of the missile, and much more. This program currently doesn't incorporate physics as that would require pretty secretive information on the turning radius, acceleration, etc. of the missile and of the target.
Straight Shot Intercept
This scenario had a relatively straight-moving target and thus the interceptor was able to calculate the shortest possible path and intercept it relatively quickly.
Uncooperative Target Intercept
When you increase the level of randomness for the target, the interceptor can miss the target and has to loop around to intercept the target again. With high levels of randomness huge dances will be plotted out in the sky.
Full GUI with preset scenarios
Instead of searching through the program for the variables to input, this program comes with a GUI partially programmed by ChatGPT to streamline the user experience.
It comes with a basic intercept preset that will get the user started and allow them to start playing around with the program. Once the Submit button is pressed, the program will run and the graphs will be created.
Loading the program is as simple as opening the Python file, running it, placing your custom parameters in the GUI, and hitting submit. If you don't have the relevant libraries installed yet, it's a very simple process outlined below in How to set up.
How to set up
Download the required libraries:
pip: - used to simplify downloading the other libraries
Numpy: pip install numpy - used to create random movements & line gradients
PIL (Pillow): pip install matplotlib - used with numpy to make the array of pixel values
Tkinter: pip install tkinter - used to create the GUI
Future Improvements
Include a physics engine with missile paramaters and presets
Animate the graph over time
Allow users to save the list of positions of both the interceptor and target
Create multiple graphs based on closure distance vs time, g forces, etc.
Add a second rocket which uses proportional guidance