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

Interface class for collocation based system dynamics evaluation. More...

#include <collocation_interface.h>

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

Public Types

using InputVector = Eigen::VectorXd
 
using Ptr = std::shared_ptr< CollocationInterface >
 
using StateVector = Eigen::VectorXd
 
using UPtr = std::unique_ptr< CollocationInterface >
 
- Public Types inherited from corbo::DynamicsEvalInterface
using InputVector = Eigen::VectorXd
 
using Ptr = std::shared_ptr< DynamicsEvalInterface >
 
using StateVector = Eigen::VectorXd
 
using UPtr = std::unique_ptr< DynamicsEvalInterface >
 

Public Member Functions

void computeEqualityConstraint (const StateVector &x1, const InputVector &u1, const StateVector &x2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > error) override=0
 Compute differentiation error (system dynamics) More...
 
DynamicsEvalInterface::Ptr getInstance () const override=0
 Return a newly allocated instances of the inherited class. More...
 
bool interpolate (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &u1, const Eigen::Ref< const Eigen::VectorXd > &x2, const Eigen::Ref< const Eigen::VectorXd > &u2, double dt, const SystemDynamicsInterface &system, const Range &range, std::vector< Eigen::VectorXd > &states, std::vector< Eigen::VectorXd > &controls) override
 
virtual ~CollocationInterface ()
 Virtual destructor. More...
 
- Public Member Functions inherited from corbo::DynamicsEvalInterface
virtual bool interpolate (const std::vector< const Eigen::VectorXd *> &x, const std::vector< const Eigen::VectorXd *> &u, double dt, const SystemDynamicsInterface &system, const Range &range, std::vector< Eigen::VectorXd > &states, std::vector< Eigen::VectorXd > &controls)
 
virtual ~DynamicsEvalInterface ()
 Virtual destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from corbo::DynamicsEvalInterface
static Factory< DynamicsEvalInterface > & getFactory ()
 Get access to the accociated factory. More...
 

Detailed Description

Interface class for collocation based system dynamics evaluation.

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

Remarks
This interface is provided with factory support of its parent class (DynamicsEvalInterface).
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 63 of file collocation_interface.h.

Member Typedef Documentation

◆ InputVector

Definition at line 70 of file collocation_interface.h.

◆ Ptr

Definition at line 66 of file collocation_interface.h.

◆ StateVector

Definition at line 69 of file collocation_interface.h.

◆ UPtr

Definition at line 67 of file collocation_interface.h.

Constructor & Destructor Documentation

◆ ~CollocationInterface()

virtual corbo::CollocationInterface::~CollocationInterface ( )
inlinevirtual

Virtual destructor.

Definition at line 73 of file collocation_interface.h.

Member Function Documentation

◆ computeEqualityConstraint()

void corbo::CollocationInterface::computeEqualityConstraint ( const StateVector x1,
const InputVector u1,
const StateVector x2,
double  dt,
const SystemDynamicsInterface system,
Eigen::Ref< Eigen::VectorXd >  error 
)
overridepure 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)

Implements corbo::DynamicsEvalInterface.

Implemented in corbo::QuadratureCollocationInterface.

◆ getInstance()

DynamicsEvalInterface::Ptr corbo::CollocationInterface::getInstance ( ) const
overridepure virtual

◆ interpolate()

bool corbo::CollocationInterface::interpolate ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  u1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
const Eigen::Ref< const Eigen::VectorXd > &  u2,
double  dt,
const SystemDynamicsInterface system,
const Range range,
std::vector< Eigen::VectorXd > &  states,
std::vector< Eigen::VectorXd > &  controls 
)
inlineoverridevirtual

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