ostk.astrodynamics.trajectory.Sequence

class Sequence(
self: ostk.astrodynamics.trajectory.Sequence,
segments: list[ostk.astrodynamics.trajectory.Segment] = [],
numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver = NumericalSolver.default_conditional(),
dynamics: list[ostk::astrodynamics::Dynamics] = [],
maximum_propagation_duration: ostk.physics.time.Duration = Duration.days(30.0),
minimum_maneuver_duration: ostk.physics.time.Duration = Duration.undefined(),
verbosity: int = 1,
)

Bases: pybind11_object

A mission Sequence. Consists of a list of Segment objects and various configuration parameters.

Construct a new Sequence object.

Args: segments (list[Segment], optional): The segments. Defaults to an empty list. numerical_solver (NumericalSolver, optional): The numerical solver. Defaults to the default conditional numerical solver. dynamics (list[Dynamics], optional): The dynamics. Defaults to an empty list. maximum_propagation_duration (Duration, optional): The maximum propagation duration. Defaults to 30 days. minimum_maneuver_duration (Duration, optional): The minimum maneuver duration. Defaults to Undefined. If defined, maneuvers less than this duration will be skipped. verbosity (int, optional): The verbosity level. Defaults to 1.

Returns:

The new Sequence object.

Return type:

Sequence

Methods

add_coast_segment

Add a coast segment.

add_maneuver_segment

Add a maneuver segment.

add_segment

Add a segment.

add_segments

Add segments.

get_dynamics

Get the dynamics.

get_maximum_propagation_duration

Get the maximum propagation duration.

get_minimum_maneuver_duration

Get the minimum maneuver duration.

get_numerical_solver

Get the numerical solver.

get_segments

Get the segments.

solve

Solve the sequence.

solve_to_condition

Solve the sequence until the event condition is met.

class Solution(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
segment_solutions: list[ostk.astrodynamics.trajectory.Segment.Solution],
execution_is_complete: bool,
)

Bases: pybind11_object

The Solution object that is returned when a Sequence is solved.

Construct a new Sequence.Solution object.

Args: segment_solutions (list[Segment.Solution]): The segment solutions. execution_is_complete (bool): Whether the execution is complete.

Returns:

The new Sequence.Solution object.

Return type:

Sequence

access_end_instant(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) ostk.physics.time.Instant

Get the instant at which the access ends.

Returns:

The instant at which the access ends.

Return type:

Instant

access_start_instant(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) ostk.physics.time.Instant

Get the instant at which the access starts.

Returns:

The instant at which the access starts.

Return type:

Instant

calculate_states_at(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
instants: list[ostk.physics.time.Instant],
numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver,
) list[ostk.astrodynamics.trajectory.State]

Calculate states in this sequence's solution at provided instants.

Parameters:
  • instants (list[Instant]) -- The instants at which the states will be calculated.

  • numerical_solver (NumericalSolver) -- The numerical solver used to calculate the states.

Returns:

The states at the provided instants.

Return type:

list[State]

compute_delta_mass(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) ostk.physics.unit.Mass

Compute the delta mass.

Returns:

The delta mass.

Return type:

float

compute_delta_v(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
specific_impulse: ostk.core.type.Real,
) ostk.core.type.Real

Compute the delta V.

Parameters:

specific_impulse (float) -- The specific impulse.

Returns:

The delta V (m/s).

Return type:

float

property execution_is_complete

Whether the execution is complete.

Type:

bool

get_final_mass(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) ostk.physics.unit.Mass

Get the final mass.

Returns:

The final mass.

Return type:

float

get_initial_mass(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) ostk.physics.unit.Mass

Get the initial mass.

Returns:

The initial mass.

Return type:

float

get_interval(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) ostk.physics.time.Interval

Get the interval.

Returns:

The interval.

Return type:

Interval

get_propagation_duration(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) ostk.physics.time.Duration

Get the propagation duration.

Returns:

The propagation duration.

Return type:

Duration

get_states(
self: ostk.astrodynamics.trajectory.Sequence.Solution,
) list[ostk.astrodynamics.trajectory.State]

Get the states.

Returns:

The states.

Return type:

list[State]

property segment_solutions

The solutions for each segment.

Type:

list[SegmentSolution]

add_coast_segment(
self: ostk.astrodynamics.trajectory.Sequence,
event_condition: ostk::astrodynamics::EventCondition,
) None

Add a coast segment.

Parameters:

event_condition (EventCondition) -- The event condition.

add_maneuver_segment(
self: ostk.astrodynamics.trajectory.Sequence,
event_condition: ostk::astrodynamics::EventCondition,
thruster_dynamics: ostk::astrodynamics::dynamics::Thruster,
) None

Add a maneuver segment.

Parameters:
  • event_condition (EventCondition) -- The event condition.

  • thruster_dynamics (Thruster) -- The thruster dynamics.

add_segment(
self: ostk.astrodynamics.trajectory.Sequence,
segment: ostk.astrodynamics.trajectory.Segment,
) None

Add a segment.

Parameters:

segment (Segment) -- The segment.

add_segments(
self: ostk.astrodynamics.trajectory.Sequence,
segments: list[ostk.astrodynamics.trajectory.Segment],
) None

Add segments.

Parameters:

segments (list[Segment]) -- The segments.

get_dynamics(
self: ostk.astrodynamics.trajectory.Sequence,
) list[ostk::astrodynamics::Dynamics]

Get the dynamics.

Returns:

The dynamics.

Return type:

list[Dynamics]

get_maximum_propagation_duration(
self: ostk.astrodynamics.trajectory.Sequence,
) ostk.physics.time.Duration

Get the maximum propagation duration.

Returns:

The maximum propagation duration.

Return type:

Duration

get_minimum_maneuver_duration(
self: ostk.astrodynamics.trajectory.Sequence,
) ostk.physics.time.Duration

Get the minimum maneuver duration.

Returns:

The minimum maneuver duration.

Return type:

Duration

get_numerical_solver(
self: ostk.astrodynamics.trajectory.Sequence,
) ostk.astrodynamics.trajectory.state.NumericalSolver

Get the numerical solver.

Returns:

The numerical solver.

Return type:

NumericalSolver

get_segments(
self: ostk.astrodynamics.trajectory.Sequence,
) list[ostk.astrodynamics.trajectory.Segment]

Get the segments.

Returns:

The segments.

Return type:

list[Segment]

solve(
self: ostk.astrodynamics.trajectory.Sequence,
state: ostk.astrodynamics.trajectory.State,
repetition_count: int = 1,
) ostk.astrodynamics.trajectory.Sequence.Solution

Solve the sequence.

Parameters:
  • state (State) -- The state.

  • repetition_count (int, optional) -- The repetition count. Defaults to 1.

Returns:

The sequence solution.

Return type:

SequenceSolution

solve_to_condition(
self: ostk.astrodynamics.trajectory.Sequence,
state: ostk.astrodynamics.trajectory.State,
event_condition: ostk::astrodynamics::EventCondition,
maximum_propagation_duration_limit: ostk.physics.time.Duration = Duration.days(30.0),
) ostk.astrodynamics.trajectory.Sequence.Solution

Solve the sequence until the event condition is met.

In the case that the event condition is not met due to maximum propagation duration limit, it will return the SequenceSolution with executionIsComplete set to False.

Parameters:
  • state (State) -- The state.

  • event_condition (EventCondition) -- The event condition.

  • maximum_propagation_duration_limit (Duration, optional) -- The maximum propagation duration limit for the sequence. Defaults to 30 days.

Returns:

The sequence solution.

Return type:

SequenceSolution