29 template <
size_t STATE_DIM,
size_t CONTROL_DIM,
typename SCALAR =
double>
33 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
43 : controlSpliner_(controlSpliner), shotIdx_(shotIdx)
58 controlAction = controlSpliner_->evalSpline(t, shotIdx_);
59 assert(controlAction == controlAction);
64 return controlSpliner_->splineDerivative_q_i(time, shotIdx_);
69 return controlSpliner_->splineDerivative_q_iplus1(time, shotIdx_);
74 std::shared_ptr<SplinerBase<control_vector_t, SCALAR>> controlSpliner_;
77 const size_t shotIdx_;
void computeControl(const state_vector_t &state, const SCALAR &t, control_vector_t &controlAction) override
Definition: ControllerDms.h:56
DIMENSIONS::state_vector_t state_vector_t
Definition: ControllerDms.h:36
~ControllerDms() override=default
DMS controller class.
Definition: ControllerDms.h:30
Abstract base class for the control input splining between the DMS shots.
Definition: SplinerBase.h:20
clear all close all load ct GNMSLog0 mat reformat t
Definition: gnmsPlot.m:6
core::ControlMatrix< CONTROL_DIM, SCALAR > getDerivativeUf(const state_vector_t &state, const SCALAR time) override
Definition: ControllerDms.h:67
core::ControlMatrix< CONTROL_DIM, SCALAR > getDerivativeU0(const state_vector_t &state, const SCALAR time) override
Definition: ControllerDms.h:62
CppAD::AD< CppAD::cg::CG< double > > SCALAR
Defines basic types used in the DMS algorithm.
Definition: DmsDimensions.h:18
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef DmsDimensions< STATE_DIM, CONTROL_DIM, SCALAR > DIMENSIONS
Definition: ControllerDms.h:35
ControllerDms(const ControllerDms &arg)
Definition: ControllerDms.h:48
DIMENSIONS::control_vector_t control_vector_t
Definition: ControllerDms.h:37
ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR > * clone() const override
Definition: ControllerDms.h:50
ControllerDms(std::shared_ptr< SplinerBase< control_vector_t, SCALAR >> controlSpliner, size_t shotIdx)
Definition: ControllerDms.h:42