OCS2 Manual  v1.0.0
OCS2 Documentation
ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T > Class Template Referenceabstract

#include <DerivativesBase.h>

Detailed Description

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
class ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >

Base class for the linearized system dynamics.
The linearized system flow map is defined as:
$ dx/dt = A(t) \delta x + B(t) \delta u $
The linearized system jump map is defined as:
$ x^+ = G \delta x + H \delta u $

Template Parameters
STATE_DIMDimension of the state space.
INPUT_DIMDimension of the control input space.
LOGIC_RULES_TLogic Rules type (default NullLogicRules).
Inheritance diagram for ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >:
ocs2::SystemDynamicsBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T, NUM_MODES > ocs2::SystemDynamicsLinearizer< STATE_DIM, INPUT_DIM, LOGIC_RULES_T > ocs2::SystemDynamicsBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T > ocs2::SystemDynamicsBaseAD< Derived, STATE_DIM, INPUT_DIM, LOGIC_RULES_T, NUM_MODES > ocs2::LinearSystemDynamics< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >

Public Types

using Ptr = std::shared_ptr< DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T > >
 
using ConstPtr = std::shared_ptr< const DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T > >
 
using DIMENSIONS = Dimensions< STATE_DIM, INPUT_DIM >
 
using scalar_t = typename DIMENSIONS::scalar_t
 
using state_vector_t = typename DIMENSIONS::state_vector_t
 
using input_vector_t = typename DIMENSIONS::input_vector_t
 
using state_matrix_t = typename DIMENSIONS::state_matrix_t
 
using state_input_matrix_t = typename DIMENSIONS::state_input_matrix_t
 
using constraint1_state_matrix_t = typename DIMENSIONS::constraint1_state_matrix_t
 
using constraint1_input_matrix_t = typename DIMENSIONS::constraint1_input_matrix_t
 
using constraint2_state_matrix_t = typename DIMENSIONS::constraint2_state_matrix_t
 
using dynamic_vector_t = typename DIMENSIONS::dynamic_vector_t
 
using dynamic_state_matrix_t = typename DIMENSIONS::dynamic_state_matrix_t
 
using dynamic_input_matrix_t = typename DIMENSIONS::dynamic_input_matrix_t
 

Public Member Functions

 DerivativesBase ()=default
 
virtual ~DerivativesBase ()=default
 
virtual void initializeModel (LogicRulesMachine< LOGIC_RULES_T > &logicRulesMachine, const size_t &partitionIndex, const char *algorithmName=nullptr)
 
virtual void setCurrentStateAndControl (const scalar_t &t, const state_vector_t &x, const input_vector_t &u)
 
virtual void getFlowMapDerivativeTime (state_vector_t &df)
 
virtual void getFlowMapDerivativeState (state_matrix_t &A)=0
 
virtual void getFlowMapDerivativeInput (state_input_matrix_t &B)=0
 
virtual void getJumpMapDerivativeTime (state_vector_t &dg)
 
virtual void getJumpMapDerivativeState (state_matrix_t &G)
 
virtual void getJumpMapDerivativeInput (state_input_matrix_t &H)
 
virtual void getGuardSurfacesDerivativeTime (dynamic_vector_t &D_t_gamma)
 
virtual void getGuardSurfacesDerivativeState (dynamic_state_matrix_t &D_x_gamma)
 
virtual void getGuardSurfacesDerivativeInput (dynamic_input_matrix_t &D_u_gamma)
 
virtual DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T > * clone () const =0
 

Public Attributes

 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 

Protected Attributes

scalar_t t_
 
state_vector_t x_
 
input_vector_t u_
 

Member Typedef Documentation

◆ ConstPtr

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::ConstPtr = std::shared_ptr<const DerivativesBase<STATE_DIM, INPUT_DIM, LOGIC_RULES_T> >

◆ constraint1_input_matrix_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::constraint1_input_matrix_t = typename DIMENSIONS::constraint1_input_matrix_t

◆ constraint1_state_matrix_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::constraint1_state_matrix_t = typename DIMENSIONS::constraint1_state_matrix_t

◆ constraint2_state_matrix_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::constraint2_state_matrix_t = typename DIMENSIONS::constraint2_state_matrix_t

◆ DIMENSIONS

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::DIMENSIONS = Dimensions<STATE_DIM, INPUT_DIM>

◆ dynamic_input_matrix_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::dynamic_input_matrix_t = typename DIMENSIONS::dynamic_input_matrix_t

◆ dynamic_state_matrix_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::dynamic_state_matrix_t = typename DIMENSIONS::dynamic_state_matrix_t

◆ dynamic_vector_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::dynamic_vector_t = typename DIMENSIONS::dynamic_vector_t

◆ input_vector_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::input_vector_t = typename DIMENSIONS::input_vector_t

◆ Ptr

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::Ptr = std::shared_ptr<DerivativesBase<STATE_DIM, INPUT_DIM, LOGIC_RULES_T> >

◆ scalar_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::scalar_t = typename DIMENSIONS::scalar_t

◆ state_input_matrix_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::state_input_matrix_t = typename DIMENSIONS::state_input_matrix_t

◆ state_matrix_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::state_matrix_t = typename DIMENSIONS::state_matrix_t

◆ state_vector_t

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
using ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::state_vector_t = typename DIMENSIONS::state_vector_t

Constructor & Destructor Documentation

◆ DerivativesBase()

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::DerivativesBase ( )
default

Default constructor

◆ ~DerivativesBase()

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
virtual ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::~DerivativesBase ( )
virtualdefault

Default destructor

Member Function Documentation

◆ clone()

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
virtual DerivativesBase<STATE_DIM, INPUT_DIM, LOGIC_RULES_T>* ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::clone ( ) const
pure virtual

◆ getFlowMapDerivativeInput()

◆ getFlowMapDerivativeState()

◆ getFlowMapDerivativeTime()

◆ getGuardSurfacesDerivativeInput()

◆ getGuardSurfacesDerivativeState()

◆ getGuardSurfacesDerivativeTime()

◆ getJumpMapDerivativeInput()

◆ getJumpMapDerivativeState()

◆ getJumpMapDerivativeTime()

◆ initializeModel()

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
virtual void ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::initializeModel ( LogicRulesMachine< LOGIC_RULES_T > &  logicRulesMachine,
const size_t &  partitionIndex,
const char *  algorithmName = nullptr 
)
inlinevirtual

◆ setCurrentStateAndControl()

Member Data Documentation

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::EIGEN_MAKE_ALIGNED_OPERATOR_NEW

◆ t_

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
scalar_t ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::t_
protected

◆ u_

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
input_vector_t ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::u_
protected

◆ x_

template<size_t STATE_DIM, size_t INPUT_DIM, class LOGIC_RULES_T = NullLogicRules>
state_vector_t ocs2::DerivativesBase< STATE_DIM, INPUT_DIM, LOGIC_RULES_T >::x_
protected

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