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

Disturbed controller allows us to augment the controller so that all the CT interfaces and dimensions are satisfied. Augmenting is done in such a way that the nominal controller is wrapped and all the nominal states are controlled in the same way as before augmenting the state. The augmented state (the disturbance part) is assumed constant, thus the computed derivates of that part of the state are set to zero. More...

#include <DisturbedSystemController.h>

Inheritance diagram for ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >:
ct::core::Controller< STATE_DIM+DIST_DIM, CONTROL_DIM, SCALAR >

Public Member Functions

 DisturbedSystemController (std::shared_ptr< ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >> controller=nullptr)
 Constructor. Takes in the nominal controller. More...
 
 DisturbedSystemController (const DisturbedSystemController &other)
 Copy constructor. More...
 
DisturbedSystemControllerclone () const override
 Clone method. More...
 
void computeControl (const ct::core::StateVector< AUGMENTED_DIM, SCALAR > &state, const SCALAR &t, ct::core::ControlVector< CONTROL_DIM, SCALAR > &controlAction) override
 Implementation of the base computeControl method. More...
 
ct::core::ControlMatrix< CONTROL_DIM, SCALARgetDerivativeU0 (const ct::core::StateVector< AUGMENTED_DIM, SCALAR > &state, const SCALAR time) override
 Implementation of the base getDerivativeU0 method. More...
 
ct::core::ControlMatrix< CONTROL_DIM, SCALARgetDerivativeUf (const ct::core::StateVector< AUGMENTED_DIM, SCALAR > &state, const SCALAR time) override
 Implementation of the base getDerivativeUf method. More...
 
void setController (std::shared_ptr< ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >> controller)
 Sets the nominal controller. More...
 
- Public Member Functions inherited from ct::core::Controller< STATE_DIM+DIST_DIM, CONTROL_DIM, SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Controller ()
 
 Controller (const Controller &other)
 
virtual ~Controller ()
 
virtual void computeControl (const StateVector< STATE_DIM+DIST_DIM, SCALAR > &state, const SCALAR &t, ControlVector< CONTROL_DIM, SCALAR > &controlAction)=0
 
virtual ControlMatrix< CONTROL_DIM, SCALARgetDerivativeU0 (const StateVector< STATE_DIM+DIST_DIM, SCALAR > &state, const SCALAR time)
 
virtual ControlMatrix< CONTROL_DIM, SCALARgetDerivativeUf (const StateVector< STATE_DIM+DIST_DIM, SCALAR > &state, const SCALAR time)
 

Static Public Attributes

static const size_t AUGMENTED_DIM = STATE_DIM + DIST_DIM
 

Detailed Description

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

Disturbed controller allows us to augment the controller so that all the CT interfaces and dimensions are satisfied. Augmenting is done in such a way that the nominal controller is wrapped and all the nominal states are controlled in the same way as before augmenting the state. The augmented state (the disturbance part) is assumed constant, thus the computed derivates of that part of the state are set to zero.

Template Parameters
STATE_DIMnominal state dimensionality
DIST_DIMdimensionality of the disturbance
CONTROL_DIM

Constructor & Destructor Documentation

◆ DisturbedSystemController() [1/2]

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR >
ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::DisturbedSystemController ( std::shared_ptr< ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >>  controller = nullptr)

Constructor. Takes in the nominal controller.

Referenced by ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::clone().

◆ DisturbedSystemController() [2/2]

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR >
ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::DisturbedSystemController ( const DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR > &  other)

Copy constructor.

Member Function Documentation

◆ clone()

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR >
DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR > * ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::clone ( ) const
overridevirtual

◆ computeControl()

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR >
void ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::computeControl ( const ct::core::StateVector< AUGMENTED_DIM, SCALAR > &  state,
const SCALAR t,
ct::core::ControlVector< CONTROL_DIM, SCALAR > &  controlAction 
)
override

Implementation of the base computeControl method.

◆ getDerivativeU0()

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR >
ct::core::ControlMatrix< CONTROL_DIM, SCALAR > ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::getDerivativeU0 ( const ct::core::StateVector< AUGMENTED_DIM, SCALAR > &  state,
const SCALAR  time 
)
override

Implementation of the base getDerivativeU0 method.

◆ getDerivativeUf()

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR >
ct::core::ControlMatrix< CONTROL_DIM, SCALAR > ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::getDerivativeUf ( const ct::core::StateVector< AUGMENTED_DIM, SCALAR > &  state,
const SCALAR  time 
)
override

Implementation of the base getDerivativeUf method.

◆ setController()

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR >
void ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::setController ( std::shared_ptr< ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >>  controller)

Sets the nominal controller.

Member Data Documentation

◆ AUGMENTED_DIM

template<size_t STATE_DIM, size_t DIST_DIM, size_t CONTROL_DIM, typename SCALAR = double>
const size_t ct::optcon::DisturbedSystemController< STATE_DIM, DIST_DIM, CONTROL_DIM, SCALAR >::AUGMENTED_DIM = STATE_DIM + DIST_DIM
static

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