A software for optimizing thrust profiles and trajectories of launching vehicles (for academic purposes).
The optimization method is based on Angelo Miele’s MSGRA algorithm.
As it is, many types of optimal control problems can be solved using this program. For each of them,
there must be a module (typically called prob
The overall module-calling scheme is presented below:
The main module (which is run in the highest level) is main.py. This module imports the three basic modules:
interf.py: user interfacing and iteration managing module,
sgra.py: MSGRA functions that are not specific to any particular instance of problem;
prob
A running solution of the program is an object of the class prob. This class is, very appropriately, defined in prob
The prob
All the methods that are not specific to the problem are defined here. Actually, in order to prevent this module from becoming gigantic, it was split into three:
The sgra.py module calls the other two. The overall guideline is that if a module is specific to restoration procedures, it goes into rest_sgra.py, and if it is specific to gradient procedures, it goes into grad_sgra.py.
Some general utility methods go here. Only the time derivative method is being used currently.
This module contains the object that performs user interface, and manages solution loading, saving, as well as the gradient and restoration iterations.