Interface class for collocation based system dynamics evaluation. More...
#include <collocation_interface.h>
Public Types | |
using | InputVector = Eigen::VectorXd |
using | Ptr = std::shared_ptr< CollocationInterface > |
using | StateVector = Eigen::VectorXd |
using | UPtr = std::unique_ptr< CollocationInterface > |
![]() | |
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... | |
![]() | |
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 Factory< DynamicsEvalInterface > & | getFactory () |
Get access to the accociated factory. More... | |
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
Definition at line 63 of file collocation_interface.h.
using corbo::CollocationInterface::InputVector = Eigen::VectorXd |
Definition at line 70 of file collocation_interface.h.
using corbo::CollocationInterface::Ptr = std::shared_ptr<CollocationInterface> |
Definition at line 66 of file collocation_interface.h.
using corbo::CollocationInterface::StateVector = Eigen::VectorXd |
Definition at line 69 of file collocation_interface.h.
using corbo::CollocationInterface::UPtr = std::unique_ptr<CollocationInterface> |
Definition at line 67 of file collocation_interface.h.
|
inlinevirtual |
Virtual destructor.
Definition at line 73 of file collocation_interface.h.
|
overridepure 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) |
Implements corbo::DynamicsEvalInterface.
Implemented in corbo::QuadratureCollocationInterface.
|
overridepure virtual |
Return a newly allocated instances of the inherited class.
Implements corbo::DynamicsEvalInterface.
Implemented in corbo::QuadratureHermiteSimpson, corbo::QuadratureHermiteSimpsonLinearControl, corbo::QuadratureTrapezoidalRule, corbo::QuadratureCollocationInterface, and corbo::QuadratureRectangleRule.
|
inlineoverridevirtual |
Implements corbo::DynamicsEvalInterface.
Reimplemented in corbo::QuadratureHermiteSimpson, corbo::QuadratureHermiteSimpsonLinearControl, corbo::QuadratureTrapezoidalRule, corbo::QuadratureRectangleRule, and corbo::QuadratureCollocationInterface.
Definition at line 94 of file collocation_interface.h.