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 |
|
|
Initialization |
|
|
Equations of motion |
|
|
Point functions |
|
|
Print routine |
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)
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.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
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