Interface class for finite difference based collocation. More...
#include <finite_differences_collocation.h>
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... | |
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
Definition at line 60 of file finite_differences_collocation.h.
using corbo::FiniteDifferencesCollocationInterface::InputVector = Eigen::VectorXd |
Definition at line 67 of file finite_differences_collocation.h.
using corbo::FiniteDifferencesCollocationInterface::Ptr = std::shared_ptr<FiniteDifferencesCollocationInterface> |
Definition at line 63 of file finite_differences_collocation.h.
using corbo::FiniteDifferencesCollocationInterface::StateVector = Eigen::VectorXd |
Definition at line 66 of file finite_differences_collocation.h.
using corbo::FiniteDifferencesCollocationInterface::UPtr = std::unique_ptr<FiniteDifferencesCollocationInterface> |
Definition at line 64 of file finite_differences_collocation.h.
|
virtualdefault |
Virtual destructor.
|
pure virtual |
Compute differentiation error (system dynamics)
.
[in] | x1 | Initial state vector [SystemDynamicsInterface::getStateDimension() x 1] |
[in] | u1 | Constant control input vector [SystemDynamicsInterface::getInputDimension() x 1] |
[in] | x2 | Final state vector [SystemDynamicsInterface::getStateDimension() x 1] |
[in] | dt | Time interval length |
[in] | system | System dynamics object |
[out] | error | Resulting error [SystemDynamicsInterface::getStateDimension() x 1] (must be preallocated) |
Implemented in corbo::CrankNicolsonDiffCollocation, corbo::MidpointDiffCollocation, corbo::BackwardDiffCollocation, and corbo::ForwardDiffCollocation.
|
inlinestatic |
Get access to the associated factory.
Definition at line 75 of file finite_differences_collocation.h.
|
pure virtual |
Return a newly allocated instances of the inherited class.
Implemented in corbo::CrankNicolsonDiffCollocation, corbo::MidpointDiffCollocation, corbo::BackwardDiffCollocation, and corbo::ForwardDiffCollocation.