Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
janus::Pseudospectral Class Reference

Pseudospectral (Gauss-Lobatto) transcription. More...

#include <Pseudospectral.hpp>

Inheritance diagram for janus::Pseudospectral:
Collaboration diagram for janus::Pseudospectral:

Public Member Functions

 Pseudospectral (Opti &opti)
 Construct with a reference to the optimization environment.
std::tuple< SymbolicMatrix, SymbolicMatrix, NumericVectorsetup (int n_states, int n_controls, double t0, double tf, const PseudospectralOptions &opts={})
 Set up the pseudospectral problem with fixed final time.
std::tuple< SymbolicMatrix, SymbolicMatrix, NumericVectorsetup (int n_states, int n_controls, double t0, const SymbolicScalar &tf, const PseudospectralOptions &opts={})
 Set up the pseudospectral problem with variable final time.
const NumericMatrixdiff_matrix () const
 Get the spectral differentiation matrix.
const NumericVectorquadrature_weights () const
 Get the quadrature weights.
SymbolicScalar quadrature (const SymbolicVector &integrand) const
 Compute quadrature of an integrand over the time domain.
Public Member Functions inherited from janus::TranscriptionBase< Pseudospectral >
 TranscriptionBase (Opti &opti)
 Construct with a reference to the optimization environment.
void set_initial_state (const NumericVector &x0)
 Pin all initial states to specified values.
void set_final_state (const NumericVector &xf)
 Pin all final states to specified values.
void set_dynamics (Func &&dynamics)
 Register the dynamics function xdot = f(x, u, t).
const SymbolicMatrixstates () const
 Get the state decision variable matrix.
const SymbolicMatrixcontrols () const
 Get the control decision variable matrix.
const NumericVectortime_grid () const
 Get the normalized time grid.
int n_nodes () const
 Get the number of discretization nodes.
int n_states () const
 Get the number of state variables per node.
int n_controls () const
 Get the number of control variables per node.
void add_dynamics_constraints ()
 Add dynamics constraints to the optimization problem.
void add_defect_constraints ()
 Alias for add_dynamics_constraints().
void add_continuity_constraints ()
 Alias for add_dynamics_constraints().

Friends

class TranscriptionBase< Pseudospectral >

Additional Inherited Members

Protected Member Functions inherited from janus::TranscriptionBase< Pseudospectral >
SymbolicScalar get_duration () const
SymbolicScalar get_time_at_node (int k) const
SymbolicVector get_state_at_node (int k) const
SymbolicVector get_control_at_node (int k) const
Protected Attributes inherited from janus::TranscriptionBase< Pseudospectral >
Optiopti_
int n_states_
int n_controls_
int n_nodes_
double t0_
double tf_fixed_
SymbolicScalar tf_symbolic_
bool tf_is_variable_
bool setup_complete_
bool dynamics_set_
bool dynamics_constraints_added_
NumericVector tau_
SymbolicMatrix states_
SymbolicMatrix controls_
std::function< SymbolicVector(const SymbolicVector &, const SymbolicVector &, const SymbolicScalar &)> dynamics_

Detailed Description

Pseudospectral (Gauss-Lobatto) transcription.

See also
TranscriptionBase for shared interface
PseudospectralOptions for configuration
BirkhoffPseudospectral for Birkhoff variant

Constructor & Destructor Documentation

◆ Pseudospectral()

janus::Pseudospectral::Pseudospectral ( Opti & opti)
inlineexplicit

Construct with a reference to the optimization environment.

Parameters
optiOpti instance

Member Function Documentation

◆ diff_matrix()

const NumericMatrix & janus::Pseudospectral::diff_matrix ( ) const
inline

Get the spectral differentiation matrix.

Returns
n_nodes x n_nodes differentiation matrix

◆ quadrature()

SymbolicScalar janus::Pseudospectral::quadrature ( const SymbolicVector & integrand) const
inline

Compute quadrature of an integrand over the time domain.

Parameters
integrandsymbolic vector of values at each node
Returns
symbolic scalar approximation of the definite integral

◆ quadrature_weights()

const NumericVector & janus::Pseudospectral::quadrature_weights ( ) const
inline

Get the quadrature weights.

Returns
vector of quadrature weights on [-1, 1]

◆ setup() [1/2]

std::tuple< SymbolicMatrix, SymbolicMatrix, NumericVector > janus::Pseudospectral::setup ( int n_states,
int n_controls,
double t0,
const SymbolicScalar & tf,
const PseudospectralOptions & opts = {} )
inline

Set up the pseudospectral problem with variable final time.

Parameters
n_statesnumber of state variables
n_controlsnumber of control variables
t0initial time
tfsymbolic final time (decision variable)
optspseudospectral options
Returns
tuple of (states, controls, time_grid)

◆ setup() [2/2]

std::tuple< SymbolicMatrix, SymbolicMatrix, NumericVector > janus::Pseudospectral::setup ( int n_states,
int n_controls,
double t0,
double tf,
const PseudospectralOptions & opts = {} )
inline

Set up the pseudospectral problem with fixed final time.

Parameters
n_statesnumber of state variables
n_controlsnumber of control variables
t0initial time
tffinal time
optspseudospectral options
Returns
tuple of (states, controls, time_grid)

◆ TranscriptionBase< Pseudospectral >

friend class TranscriptionBase< Pseudospectral >
friend

The documentation for this class was generated from the following file: