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

Discretize a general, continuous-time non-linear dynamic system using forward integration. More...

#include <SystemDiscretizer.h>

Inheritance diagram for ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >:
ct::core::DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > ct::core::DiscreteSystem< STATE_DIM, CONTROL_DIM, SCALAR >

Public Types

typedef DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALARBase
 
typedef Base::time_t time_t
 
using IntegratorPtr = std::shared_ptr< Integrator< STATE_DIM, SCALAR > >
 
using IntegratorSymplecticEulerPtr = std::shared_ptr< ct::core::IntegratorSymplecticEuler< P_DIM, V_DIM, CONTROL_DIM, SCALAR > >
 
using IntegratorSymplecticRkPtr = std::shared_ptr< ct::core::IntegratorSymplecticRk< P_DIM, V_DIM, CONTROL_DIM, SCALAR > >
 
using ContinuousSystemPtr = std::shared_ptr< ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > >
 
using ContinuousConstantControllerPtr = std::shared_ptr< ConstantController< STATE_DIM, CONTROL_DIM, SCALAR > >
 
using SubstepRecorderPtr = std::shared_ptr< ct::core::SubstepRecorder< STATE_DIM, CONTROL_DIM, SCALAR > >
 
using StateVectorArray = ct::core::StateVectorArray< STATE_DIM, SCALAR >
 
using StateVectorArrayPtr = std::shared_ptr< StateVectorArray >
 
using ControlVectorArray = ct::core::ControlVectorArray< CONTROL_DIM, SCALAR >
 
using ControlVectorArrayPtr = std::shared_ptr< ControlVectorArray >
 
- Public Types inherited from ct::core::DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
typedef DiscreteSystem< STATE_DIM, CONTROL_DIM, SCALARBase
 
typedef Base::state_vector_t state_vector_t
 
typedef Base::control_vector_t control_vector_t
 
typedef Base::time_t time_t
 
- Public Types inherited from ct::core::DiscreteSystem< STATE_DIM, CONTROL_DIM, SCALAR >
typedef int time_t
 the type of the time variable More...
 
typedef StateVector< STATE_DIM, SCALARstate_vector_t
 
typedef ControlVector< CONTROL_DIM, SCALARcontrol_vector_t
 

Public Member Functions

 SystemDiscretizer ()
 default constructor More...
 
 SystemDiscretizer (const SCALAR &dt, const ct::core::IntegrationType &integratorType=ct::core::IntegrationType::RK4, const int &K_sim=1)
 constructor with parameters More...
 
 SystemDiscretizer (ContinuousSystemPtr system, const SCALAR &dt, const ct::core::IntegrationType &integratorType=ct::core::IntegrationType::RK4, const int &K_sim=1)
 constructor with parameters and nonlinear continuous-time system More...
 
 SystemDiscretizer (const SystemDiscretizer &arg)
 copy constructor More...
 
virtual ~SystemDiscretizer ()
 destructor More...
 
virtual SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR > * clone () const override
 deep cloning More...
 
void initialize ()
 initialize class More...
 
void setIntegrationType (const ct::core::IntegrationType &integratorType)
 update integration type More...
 
void setParameters (const SCALAR &dt, const int &K_sim=1)
 update parameters More...
 
void changeContinuousTimeSystem (ContinuousSystemPtr newSystem)
 update the SystemDiscretizer with a new nonlinear, continuous-time system More...
 
virtual void propagateControlledDynamics (const StateVector< STATE_DIM, SCALAR > &state, const time_t n, const ControlVector< CONTROL_DIM, SCALAR > &control, StateVector< STATE_DIM, SCALAR > &stateNext) override
 propagate discrete-time dynamics by performing a numerical forward integration of the continuous-time system More...
 
const StateVectorArrayPtrgetSubstates () const
 return a pointer to the substates recorded during integration More...
 
const ControlVectorArrayPtrgetSubcontrols () const
 reuturn a pointer to the subcontrols recorded during integration More...
 
- Public Member Functions inherited from ct::core::DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
 DiscreteControlledSystem (const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL)
 default constructor More...
 
 DiscreteControlledSystem (std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >> controller, const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL)
 constructor More...
 
 DiscreteControlledSystem (const ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > &arg)
 copy constructor More...
 
virtual ~DiscreteControlledSystem ()=default
 destructor More...
 
void setController (const std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >> &controller)
 set a new controller More...
 
void getController (std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >> &controller) const
 get the controller instance More...
 
std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR > > getController ()
 get the controller instace More...
 
virtual void propagateDynamics (const state_vector_t &state, const time_t n, state_vector_t &stateNext) override
 propagates the system dynamics forward by one step More...
 
virtual void propagateControlledDynamics (const state_vector_t &state, const time_t n, const control_vector_t &control, state_vector_t &stateNext)=0
 propagates the controlled system dynamics forward by one step More...
 
- Public Member Functions inherited from ct::core::DiscreteSystem< STATE_DIM, CONTROL_DIM, SCALAR >
 DiscreteSystem (const SYSTEM_TYPE &type=GENERAL)
 constructor More...
 
virtual ~DiscreteSystem ()
 desctructor More...
 
virtual void propagateDynamics (const StateVector< STATE_DIM, SCALAR > &state, const time_t n, StateVector< STATE_DIM, SCALAR > &stateNext)=0
 propagates the system dynamics forward by one step More...
 
SYSTEM_TYPE getType () const
 get the type of system More...
 

Protected Member Functions

SYMPLECTIC_ENABLED initializeSymplecticIntegrator ()
 initialize the symplectic integrator, if the system is symplectic More...
 
SYMPLECTIC_DISABLED initializeSymplecticIntegrator ()
 a dummy method, instantiated if the system is not symplectic More...
 
SYMPLECTIC_ENABLED integrateSymplectic (ct::core::StateVector< STATE_DIM, SCALAR > &x0, const double &t, const size_t &steps, const double &dt_sim) const
 integrateSymplectic, gets instantiated if the system is symplectic More...
 
SYMPLECTIC_DISABLED integrateSymplectic (ct::core::StateVector< STATE_DIM, SCALAR > &x0, const double &t, const size_t &steps, const double &dt_sim) const
 a dummy method, instantiated if the system is not symplectic More...
 
SCALAR getSimulationTimestep ()
 compute the simulation timestep More...
 

Protected Attributes

SCALAR dt_
 the time discretization interval More...
 
int K_sim_
 the forward simulation can be discretized finer than dt_. K_sim_ is an integer number representing the number of simulation sub-steps. More...
 
SCALAR dt_sim_
 the integration sub-step size, which is a function of dt_ and K_sim_ More...
 
ct::core::IntegrationType integratorType_
 the integration type for forward integration More...
 
ContinuousSystemPtr cont_time_system_
 the continuous-time system to be discretized More...
 
ContinuousConstantControllerPtr cont_constant_controller_
 the continuous-time constant controller to be applied to the continuous-time dynamics More...
 
IntegratorPtr integrator_
 an integrator for forward integrating a general continuous-time system with standard RK methods More...
 
IntegratorSymplecticEulerPtr integratorEulerSymplectic_
 an integrator for forward integrating a symplectic continuous-time system with symplectic Euler More...
 
IntegratorSymplecticRkPtr integratorRkSymplectic_
 an integrator for forward integrating a symplectic continuous-time system with symplectic RK methods More...
 
SubstepRecorderPtr substepRecorder_
 substep recorder which logs all the substeps required for later computing exact sensitivities More...
 
- Protected Attributes inherited from ct::core::DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR > > controller_
 the controller instance More...
 
- Protected Attributes inherited from ct::core::DiscreteSystem< STATE_DIM, CONTROL_DIM, SCALAR >
SYSTEM_TYPE type_
 type of system More...
 

Additional Inherited Members

- Public Attributes inherited from ct::core::DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > > Ptr
 

Detailed Description

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
class ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >

Discretize a general, continuous-time non-linear dynamic system using forward integration.

The SystemDiscretizer transforms a continuous-time system into a discrete-time system by forward integration. Please not that it does not perform a global transformation to discrete-time (it cannot compute transition matrices or similar), but rather 'mimicks' a discrete system, based on the underlying continuous-time system. In every call to propagateControlledDynamics(), the continuous-time system is forward integrated by a time interval dt_. Furthermore, the substeps during integration are recorded during each propagate-call, and can be retrieved using getSubstates() and getSubcontrols().

Warning
no substeps can be recorded for higher order RK symplectic integrators.

Member Typedef Documentation

◆ Base

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
typedef DiscreteControlledSystem<STATE_DIM, CONTROL_DIM, SCALAR> ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::Base

◆ time_t

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
typedef Base::time_t ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::time_t

◆ IntegratorPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::IntegratorPtr = std::shared_ptr<Integrator<STATE_DIM, SCALAR> >

◆ IntegratorSymplecticEulerPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::IntegratorSymplecticEulerPtr = std::shared_ptr<ct::core::IntegratorSymplecticEuler<P_DIM, V_DIM, CONTROL_DIM, SCALAR> >

◆ IntegratorSymplecticRkPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::IntegratorSymplecticRkPtr = std::shared_ptr<ct::core::IntegratorSymplecticRk<P_DIM, V_DIM, CONTROL_DIM, SCALAR> >

◆ ContinuousSystemPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::ContinuousSystemPtr = std::shared_ptr<ControlledSystem<STATE_DIM, CONTROL_DIM, SCALAR> >

◆ ContinuousConstantControllerPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::ContinuousConstantControllerPtr = std::shared_ptr<ConstantController<STATE_DIM, CONTROL_DIM, SCALAR> >

◆ SubstepRecorderPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::SubstepRecorderPtr = std::shared_ptr<ct::core::SubstepRecorder<STATE_DIM, CONTROL_DIM, SCALAR> >

◆ StateVectorArray

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::StateVectorArray = ct::core::StateVectorArray<STATE_DIM, SCALAR>

◆ StateVectorArrayPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::StateVectorArrayPtr = std::shared_ptr<StateVectorArray>

◆ ControlVectorArray

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::ControlVectorArray = ct::core::ControlVectorArray<CONTROL_DIM, SCALAR>

◆ ControlVectorArrayPtr

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
using ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::ControlVectorArrayPtr = std::shared_ptr<ControlVectorArray>

Constructor & Destructor Documentation

◆ SystemDiscretizer() [1/4]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::SystemDiscretizer ( )

◆ SystemDiscretizer() [2/4]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::SystemDiscretizer ( const SCALAR dt,
const ct::core::IntegrationType integratorType = ct::core::IntegrationType::RK4,
const int &  K_sim = 1 
)

constructor with parameters

Parameters
dtthe discretization time interval
integratorTypethe integratorType for numerical forward integration
K_simthe number of sub-integration intervals

References ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::dt_sim_, and ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::getSimulationTimestep().

◆ SystemDiscretizer() [3/4]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::SystemDiscretizer ( ContinuousSystemPtr  system,
const SCALAR dt,
const ct::core::IntegrationType integratorType = ct::core::IntegrationType::RK4,
const int &  K_sim = 1 
)

constructor with parameters and nonlinear continuous-time system

Parameters
systemThe continuous-time system to be discretized
dtthe discretization time interval
integratorTypethe integratorType for numerical forward integration
K_simthe number of sub-integration intervals

References ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::changeContinuousTimeSystem(), ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::dt_sim_, and ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::getSimulationTimestep().

◆ SystemDiscretizer() [4/4]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::SystemDiscretizer ( const SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR > &  arg)

◆ ~SystemDiscretizer()

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::~SystemDiscretizer ( )
virtual

destructor

Member Function Documentation

◆ clone()

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR > * ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::clone ( ) const
overridevirtual

◆ initialize()

◆ setIntegrationType()

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
void ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::setIntegrationType ( const ct::core::IntegrationType integratorType)

◆ setParameters()

◆ changeContinuousTimeSystem()

◆ propagateControlledDynamics()

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
void ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::propagateControlledDynamics ( const StateVector< STATE_DIM, SCALAR > &  state,
const time_t  n,
const ControlVector< CONTROL_DIM, SCALAR > &  control,
StateVector< STATE_DIM, SCALAR > &  stateNext 
)
overridevirtual

propagate discrete-time dynamics by performing a numerical forward integration of the continuous-time system

Parameters
statestart state to propagate from
controlthe control input to apply. This is a constant control input applied to the continuous-time dynamics
ntime index to propagate the dynamics at, to be translated into a continuous time value t
stateNextthe resulting propagated state
Warning
calling this method resets the substep-recorder. The substeps are only available for a single call to propagateControlledDynamics()

References ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::cont_constant_controller_, ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::cont_time_system_, ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::dt_, ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::dt_sim_, ct::core::EULER_SYM, ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::integrator_, ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::integratorType_, ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::K_sim_, ct::core::RK_SYM, and ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::substepRecorder_.

Referenced by TEST().

◆ getSubstates()

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
const std::shared_ptr< ct::core::StateVectorArray< STATE_DIM, SCALAR > > & ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::getSubstates ( ) const

return a pointer to the substates recorded during integration

References ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::substepRecorder_.

◆ getSubcontrols()

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
const std::shared_ptr< ct::core::ControlVectorArray< CONTROL_DIM, SCALAR > > & ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::getSubcontrols ( ) const

reuturn a pointer to the subcontrols recorded during integration

References ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::substepRecorder_.

◆ initializeSymplecticIntegrator() [1/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
SYMPLECTIC_DISABLED ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::initializeSymplecticIntegrator ( )
protected

◆ initializeSymplecticIntegrator() [2/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
SYMPLECTIC_DISABLED ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::initializeSymplecticIntegrator ( )
protected

a dummy method, instantiated if the system is not symplectic

◆ integrateSymplectic() [1/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM, size_t V_DIM, typename SCALAR >
SYMPLECTIC_DISABLED ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::integrateSymplectic ( ct::core::StateVector< STATE_DIM, SCALAR > &  x0,
const double &  t,
const size_t &  steps,
const double &  dt_sim 
) const
protected

◆ integrateSymplectic() [2/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
SYMPLECTIC_DISABLED ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::integrateSymplectic ( ct::core::StateVector< STATE_DIM, SCALAR > &  x0,
const double &  t,
const size_t &  steps,
const double &  dt_sim 
) const
protected

a dummy method, instantiated if the system is not symplectic

◆ getSimulationTimestep()

Member Data Documentation

◆ dt_

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
SCALAR ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::dt_
protected

◆ K_sim_

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
int ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::K_sim_
protected

◆ dt_sim_

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
SCALAR ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::dt_sim_
protected

◆ integratorType_

◆ cont_time_system_

◆ cont_constant_controller_

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
ContinuousConstantControllerPtr ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::cont_constant_controller_
protected

◆ integrator_

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
IntegratorPtr ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::integrator_
protected

◆ integratorEulerSymplectic_

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
IntegratorSymplecticEulerPtr ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::integratorEulerSymplectic_
protected

◆ integratorRkSymplectic_

template<size_t STATE_DIM, size_t CONTROL_DIM, size_t P_DIM = STATE_DIM / 2, size_t V_DIM = STATE_DIM / 2, typename SCALAR = double>
IntegratorSymplecticRkPtr ct::core::SystemDiscretizer< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR >::integratorRkSymplectic_
protected

◆ substepRecorder_


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