sot-core  4.11.8
Hierarchical task solver plug-in for dynamic-graph.
dynamicgraph::sot::IntegratorEuler< sigT, coefT > Class Template Reference

integrates an ODE using a naive Euler integration. TODO: change the integration method. For the moment, the highest derivative of the output signal is computed using the previous values of the other derivatives and the input signal, then integrated n times, which will most certainly induce a huge drift for ODEs with a high order at the denominator. More...

#include <sot/core/integrator-euler.hh>

Inheritance diagram for dynamicgraph::sot::IntegratorEuler< sigT, coefT >:

Public Member Functions

virtual const std::string & getClassName (void) const
 
 IntegratorEuler (const std::string &name)
 
virtual ~IntegratorEuler (void)
 
sigT & integrate (sigT &res, int time)
 
sigT & derivative (sigT &res, int time)
 
void setSamplingPeriod (const double &period)
 
double getSamplingPeriod () const
 
void initialize ()
 
- Public Member Functions inherited from dynamicgraph::sot::IntegratorAbstract< sigT, coefT >
 IntegratorAbstract (const std::string &name)
 
virtual ~IntegratorAbstract ()
 
void pushNumCoef (const coefT &numCoef)
 
void pushDenomCoef (const coefT &denomCoef)
 
void popNumCoef ()
 
void popDenomCoef ()
 
const std::vector< coefT > & numCoeffs () const
 
void numCoeffs (const std::vector< coefT > &coeffs)
 
const std::vector< coefT > & denomCoeffs () const
 
void denomCoeffs (const std::vector< coefT > &coeffs)
 
virtual void display (std::ostream &os) const
 

Static Public Member Functions

static std::string getTypeName (void)
 

Static Public Attributes

static const std::string CLASS_NAME
 

Protected Attributes

std::vector< sigT > inputMemory
 
std::vector< sigT > outputMemory
 
dynamicgraph::SignalTimeDependent< sigT, int > derivativeSOUT
 
double dt
 
double invdt
 
- Protected Attributes inherited from dynamicgraph::sot::IntegratorAbstract< sigT, coefT >
std::vector< coefT > numerator
 
std::vector< coefT > denominator
 

Additional Inherited Members

- Public Attributes inherited from dynamicgraph::sot::IntegratorAbstract< sigT, coefT >
dynamicgraph::SignalPtr< sigT, int > SIN
 
dynamicgraph::SignalTimeDependent< sigT, int > SOUT
 

Detailed Description

template<class sigT, class coefT>
class dynamicgraph::sot::IntegratorEuler< sigT, coefT >

integrates an ODE using a naive Euler integration. TODO: change the integration method. For the moment, the highest derivative of the output signal is computed using the previous values of the other derivatives and the input signal, then integrated n times, which will most certainly induce a huge drift for ODEs with a high order at the denominator.

Constructor & Destructor Documentation

◆ IntegratorEuler()

template<class sigT , class coefT >
dynamicgraph::sot::IntegratorEuler< sigT, coefT >::IntegratorEuler ( const std::string &  name)
inline

◆ ~IntegratorEuler()

template<class sigT , class coefT >
virtual dynamicgraph::sot::IntegratorEuler< sigT, coefT >::~IntegratorEuler ( void  )
inlinevirtual

Member Function Documentation

◆ derivative()

template<class sigT , class coefT >
sigT& dynamicgraph::sot::IntegratorEuler< sigT, coefT >::derivative ( sigT &  res,
int  time 
)
inline

◆ getClassName()

template<class sigT , class coefT >
virtual const std::string& dynamicgraph::sot::IntegratorEuler< sigT, coefT >::getClassName ( void  ) const
virtual

◆ getSamplingPeriod()

template<class sigT , class coefT >
double dynamicgraph::sot::IntegratorEuler< sigT, coefT >::getSamplingPeriod ( ) const
inline

◆ getTypeName()

template<class sigT , class coefT >
static std::string dynamicgraph::sot::IntegratorEuler< sigT, coefT >::getTypeName ( void  )
inlinestatic

◆ initialize()

template<class sigT , class coefT >
void dynamicgraph::sot::IntegratorEuler< sigT, coefT >::initialize ( )
inline

◆ integrate()

template<class sigT , class coefT >
sigT& dynamicgraph::sot::IntegratorEuler< sigT, coefT >::integrate ( sigT &  res,
int  time 
)
inlinevirtual

◆ setSamplingPeriod()

template<class sigT , class coefT >
void dynamicgraph::sot::IntegratorEuler< sigT, coefT >::setSamplingPeriod ( const double &  period)
inline

Member Data Documentation

◆ CLASS_NAME

template<class sigT , class coefT >
const std::string dynamicgraph::sot::IntegratorEuler< sigT, coefT >::CLASS_NAME
static

◆ derivativeSOUT

template<class sigT , class coefT >
dynamicgraph::SignalTimeDependent<sigT, int> dynamicgraph::sot::IntegratorEuler< sigT, coefT >::derivativeSOUT
protected

◆ dt

template<class sigT , class coefT >
double dynamicgraph::sot::IntegratorEuler< sigT, coefT >::dt
protected

◆ inputMemory

template<class sigT , class coefT >
std::vector<sigT> dynamicgraph::sot::IntegratorEuler< sigT, coefT >::inputMemory
protected

◆ invdt

template<class sigT , class coefT >
double dynamicgraph::sot::IntegratorEuler< sigT, coefT >::invdt
protected

◆ outputMemory

template<class sigT , class coefT >
std::vector<sigT> dynamicgraph::sot::IntegratorEuler< sigT, coefT >::outputMemory
protected

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