Optimal Finite Maneuver Segment
The Optimal Finite Maneuver segment has four tabs that define its parameters: Solver, Engine, Log, and Steering/Nodes. Solver and Engine appear immediately, while Log and Steering/Nodes appear after you provide an initial guess.
Usage of SNOPT in the Astrogator target sequence profiles and optimal finite maneuvers now requires a complimentary license. Please contact AGI support if you require such a license for use with Astrogator.
Solver
The Solver tab defines the variables of the finite maneuver optimization computation and its boundary conditions. It has two parts: Problem Setup and Problem Execution. The following are descriptions for the parameters that appear in each part.
Solver  Problem Setup
Number of Nodes
This enables you to specify the number of discretization nodes for the direct transcription algorithm. For the global collocationbased transcription method used by Astrogator, this is equal to the number of quadrature nodes at which the states and control functions are sampled/approximated.
Algorithm Options
The following are additional options to define the maneuver optimization problem:
Parameter  Description 

Discretization Strategy  This is the quadrature node type that enforces collocation. Choose between LegendreGaussLobatto (LGL) and Legendre GaussRadau (LGR). 
Working Variables 
This is a variable set used to formulate maneuver optimization problem. The choices are Equinoctial and Modified Equinoctial . 
Scaling Options  Scaling typically improves the numerical behavior of optimization problems. This option specifies how, if at all, to accomplish scaling. Choose from one of the following:

Guess Interpolation Method  Specify the mode of resampling the initial guess at the collocation nodes. Choose between Lagrange polynomial (default) and Piecewise linear. For Finite Maneuver seeding, only Lagrange polynomial resampling is available. 
Use Unit Vector for Thrust Direction  Selecting this option makes the unit vectors in the maneuver frame become the control functions, instead of the azimuth and elevation angles. Using a unit vector for the thrust vector could be beneficial in some problems as a way to avoid ambiguities due to angle “wrapping”. 
Initial Guess File
You can use the Initial Guess File (*.nod extension) as the initial guess for the finite maneuver optimization. If you source the initial guess from an existing Finite Maneuver (see below), then you can leave this field blank.
Seed from
Choose between Initial Guess File or Finite Maneuver. If you select the latter option, a finite maneuver must already exist in the current Maneuver segment.
Seed
Clicking this button causes data from the Initial Guess File or Finite Maneuver to be appropriately resampled in preparation for the maneuver optimization problem.
Node Status
This indicates what data, if any, the discretization nodes store at a certain point in the process.
The orbit states, mass, and the thrust attitude for an Optimal Finite Maneuver are ultimately solved for at a set of discrete time nodes, suitably placed between maneuver start and end times (which themselves may be variables). It is precisely at these nodes that the initial guess states and controls are also sampled after accomplishing seeding using one of the two methods described earlier. Thus, a certain set of time nodes, as determined by the Number of Nodes and the algorithm Discretization Strategy, can have one of the following associated with them:
 No data, if neither an initial guess nor a solution exists
 Only an initial guess after seeding is complete but before attempting optimization
 A solution from the optimization process, either converged or otherwise
Refer to Seeding an Optimal Finite Maneuver for more information.
Status  Explanation 

not initialized  The nodes have no data, neither an initial guess or an optimizer output. 
N nodes seeded from file  This populates the N discretization nodes with initial guess data from a file of format *.nod. 
N nodes seeded from finite maneuver  This populates the N discretization nodes with initial guess data from a finite maneuver. 
N nodes from current collocation result  This populates the N discretization nodes with values of the orbital states, mass, and thrust attitude from the numerical optimizer. 
Initial Boundary … / Final Boundary…
Use these buttons to specify the upper and lower bounds of the initial and final orbit states. The buttons and other controls become available after you seed an initial guess.
Parameter  Explanation 

Set from Initial Guess 
Use this option only if none of the initial/final states are free to optimize. If you select this, the initial/final orbit states are assigned the initial guess values at the maneuver start time/end time. To explicitly set the bounds on each variable, clear this box and use the option below. This is set to True by default in a new Maneuver segment. 
Set Explicitly  These are the upper and lower bounds for each variable. Equal upper and lower bounds enforce an equality constraint and effectively remove an initial state from the set of optimization variables. 
 The label Tf in the Final Time row refers to the final time from a seeded Finite Maneuver or from the Initial Guess File.
 For freefinaltime problems, such as minimumtime maneuvers, the final boundary conditions must always be set explicitly.
Path Boundaries
Use this button to specify the upper and lower bounds of the orbit states and thrust spherical angles on the trajectory at all but the initial and terminal points.
Parameter  Explanation 

Compute from Initial Guess  If true, the upper bound is the maximum value of a quantity in the supplied initial guess. Likewise, the lower bound is the minimum value of this quantity in the initial guess. This is set to True by default in a new Maneuver segment. 
Set Explicitly  These are the upper and lower bounds for each variable. 
 For mass, the upper bound is automatically taken to be Dry Mass + Fuel Mass, and the lower bound is the Dry Mass.
 If using a unitvector triad for thrust attitude, Astrogator automatically sets appropriate bounds internally.
Solver  Problem Execution
Run Mode
Choose between Run current nodes and Optimize via direct transcription. Select the first option to propagate the states with an existing thrustattitude time history, either from an initial guess or from an existing directtranscription solution. Select the second option to start the finite maneuver optimization process.
Parameter  Explanation 

Run current nodes 
If you select this, running the MCS propagates the vehicle states with a thrust vector of a magnitude equal to that provided by the chosen Engine type. It also propagates with an attitude from either an initial guess or from the optimizer output. When an Optimal Finite Maneuver is first seeded from an initial guess, running the current nodes propagates the vehicle from the states associated with the initial guess. The maneuver uses the thrust pointing history supplied by the guess. After attempting maneuver optimization, running the current nodes propagates the vehicle with the states returned from the optimizer and, if successful, the optimal maneuver pointing history. 
Optimize via direct transcription  Running the sequence with this option initiates the finite maneuver optimization process. A console window displays the numerical optimizer iterations in real time. Select Optimizer… (see below) before running the MCS with this option. 
 On loading initial guess data, Astrogator resamples the thrust attitude at an integral number of collocation nodes, say (N + 1). You can propagate the states with this data by constructing a Lagrange interpolating polynomial from this sample, which provides the thrust pointing at any time during numerical propagation.
 The directtranscriptionoptimization system solves for the thrust attitude at the collocation nodes. A process identical to the one above is then followed when running current nodes after attempting optimization.
 Running current nodes after initial guess loading is useful in visually evaluating the guess quality/behavior.
 Running the current nodes is equal to propagating with a Time Varying Finite Maneuver, but with a Nthorder polynomial thrust profile instead of a polynomialtrigonometric one.
 After you initiate a finite maneuver optimization, you can stop the optimization process miditeration by pressing Ctrl+C from within the Optimization Status console.
 At iteration conclusion, run the current nodes to apply the solution, optimized or otherwise.
 Astrogator finite maneuver optimization uses the SNOPTnumerical optimization library. Please refer to the SNOPT manual for a detailed explanation of various items in the iteration console. You need an additional license for this. Contact AGI Support for more information.
 After attempting a finite maneuver optimization, the result automatically becomes available as the initial guess for a later optimization run. To discard this guess and seed from a file or a finite maneuver, you must repeat the seeding process.
Optimizer
Use this button to specify the maneuver optimization objective or cost functional and optimization algorithm options. For details on the role of an objective functional in Finite Maneuver Optimization, see Maneuver Optimization Using Direct Transcription Methods.
Parameter  Explanation 

Minimize total time of flight  This determines the thrust attitude program (and any other optimizable variables) to minimize the total maneuver duration. 
Minimize propellant use  This determines the thrust attitude program (and any other optimizable variables) to minimize the net propellant mass expended over the maneuver duration. If you select this, Astrogator effectively maximizes the propellant mass at the maneuver final time. 
Maximize final spherical radius  This determines the thrust attitude program (and any other optimizable variables) to maximize the separation between the vehicle and the central body attracting center at the end of the maneuver. 
For details on the optimizer algorithm options, refer to the Sparse Nonlinear Optimizer (SNOPT) Profile options.
 In addition to the final maneuver time, other optimizable variables include the initial/final conditions with unequal lower and upper bounds.
 The Minimize propellant use objective may not produce a meaningful result with all engine models, such as those with a constant mass flow rate.
 The final spherical radius to be maximized is calculated as , where {x_{f},y_{f},z_{f}} are the inertial Cartesian coordinates of the vehicle at the end of the maneuver.
Halt MCS and Discard Result if Optimization is Unsuccessful
If you select this and the numerical optimizer indicates unsuccessful convergence to a locally best solution, the MCS stops and the result from the directtranscriptioncollocation system is not stored or available for further use. Selecting Run Mode as Run current nodes at this point runs the most recently provided initial guess or the most recent result from the optimizer.
Engine
Optimal Finite Maneuver Engine parameters are the same as Finite Maneuver Engine parameters.
Log
This tab displays the optimizer iteration log. For more information, please refer to the Sparse Nonlinear Optimizer (SNOPT) Profile log.
Steering/Nodes
This displays information on the maneuver Thrust Axes and Node Status, and enables the export of node data (either initial guess or optimizer output) into a *.nod file format, which you may subsequently use for seeding purposes. Choose between TimePosVelMassRaDec and TimePosVelMassDirCos thrust attitude export formats.