PIDBufferedNumber Class Template Reference

#include <C:/Work/specialnumbers_svn/NumberLib/NumbersLib/PIDBufferedNumber.h>

Inheritance diagram for PIDBufferedNumber:

UpdateableNumber

List of all members.


Detailed Description

template<class T, unsigned int dn, unsigned int in, unsigned int im>
class luma::numbers::PIDBufferedNumber< T, dn, in, im >

A PIDBufferedNumber is a simple PID controller.

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] + ...

Parameters:
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.
getSample (int i) const
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.
mDifferentiableValueFactors [dn]
 Factors by which differentials are multiplied.
IntegrableNumber< T, im, in > mIntegrableValue
 The itegrable presentation of the value.
mIntegrableValueFactors [in]
 Factors by which integrals are multiplied.
mValue
 The current value.
mValueFactor
 Factor by which the current value is multiplied.

Constructor & Destructor Documentation

PIDBufferedNumber ( initialValue,
valueFactor,
differentiableValueFactors[dn],
integrableValueFactors[in] 
) [inline]

Constructs a new PIDBufferedNumber.

Parameters:
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.


Member Function Documentation

void forceValue ( x,
float  elapsedTime = 1.0f 
) [inline]

T getSample ( int  i  )  const [inline]

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 ( x,
float  elapsedTime = 1.0f 
) [inline, virtual]


Member Data Documentation

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().


The documentation for this class was generated from the following file:

Generated on Sun Sep 21 20:49:08 2008 for Numbers by  doxygen 1.5.6