- 3.0.2 optimal control module.
ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR > Class Template Reference

DMS controller class. More...

#include <ControllerDms.h>

Inheritance diagram for ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >:
ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >

Public Types

typedef DIMENSIONS::state_vector_t state_vector_t
 
typedef DIMENSIONS::control_vector_t control_vector_t
 

Public Member Functions

 ControllerDms ()=delete
 
 ControllerDms (std::shared_ptr< SplinerBase< control_vector_t, SCALAR >> controlSpliner, size_t shotIdx)
 
 ControllerDms (const ControllerDms &arg)
 
 ~ControllerDms () override=default
 
ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR > * clone () const override
 
void computeControl (const state_vector_t &state, const SCALAR &t, control_vector_t &controlAction) override
 
core::ControlMatrix< CONTROL_DIM, SCALARgetDerivativeU0 (const state_vector_t &state, const SCALAR time) override
 
core::ControlMatrix< CONTROL_DIM, SCALARgetDerivativeUf (const state_vector_t &state, const SCALAR time) override
 
- Public Member Functions inherited from ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Controller ()
 
 Controller (const Controller &other)
 
virtual ~Controller ()
 
virtual void computeControl (const StateVector< STATE_DIM, SCALAR > &state, const SCALAR &t, ControlVector< CONTROL_DIM, SCALAR > &controlAction)=0
 
virtual ControlMatrix< CONTROL_DIM, SCALARgetDerivativeU0 (const StateVector< STATE_DIM, SCALAR > &state, const SCALAR time)
 
virtual ControlMatrix< CONTROL_DIM, SCALARgetDerivativeUf (const StateVector< STATE_DIM, SCALAR > &state, const SCALAR time)
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef DmsDimensions< STATE_DIM, CONTROL_DIM, SCALARDIMENSIONS
 

Detailed Description

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
class ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >

DMS controller class.

Implements a controller to be handed over to a system of type "ControlledSystem". This controller applies the nominal input trajectory designed by the algorithm, which is either piecewise constant or piecewise linear between the nodes.

Template Parameters
STATE_DIMDimension of the state vector
INPUT_DIMDimension of the control input vector

Member Typedef Documentation

◆ state_vector_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef DIMENSIONS::state_vector_t ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::state_vector_t

◆ control_vector_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef DIMENSIONS::control_vector_t ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::control_vector_t

Constructor & Destructor Documentation

◆ ControllerDms() [1/3]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::ControllerDms ( )
delete

◆ ControllerDms() [2/3]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::ControllerDms ( std::shared_ptr< SplinerBase< control_vector_t, SCALAR >>  controlSpliner,
size_t  shotIdx 
)
inline

◆ ControllerDms() [3/3]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::ControllerDms ( const ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR > &  arg)
inline

◆ ~ControllerDms()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::~ControllerDms ( )
overridedefault

Member Function Documentation

◆ clone()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ControllerDms<STATE_DIM, CONTROL_DIM, SCALAR>* ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::clone ( ) const
inlineoverridevirtual

◆ computeControl()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
void ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::computeControl ( const state_vector_t state,
const SCALAR t,
control_vector_t controlAction 
)
inlineoverride

◆ getDerivativeU0()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
core::ControlMatrix<CONTROL_DIM, SCALAR> ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::getDerivativeU0 ( const state_vector_t state,
const SCALAR  time 
)
inlineoverride

◆ getDerivativeUf()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
core::ControlMatrix<CONTROL_DIM, SCALAR> ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::getDerivativeUf ( const state_vector_t state,
const SCALAR  time 
)
inlineoverride

Member Data Documentation

◆ DIMENSIONS

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef DmsDimensions<STATE_DIM, CONTROL_DIM, SCALAR> ct::optcon::ControllerDms< STATE_DIM, CONTROL_DIM, SCALAR >::DIMENSIONS

The documentation for this class was generated from the following file: