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.
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.
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.
- 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
- Generate plots
- Reentry update
- Write integration tests
- Add initial rotational perturbation
- Exclude gravity from imu measurements
- Write function for parameter scanning
- Write function to generate sensitivity plots
- Organize runs
- Add non-commercial license
- Set up documentation
- Set up EG16 atmosphere
- Implement 6-dof RV model
None