Skip to content

lmarthur/PyTraj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

L.M. Arthur, Cambridge, MA, 2024

This code is a work in progress, and is not yet ready for use. It is being developed for research purposes in the MIT Laboratory for Nuclear Security and Policy.

Overview

This code is a package for simulating the flight of a ballistic missile. It is designed to be modular, with separate modules for geodesy, atmosphere, vehicle, gravity, stepper, integrator, flight, monte carlo, guidance, control, and Kalman filtering. The code is written in a combination of C, Python, and bash.

User Guide

This section provides a brief introduction to using the PyTraj tool, and will be updated as additional features are rolled out. Run all commands from the PyTraj directory. To ensure that your version of the code is up-to-date, simply run

git pull

To compile the code and run the test suite, run

source ./scripts/compile.sh

And, to run the code, use the

source ./scripts/run.sh

command. The run parameters can be adjusted in the .toml files in the /input directory. The results will be placed in the /output directory.

To generate trajectory plots from an existing trajectory.txt file, run

python ./src/traj_plot.py

To generate a new trajectory.txt file, run the simulation with traj_output = 1 in the relevant .toml file.

TODO:

  • Set up CMake
  • Write tests for atmosphere module
  • Implement exp atmosphere functions in C
  • Write tests for vehicle module
  • Implement minuteman model in C
  • Write tests for newtonian gravity module
  • Implement newtonian gravity functions in C
  • Write tests for physics module
  • Implement physics functions in C
  • Write tests for stepper
  • Implement stepper in C
  • Determine whether to implement integration in C or Python
  • Write tests for flight module
  • Implement flight function
  • Implement ctypes wrapper for C functions
  • Implement output file writer
  • Implement plotting functions
  • Write scripts for compiling, testing, and running
  • Write tests for flight initialization
  • Implement flight initialization function
  • Write analysis suite to fit distributions to accuracy data
  • Implement configuration file and parser
  • Write tests for monte carlo function
  • Implement monte carlo function in C
  • Write tests for imu module
  • Implement imu functions in C
  • Write tests for gnss module
  • Implement gnss functions in C
  • Write tests for control module
  • Implement control functions in C
  • Write tests for Kalman filter
  • Implement Kalman filter in C
  • Set up .yaml for conda environment
  • Write tests for gravity perturbations
  • Implement gravity perturbations in C
  • Implement atmospheric model with perturbations
  • Integrate boost guidance
  • Write tests for lift function
  • Implement lift function in C
  • Integrate proportional navigation for MaRV
  • Write tests for reentry filter
  • Implement reentry filter in C
  • Write integration tests
  • Generate plots
  • Set up documentation
  • Write function for parameter scanning
  • Write function to generate sensitivity plots

BUG REPORTS:

None

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages