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>
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 () |
![]() | |
IntegratorAbstract (const std::string &name) | |
virtual | ~IntegratorAbstract () |
void | pushNumCoef (const coefT &numCoef) |
void | pushDenomCoef (const coefT &denomCoef) |
void | popNumCoef () |
void | popDenomCoef () |
![]() | |
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::Command * | getNewStyleCommand (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 |
![]() | |
std::vector< coefT > | numerator |
std::vector< coefT > | denominator |
![]() | |
std::string | name |
SignalMap | signalMap |
CommandMap_t | commandMap |
Logger | logger_ |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, SignalBase< int > * > | SignalMap |
typedef std::map< const std::string, command::Command * > | CommandMap_t |
![]() | |
dg::SignalPtr< sigT, int > | SIN |
dg::SignalTimeDependent< sigT, int > | SOUT |
![]() | |
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) |
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.
|
inline |
References dynamicgraph::Entity::addCommand(), dynamicgraph::sot::IntegratorEuler< sigT, coefT >::derivativeSOUT, docCommandVoid0(), dynamicgraph::sot::IntegratorEuler< sigT, coefT >::getSamplingPeriod(), dynamicgraph::sot::IntegratorEuler< sigT, coefT >::initialize(), makeCommandVoid0(), dynamicgraph::sot::IntegratorEuler< sigT, coefT >::setSamplingPeriod(), and dynamicgraph::Entity::signalRegistration().
|
inlinevirtual |
|
inline |
|
virtual |
Reimplemented from dynamicgraph::Entity.
|
inline |
|
inlinestatic |
|
inline |
References dynamicgraph::SignalPtr< class, class >::accessCopy(), dynamicgraph::sot::IntegratorAbstract< sigT, coefT >::denominator, dynamicgraph::sot::IntegratorAbstract< sigT, coefT >::numerator, and dynamicgraph::sot::IntegratorAbstract< sigT, coefT >::SIN.
Referenced by dynamicgraph::sot::IntegratorEuler< sigT, coefT >::IntegratorEuler().
|
inlinevirtual |
Implements dynamicgraph::sot::IntegratorAbstract< sigT, coefT >.
References dynamicgraph::SignalPtr< class, class >::access(), dynamicgraph::sot::IntegratorAbstract< sigT, coefT >::denominator, dynamicgraph::sot::IntegratorEuler< sigT, coefT >::dt, dynamicgraph::sot::IntegratorEuler< sigT, coefT >::invdt, dynamicgraph::sot::IntegratorAbstract< sigT, coefT >::numerator, dynamicgraph::sot::IntegratorAbstract< sigT, coefT >::SIN, and sotDEBUG.
|
inline |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |