Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
corbo::DiscretizationGridInterface Class Referenceabstract

Generic interface class for discretization grids. More...

#include <discretization_grid_interface.h>

Inheritance diagram for corbo::DiscretizationGridInterface:
Inheritance graph
[legend]

Public Types

using Ptr = std::shared_ptr< DiscretizationGridInterface >
 
using UPtr = std::unique_ptr< DiscretizationGridInterface >
 
- Public Types inherited from corbo::VertexSetInterface
using Ptr = std::shared_ptr< VertexSetInterface >
 

Public Member Functions

void clear () override=0
 
 DiscretizationGridInterface ()=default
 
 DiscretizationGridInterface (int state_dim, int control_dim)
 
virtual double getFinalTime () const =0
 
virtual bool getFirstControlInput (Eigen::VectorXd &u0)=0
 
virtual double getFirstDt () const =0
 
virtual double getInitialDt () const =0
 
virtual int getInitialN () const =0
 
virtual Ptr getInstance () const =0
 Return a newly created shared instance of the implemented class. More...
 
virtual int getN () const =0
 
virtual void getStateAndControlTimeSeries (TimeSeries::Ptr x_sequence, TimeSeries::Ptr u_sequence, double t_max=CORBO_INF_DBL) const =0
 Return state and control trajectory as time series object (shared instance) More...
 
virtual bool hasConstantControls () const =0
 
virtual bool hasSingleDt () const =0
 
virtual bool isEmpty () const =0
 
virtual bool isTimeVariableGrid () const =0
 
virtual bool isUniformGrid () const =0
 
virtual bool providesStateTrajectory () const =0
 
virtual void setInitialDt (double dt)=0
 
virtual void setN (int n, bool try_resample=true)=0
 Return dimension of the control input dimension in the grid. More...
 
virtual GridUpdateResult update (const Eigen::VectorXd &x0, ReferenceTrajectoryInterface &xref, ReferenceTrajectoryInterface &uref, NlpFunctions &nlp_fun, OptimizationEdgeSet &edges, SystemDynamicsInterface::Ptr dynamics, bool new_run, const Time &t, ReferenceTrajectoryInterface *sref=nullptr, const Eigen::VectorXd *prev_u=nullptr, double prev_u_dt=0, ReferenceTrajectoryInterface *xinit=nullptr, ReferenceTrajectoryInterface *uinit=nullptr)=0
 
virtual ~DiscretizationGridInterface ()=default
 Virtual destructor. More...
 
- Public Member Functions inherited from corbo::VertexSetInterface
void applyIncrementNonFixed (const Eigen::Ref< const Eigen::VectorXd > &increment)
 Active vertices related methods. More...
 
void applyIncrementNonFixed (int idx, double increment)
 
void backupParametersActiveVertices ()
 
void clearConnectedEdges ()
 
void computeVertexIndices ()
 Precompute vertex indices in the hyper-graph (e.g. for the Jacobian or Hessian structure) More...
 
void discardBackupParametersActiveVertices (bool all=false)
 
void getBounds (Eigen::Ref< Eigen::VectorXd > lb, Eigen::Ref< Eigen::VectorXd > ub)
 
double getLowerBound (int idx)
 
int getParameterDimension ()
 
double getParameterValue (int idx)
 
void getParameterVector (Eigen::Ref< Eigen::VectorXd > x)
 
double getUpperBound (int idx)
 
bool isModified () const
 
void restoreBackupParametersActiveVertices (bool keep_backup)
 
void setBounds (const Eigen::Ref< const Eigen::VectorXd > &lb, const Eigen::Ref< const Eigen::VectorXd > &ub)
 
void setLowerBound (int idx, double lb)
 
void setModified (bool modified)
 
void setParameterValue (int idx, double x)
 
void setParameterVector (const Eigen::Ref< const Eigen::VectorXd > &x)
 
void setUpperBound (int idx, double ub)
 
 VertexSetInterface ()
 
virtual ~VertexSetInterface ()
 Virtual destructor. More...
 

Static Public Member Functions

static Factory< DiscretizationGridInterface > & getFactory ()
 Get access to the accociated factory. More...
 

Protected Member Functions

void computeActiveVertices () override=0
 
std::vector< VertexInterface * > & getActiveVertices () override=0
 
void getVertices (std::vector< VertexInterface *> &vertices) override=0
 
void setLastControlRef (const Eigen::VectorXd &last_u_ref)
 
void setPreviousControl (const Eigen::VectorXd &prev_u, double prev_u_dt)
 
- Protected Member Functions inherited from corbo::VertexSetInterface
void setVertexIdx (VertexInterface &vertex, int idx)
 

Protected Attributes

VectorVertex _u_prev
 
ScalarVertex _u_prev_dt
 
VectorVertex _u_ref
 
- Protected Attributes inherited from corbo::VertexSetInterface
bool _modified = true
 

Detailed Description

Generic interface class for discretization grids.

This abstract class defines the interface for discretization grids. Discretization grids represent state and control sequences subject to optimziation. Usually, in direct optimal control, continuous-time trajectories are discretized in order to transform the optimization problem into a finite parameter nonlinear optimization problem, also called nonlinear program.

A discretization grid directly interacts with a Hyper-Graph to define the optimal control problem. Hence, the grid provides the relevant vertices (optimization parameters) and the corresponding edge creation.

Remarks
This interface is provided with factory support (DiscretizationGridFactory).
See also
HyperGraph
Author
Christoph Rösmann (chris.nosp@m.toph.nosp@m..roes.nosp@m.mann.nosp@m.@tu-d.nosp@m.ortm.nosp@m.und.d.nosp@m.e)

Definition at line 82 of file discretization_grid_interface.h.

Member Typedef Documentation

◆ Ptr

Definition at line 85 of file discretization_grid_interface.h.

◆ UPtr

Definition at line 86 of file discretization_grid_interface.h.

Constructor & Destructor Documentation

◆ DiscretizationGridInterface() [1/2]

corbo::DiscretizationGridInterface::DiscretizationGridInterface ( )
default

◆ DiscretizationGridInterface() [2/2]

corbo::DiscretizationGridInterface::DiscretizationGridInterface ( int  state_dim,
int  control_dim 
)

◆ ~DiscretizationGridInterface()

virtual corbo::DiscretizationGridInterface::~DiscretizationGridInterface ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ clear()

void corbo::DiscretizationGridInterface::clear ( )
overridepure virtual

◆ computeActiveVertices()

void corbo::DiscretizationGridInterface::computeActiveVertices ( )
overrideprotectedpure virtual

◆ getActiveVertices()

std::vector<VertexInterface*>& corbo::DiscretizationGridInterface::getActiveVertices ( )
overrideprotectedpure virtual

◆ getFactory()

static Factory<DiscretizationGridInterface>& corbo::DiscretizationGridInterface::getFactory ( )
inlinestatic

Get access to the accociated factory.

Definition at line 106 of file discretization_grid_interface.h.

◆ getFinalTime()

virtual double corbo::DiscretizationGridInterface::getFinalTime ( ) const
pure virtual

◆ getFirstControlInput()

virtual bool corbo::DiscretizationGridInterface::getFirstControlInput ( Eigen::VectorXd &  u0)
pure virtual

◆ getFirstDt()

virtual double corbo::DiscretizationGridInterface::getFirstDt ( ) const
pure virtual

◆ getInitialDt()

virtual double corbo::DiscretizationGridInterface::getInitialDt ( ) const
pure virtual

◆ getInitialN()

virtual int corbo::DiscretizationGridInterface::getInitialN ( ) const
pure virtual

◆ getInstance()

virtual Ptr corbo::DiscretizationGridInterface::getInstance ( ) const
pure virtual

◆ getN()

virtual int corbo::DiscretizationGridInterface::getN ( ) const
pure virtual

◆ getStateAndControlTimeSeries()

virtual void corbo::DiscretizationGridInterface::getStateAndControlTimeSeries ( TimeSeries::Ptr  x_sequence,
TimeSeries::Ptr  u_sequence,
double  t_max = CORBO_INF_DBL 
) const
pure virtual

◆ getVertices()

void corbo::DiscretizationGridInterface::getVertices ( std::vector< VertexInterface *> &  vertices)
overrideprotectedpure virtual

◆ hasConstantControls()

virtual bool corbo::DiscretizationGridInterface::hasConstantControls ( ) const
pure virtual

◆ hasSingleDt()

virtual bool corbo::DiscretizationGridInterface::hasSingleDt ( ) const
pure virtual

◆ isEmpty()

virtual bool corbo::DiscretizationGridInterface::isEmpty ( ) const
pure virtual

◆ isTimeVariableGrid()

virtual bool corbo::DiscretizationGridInterface::isTimeVariableGrid ( ) const
pure virtual

◆ isUniformGrid()

virtual bool corbo::DiscretizationGridInterface::isUniformGrid ( ) const
pure virtual

◆ providesStateTrajectory()

virtual bool corbo::DiscretizationGridInterface::providesStateTrajectory ( ) const
pure virtual

◆ setInitialDt()

virtual void corbo::DiscretizationGridInterface::setInitialDt ( double  dt)
pure virtual

◆ setLastControlRef()

void corbo::DiscretizationGridInterface::setLastControlRef ( const Eigen::VectorXd &  last_u_ref)
inlineprotected

Definition at line 161 of file discretization_grid_interface.h.

◆ setN()

virtual void corbo::DiscretizationGridInterface::setN ( int  n,
bool  try_resample = true 
)
pure virtual

Return dimension of the control input dimension in the grid.

Implemented in corbo::NonUniformShootingGridBase, corbo::ShootingGridBase, corbo::FullDiscretizationGridBase, and corbo::NonUniformFullDiscretizationGridBase.

◆ setPreviousControl()

void corbo::DiscretizationGridInterface::setPreviousControl ( const Eigen::VectorXd &  prev_u,
double  prev_u_dt 
)
inlineprotected

Definition at line 153 of file discretization_grid_interface.h.

◆ update()

virtual GridUpdateResult corbo::DiscretizationGridInterface::update ( const Eigen::VectorXd &  x0,
ReferenceTrajectoryInterface xref,
ReferenceTrajectoryInterface uref,
NlpFunctions nlp_fun,
OptimizationEdgeSet edges,
SystemDynamicsInterface::Ptr  dynamics,
bool  new_run,
const Time t,
ReferenceTrajectoryInterface sref = nullptr,
const Eigen::VectorXd *  prev_u = nullptr,
double  prev_u_dt = 0,
ReferenceTrajectoryInterface xinit = nullptr,
ReferenceTrajectoryInterface uinit = nullptr 
)
pure virtual

Member Data Documentation

◆ _u_prev

VectorVertex corbo::DiscretizationGridInterface::_u_prev
protected

Definition at line 168 of file discretization_grid_interface.h.

◆ _u_prev_dt

ScalarVertex corbo::DiscretizationGridInterface::_u_prev_dt
protected

Definition at line 169 of file discretization_grid_interface.h.

◆ _u_ref

VectorVertex corbo::DiscretizationGridInterface::_u_ref
protected

Definition at line 170 of file discretization_grid_interface.h.


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


control_box_rst
Author(s): Christoph Rösmann
autogenerated on Mon Feb 28 2022 22:08:02