- 3.0.2 core module.
ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR > Class Template Referenceabstract

Interface class for all controllers. More...

#include <DiscreteController.h>

Inheritance diagram for ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >:
ct::core::ConstantController< STATE_DIM, CONTROL_DIM, SCALAR > ct::core::StateFeedbackController< STATE_DIM, CONTROL_DIM, SCALAR >

Public Types

typedef ControlVector< CONTROL_DIM, SCALARcontrol_vector_t
 

Public Member Functions

 DiscreteController ()
 Default constructor. More...
 
 DiscreteController (const DiscreteController &other)
 Copy constructor. More...
 
virtual ~DiscreteController ()
 Destructor. More...
 
virtual DiscreteControllerclone () const =0
 Deep cloning. More...
 
virtual void computeControl (const state_vector_t &state, const int n, control_vector_t &controlAction)=0
 Compute control signal. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef StateVector< STATE_DIM, SCALARstate_vector_t
 

Detailed Description

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
class ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >

Interface class for all controllers.

This is a pure interface class for Controllers that can be fed to any ControlledSystem. Any custom controller should derive from this class to ensure it is compatible with ControlledSystem and the Integrator.

Member Typedef Documentation

◆ control_vector_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef ControlVector<CONTROL_DIM, SCALAR> ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::control_vector_t

Constructor & Destructor Documentation

◆ DiscreteController() [1/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::DiscreteController ( )
inline

Default constructor.

◆ DiscreteController() [2/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::DiscreteController ( const DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR > &  other)
inline

Copy constructor.

◆ ~DiscreteController()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
virtual ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::~DiscreteController ( )
inlinevirtual

Member Function Documentation

◆ clone()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
virtual DiscreteController* ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::clone ( ) const
pure virtual

◆ computeControl()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
virtual void ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::computeControl ( const state_vector_t state,
const int  n,
control_vector_t controlAction 
)
pure virtual

Compute control signal.

Evaluate the given controller for a given state and time index returns the computed control action.

This function has to be implemented by any custom controller

Parameters
statecurrent state of the system
ncurrent time index of the system
controlActionthe corresponding control action

Referenced by ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::~DiscreteController().

Member Data Documentation

◆ state_vector_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef StateVector<STATE_DIM, SCALAR> ct::core::DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >::state_vector_t

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