Public Types | Public Member Functions | Static Public Member Functions | List of all members
corbo::FiniteDifferencesCollocationInterface Class Referenceabstract

Interface class for finite difference based collocation. More...

#include <finite_differences_collocation.h>

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

Public Types

using InputVector = Eigen::VectorXd
 
using Ptr = std::shared_ptr< FiniteDifferencesCollocationInterface >
 
using StateVector = Eigen::VectorXd
 
using UPtr = std::unique_ptr< FiniteDifferencesCollocationInterface >
 

Public Member Functions

virtual void computeEqualityConstraint (const StateVector &x1, const InputVector &u1, const StateVector &x2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > error)=0
 Compute differentiation error (system dynamics) More...
 
virtual FiniteDifferencesCollocationInterface::Ptr getInstance () const =0
 Return a newly allocated instances of the inherited class. More...
 
virtual ~FiniteDifferencesCollocationInterface ()=default
 Virtual destructor. More...
 

Static Public Member Functions

static Factory< FiniteDifferencesCollocationInterface > & getFactory ()
 Get access to the associated factory. More...
 

Detailed Description

Interface class for finite difference based collocation.

This base class provides an interface for approximating continuous-time dynamics between two consecutive points.

Online references: http://www.control.lth.se/media/Education/DoctorateProgram/2011/OptimizationWithCasadi/lecture4b_short_slides.pdf https://mec560sbu.github.io/2016/09/30/direct_collocation/ http://epubs.siam.org/doi/pdf/10.1137/16M1062569

See also
ForwardDiffCollocation BackwardDiffCollocation MidpointDiffCollocation CrankNicolsonDiffCollocation CubicSplineCollocation DynamicsEvalInterface
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 60 of file finite_differences_collocation.h.

Member Typedef Documentation

◆ InputVector

Definition at line 67 of file finite_differences_collocation.h.

◆ Ptr

Definition at line 63 of file finite_differences_collocation.h.

◆ StateVector

Definition at line 66 of file finite_differences_collocation.h.

◆ UPtr

Definition at line 64 of file finite_differences_collocation.h.

Constructor & Destructor Documentation

◆ ~FiniteDifferencesCollocationInterface()

virtual corbo::FiniteDifferencesCollocationInterface::~FiniteDifferencesCollocationInterface ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ computeEqualityConstraint()

virtual void corbo::FiniteDifferencesCollocationInterface::computeEqualityConstraint ( const StateVector x1,
const InputVector u1,
const StateVector x2,
double  dt,
const SystemDynamicsInterface system,
Eigen::Ref< Eigen::VectorXd >  error 
)
pure virtual

Compute differentiation error (system dynamics)

\[ e = f(x,u,t) - \dot{x} \]

.

Parameters
[in]x1Initial state vector [SystemDynamicsInterface::getStateDimension() x 1]
[in]u1Constant control input vector [SystemDynamicsInterface::getInputDimension() x 1]
[in]x2Final state vector [SystemDynamicsInterface::getStateDimension() x 1]
[in]dtTime interval length
[in]systemSystem dynamics object
[out]errorResulting error [SystemDynamicsInterface::getStateDimension() x 1] (must be preallocated)

Implemented in corbo::CrankNicolsonDiffCollocation, corbo::MidpointDiffCollocation, corbo::BackwardDiffCollocation, and corbo::ForwardDiffCollocation.

◆ getFactory()

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

Get access to the associated factory.

Definition at line 75 of file finite_differences_collocation.h.

◆ getInstance()

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

Return a newly allocated instances of the inherited class.

Implemented in corbo::CrankNicolsonDiffCollocation, corbo::MidpointDiffCollocation, corbo::BackwardDiffCollocation, and corbo::ForwardDiffCollocation.


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