The Transcriptions API#

The transcription is the means by which Dymos converts the problem of finding a continuous control function which optimizes the operation of some system into a discrete optimization problem which can be solved by an off-the-shelf optimizer.

Dymos currently supports the following transcriptions

  • Radau Pseudospectral Method

  • Gauss-Lobatto Collocation

  • Explicit (Single) Shooting

Radau Options#

Option DefaultAcceptable Values Acceptable Types Description
compressed True[True, False] ['bool'] Use compressed transcription, meaning state and control valuesat segment boundaries are not duplicated on input. This implicitly enforces value continuity between segments but in some cases may make the problem more difficult to solve.
num_segments 1N/A ['int'] Number of segments
order 5N/A ['int', 'Sequence', 'ndarray']Order of the state transcription. The order of the control transcription is `order - 1`.
segment_ends N/AN/A ['Sequence', 'ndarray'] Locations of segment ends or None for equally spaced segments
solve_segments False[False, 'forward', 'backward']N/A Applies 'solve_segments' behavior to _all_ states in the Phase. If 'forward', collocation defects within each segment are solved with a Newton solver by fixing the initial value in the phase (if using compressed transcription) or segment (if not using compressed transcription). This provides a forward shooting (or multiple shooting) method. If 'backward', the final value in the phase or segment is fixed and a solver finds the other ones to mimic reverse propagation. Set to False (the default) to explicitly disable the use of a solver to converge the state time history.

GaussLobatto Options#

Option DefaultAcceptable Values Acceptable Types Description
compressed True[True, False] ['bool'] Use compressed transcription, meaning state and control valuesat segment boundaries are not duplicated on input. This implicitly enforces value continuity between segments but in some cases may make the problem more difficult to solve.
num_segments 1N/A ['int'] Number of segments
order 5N/A ['int', 'Sequence', 'ndarray']Order of the state transcription. The order of the control transcription is `order - 1`.
segment_ends N/AN/A ['Sequence', 'ndarray'] Locations of segment ends or None for equally spaced segments
solve_segments False[False, 'forward', 'backward']N/A Applies 'solve_segments' behavior to _all_ states in the Phase. If 'forward', collocation defects within each segment are solved with a Newton solver by fixing the initial value in the phase (if using compressed transcription) or segment (if not using compressed transcription). This provides a forward shooting (or multiple shooting) method. If 'backward', the final value in the phase or segment is fixed and a solver finds the other ones to mimic reverse propagation. Set to False (the default) to explicitly disable the use of a solver to converge the state time history.

ExplicitShooting Options#

Option Default Acceptable Values Acceptable Types Description
compressed True [True, False] ['bool'] Use compressed transcription, meaning state and control valuesat segment boundaries are not duplicated on input. This implicitly enforces value continuity between segments but in some cases may make the problem more difficult to solve.
grid gauss-lobatto['radau-ps', 'gauss-lobatto']N/A The type of transcription used to layout the segments and control discretization nodes.
method rk4 N/A ['str'] The explicit Runge-Kutta scheme to use. One of['rk4', '3/8', 'euler', 'ralston', 'rkf', 'rkck', 'dopri']
num_segments 1 N/A ['int'] Number of segments
num_steps_per_segment10 N/A ['int'] Number of integration steps in each segment
order 5 N/A ['int', 'Sequence', 'ndarray']Order of the state transcription. The order of the control transcription is `order - 1`.
segment_ends N/A N/A ['Sequence', 'ndarray'] Locations of segment ends or None for equally spaced segments
subprob_reports False N/A N/A Controls the reports made when running the subproblems for ExplicitShooting