Aerospace Trajectory Optimization


 

Welcome

 

This web site describes Fortran computer programs that use the optimal control software distributed by Applied Mathematical Analysis (www.appliedmathematicalanalysis.com) to solve practical aerospace trajectory optimization and optimal control problems.  The AMA optimal control software (AMA-OCS) is a direct transcription method that can be used to solve a variety of trajectory optimization problems using the following combination of numerical methods:

 

· collocation and implicit integration

· adaptive mesh refinement

· sparse nonlinear programming

 

Additional information about the mathematical techniques and numerical methods used in the AMA optimal control software can be found in the book, “Practical Methods for Optimal Control and Estimation Using Nonlinear Programming” by John. T. Betts, SIAM, 2010.

 

For proper interface with the AMA optimal control library, the user must provide Fortran routines that perform the following tasks:

 

·        set algorithm control parameters and call the transcription/optimal control subroutine

 

·        define the problem structure and perform initialization related to scaling, lower and upper bounds, initial conditions, etc.

 

·        compute the right-hand-side differential equations

 

·        evaluate any point and path constraints

 

·        display the optimal solution results and create an output file

 

The AMA optimal control software (AMA-OCS) will use this information to automatically transcribe the user’s problem and attempt to solve the optimal control problem.

 

 

PLEASE NOTE: The applications described on this web page are available as Fortran source code and do not include the AMA optimal control Fortran source code or object code library.  This library must be purchased from Applied Mathematical Analysis (www.appliedmathematicalanalysis.com).

 

Please contact David Eagle at cdeaglejr@yahoo.com to purchase the Fortran source code for any of the applications described on this website.

 

 

Last updated February 21, 2012.

 

Thanks for visiting

 

 

EXAMPLE APPLICATION

 

The following files are the main Fortran source code routines for the ballistic interplanetary trajectory optimization example.

 

Main program

ipto_ocs.f

Initialization

odeinp.for

Equations of motion

oderhs.for

Point functions

odepf.for

Print routine

odeprt.for

 

The following is the download link for the PDF user’s guide for this application

 

Ballistic Interplanetary Trajectory Optimization  (PDF document)

 

The following are the download links for the Windows-compatible executable program and DE421 binary ephemeris files for this example

 

Zipped file of executable program

 

JPL DE421 ephemeris binary data file

 

 

Creating an executable program

 

This section describes how to create a typical executable program using Intel Visual Fortran and Windows 7.

 

All batch files and executable programs should be executed from a DOS command line.  To create a DOS command window in Windows 7, select start, then All Programs, then Accessories and finally Command Prompt.  The size, font and other characteristics of the screen can be controlled by the user with the c:\ icon in the upper left corner of the window.  To log into the subdirectory created during the installation of the Fortran source code and support files, type root:\ and then cd subdirectory from the DOS command line where root is the name of the root directory, usually c:, and subdirectory is the name of the subdirectory created by the user.  The DOS command line prompt looks similar to C:\ipto>_.  Additional information about MS-DOS commands and batch files can be found at http://www.best-of-computing.com/command-prompt.html.

 

The following are the contents of a simple batch file that will create an executable program.  These two lines can also be entered directly from the command line.

 

ifort ipto_ocs.f *.for c:\ama_ocs\library\ocs.lib

del *.obj

 

In the first line of this file, c:\ama_ocs\library\ocs.lib is the location and name of the AMA-OCS object code library.  The second line of this file deletes the application object code files after the compiling and linking process is complete.  Also, in the first line the “wildcard” *.for includes all support subroutines found in the current subdirectory in the compilation.

 

The AMA-OCS object code library is created in using Intel Visual Fortran in the subdirectory c:\ama_ocs\library with the following batch file.  The /c switch is the “compile only” command line compiler option for Intel Visual Fortran.  The library is created by the lib command in the last line of this batch file.  Notice the use of a wildcard *.obj which puts all object code files into the ocs.lib object code library.

 

ifort /c barrier.for

ifort /c bcsext.for

ifort /c bcslib.for

ifort /c densqp.for

ifort /c geometryevl.for

ifort /c intrfp.for

ifort /c qpsprs.for

ifort /c snlp.for

lib /out:c:\ama_ocs\library\ocs.lib *.obj

 

 

Applications

 

Geocentric Maneuver Optimization

 

Single Maneuver, Finite-Burn Trajectory Optimization  (PDF document – oneburn_ocs.pdf)

 

Aero-assist Trajectory Optimization  (PDF document – aeroassist_ocs.pdf)

 

 

Lunar Trajectory Optimization

 

Finite-burn Trans-Lunar Trajectory Optimization  (PDF document – tlto_ocs.pdf

 

Lunar Ascent Trajectory Optimization  (PDF document – lascent_ocs.pdf)

 

 

Interplanetary Trajectory Optimization

 

Optimal Earth Orbit-to-Interplanetary Injection (PDF document – hyper_ocs.pdf)

 

Ballistic Interplanetary Trajectory Optimization  (PDF document – ipto_ocs.pdf)

 

Interplanetary Gravity-Assist Trajectory Optimization  (PDF document – flyby_ocs.pdf)

 

Low-Thrust Interplanetary Trajectory Optimization  (PDF document – ilt_ocs.pdf)

 

 

Technical Notes

 

Modified Equinoctial Orbital Elements (mee.pdf)

 

ECI Equations of Vehicle Motion (ecieqms.pdf)

 

Mission Constraints and Trajectory Optimization (targeting.pdf)

 

Flight Path Equations of Motion (fpeqms.pdf)

 

 

Additional Information and Resources

 

 

“Practical Methods for Optimal Control and Estimation Using Nonlinear Programming, Second Edition”, John T. Betts, the Society for Industrial and Applied Mathematics, 2010.

 

“Optimal Low Thrust Trajectories to the Moon”, John T. Betts and Sven O. Erb, SIAM Journal on Applied Dynamical Systems, Vol. 2, No. 2, pp. 144-170, 2003.

 

“Optimal Interplanetary Orbit Transfers by Direct Transcription”, John T. Betts, The Journal of the Astronautical Sciences, Vol. 42, No. 3, July-September 1994, pp. 247-268.

 

“Using Sparse Nonlinear Programming to Compute Low Thrust Orbit Transfers”, John T. Betts, The Journal of the Astronautical Sciences, Vol. 41, No. 3, July-September 1993, pp. 349-371.

 

“Sparse Jacobian Updates in the Collocation Method for Optimal Control Problems”, John T. Betts, AIAA Journal of Guidance, Control and Dynamics, Vol. 13, No. 3, May-June 1990.

 

“Trajectory Optimization on a Parallel Processor”, John T. Betts and William P. Huffman, AIAA Journal of Guidance, Control and Dynamics, Vol. 14, No. 2, March-April 1991.

 

“Application of Sparse Nonlinear Programming to Trajectory Optimization”, John T. Betts and William P. Huffman, AIAA Journal of Guidance, Control and Dynamics, Vol. 15, No. 1, January-February 1992.

 

“Path-Constrained Trajectory Optimization Using Sparse Sequential Quadratic Programming”, John T. Betts and William P. Huffman, AIAA Journal of Guidance, Control and Dynamics, Vol. 16, No. 1, January-February 1993.

 

“Application of Direct Transcription to Commercial Aircraft Trajectory Optimization”, John T. Betts and Evin J. Cramer, AIAA Journal of Guidance, Control and Dynamics, Vol. 18, No. 1, January-February 1995.

 

“Survey of Numerical Methods for Trajectory Optimization”, John T. Betts, AIAA Journal of Guidance, Control and Dynamics, Vol. 21, No. 2, March-April 1998.

 

 

 

FORTRAN RESOURCES

 

Compilers

 

www.g95.org

www.lahey.com

www.absoft.com

www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm

www.geocities.com/Athens/Olympus/5564/g77.htm

 

A Fortran compiler free for personal use or evaluation can be found at

 

http://www.silverfrost.com/11/ftn95/ftn95_fortran_95_for_windows.asp

 

Documentation

 

http://www.star.le.ac.uk/~cgp/prof77.html

http://tc5.chem.uu.nl/~jeroen/fortran/f77book.pdf

http://www.lrsm.upenn.edu/~vitek/courses/f77intro/f77intro.pdf

 

Useful Links

 

www.fortran.com

www.fortranplus.co.uk

www.fortranlib.com

www.dislin.de

http://software.basnet.by/Fortr/freelibr.html

www.personal.psu.edu/faculty/h/d/hdk/fortran.html

 

 

 

Web site contents copyright © 2004-2012 by C. David Eagle.  All Rights Reserved.

 

cdeaglejr@yahoo.com         www.cdeagle.com