Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpStatisticalTestAbstract Class Referenceabstract

#include <vpStatisticalTestAbstract.h>

Inheritance diagram for vpStatisticalTestAbstract:

Public Types

enum  vpMeanDriftType {
  MEAN_DRIFT_NONE = 0 , MEAN_DRIFT_DOWNWARD = 1 , MEAN_DRIFT_UPWARD = 2 , MEAN_DRIFT_BOTH = 3 ,
  MEAN_DRIFT_COUNT = 4 , MEAN_DRIFT_UNKNOWN = MEAN_DRIFT_COUNT
}
typedef enum vpStatisticalTestAbstract::vpMeanDriftType vpMeanDriftType

Public Member Functions

 vpStatisticalTestAbstract ()
 vpStatisticalTestAbstract (const vpStatisticalTestAbstract &other)
virtual ~vpStatisticalTestAbstract ()
void getLimits (float &limitDown, float &limitUp) const
float getMean () const
float getStdev () const
void init ()
vpStatisticalTestAbstractoperator= (const vpStatisticalTestAbstract &other)
void setMinStdev (const float &stdevmin)
void setNbSamplesForStat (const unsigned int &nbSamples)
vpMeanDriftType testDownUpwardMeanDrift (const float &signal)
vpMeanDriftType testDownwardMeanDrift (const float &signal)
vpMeanDriftType testUpwardMeanDrift (const float &signal)

Static Public Member Functions

static std::string vpMeanDriftTypeToString (const vpMeanDriftType &type)
static vpMeanDriftType vpMeanDriftTypeFromString (const std::string &name)
static std::string getAvailableMeanDriftType (const std::string &prefix="<", const std::string &sep=" , ", const std::string &suffix=">")
static void print (const vpMeanDriftType &type)

Protected Member Functions

virtual vpMeanDriftType detectDownwardMeanDrift ()=0
virtual vpMeanDriftType detectUpwardMeanDrift ()=0
virtual bool updateStatistics (const float &signal)
virtual void updateTestSignals (const float &signal)=0

Protected Attributes

bool m_areStatisticsComputed
float m_count
float m_limitDown
float m_limitUp
float m_mean
unsigned int m_nbSamplesForStatistics
float * m_s
float m_stdev
float m_stdevmin
float m_sumForMean

Detailed Description

Base class for methods detecting the drift of the mean of a process.

To detect only downward drifts of the input signal $ s(t) $ use testDownwardMeanDrift().To detect only upward drifts in $ s(t) $ use testUpwardMeanDrift(). To detect both, downward and upward drifts use testDownUpwardMeanDrift().

Tutorials & Examples

Tutorials
If you are interested in using Statistical Process Control methods, you may have a look at:

Examples
tutorial-meandrift.cpp.

Definition at line 63 of file vpStatisticalTestAbstract.h.

Member Typedef Documentation

◆ vpMeanDriftType

Enum that indicates if a drift of the mean occurred.

Member Enumeration Documentation

◆ vpMeanDriftType

Enum that indicates if a drift of the mean occurred.

Enumerator
MEAN_DRIFT_NONE 

No mean drift occurred

MEAN_DRIFT_DOWNWARD 

A downward drift of the mean occurred.

MEAN_DRIFT_UPWARD 

An upward drift of the mean occurred.

MEAN_DRIFT_BOTH 

Both an aupward and a downward drifts occurred.

MEAN_DRIFT_COUNT 
MEAN_DRIFT_UNKNOWN 
Examples
testSPC.cpp, and tutorial-meandrift.cpp.

Definition at line 69 of file vpStatisticalTestAbstract.h.

Constructor & Destructor Documentation

◆ vpStatisticalTestAbstract() [1/2]

◆ vpStatisticalTestAbstract() [2/2]

vpStatisticalTestAbstract::vpStatisticalTestAbstract ( const vpStatisticalTestAbstract & other)

Construct by copy a new vpStatisticalTestAbstract object.

Definition at line 144 of file vpStatisticalTestAbstract.cpp.

References vpStatisticalTestAbstract().

◆ ~vpStatisticalTestAbstract()

vpStatisticalTestAbstract::~vpStatisticalTestAbstract ( )
virtual

Destroy the vpStatisticalTestAbstract object.

Definition at line 149 of file vpStatisticalTestAbstract.cpp.

References m_s.

Member Function Documentation

◆ detectDownwardMeanDrift()

virtual vpMeanDriftType vpStatisticalTestAbstract::detectDownwardMeanDrift ( )
protectedpure virtual

Detects if a downward mean drift occurred.

Returns
vpMeanDriftType::MEAN_DRIFT_DOWNWARD if a downward mean drift occurred, vpMeanDriftType::MEAN_DRIFT_NONE otherwise.
See also
detectUpwardMeanDrift()

Implemented in vpStatisticalTestEWMA, vpStatisticalTestHinkley, vpStatisticalTestMeanAdjustedCUSUM, vpStatisticalTestShewhart, and vpStatisticalTestSigma.

Referenced by testDownUpwardMeanDrift(), and testDownwardMeanDrift().

◆ detectUpwardMeanDrift()

virtual vpMeanDriftType vpStatisticalTestAbstract::detectUpwardMeanDrift ( )
protectedpure virtual

Detects if a upward mean drift occurred.

Returns
vpMeanDriftType::MEAN_DRIFT_UPWARD if an upward mean drift occurred, vpMeanDriftType::MEAN_DRIFT_NONE otherwise.
See also
detectDownwardMeanDrift()

Implemented in vpStatisticalTestEWMA, vpStatisticalTestHinkley, vpStatisticalTestMeanAdjustedCUSUM, vpStatisticalTestShewhart, and vpStatisticalTestSigma.

References updateStatistics().

Referenced by testDownUpwardMeanDrift(), and testUpwardMeanDrift().

◆ getAvailableMeanDriftType()

std::string vpStatisticalTestAbstract::getAvailableMeanDriftType ( const std::string & prefix = "<",
const std::string & sep = " , ",
const std::string & suffix = ">" )
static

Get the list of available vpMeanDriftType objects that are handled.

Parameters
[in]prefixThe prefix that should be placed before the list.
[in]sepThe separator between each element of the list.
[in]suffixThe suffix that should terminate the list.
Returns
std::string The list of handled type of process tests, presented as a string.
Examples
tutorial-meandrift.cpp.

Definition at line 85 of file vpStatisticalTestAbstract.cpp.

References MEAN_DRIFT_COUNT, and vpMeanDriftTypeToString().

◆ getLimits()

void vpStatisticalTestAbstract::getLimits ( float & limitDown,
float & limitUp ) const
inline

Get the upper and lower limits of the test signal.

Parameters
[out]limitDownThe lower limit.
[out]limitUpThe upper limit.
Examples
testSPC.cpp, and tutorial-meandrift.cpp.

Definition at line 181 of file vpStatisticalTestAbstract.h.

References m_limitDown, and m_limitUp.

◆ getMean()

float vpStatisticalTestAbstract::getMean ( ) const
inline

Get the mean used as reference.

Returns
float The mean.
Examples
tutorial-meandrift.cpp.

Definition at line 192 of file vpStatisticalTestAbstract.h.

References m_mean.

◆ getStdev()

float vpStatisticalTestAbstract::getStdev ( ) const
inline

Get the standard deviation used as reference.

Returns
float The standard deviation.
Examples
tutorial-meandrift.cpp.

Definition at line 202 of file vpStatisticalTestAbstract.h.

References m_stdev.

◆ init()

◆ operator=()

vpStatisticalTestAbstract & vpStatisticalTestAbstract::operator= ( const vpStatisticalTestAbstract & other)

◆ print()

void vpStatisticalTestAbstract::print ( const vpMeanDriftType & type)
static

Print the message corresponding to the type of mean drift.

Parameters
[in]typeThe type of mean drift.

Definition at line 98 of file vpStatisticalTestAbstract.cpp.

References vpMeanDriftTypeToString().

◆ setMinStdev()

void vpStatisticalTestAbstract::setMinStdev ( const float & stdevmin)
inline

Set the minimum value of the standard deviation that is expected. The computed standard deviation cannot be lower this value if set.

Parameters
[in]stdevminThe minimum value of the standard deviation that is expected.

Definition at line 226 of file vpStatisticalTestAbstract.h.

References m_stdevmin.

◆ setNbSamplesForStat()

void vpStatisticalTestAbstract::setNbSamplesForStat ( const unsigned int & nbSamples)

Set the number of samples required to compute the mean and standard deviation of the signal and allocate the memory accordingly.

Parameters
[in]nbSamplesThe number of samples we want to use.

Definition at line 193 of file vpStatisticalTestAbstract.cpp.

References m_nbSamplesForStatistics, and m_s.

Referenced by vpStatisticalTestEWMA::init(), vpStatisticalTestEWMA::init(), vpStatisticalTestHinkley::init(), vpStatisticalTestHinkley::init(), vpStatisticalTestHinkley::init(), vpStatisticalTestMeanAdjustedCUSUM::init(), vpStatisticalTestMeanAdjustedCUSUM::init(), vpStatisticalTestSigma::init(), and operator=().

◆ testDownUpwardMeanDrift()

vpStatisticalTestAbstract::vpMeanDriftType vpStatisticalTestAbstract::testDownUpwardMeanDrift ( const float & signal)

Test if a downward or an upward mean drift occurred according to the new value of the signal.

Parameters
[in]signalThe new value of the signal.
Returns
vpMeanDriftType The type of mean drift that occurred.
See also
testDownwardMeanDrift() testUpwardMeanDrift()
Examples
testSPC.cpp, and tutorial-meandrift.cpp.

Definition at line 202 of file vpStatisticalTestAbstract.cpp.

References detectDownwardMeanDrift(), detectUpwardMeanDrift(), m_areStatisticsComputed, MEAN_DRIFT_BOTH, MEAN_DRIFT_NONE, updateStatistics(), and updateTestSignals().

◆ testDownwardMeanDrift()

vpStatisticalTestAbstract::vpMeanDriftType vpStatisticalTestAbstract::testDownwardMeanDrift ( const float & signal)

Test if a downward mean drift occurred according to the new value of the signal.

Parameters
[in]signalThe new value of the signal.
Returns
vpMeanDriftType The type of mean drift that occurred.
See also
testUpwardMeanDrift()

Definition at line 227 of file vpStatisticalTestAbstract.cpp.

References detectDownwardMeanDrift(), m_areStatisticsComputed, MEAN_DRIFT_NONE, updateStatistics(), and updateTestSignals().

◆ testUpwardMeanDrift()

vpStatisticalTestAbstract::vpMeanDriftType vpStatisticalTestAbstract::testUpwardMeanDrift ( const float & signal)

Test if an upward mean drift occurred according to the new value of the signal.

Parameters
[in]signalThe new value of the signal.
Returns
vpMeanDriftType The type of mean drift that occurred.
See also
testDownwardMeanDrift()

Definition at line 239 of file vpStatisticalTestAbstract.cpp.

References detectUpwardMeanDrift(), m_areStatisticsComputed, MEAN_DRIFT_NONE, updateStatistics(), and updateTestSignals().

◆ updateStatistics()

bool vpStatisticalTestAbstract::updateStatistics ( const float & signal)
protectedvirtual

◆ updateTestSignals()

virtual void vpStatisticalTestAbstract::updateTestSignals ( const float & signal)
protectedpure virtual

Update the test signals.

Parameters
[in]signalThe new value of the signal to monitor.

Implemented in vpStatisticalTestEWMA, vpStatisticalTestHinkley, vpStatisticalTestMeanAdjustedCUSUM, vpStatisticalTestShewhart, and vpStatisticalTestSigma.

References vpStatisticalTestAbstract().

Referenced by testDownUpwardMeanDrift(), testDownwardMeanDrift(), and testUpwardMeanDrift().

◆ vpMeanDriftTypeFromString()

vpStatisticalTestAbstract::vpMeanDriftType vpStatisticalTestAbstract::vpMeanDriftTypeFromString ( const std::string & name)
static

Cast a string into a vpMeanDriftType.

Parameters
[in]nameThe name of the mean drift.
Returns
vpMeanDriftType The corresponding vpMeanDriftType.
Examples
tutorial-meandrift.cpp.

Definition at line 68 of file vpStatisticalTestAbstract.cpp.

References MEAN_DRIFT_COUNT, MEAN_DRIFT_UNKNOWN, and vpMeanDriftTypeToString().

◆ vpMeanDriftTypeToString()

BEGIN_VISP_NAMESPACE std::string vpStatisticalTestAbstract::vpMeanDriftTypeToString ( const vpMeanDriftType & type)
static

Cast a vpMeanDriftType into a string.

Parameters
[in]typeThe type of mean drift.
Returns
std::string The corresponding message.
Examples
testSPC.cpp, and tutorial-meandrift.cpp.

Definition at line 42 of file vpStatisticalTestAbstract.cpp.

References vpException::fatalError, MEAN_DRIFT_BOTH, MEAN_DRIFT_DOWNWARD, MEAN_DRIFT_NONE, MEAN_DRIFT_UNKNOWN, and MEAN_DRIFT_UPWARD.

Referenced by getAvailableMeanDriftType(), print(), and vpMeanDriftTypeFromString().

Member Data Documentation

◆ m_areStatisticsComputed

◆ m_count

float vpStatisticalTestAbstract::m_count
protected

Current number of data used to compute the mean and the standard deviation.

Definition at line 115 of file vpStatisticalTestAbstract.h.

Referenced by vpStatisticalTestHinkley::computeMean(), init(), operator=(), updateStatistics(), vpStatisticalTestHinkley::updateTestSignals(), and vpStatisticalTestAbstract().

◆ m_limitDown

◆ m_limitUp

◆ m_mean

◆ m_nbSamplesForStatistics

unsigned int vpStatisticalTestAbstract::m_nbSamplesForStatistics
protected

Number of samples to use to compute the mean and the standard deviation.

Definition at line 119 of file vpStatisticalTestAbstract.h.

Referenced by init(), operator=(), setNbSamplesForStat(), updateStatistics(), and vpStatisticalTestAbstract().

◆ m_s

float* vpStatisticalTestAbstract::m_s
protected

Array that keeps the samples used to compute the mean and standard deviation.

Definition at line 120 of file vpStatisticalTestAbstract.h.

Referenced by init(), operator=(), setNbSamplesForStat(), updateStatistics(), vpStatisticalTestAbstract(), and ~vpStatisticalTestAbstract().

◆ m_stdev

◆ m_stdevmin

float vpStatisticalTestAbstract::m_stdevmin
protected

Minimum allowed standard deviation of the monitored signal.

Definition at line 122 of file vpStatisticalTestAbstract.h.

Referenced by setMinStdev(), updateStatistics(), and vpStatisticalTestAbstract().

◆ m_sumForMean

float vpStatisticalTestAbstract::m_sumForMean
protected

Sum of the samples used to compute the mean and standard deviation.

Definition at line 123 of file vpStatisticalTestAbstract.h.

Referenced by init(), vpStatisticalTestMeanAdjustedCUSUM::init(), operator=(), updateStatistics(), and vpStatisticalTestAbstract().