latom.surrogate.smt_surrogates

@authors: Alberto FOSSA’ Giuliana Elena MICELI

Functions

deepcopy(x[, memo, _nil])

Deep copy operation on arbitrary Python objects.

load(filename)

Load an object.

save(obj, filename)

Save an object.

Classes

FullFactorial(**kwargs)

HohmannTransfer(gm, dep, arr)

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

IDW(**kwargs)

Inverse distance weighting interpolant This model uses the inverse distance between the unknown and training points to predeict the unknown point.

ImpulsiveBurn(sc, dv)

ImpulsiveBurn class describes an impulsive burn.

KPLS(**kwargs)

  • KPLS

KPLSK(**kwargs)

  • KPLSK

KRG(**kwargs)

LHS(**kwargs)

LS(**kwargs)

Least square model.

QP(**kwargs)

Square polynomial approach

RBF(**kwargs)

Radial basis function interpolant with global polynomial trend.

RMTB(**kwargs)

Regularized Minimal-energy Tensor-product B-spline (RMTB) interpolant.

RMTC(**kwargs)

Regularized Minimal-energy Tensor-product Cubic hermite spline (RMTC) interpolant.

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.

SurrogateModel(train_method[, rec_file])

SurrogateModel class sets up a surrogate model object defined in the Surrogate Modelling Toolbox (SMT) 2 package to compute and exploit data for different transfer trajectories.

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.

TwoDimAscConstSurrogate(train_method[, rec_file])

TwoDimAscConstSurrogate implements SurrogateModel for a two-dimensional ascent trajectory at constant thrust.

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.

TwoDimAscVToffSurrogate(train_method[, rec_file])

TwoDimAscVToffSurrogate implements SurrogateModel for a two-dimensional ascent trajectory with variable thrust and minimum safe altitude.

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.

TwoDimAscVarSurrogate(train_method[, rec_file])

TwoDimAscVarSurrogate implements SurrogateModel for a two-dimensional ascent trajectory with variable 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.

TwoDimDescConstSurrogate(train_method[, …])

TwoDimDescConstSurrogate implements SurrogateModel for a two-dimensional descent trajectory at constant thrust.

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

TwoDimDescTwoPhasesNLP transcribes a continuous-time optimal control problem for a two-dimensional descent trajectory into a Non Linear Programming Problem (NLP) using the OpenMDAO and dymos libraries.

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.

TwoDimDescVLandSurrogate(train_method[, …])

TwoDimDescVLandSurrogate implements SurrogateModel for a two-dimensional descent trajectory with variable thrust and constrained minimum altitude.

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.

TwoDimDescVarSurrogate(train_method[, rec_file])

TwoDimDescVarSurrogate implements SurrogateModel for a two-dimensional descent trajectory with variable thrust.

TwoDimDescVertSurrogate(train_method[, rec_file])

TwoDimDescVertSurrogate implements SurrogateModel for a two-dimensional descent trajectory at constant thrust with final vertical descent phase.

TwoDimOrb(gm, **kwargs)

Defines a two-dimensional orbit from its keplerian parameters.

class latom.surrogate.smt_surrogates.SurrogateModel(train_method, rec_file=None)[source]

Bases: object

SurrogateModel class sets up a surrogate model object defined in the Surrogate Modelling Toolbox (SMT) 2 package to compute and exploit data 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
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

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

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

  • x_samp (ndarray) – Sampling points as Isp, twr tuples

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

  • failures (ndarray) – Matrix of boolean to verify each NLP solution has converged

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

  • trained (IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB or RMTC) – Surrogate model object defined by SMT

References

2(1,2)

M. A. Bouhlel and J. T. Hwang and N. Bartoli and R. Lafage and J. Morlier and J. R. R. A. Martins. A Python surrogate modeling framework with derivatives. Advances in Engineering Software, 2019.

static abs_path(rec_file)[source]

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

load(rec_file)[source]

Loads stored data to instantiate a surrogate model.

Parameters

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

save(rec_file)[source]

Saves data corresponding to a surrogate model instance.

Parameters

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

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')[source]

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

static solve(nlp, i)[source]

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)[source]

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects

evaluate(isp, twr)[source]

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

compute_matrix(nb_eval=None)[source]

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

plot(nb_eval=None, nb_lines=50, kind='prop')[source]

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

class latom.surrogate.smt_surrogates.TwoDimAscConstSurrogate(train_method, rec_file=None)[source]

Bases: latom.surrogate.smt_surrogates.SurrogateModel

TwoDimAscConstSurrogate implements SurrogateModel for a two-dimensional ascent trajectory at constant thrust.

sampling(body, isp_lim, twr_lim, alt, theta, tof, t_bounds, method, nb_seg, order, solver, nb_samp, samp_method='lhs', criterion='m', snopt_opts=None, u_bound='lower')[source]

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

Parameters
  • body (Primary) – Central attracting body

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

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

  • alt (float) – Orbit altitude [m]

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

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

  • 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) – Total number of sampling points

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is lhs

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively. Default is m

  • 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 lower

static abs_path(rec_file)

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

compute_matrix(nb_eval=None)

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

evaluate(isp, twr)

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

load(rec_file)

Loads stored data to instantiate a surrogate model.

Parameters

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

plot(nb_eval=None, nb_lines=50, kind='prop')

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

save(rec_file)

Saves data corresponding to a surrogate model instance.

Parameters

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

static solve(nlp, i)

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects

class latom.surrogate.smt_surrogates.TwoDimAscVarSurrogate(train_method, rec_file=None)[source]

Bases: latom.surrogate.smt_surrogates.SurrogateModel

TwoDimAscVarSurrogate implements SurrogateModel for a two-dimensional ascent trajectory with variable thrust.

sampling(body, isp_lim, twr_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, samp_method='lhs', criterion='m', snopt_opts=None, u_bound='lower')[source]

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

Parameters
  • body (Primary) – Central attracting body

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

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

  • 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) – Total number of sampling points

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is lhs

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively. Default is m

  • 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 lower

static abs_path(rec_file)

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

compute_matrix(nb_eval=None)

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

evaluate(isp, twr)

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

load(rec_file)

Loads stored data to instantiate a surrogate model.

Parameters

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

plot(nb_eval=None, nb_lines=50, kind='prop')

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

save(rec_file)

Saves data corresponding to a surrogate model instance.

Parameters

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

static solve(nlp, i)

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects

class latom.surrogate.smt_surrogates.TwoDimAscVToffSurrogate(train_method, rec_file=None)[source]

Bases: latom.surrogate.smt_surrogates.SurrogateModel

TwoDimAscVToffSurrogate implements SurrogateModel for a two-dimensional ascent trajectory with variable thrust and minimum safe altitude.

sampling(body, isp_lim, twr_lim, alt, alt_safe, slope, t_bounds, method, nb_seg, order, solver, nb_samp, samp_method='lhs', criterion='m', snopt_opts=None, u_bound='lower')[source]

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

Parameters
  • body (Primary) – Central attracting body

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

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

  • alt (float) – Orbit altitude [m]

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

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

  • 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) – Total number of sampling points

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is lhs

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively. Default is m

  • 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 lower

static abs_path(rec_file)

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

compute_matrix(nb_eval=None)

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

evaluate(isp, twr)

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

load(rec_file)

Loads stored data to instantiate a surrogate model.

Parameters

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

plot(nb_eval=None, nb_lines=50, kind='prop')

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

save(rec_file)

Saves data corresponding to a surrogate model instance.

Parameters

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

static solve(nlp, i)

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects

class latom.surrogate.smt_surrogates.TwoDimDescConstSurrogate(train_method, rec_file=None)[source]

Bases: latom.surrogate.smt_surrogates.SurrogateModel

TwoDimDescConstSurrogate implements SurrogateModel for a two-dimensional descent trajectory at constant thrust.

sampling(body, isp_lim, twr_lim, alt, alt_p, theta, tof, t_bounds, method, nb_seg, order, solver, nb_samp, samp_method='lhs', criterion='m', snopt_opts=None, u_bound='upper')[source]

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

Parameters
  • body (Primary) – Central attracting body

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

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

  • alt (float) – Orbit altitude [m]

  • 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]

  • 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) – Total number of sampling points

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is lhs

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively. Default is m

  • 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 upper

static abs_path(rec_file)

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

compute_matrix(nb_eval=None)

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

evaluate(isp, twr)

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

load(rec_file)

Loads stored data to instantiate a surrogate model.

Parameters

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

plot(nb_eval=None, nb_lines=50, kind='prop')

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

save(rec_file)

Saves data corresponding to a surrogate model instance.

Parameters

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

static solve(nlp, i)

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects

class latom.surrogate.smt_surrogates.TwoDimDescVarSurrogate(train_method, rec_file=None)[source]

Bases: latom.surrogate.smt_surrogates.SurrogateModel

TwoDimDescVarSurrogate implements SurrogateModel for a two-dimensional descent trajectory with variable thrust.

sampling(body, isp_lim, twr_lim, alt, t_bounds, method, nb_seg, order, solver, nb_samp, samp_method='lhs', criterion='m', snopt_opts=None, u_bound='upper')[source]

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

Parameters
  • body (Primary) – Central attracting body

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

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

  • 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) – Total number of sampling points

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is lhs

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively. Default is m

  • 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 upper

static abs_path(rec_file)

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

compute_matrix(nb_eval=None)

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

evaluate(isp, twr)

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

load(rec_file)

Loads stored data to instantiate a surrogate model.

Parameters

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

plot(nb_eval=None, nb_lines=50, kind='prop')

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

save(rec_file)

Saves data corresponding to a surrogate model instance.

Parameters

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

static solve(nlp, i)

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects

class latom.surrogate.smt_surrogates.TwoDimDescVLandSurrogate(train_method, rec_file=None)[source]

Bases: latom.surrogate.smt_surrogates.SurrogateModel

TwoDimDescVLandSurrogate implements SurrogateModel for a two-dimensional descent trajectory with variable thrust and constrained minimum altitude.

sampling(body, isp_lim, twr_lim, alt, alt_safe, slope, t_bounds, method, nb_seg, order, solver, nb_samp, samp_method='lhs', criterion='m', snopt_opts=None, u_bound='upper')[source]

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

Parameters
  • body (Primary) – Central attracting body

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

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

  • alt (float) – Orbit altitude [m]

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

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

  • 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) – Total number of sampling points

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is lhs

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively. Default is m

  • 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 upper

static abs_path(rec_file)

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

compute_matrix(nb_eval=None)

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

evaluate(isp, twr)

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

load(rec_file)

Loads stored data to instantiate a surrogate model.

Parameters

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

plot(nb_eval=None, nb_lines=50, kind='prop')

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

save(rec_file)

Saves data corresponding to a surrogate model instance.

Parameters

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

static solve(nlp, i)

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects

class latom.surrogate.smt_surrogates.TwoDimDescVertSurrogate(train_method, rec_file=None)[source]

Bases: latom.surrogate.smt_surrogates.SurrogateModel

TwoDimDescVertSurrogate implements SurrogateModel for a two-dimensional descent trajectory at constant thrust with final vertical descent phase.

sampling(body, isp_lim, twr_lim, alt, alt_p, alt_switch, theta, tof, t_bounds, method, nb_seg, order, solver, nb_samp, samp_method='lhs', criterion='m', snopt_opts=None)[source]

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

Parameters
  • body (Primary) – Central attracting body

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

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

  • alt (float) – Orbit altitude [m]

  • alt_p (float) – Periapsis altitude where the final 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 (iterable) – Guessed time of flight for the two phases [s]

  • 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) – Total number of sampling points

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is lhs

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively. Default is m

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

static abs_path(rec_file)

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

Parameters

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

Returns

fid – Full path where the surrogate model is stored

Return type

str

compute_grid(isp_lim, twr_lim, nb_samp, samp_method='full', criterion='m')

Compute the sampling grid fro given Isp and twr limits and sampling scheme.

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

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

  • nb_samp (int) – Total number of samples. Must be a perfect square if full is chosen as samp_method

  • samp_method (str, optional) – Sampling scheme, lhs for Latin Hypercube Sampling or full for Full-Factorial Sampling. Default is full

  • criterion (str, optional) – Criterion used to construct the LHS design among center, maximin, centermaximin, correlation, c, m, cm, corr, ese. c, m, cm and corr are abbreviations of center, maximin, centermaximin and correlation, respectively Default is m

compute_matrix(nb_eval=None)

Compute structured matrices for Isp, twr and m_prop to display the training data on a response surface.

Parameters

nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

Returns

  • isp (ndarray) – Matrix of specific impulses [s]

  • twr (ndarray) – Matrix of thrust/weight ratios [-]

  • m_mat (ndarray) – Matrix of propellant fractions [-]

evaluate(isp, twr)

Evaluate the surrogate model in the given set of points.

Parameters
  • isp (float or iterable) – Specific impulse on evaluation points [s]

  • twr (float or iterable) – Thrust/weight ratio on evaluation points [-]

Returns

m_eval – Propellant fraction on evaluation points [-]

Return type

float or iterable

load(rec_file)

Loads stored data to instantiate a surrogate model.

Parameters

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

plot(nb_eval=None, nb_lines=50, kind='prop')

Plot the response surface corresponding to the loaded surrogate model.

Parameters
  • nb_eval (int or None) – Number of points included in the matrix if Latin Hypercube Sampling has been used or None. Default is None

  • 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

save(rec_file)

Saves data corresponding to a surrogate model instance.

Parameters

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

static solve(nlp, i)

Solve the i-th NLP problem.

Parameters
  • nlp (NLP) – NLP object

  • i (int) – Current iteration

Returns

  • m_prop (float) – Propellant fraction [-]

  • f (bool) – Failure status

train(train_method, **kwargs)

Trains the surrogate model with given training data.

Parameters
  • train_method (str) – Training method among IDW, KPLS, KPLSK, KRG, LS, QP, RBF, RMTB, RMTC

  • kwargs (dict) – Additional keyword arguments supported by SMT objects