#include <invert3channelcontroller.h>
Inherits InvertController.
Inheritance diagram for Invert3ChannelController:


Public Member Functions | |
| virtual double | g (double z) |
| neuron transfer function | |
| virtual double | g_s (double z) |
| virtual double | squash (double z) |
| squashing function, to protect against to large weight updates | |
| Invert3ChannelController () | |
| virtual void | step (const sensor *x_, int sensornumber, motor *y_, int motornumber) |
| performs one step (includes learning). Calulates motor commands from sensor inputs. | |
| virtual void | stepNoLearning (const sensor *x_, int sensornumber, motor *y_, int motornumber) |
| performs one step without learning. Calulates motor commands from sensor inputs. | |
Public Attributes | |
| double | A [NUMBER_CHANNELS][NUMBER_CHANNELS] |
| model matrix | |
| double | C [NUMBER_CHANNELS][NUMBER_CHANNELS] |
| controller matrix | |
| double | h [NUMBER_CHANNELS] |
| bias vector | |
| double | x_buffer [BUFFER_SIZE][NUMBER_CHANNELS] |
| buffer for input values, x[tbuffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1) | |
| double | y_buffer [BUFFER_SIZE][NUMBER_CHANNELS] |
| buffer for output values, y[tbuffersize]=actual value(if already calculated!), y[(t-1+buffersize)buffersize]=y(t-1) | |
| double | xsi4E [NUMBER_CHANNELS] |
| double | xsi4Model [NUMBER_CHANNELS] |
| int | t |
| number of steps, needed for ringbuffer x_buffer | |
Protected Member Functions | |
| virtual void | inverseMatrix (double Q[NUMBER_CHANNELS][NUMBER_CHANNELS], double Q_1[NUMBER_CHANNELS][NUMBER_CHANNELS]) |
| virtual double | calculateE (const double *x_, const double *x_delay, const double *y_delay) |
| virtual void | learn (const double *x_, const double *x_delay, const double *y_delay) |
| virtual void | learnModel (const double *x_actual, double *y_effective) |
| virtual void | calculateDelayedValues (double source[BUFFER_SIZE][NUMBER_CHANNELS], paramval number_steps_of_delay_, double *target) |
| calculate delayed values | |
| virtual void | calculateSmoothValues (double source[BUFFER_SIZE][NUMBER_CHANNELS], paramval number_steps_for_averaging_, double *target) |
| virtual void | calculateControllerValues (double *x_smooth, double *y) |
| calculate controller ouptus | |
| virtual void | putInBuffer (double buffer[BUFFER_SIZE][NUMBER_CHANNELS], const double *values) |
| virtual int | getInternalParamNames (paramkey *&keylist) |
| virtual int | getInternalParams (paramval *vallist, int length) |
Implements standart parameters: eps, rho, mu, stepnumber4avg, stepnumber4delay
| Invert3ChannelController | ( | ) | [inline] |
| virtual void calculateControllerValues | ( | double * | x_smooth, | |
| double * | y | |||
| ) | [inline, protected, virtual] |
calculate controller ouptus
| virtual void calculateDelayedValues | ( | double | source[BUFFER_SIZE][NUMBER_CHANNELS], | |
| paramval | number_steps_of_delay_, | |||
| double * | target | |||
| ) | [inline, protected, virtual] |
calculate delayed values
| virtual double calculateE | ( | const double * | x_, | |
| const double * | x_delay, | |||
| const double * | y_delay | |||
| ) | [inline, protected, virtual] |
| virtual void calculateSmoothValues | ( | double | source[BUFFER_SIZE][NUMBER_CHANNELS], | |
| paramval | number_steps_for_averaging_, | |||
| double * | target | |||
| ) | [inline, protected, virtual] |
| virtual double g | ( | double | z | ) | [inline, virtual] |
neuron transfer function
| virtual double g_s | ( | double | z | ) | [inline, virtual] |
| virtual int getInternalParamNames | ( | paramkey *& | keylist | ) | [inline, protected, virtual] |
| virtual int getInternalParams | ( | paramval * | vallist, | |
| int | length | |||
| ) | [inline, protected, virtual] |
| virtual void inverseMatrix | ( | double | Q[NUMBER_CHANNELS][NUMBER_CHANNELS], | |
| double | Q_1[NUMBER_CHANNELS][NUMBER_CHANNELS] | |||
| ) | [inline, protected, virtual] |
| virtual void learn | ( | const double * | x_, | |
| const double * | x_delay, | |||
| const double * | y_delay | |||
| ) | [inline, protected, virtual] |
| virtual void learnModel | ( | const double * | x_actual, | |
| double * | y_effective | |||
| ) | [inline, protected, virtual] |
| virtual void putInBuffer | ( | double | buffer[BUFFER_SIZE][NUMBER_CHANNELS], | |
| const double * | values | |||
| ) | [inline, protected, virtual] |
| virtual double squash | ( | double | z | ) | [inline, virtual] |
squashing function, to protect against to large weight updates
| virtual void step | ( | const sensor * | x_, | |
| int | sensornumber, | |||
| motor * | y_, | |||
| int | motornumber | |||
| ) | [inline, virtual] |
performs one step (includes learning). Calulates motor commands from sensor inputs.
Reimplemented from AbstractController.
| virtual void stepNoLearning | ( | const sensor * | x_, | |
| int | sensornumber, | |||
| motor * | y_, | |||
| int | motornumber | |||
| ) | [inline, virtual] |
performs one step without learning. Calulates motor commands from sensor inputs.
Reimplemented from AbstractController.
| double A[NUMBER_CHANNELS][NUMBER_CHANNELS] |
model matrix
| double C[NUMBER_CHANNELS][NUMBER_CHANNELS] |
controller matrix
| double h[NUMBER_CHANNELS] |
bias vector
| int t |
number of steps, needed for ringbuffer x_buffer
| double x_buffer[BUFFER_SIZE][NUMBER_CHANNELS] |
buffer for input values, x[tbuffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1)
| double xsi4E[NUMBER_CHANNELS] |
| double xsi4Model[NUMBER_CHANNELS] |
| double y_buffer[BUFFER_SIZE][NUMBER_CHANNELS] |
buffer for output values, y[tbuffersize]=actual value(if already calculated!), y[(t-1+buffersize)buffersize]=y(t-1)
1.4.7