- 3.0.2 core module.
ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR > Class Template Reference

interface class for a general switched linear system or linearized system More...

#include <SwitchedLinearSystem.h>

Inheritance diagram for ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >:
ct::core::LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR > ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > ct::core::System< STATE_DIM, SCALAR >

Public Types

typedef Switched< LinearSystemPtrSwitchedLinearSystems
 
typedef ControlledSystem< STATE_DIM, CONTROL_DIM, SCALARBase
 
typedef Base::time_t time_t
 
typedef StateVector< STATE_DIM, SCALARstate_vector_t
 state vector type More...
 
typedef ControlVector< CONTROL_DIM, SCALARcontrol_vector_t
 input vector type More...
 
typedef StateMatrix< STATE_DIM, SCALARstate_matrix_t
 state Jacobian type More...
 
typedef StateControlMatrix< STATE_DIM, CONTROL_DIM, SCALARstate_control_matrix_t
 input Jacobian type More...
 
- Public Types inherited from ct::core::LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >
typedef Base::time_t time_t
 
typedef StateVector< STATE_DIM, SCALARstate_vector_t
 state vector type More...
 
typedef ControlVector< CONTROL_DIM, SCALARcontrol_vector_t
 input vector type More...
 
typedef StateMatrix< STATE_DIM, SCALARstate_matrix_t
 state Jacobian type More...
 
typedef StateControlMatrix< STATE_DIM, CONTROL_DIM, SCALARstate_control_matrix_t
 input Jacobian type More...
 
- Public Types inherited from ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
typedef std::shared_ptr< ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > > Ptr
 
typedef Base::time_t time_t
 
- Public Types inherited from ct::core::System< STATE_DIM, SCALAR >
typedef SCALAR time_t
 the type of the time variable More...
 

Public Member Functions

 SwitchedLinearSystem (const SwitchedLinearSystems &switchedLinearSystems, const ContinuousModeSequence &continuousModeSequence, const ct::core::SYSTEM_TYPE &type=ct::core::SYSTEM_TYPE::GENERAL)
 default constructor More...
 
 SwitchedLinearSystem (const SwitchedLinearSystem &arg)
 copy constructor More...
 
virtual ~SwitchedLinearSystem ()
 destructor More...
 
virtual SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR > * clone () const override
 deep cloning More...
 
virtual const state_matrix_tgetDerivativeState (const state_vector_t &x, const control_vector_t &u, const time_t t=time_t(0.0)) override
 get the A matrix of a linear system More...
 
virtual const state_control_matrix_tgetDerivativeControl (const state_vector_t &x, const control_vector_t &u, const time_t t=time_t(0.0)) override
 get the B matrix of a linear system More...
 
- Public Member Functions inherited from ct::core::LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >
 LinearSystem (const ct::core::SYSTEM_TYPE &type=ct::core::SYSTEM_TYPE::GENERAL)
 default constructor More...
 
virtual ~LinearSystem ()
 destructor More...
 
virtual void computeControlledDynamics (const state_vector_t &state, const time_t &t, const control_vector_t &control, state_vector_t &derivative) override
 compute the system dynamics More...
 
virtual void getDerivatives (state_matrix_t &A, state_control_matrix_t &B, const state_vector_t &x, const control_vector_t &u, const time_t t=time_t(0.0))
 Get both linear system matrices A and B in one call. More...
 
- Public Member Functions inherited from ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
 ControlledSystem (const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL)
 default constructor More...
 
 ControlledSystem (std::shared_ptr< ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >> controller, const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL)
 constructor More...
 
 ControlledSystem (const ControlledSystem &arg)
 copy constructor More...
 
virtual ~ControlledSystem ()
 destructor More...
 
void setController (const std::shared_ptr< Controller< STATE_DIM, CONTROL_DIM, SCALAR >> &controller)
 set a new controller More...
 
void getController (std::shared_ptr< Controller< STATE_DIM, CONTROL_DIM, SCALAR >> &controller) const
 get the controller instance More...
 
std::shared_ptr< Controller< STATE_DIM, CONTROL_DIM, SCALAR > > getController ()
 get the controller instace More...
 
virtual void computeDynamics (const StateVector< STATE_DIM, SCALAR > &state, const time_t &t, StateVector< STATE_DIM, SCALAR > &derivative) override
 compute the dynamics of the system More...
 
virtual void computeControlledDynamics (const StateVector< STATE_DIM, SCALAR > &state, const time_t &t, const ControlVector< CONTROL_DIM, SCALAR > &control, StateVector< STATE_DIM, SCALAR > &derivative)=0
 
ControlVector< CONTROL_DIM, SCALARgetLastControlAction ()
 
- Public Member Functions inherited from ct::core::System< STATE_DIM, SCALAR >
 System (const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL)
 default constructor More...
 
 System (const System &other)
 copy constructor More...
 
virtual ~System ()
 destructor More...
 
virtual void computeDynamics (const StateVector< STATE_DIM, SCALAR > &state, const time_t &t, StateVector< STATE_DIM, SCALAR > &derivative)=0
 computes the system dynamics More...
 
SYSTEM_TYPE getType () const
 get the type of system More...
 
virtual bool isSymplectic () const
 Determines if the system is in symplectic form. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR > > LinearSystemPtr
 
- Public Attributes inherited from ct::core::LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ControlledSystem< STATE_DIM, CONTROL_DIM, SCALARBase
 
- Public Attributes inherited from ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef System< STATE_DIM, SCALARBase
 
- Public Attributes inherited from ct::core::System< STATE_DIM, SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef SCALAR S
 the scalar type More...
 

Additional Inherited Members

- Protected Attributes inherited from ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
std::shared_ptr< Controller< STATE_DIM, CONTROL_DIM, SCALAR > > controller_
 the controller instance More...
 
ControlVector< CONTROL_DIM, SCALARcontrolAction_
 
- Protected Attributes inherited from ct::core::System< STATE_DIM, SCALAR >
SYSTEM_TYPE type_
 type of system More...
 

Detailed Description

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

interface class for a general switched linear system or linearized system

Defines the interface for a switched linear system

Template Parameters
STATE_DIMsize of state vector
CONTROL_DIMsize of input vector

Member Typedef Documentation

◆ SwitchedLinearSystems

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef Switched<LinearSystemPtr> ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::SwitchedLinearSystems

◆ Base

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef ControlledSystem<STATE_DIM, CONTROL_DIM, SCALAR> ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::Base

◆ time_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef Base::time_t ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::time_t

◆ state_vector_t

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

state vector type

◆ control_vector_t

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

input vector type

◆ state_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef StateMatrix<STATE_DIM, SCALAR> ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::state_matrix_t

state Jacobian type

◆ state_control_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef StateControlMatrix<STATE_DIM, CONTROL_DIM, SCALAR> ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::state_control_matrix_t

input Jacobian type

Constructor & Destructor Documentation

◆ SwitchedLinearSystem() [1/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::SwitchedLinearSystem ( const SwitchedLinearSystems switchedLinearSystems,
const ContinuousModeSequence continuousModeSequence,
const ct::core::SYSTEM_TYPE type = ct::core::SYSTEM_TYPE::GENERAL 
)
inline

default constructor

Parameters
typesystem type

Referenced by ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::clone().

◆ SwitchedLinearSystem() [2/2]

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

copy constructor

◆ ~SwitchedLinearSystem()

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

destructor

Member Function Documentation

◆ clone()

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

◆ getDerivativeState()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
virtual const state_matrix_t& ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::getDerivativeState ( const state_vector_t x,
const control_vector_t u,
const time_t  t = time_t(0.0) 
)
inlineoverridevirtual

get the A matrix of a linear system

Parameters
xstate vector (required for linearizing non-linear systems, ignored for pure linear system)
uinput vector (required for linearizing non-linear systems, ignored for pure linear system)
tcurrent time
Returns
A matrix

Implements ct::core::LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >.

References ct::core::PhaseSequence< Phase, Time >::getPhaseFromTime(), and t.

Referenced by TEST().

◆ getDerivativeControl()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
virtual const state_control_matrix_t& ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::getDerivativeControl ( const state_vector_t x,
const control_vector_t u,
const time_t  t = time_t(0.0) 
)
inlineoverridevirtual

get the B matrix of a linear system

Parameters
xstate vector (required for linearizing non-linear systems, ignored for pure linear system)
uinput vector (required for linearizing non-linear systems, ignored for pure linear system)
tcurrent time
Returns
B matrix

Implements ct::core::LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >.

References ct::core::PhaseSequence< Phase, Time >::getPhaseFromTime(), and t.

Referenced by TEST().

Member Data Documentation

◆ LinearSystemPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr<LinearSystem<STATE_DIM, CONTROL_DIM, SCALAR> > ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >::LinearSystemPtr

Referenced by TEST().


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