#include <homeokinbase.h>
Inherits AbstractController.
Inherited by InvertMotorController.
Inheritance diagram for HomeokinBase:
Public Member Functions | |
HomeokinBase (unsigned short buffersize, const std::string &name, const std::string &revision) | |
Protected Member Functions | |
void | putInBuffer (matrix::Matrix *buffer, const matrix::Matrix &vec, int delay=0) |
put new value in ring buffer | |
virtual matrix::Matrix | calculateDelayedValues (const matrix::Matrix *buffer, int number_steps_of_delay_) |
calculate delayed values | |
virtual matrix::Matrix | calculateSmoothValues (const matrix::Matrix *buffer, int number_steps_for_averaging_) |
calculate time-smoothed values | |
virtual double | calcErrorFactor (const matrix::Matrix &e, bool loga, bool root) |
calculates the error_factor for either logarithmic (E=ln(e^T*e)) or square (E=sqrt(e^t*e)) error | |
Static Protected Member Functions | |
static double | g (double z) |
neuron transfer function | |
Protected Attributes | |
paramval | epsC |
learning rate factor for controller learning | |
paramval | epsA |
learning rate factor for model learning | |
paramval | factorB |
additional learning rate factor for model bias | |
paramint | s4delay |
number of timesteps of delay in the SML | |
paramint | s4avg |
number of timesteps used for smoothing the controller output values | |
paramint | logaE |
logarithmic error is used for learning 1: controller 2: model 3: both | |
paramint | rootE |
root error is used for learning 1: controller 2: model 3: both | |
paramval | squashSize |
size of the box, where the parameter updates are clipped to | |
int | t |
unsigned short | buffersize |
bool | initialised |
Implements standard buffers and configureable interface for some useful parameters like epsC, epsA, s4avg ...
HomeokinBase | ( | unsigned short | buffersize, | |
const std::string & | name, | |||
const std::string & | revision | |||
) | [inline] |
virtual double calcErrorFactor | ( | const matrix::Matrix & | e, | |
bool | loga, | |||
bool | root | |||
) | [inline, protected, virtual] |
calculates the error_factor for either logarithmic (E=ln(e^T*e)) or square (E=sqrt(e^t*e)) error
virtual matrix::Matrix calculateDelayedValues | ( | const matrix::Matrix * | buffer, | |
int | number_steps_of_delay_ | |||
) | [inline, protected, virtual] |
calculate delayed values
virtual matrix::Matrix calculateSmoothValues | ( | const matrix::Matrix * | buffer, | |
int | number_steps_for_averaging_ | |||
) | [inline, protected, virtual] |
calculate time-smoothed values
static double g | ( | double | z | ) | [inline, static, protected] |
neuron transfer function
void putInBuffer | ( | matrix::Matrix * | buffer, | |
const matrix::Matrix & | vec, | |||
int | delay = 0 | |||
) | [inline, protected] |
put new value in ring buffer
unsigned short buffersize [protected] |
bool initialised [protected] |
paramval squashSize [protected] |
size of the box, where the parameter updates are clipped to
int t [protected] |