#include <C:/Work/specialnumbers_svn/NumberLib/NumbersLib/PIDBufferedNumber.h>
Let D_n be the nth differential, I_n be the nth integral, then the value returned by getValue() is
y = a * x + b_1*D_1[x] + b_2*D_2[x] + ... + c_1*I_1[x] + c_2*I_2[x] + ...
T | The variable type of this PIDBufferedNumber, typically float. | |
dn | The number of derivatives that will be used. | |
in | The number of integrals that will be used. | |
im | The number of samples over hwich the integration will be. |
Definition at line 32 of file PIDBufferedNumber.h.
Public Member Functions | |
void | forceValue (T x, float elapsedTime=1.0f) |
Sets the current value of this PIDBufferedNumber. | |
T | getSample (int i) const |
T | getValue () const |
Returns a weighted sum of the current value, its derivatives, and its integrals. | |
PIDBufferedNumber (T initialValue, T valueFactor, T differentiableValueFactors[dn], T integrableValueFactors[in]) | |
Constructs a new PIDBufferedNumber. | |
void | setValue (T x, float elapsedTime=1.0f) |
Sets the current value of this PIDBufferedNumber. | |
Private Attributes | |
DifferentiableNumber< T, dn > | mDifferentiableValue |
The differentiable presentation of the value. | |
T | mDifferentiableValueFactors [dn] |
Factors by which differentials are multiplied. | |
IntegrableNumber< T, im, in > | mIntegrableValue |
The itegrable presentation of the value. | |
T | mIntegrableValueFactors [in] |
Factors by which integrals are multiplied. | |
T | mValue |
The current value. | |
T | mValueFactor |
Factor by which the current value is multiplied. |
PIDBufferedNumber | ( | T | initialValue, | |
T | valueFactor, | |||
T | differentiableValueFactors[dn], | |||
T | integrableValueFactors[in] | |||
) | [inline] |
Constructs a new PIDBufferedNumber.
initialValue | Zero of type T. The value, all differentials and all integrals are initialised with this value | |
valueFactor | The factor by which the current value is multiplied in the getValue() function. | |
differentiableValueFactors | Factors by which derrivatives are multiplied in the getValue() function. | |
integrableValueFactors | Factors by which integrals are multiplied in the getValue() function. |
Definition at line 102 of file PIDBufferedNumber.h.
References PIDBufferedNumber::mDifferentiableValueFactors, and PIDBufferedNumber::mIntegrableValueFactors.
void forceValue | ( | T | x, | |
float | elapsedTime = 1.0f | |||
) | [inline] |
Sets the current value of this PIDBufferedNumber.
Definition at line 132 of file PIDBufferedNumber.h.
References IntegrableNumber::forceValue(), DifferentiableNumber::forceValue(), PIDBufferedNumber::mDifferentiableValue, PIDBufferedNumber::mIntegrableValue, and PIDBufferedNumber::mValue.
T getSample | ( | int | i | ) | const [inline] |
Definition at line 158 of file PIDBufferedNumber.h.
References IntegrableNumber::getSample(), and PIDBufferedNumber::mIntegrableValue.
T getValue | ( | ) | const [inline, virtual] |
Returns a weighted sum of the current value, its derivatives, and its integrals.
The weights are the factors passed in to the constructor.
Implements UpdateableNumber.
Definition at line 140 of file PIDBufferedNumber.h.
References IntegrableNumber::getValue(), DifferentiableNumber::getValue(), PIDBufferedNumber::mDifferentiableValue, PIDBufferedNumber::mDifferentiableValueFactors, PIDBufferedNumber::mIntegrableValue, PIDBufferedNumber::mIntegrableValueFactors, PIDBufferedNumber::mValue, and PIDBufferedNumber::mValueFactor.
void setValue | ( | T | x, | |
float | elapsedTime = 1.0f | |||
) | [inline, virtual] |
Sets the current value of this PIDBufferedNumber.
Implements UpdateableNumber.
Definition at line 124 of file PIDBufferedNumber.h.
References PIDBufferedNumber::mDifferentiableValue, PIDBufferedNumber::mIntegrableValue, PIDBufferedNumber::mValue, IntegrableNumber::setValue(), and DifferentiableNumber::setValue().
DifferentiableNumber<T, dn> mDifferentiableValue [private] |
The differentiable presentation of the value.
Definition at line 39 of file PIDBufferedNumber.h.
Referenced by PIDBufferedNumber::forceValue(), PIDBufferedNumber::getValue(), and PIDBufferedNumber::setValue().
T mDifferentiableValueFactors[dn] [private] |
Factors by which differentials are multiplied.
Definition at line 48 of file PIDBufferedNumber.h.
Referenced by PIDBufferedNumber::getValue(), and PIDBufferedNumber::PIDBufferedNumber().
IntegrableNumber<T, im, in> mIntegrableValue [private] |
The itegrable presentation of the value.
Definition at line 42 of file PIDBufferedNumber.h.
Referenced by PIDBufferedNumber::forceValue(), PIDBufferedNumber::getSample(), PIDBufferedNumber::getValue(), and PIDBufferedNumber::setValue().
T mIntegrableValueFactors[in] [private] |
Factors by which integrals are multiplied.
Definition at line 51 of file PIDBufferedNumber.h.
Referenced by PIDBufferedNumber::getValue(), and PIDBufferedNumber::PIDBufferedNumber().
T mValue [private] |
The current value.
Definition at line 36 of file PIDBufferedNumber.h.
Referenced by PIDBufferedNumber::forceValue(), PIDBufferedNumber::getValue(), and PIDBufferedNumber::setValue().
T mValueFactor [private] |
Factor by which the current value is multiplied.
Definition at line 45 of file PIDBufferedNumber.h.
Referenced by PIDBufferedNumber::getValue().