Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
janus::TranscriptionBase< Derived > Class Template Reference

Shared CRTP base for transcription methods. More...

#include <TranscriptionBase.hpp>

Collaboration diagram for janus::TranscriptionBase< Derived >:

Public Member Functions

 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_initial_state (int idx, double value)
 Pin a single initial state component.
void set_final_state (const NumericVector &xf)
 Pin all final states to specified values.
void set_final_state (int idx, double value)
 Pin a single final state component.
template<typename Func>
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().

Protected Member Functions

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

Optiopti_
int n_states_ = 0
int n_controls_ = 0
int n_nodes_ = 0
double t0_ = 0.0
double tf_fixed_ = 1.0
SymbolicScalar tf_symbolic_
bool tf_is_variable_ = false
bool setup_complete_ = false
bool dynamics_set_ = false
bool dynamics_constraints_added_ = false
NumericVector tau_
SymbolicMatrix states_
SymbolicMatrix controls_
std::function< SymbolicVector(const SymbolicVector &, const SymbolicVector &, const SymbolicScalar &)> dynamics_

Detailed Description

template<typename Derived>
class janus::TranscriptionBase< Derived >

Shared CRTP base for transcription methods.

Template Parameters
DerivedCRTP derived class (e.g. DirectCollocation, Pseudospectral)
See also
DirectCollocation for direct collocation transcription
Pseudospectral for pseudospectral transcription
MultipleShooting for multiple shooting transcription
BirkhoffPseudospectral for Birkhoff pseudospectral transcription

Constructor & Destructor Documentation

◆ TranscriptionBase()

template<typename Derived>
janus::TranscriptionBase< Derived >::TranscriptionBase ( Opti & opti)
inlineexplicit

Construct with a reference to the optimization environment.

Parameters
optiOpti instance to add variables and constraints to

Member Function Documentation

◆ add_continuity_constraints()

template<typename Derived>
void janus::TranscriptionBase< Derived >::add_continuity_constraints ( )
inline

◆ add_defect_constraints()

template<typename Derived>
void janus::TranscriptionBase< Derived >::add_defect_constraints ( )
inline

◆ add_dynamics_constraints()

template<typename Derived>
void janus::TranscriptionBase< Derived >::add_dynamics_constraints ( )
inline

Add dynamics constraints to the optimization problem.

◆ controls()

template<typename Derived>
const SymbolicMatrix & janus::TranscriptionBase< Derived >::controls ( ) const
inline

Get the control decision variable matrix.

Returns
matrix of size (n_nodes x n_controls) or (n_intervals x n_controls)

◆ get_control_at_node()

template<typename Derived>
SymbolicVector janus::TranscriptionBase< Derived >::get_control_at_node ( int k) const
inlineprotected

◆ get_duration()

template<typename Derived>
SymbolicScalar janus::TranscriptionBase< Derived >::get_duration ( ) const
inlineprotected

◆ get_state_at_node()

template<typename Derived>
SymbolicVector janus::TranscriptionBase< Derived >::get_state_at_node ( int k) const
inlineprotected

◆ get_time_at_node()

template<typename Derived>
SymbolicScalar janus::TranscriptionBase< Derived >::get_time_at_node ( int k) const
inlineprotected

◆ n_controls()

template<typename Derived>
int janus::TranscriptionBase< Derived >::n_controls ( ) const
inline

Get the number of control variables per node.

Returns
control dimension

◆ n_nodes()

template<typename Derived>
int janus::TranscriptionBase< Derived >::n_nodes ( ) const
inline

Get the number of discretization nodes.

Returns
node count

◆ n_states()

template<typename Derived>
int janus::TranscriptionBase< Derived >::n_states ( ) const
inline

Get the number of state variables per node.

Returns
state dimension

◆ set_dynamics()

template<typename Derived>
template<typename Func>
void janus::TranscriptionBase< Derived >::set_dynamics ( Func && dynamics)
inline

Register the dynamics function xdot = f(x, u, t).

Template Parameters
Funccallable with signature SymbolicVector(const SymbolicVector&, const SymbolicVector&, const SymbolicScalar&)
Parameters
dynamicsdynamics function

◆ set_final_state() [1/2]

template<typename Derived>
void janus::TranscriptionBase< Derived >::set_final_state ( const NumericVector & xf)
inline

Pin all final states to specified values.

Parameters
xfstate vector at the final time

◆ set_final_state() [2/2]

template<typename Derived>
void janus::TranscriptionBase< Derived >::set_final_state ( int idx,
double value )
inline

Pin a single final state component.

Parameters
idxstate index
valuefixed value for that state

◆ set_initial_state() [1/2]

template<typename Derived>
void janus::TranscriptionBase< Derived >::set_initial_state ( const NumericVector & x0)
inline

Pin all initial states to specified values.

Parameters
x0state vector at the initial time

◆ set_initial_state() [2/2]

template<typename Derived>
void janus::TranscriptionBase< Derived >::set_initial_state ( int idx,
double value )
inline

Pin a single initial state component.

Parameters
idxstate index
valuefixed value for that state

◆ states()

template<typename Derived>
const SymbolicMatrix & janus::TranscriptionBase< Derived >::states ( ) const
inline

Get the state decision variable matrix.

Returns
matrix of size (n_nodes x n_states)

◆ time_grid()

template<typename Derived>
const NumericVector & janus::TranscriptionBase< Derived >::time_grid ( ) const
inline

Get the normalized time grid.

Returns
vector of node times in [0, 1]

Member Data Documentation

◆ controls_

template<typename Derived>
SymbolicMatrix janus::TranscriptionBase< Derived >::controls_
protected

◆ dynamics_

template<typename Derived>
std::function<SymbolicVector(const SymbolicVector &, const SymbolicVector &, const SymbolicScalar &)> janus::TranscriptionBase< Derived >::dynamics_
protected

◆ dynamics_constraints_added_

template<typename Derived>
bool janus::TranscriptionBase< Derived >::dynamics_constraints_added_ = false
protected

◆ dynamics_set_

template<typename Derived>
bool janus::TranscriptionBase< Derived >::dynamics_set_ = false
protected

◆ n_controls_

template<typename Derived>
int janus::TranscriptionBase< Derived >::n_controls_ = 0
protected

◆ n_nodes_

template<typename Derived>
int janus::TranscriptionBase< Derived >::n_nodes_ = 0
protected

◆ n_states_

template<typename Derived>
int janus::TranscriptionBase< Derived >::n_states_ = 0
protected

◆ opti_

template<typename Derived>
Opti& janus::TranscriptionBase< Derived >::opti_
protected

◆ setup_complete_

template<typename Derived>
bool janus::TranscriptionBase< Derived >::setup_complete_ = false
protected

◆ states_

template<typename Derived>
SymbolicMatrix janus::TranscriptionBase< Derived >::states_
protected

◆ t0_

template<typename Derived>
double janus::TranscriptionBase< Derived >::t0_ = 0.0
protected

◆ tau_

template<typename Derived>
NumericVector janus::TranscriptionBase< Derived >::tau_
protected

◆ tf_fixed_

template<typename Derived>
double janus::TranscriptionBase< Derived >::tf_fixed_ = 1.0
protected

◆ tf_is_variable_

template<typename Derived>
bool janus::TranscriptionBase< Derived >::tf_is_variable_ = false
protected

◆ tf_symbolic_

template<typename Derived>
SymbolicScalar janus::TranscriptionBase< Derived >::tf_symbolic_
protected

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