latom.surrogate.om_metamodels

@authors: Alberto FOSSA’ Giuliana Elena MICELI

Functions

load(filename)

Load an object.

save(obj, filename)

Save an object.

Classes

HohmannTransfer(gm, dep, arr)

HohmannTransfer class implements a two-dimensional Hohmann transfer between two coplanar, circular orbits in the Keplerian two-body approximation.

ImpulsiveBurn(sc, dv)

ImpulsiveBurn class describes an impulsive burn.

MetaModel([distributed, extrapolate, …])

MetaModel class sets up an OpenMDAO Problem object and a MetaModelStructuredComp subsystem to compute and exploit a surrogate model for different transfer trajectories.

MetaModelStructuredComp(**kwargs)

Interpolation Component generated from data on a regular grid.

Problem([model, driver, comm, root])

Top-level container for the systems and drivers.

RespSurf(isp, twr, param, title[, nb_lines, …])

Plots the response surface resulting from the surrogate models computations.

Spacecraft(isp, twr[, throttle_min, m0, …])

Spacecraft class defines the spacecraft characteristics.

TwoDimAscConstMetaModel([distributed, …])

TwoDimAscConstMetaModel implements MetaModel for a two-dimensional ascent trajectory at constant thrust.

TwoDimAscConstNLP(body, sc, alt, theta, …)

TwoDimAscConstNLP class transcribes a two-dimensional, continuous-time optimal control problem in trajectory optimization into a Non Linear Programming Problem (NLP) using the OpenMDAO and dymos libraries.

TwoDimAscVToffMetaModel([distributed, …])

TwoDimAscVToffMetaModel implements MetaModel for a two-dimensional ascent trajectory with variable thrust and constrained minimum safe altitude.

TwoDimAscVToffNLP(body, sc, alt, alt_safe, …)

TwoDimAscVToffNLP class transcribes a two-dimensional, continuous-time optimal control problem in trajectory optimization into a Non Linear Programming Problem (NLP) using the OpenMDAO and dymos libraries.

TwoDimAscVarMetaModel([distributed, …])

TwoDimAscVarMetaModel implements MetaModel for a two-dimensional ascent trajectory with variable thrust.

TwoDimAscVarNLP(body, sc, alt, alpha_bounds, …)

TwoDimAscVarNLP class transcribes a two-dimensional, continuous-time optimal control problem in trajectory optimization into a Non Linear Programming Problem (NLP) using the OpenMDAO and dymos libraries.

TwoDimDescConstMetaModel([distributed, …])

TwoDimDescConstMetaModel implements MetaModel for a two-dimensional descent trajectory at constant thrust.

TwoDimDescConstNLP(body, sc, alt, vp, theta, …)

TwoDimDescConstNLP class transcribes a two-dimensional, continuous-time optimal control problem in trajectory optimization into a Non Linear Programming Problem (NLP) using the OpenMDAO and dymos libraries.

TwoDimDescTwoPhasesAnalyzer(body, sc, alt, …)

TwoDimDescTwoPhasesAnalyzer class defines the methods to analyze the results of a two dimensional descent simulation from a given Low Lunar Orbit to the Moon surface composed by two subsequent phases.

TwoDimDescTwoPhasesMetaModel([distributed, …])

TwoDimDescVLandMetaModel([distributed, …])

TwoDimDescVLandMetaModel implements MetaModel for a two-dimensional descent trajectory with variable thrust and constrained minimum safe altitude.

TwoDimDescVLandNLP(body, sc, alt, alt_safe, …)

TwoDimAscVToffNLP class transcribes a two-dimensional, continuous-time optimal control problem in trajectory optimization into a Non Linear Programming Problem (NLP) using the OpenMDAO and dymos libraries.

TwoDimDescVarMetaModel([distributed, …])

TwoDimDescVarMetaModel implements MetaModel for a two-dimensional descent trajectory with variable thrust.

TwoDimDescVarNLP(body, sc, alt, …[, …])

TwoDimDescVarNLP class transcribes a two-dimensional, continuous-time optimal control problem in trajectory optimization into a Non Linear Programming Problem (NLP) using the OpenMDAO and dymos libraries.

TwoDimOrb(gm, **kwargs)

Defines a two-dimensional orbit from its keplerian parameters.

class latom.surrogate.om_metamodels.MetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: object

MetaModel class sets up an OpenMDAO Problem object and a MetaModelStructuredComp subsystem to compute and exploit a surrogate model for different transfer trajectories.

The model inputs are the spacecraft specific impulse Isp and initial thrust/weight ratio twr while the model output is the propellant fraction m_prop.

Parameters
  • distributed (bool, optional) – True if the component has variables that are distributed across multiple processes, False otherwise. Default is False

  • extrapolate (bool, optional) – Sets whether extrapolation should be performed when an input is out of bounds. Default is False

  • method (str, optional) – Spline interpolation method to use for all outputs among cubic, slinear, lagrange2, lagrange3, akima, scipy_cubic, scipy_slinear, scipy_quintic. Default is scipy_cubic

  • training_data_gradients (bool, optional) – Sets whether gradients with respect to output training data should be computed. Default is True

  • vec_size (int, optional) – Number of points to evaluate at once. Default is 1

  • rec_file (str or None, optional) – Name of the file in latom.data.metamodels where the meta model is stored or None if a new model has to be built. Default is None

Variables
  • mm (MetaModelStructuredComp) – OpenMDAO MetaModelStructuredComp object

  • p (Problem) – OpenMDAO Problem object

  • twr (ndarray) – List of thrust/weight ratios in the sampling grid [-]

  • Isp (ndarray) – List of specific impulses in the sampling grid [s]

  • m_prop (ndarray) – Propellant fraction in all training points [-]

  • failures (ndarray) – Matrix of boolean to verify all the NLP solutions have properly converged

  • limits (ndarray) – Sampling grid limits in terms of minimum and maximum Isp and twr

  • d (dict) – Dictionary that contain all the information to reconstruct a meta model

static abs_path(rec_file)[source]

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

load(rec_file)[source]

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

save(rec_file)[source]

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

compute_grid(twr_lim, isp_lim, nb_samp)[source]

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

setup()[source]

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)[source]

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

plot(nb_lines=50, kind='prop', log_scale=False)[source]

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

class latom.surrogate.om_metamodels.TwoDimAscConstMetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: latom.surrogate.om_metamodels.MetaModel

TwoDimAscConstMetaModel implements MetaModel for a two-dimensional ascent trajectory at constant thrust.

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int) – Number of segments in which the phase is discretized

  • order (int) – Transcription order within the phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Other Parameters
  • theta (float) – Guessed spawn angle [rad]

  • tof (float) – Guessed time of flight [s]

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

static abs_path(rec_file)

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

compute_grid(twr_lim, isp_lim, nb_samp)

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

load(rec_file)

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

plot(nb_lines=50, kind='prop', log_scale=False)

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

save(rec_file)

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

setup()

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.

class latom.surrogate.om_metamodels.TwoDimAscVarMetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: latom.surrogate.om_metamodels.MetaModel

TwoDimAscVarMetaModel implements MetaModel for a two-dimensional ascent trajectory with variable thrust.

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int) – Number of segments in which the phase is discretized

  • order (int) – Transcription order within the phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

static abs_path(rec_file)

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

compute_grid(twr_lim, isp_lim, nb_samp)

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

load(rec_file)

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

plot(nb_lines=50, kind='prop', log_scale=False)

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

save(rec_file)

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

setup()

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.

class latom.surrogate.om_metamodels.TwoDimAscVToffMetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: latom.surrogate.om_metamodels.MetaModel

TwoDimAscVToffMetaModel implements MetaModel for a two-dimensional ascent trajectory with variable thrust and constrained minimum safe altitude.

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int) – Number of segments in which the phase is discretized

  • order (int) – Transcription order within the phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Other Parameters
  • alt_safe (float) – Asymptotic minimum safe altitude [m]

  • slope (float) – Minimum safe altitude slope close to the launch site [-]

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

static abs_path(rec_file)

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

compute_grid(twr_lim, isp_lim, nb_samp)

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

load(rec_file)

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

plot(nb_lines=50, kind='prop', log_scale=False)

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

save(rec_file)

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

setup()

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.

class latom.surrogate.om_metamodels.TwoDimDescConstMetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: latom.surrogate.om_metamodels.MetaModel

TwoDimDescConstMetaModel implements MetaModel for a two-dimensional descent trajectory at constant thrust.

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int) – Number of segments in which the phase is discretized

  • order (int) – Transcription order within the phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Other Parameters
  • alt_p (float) – Periapsis altitude where the final powered descent is initiated [m]

  • theta (float) – Guessed spawn angle [rad]

  • tof (float) – Guessed time of flight [s]

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

static abs_path(rec_file)

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

compute_grid(twr_lim, isp_lim, nb_samp)

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

load(rec_file)

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

plot(nb_lines=50, kind='prop', log_scale=False)

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

save(rec_file)

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

setup()

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.

class latom.surrogate.om_metamodels.TwoDimDescVarMetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: latom.surrogate.om_metamodels.MetaModel

TwoDimDescVarMetaModel implements MetaModel for a two-dimensional descent trajectory with variable thrust.

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int) – Number of segments in which the phase is discretized

  • order (int) – Transcription order within the phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

static abs_path(rec_file)

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

compute_grid(twr_lim, isp_lim, nb_samp)

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

load(rec_file)

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

plot(nb_lines=50, kind='prop', log_scale=False)

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

save(rec_file)

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

setup()

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.

class latom.surrogate.om_metamodels.TwoDimDescVLandMetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: latom.surrogate.om_metamodels.MetaModel

TwoDimDescVLandMetaModel implements MetaModel for a two-dimensional descent trajectory with variable thrust and constrained minimum safe altitude.

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int) – Number of segments in which the phase is discretized

  • order (int) – Transcription order within the phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Other Parameters
  • alt_safe (float) – Asymptotic minimum safe altitude [m]

  • slope (float) – Minimum safe altitude slope close to the launch site [-]

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

static abs_path(rec_file)

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

compute_grid(twr_lim, isp_lim, nb_samp)

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

load(rec_file)

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

plot(nb_lines=50, kind='prop', log_scale=False)

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

save(rec_file)

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

setup()

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.

class latom.surrogate.om_metamodels.TwoDimDescTwoPhasesMetaModel(distributed=False, extrapolate=False, method='scipy_cubic', training_data_gradients=True, vec_size=1, rec_file=None)[source]

Bases: latom.surrogate.om_metamodels.MetaModel

static solve(body, sc, alt, t_bounds, method, nb_seg, order, solver, snopt_opts=None, u_bound=None, **kwargs)[source]

Solve the NLP for the i-th twr and k-th Isp values.

Parameters
  • body (Primary) – Central attracting body

  • sc (Spacecraft) – Spacecraft object characterized by the i-th twr and k-th Isp values

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int) – Number of segments in which the phase is discretized

  • order (int) – Transcription order within the phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

Other Parameters
  • alt_p (float) – Periapsis altitude where the powered descent is initiated [m]

  • alt_switch (float) – Altitude at which the final vertical descent is triggered [m]

  • theta (float) – Guessed spawn angle [rad]

  • tof (float) – Guessed time of flight [s]

  • fix (str) – alt if the vertical phase is triggered at a fixed altitude, time for a fixed time-to-go

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

static abs_path(rec_file)

Returns the absolute path of the file where the meta model is stored.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

Returns

fid – Full path where the meta model is stored

Return type

str

compute_grid(twr_lim, isp_lim, nb_samp)

Computes a regular sampling grid in the input space twr, Isp.

Parameters
  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

load(rec_file)

Loads stored data to instantiate a meta model.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

plot(nb_lines=50, kind='prop', log_scale=False)

Plot the response surface corresponding to the loaded meta model.

Parameters
  • nb_lines (int, optional) – Number of contour lines. Default is 50

  • kind (str) – prop to display the propellant fraction m_prop, final to display the final spacecraft mass 1 - m_prop

  • log_scale (bool, optional) – Set to True if the twr values are in logarithmic scale. Default is False

sampling(body, twr_lim, isp_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, snopt_opts=None, u_bound=None, rec_file=None, **kwargs)

Compute a new set of training data starting from a given sampling grid.

Parameters
  • body (Primary) – Central attracting body

  • twr_lim (iterable) – Thrust/weight ratio lower and upper limits [-]

  • isp_lim (iterable) – Specific impulse lower and upper limits [s]

  • alt (float) – Orbit altitude [m]

  • t_bounds (iterable) – Time of flight lower and upper bounds expressed as fraction of tof

  • method (str) – Transcription method used to discretize the continuous time trajectory into a finite set of nodes, allowed gauss-lobatto, radau-ps and runge-kutta

  • nb_seg (int or iterable) – Number of segments in which each phase is discretized

  • order (int or iterable) – Transcription order within each phase, must be odd

  • solver (str) – NLP solver, must be supported by OpenMDAO

  • nb_samp (iterable) – Number of samples along the twr and Isp axes

  • snopt_opts (dict or None, optional) – SNOPT optional settings expressed as key-value pairs. Default is None

  • u_bound (str, optional) – Specify the bounds on the radial velocity along the transfer as lower, upper or None. Default is None

  • rec_file (str, optional) – Name of the file in latom.data.metamodels where the meta model will be stored. Default is None

save(rec_file)

Saves data corresponding to a meta model instance.

Parameters

rec_file (str) – Name of the file in latom.data.metamodels where the meta model is stored

setup()

Setup the OpenMDAO Problem object with known data for twr, Isp and m_prop.