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 >:
[legend]

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 ()
 
- Public Member Functions inherited from dynamicgraph::Entity
 Entity (const std::string &name)
 
virtual ~Entity ()
 
const std::string & getName () const
 
virtual std::string getDocString () const
 
bool hasSignal (const std::string &signame) const
 
SignalBase< int > & getSignal (const std::string &signalName)
 
const SignalBase< int > & getSignal (const std::string &signalName) const
 
std::ostream & displaySignalList (std::ostream &os) const
 
virtual std::ostream & writeGraph (std::ostream &os) const
 
virtual std::ostream & writeCompletionList (std::ostream &os) const
 
virtual void display (std::ostream &os) const
 
virtual SignalBase< int > * test ()
 
virtual void test2 (SignalBase< int > *)
 
const std::string & getCommandList () const
 
CommandMap_t getNewStyleCommandMap ()
 
command::CommandgetNewStyleCommand (const std::string &cmdName)
 
SignalMap getSignalMap () const
 
void sendMsg (const std::string &msg, MsgType t=MSG_TYPE_INFO, const char *file="", int line=0)
 
void setLoggerVerbosityLevel (LoggerVerbosity lv)
 
LoggerVerbosity getLoggerVerbosityLevel ()
 

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
 
dg::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
 
- Protected Attributes inherited from dynamicgraph::Entity
std::string name
 
SignalMap signalMap
 
CommandMap_t commandMap
 
Logger logger_
 

Additional Inherited Members

- Public Types inherited from dynamicgraph::Entity
typedef std::map< std::string, SignalBase< int > * > SignalMap
 
typedef std::map< const std::string, command::Command * > CommandMap_t
 
- Public Attributes inherited from dynamicgraph::sot::IntegratorAbstract< sigT, coefT >
dg::SignalPtr< sigT, int > SIN
 
dg::SignalTimeDependent< sigT, int > SOUT
 
- Protected Member Functions inherited from dynamicgraph::Entity
void addCommand (const std::string &name, command::Command *command)
 
void entityRegistration ()
 
void entityDeregistration ()
 
void signalRegistration (const SignalArray< int > &signals)
 
void signalDeregistration (const std::string &name)
 

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

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

Member Function Documentation

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

Reimplemented from dynamicgraph::Entity.

template<class sigT , class coefT >
double dynamicgraph::sot::IntegratorEuler< sigT, coefT >::getSamplingPeriod ( ) const
inline
template<class sigT , class coefT >
static std::string dynamicgraph::sot::IntegratorEuler< sigT, coefT >::getTypeName ( void  )
inlinestatic
template<class sigT , class coefT >
void dynamicgraph::sot::IntegratorEuler< sigT, coefT >::setSamplingPeriod ( const double &  period)
inline

Member Data Documentation

template<class sigT , class coefT >
const std::string dynamicgraph::sot::IntegratorEuler< sigT, coefT >::CLASS_NAME
static
template<class sigT , class coefT >
dg::SignalTimeDependent<sigT, int> dynamicgraph::sot::IntegratorEuler< sigT, coefT >::derivativeSOUT
protected
template<class sigT , class coefT >
std::vector<sigT> dynamicgraph::sot::IntegratorEuler< sigT, coefT >::inputMemory
protected
template<class sigT , class coefT >
double dynamicgraph::sot::IntegratorEuler< sigT, coefT >::invdt
protected
template<class sigT , class coefT >
std::vector<sigT> dynamicgraph::sot::IntegratorEuler< sigT, coefT >::outputMemory
protected