- 3.0.2 core module.
|
Interface class for a general system described by an ordinary differential equation (ODE) More...
#include <System.h>
Public Types | |
typedef SCALAR | time_t |
the type of the time variable More... | |
Public Member Functions | |
System (const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) | |
default constructor More... | |
System (const System &other) | |
copy constructor More... | |
virtual | ~System () |
destructor More... | |
virtual System * | clone () const |
deep copy 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 SCALAR | S |
the scalar type More... | |
Protected Attributes | |
SYSTEM_TYPE | type_ |
type of system More... | |
Interface class for a general system described by an ordinary differential equation (ODE)
Defines the interface for a general system described by an ordinary differential equation (ODE) of the form
for systems with an input ( ) see ControlledSystem.
To implement your own system, derive from this class. This ensures you can use other functionality such as an Integrator.
STATE_DIM | dimensionality of the state |
SCALAR | scalar type |
typedef SCALAR ct::core::System< STATE_DIM, SCALAR >::time_t |
the type of the time variable
|
inline |
default constructor
Creates a new system given a system type. The system type can help to speed up algorithms that specialize on the type. If unsure about the type, simply use SYSTEM_TYPE::GENERAL.
type | type of system |
|
inline |
copy constructor
|
inlinevirtual |
destructor
|
inlinevirtual |
deep copy
Reimplemented in ct::core::tpl::SecondOrderSystem< SCALAR >, ct::core::SystemLinearizer< STATE_DIM, CONTROL_DIM, SCALAR >, ct::core::SwitchedControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >, ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >, ct::core::ControlledSystem< 2, 1 >, ct::core::ControlledSystem< 2, 1, SCALAR >, ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, double >, ct::core::ControlledSystem< POS_DIM+VEL_DIM, CONTROL_DIM, SCALAR >, ct::core::SwitchedLinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >, ct::core::SymplecticSystem< POS_DIM, VEL_DIM, CONTROL_DIM, SCALAR >, ct::core::SymplecticSystem< 1, 1, 1, SCALAR >, LinearizedOscillator, ct::core::LTISystem< STATE_DIM, CONTROL_DIM >, ct::core::LinearSystem< STATE_DIM, CONTROL_DIM, SCALAR >, ct::core::LinearSystem< STATE_DIM, CONTROL_DIM >, ct::core::LinearSystem< 2, 1, double >, ct::core::LinearSystem< 2, 1 >, ct::core::tpl::TestSymplecticSystem< SCALAR >, ct::core::tpl::TestNonlinearSystem< SCALAR >, ct::core::generated::TestNonlinearSystemLinearized, Masspoint, TestOscillator, ct::optcon::example::DiehlSystemLinear, ct::optcon::example::LinearizedSystem, ct::optcon::example::LinearizedSystem, ct::optcon::example::tpl::LinearOscillatorLinear< class >, LinkedMasses, ct::optcon::example::MIMOIntegratorLinear< state_dim, control_dim >, ct::optcon::example::SpringLoadedMass, ct::optcon::example::SpringLoadedMassLinear, ct::core::tpl::TestLinearSystem< class >, ct::models::HyA::HyALinearizedForward, ct::models::HyA::HyALinearizedReverse, ct::models::HyQ::HyQBareModelLinearizedForward, ct::models::HyQ::HyQBareModelLinearizedReverse, ct::models::HyQ::HyQWithContactModelLinearizedForward, ct::models::HyQ::HyQWithContactModelLinearizedReverse, ct::models::InvertedPendulum::InvertedPendulumActDynLinearizedForward, and ct::models::QuadrotorLinear.
|
pure virtual |
computes the system dynamics
evaluates at a given state and time
state | state to evaluate dynamics at |
t | time to evaluate the dynamics at |
derivative | state derivative |
Implemented in ct::core::ControlledSystem< 2, 1, SCALAR >, and ct::core::ControlledSystem< POS_DIM+VEL_DIM, CONTROL_DIM, SCALAR >.
Referenced by ct::core::System< STATE_DIM, double >::clone().
|
inline |
get the type of system
|
inlinevirtual |
Determines if the system is in symplectic form.
Reimplemented in ct::core::SymplecticSystem< POS_DIM, VEL_DIM, CONTROL_DIM, SCALAR >, and ct::core::SymplecticSystem< 1, 1, 1, SCALAR >.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef SCALAR ct::core::System< STATE_DIM, SCALAR >::S |
the scalar type
|
protected |
type of system
Referenced by ct::core::System< STATE_DIM, double >::getType().