Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

KalmanFilter Class Reference

#include <KalmanFilter.h>

Inheritance diagram for KalmanFilter:

Inheritance graph
[legend]
Collaboration diagram for KalmanFilter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 KalmanFilter ()
 KalmanFilter (Matrix &_covariance, Matrix &_kalmanGain)
 ~KalmanFilter ()
virtual void PropagateState ()
void PropagateCovariance ()
void CalculateKalmanGain ()
void MeasurementUpdateState ()
void MeasurementUpdateCovariance ()
void SetCovarianceMatrix (Matrix &_covariance)
void SetKalmanGainMatrix (Matrix &_kalmanGain)
void SetStatePropagator (void(*statePropagateFunc)(KalmanFilter *))
void SetCovariancePropagator (void(*covariancePropagateFunc)(KalmanFilter *))
void SetKalmanGainCalculation (void(*kalmanGainCalculationFunc)(KalmanFilter *))
void SetStateMeasurementUpdate (void(*stateMeasurementUpdateFunc)(KalmanFilter *))
void SetCovarianceMeasurementUpdate (void(*covarianceMeasurementUpdateFunc)(KalmanFilter *))
void SetSystemProcessNoiseMatrix (Matrix(*systemProcessNoiseMatrix)(KalmanFilter *))
void SetMeasurementCovarianceMatrix (Matrix(*measurementCovarianceMatrix)(KalmanFilter *))
void SetStateJacobianMatrix (Matrix(*stateJacobianMatrix)(KalmanFilter *))
void SetMeasurementJacobianMatrix (Matrix(*measurementJacobianMatrix)(KalmanFilter *))
virtual void EstimateState ()
Matrix GetCovarianceMatrix ()
Matrix GetKalmanGainMatrix ()
Matrix GetSystemProcessNoiseMatrix ()
Matrix GetMeasurementCovarianceMatrix ()
Matrix GetStateJacobianMatrix ()
Matrix GetMeasurementJacobianMatrix ()
virtual Vector GetEstimatedMeasurements ()
void SetTimeOfEstimate (double &_timeOfEstimate)
void SetTimeOfMeasurements (double &_timeOfMeasurements)
void SetStateVector (Vector &_states)
void SetControlVector (Vector &_controls)
void SetMeasurementVector (Vector &_measurements)
void SetParameterVector (Vector &_parameters)
double GetTimeOfEstimate ()
double GetTimeOfMeasurements ()
double GetTimeStep ()
Vector GetStateVector ()
Vector GetControlVector ()
Vector GetMeasurementVector ()
Vector GetParameterVector ()
virtual int GetNumIterations ()

Protected Attributes

Matrix m_covariance
Matrix m_kalmanGain
double m_timeOfEstimate
double m_timeOfMeasurements
Vector m_states
Vector m_controls
Vector m_measurements
Vector m_parameters

Private Attributes

void(* ptr_statePropagteFunc )(KalmanFilter *)
void(* ptr_covariancePropagateFunc )(KalmanFilter *)
void(* ptr_kalmanGainCalculationFunc )(KalmanFilter *)
void(* ptr_stateMeasurementUpdateFunc )(KalmanFilter *)
void(* ptr_covarianceMeasurementUpdateFunc )(KalmanFilter *)
Matrix(* ptr_systemProcessNoiseMatrix )(KalmanFilter *)
Matrix(* ptr_measurementCovarianceMatrix )(KalmanFilter *)
Matrix(* ptr_stateJacobianMatrix )(KalmanFilter *)
Matrix(* ptr_measurementJacobianMatrix )(KalmanFilter *)

Constructor & Destructor Documentation

KalmanFilter::KalmanFilter  ) 
 

Default constructor

Definition at line 20 of file KalmanFilter.cpp.

References Fmatrix(), Hmatrix(), LKFCalcualteKalmanGain(), LKFCovarianceMatrixPropagator(), LKFCovarianceMeasurementUpdate(), LKFStateMeasurementUpdate(), LKFStatePropagator(), Qmatrix(), Rmatrix(), SetCovarianceMeasurementUpdate(), SetCovariancePropagator(), SetKalmanGainCalculation(), SetMeasurementCovarianceMatrix(), SetMeasurementJacobianMatrix(), SetStateJacobianMatrix(), SetStateMeasurementUpdate(), SetStatePropagator(), and SetSystemProcessNoiseMatrix().

KalmanFilter::KalmanFilter Matrix _covariance,
Matrix _kalmanGain
 

Kalman data constructor

Definition at line 35 of file KalmanFilter.cpp.

References Fmatrix(), Hmatrix(), LKFCalcualteKalmanGain(), LKFCovarianceMatrixPropagator(), LKFCovarianceMeasurementUpdate(), LKFStateMeasurementUpdate(), LKFStatePropagator(), O_SESSAME::Matrix, Qmatrix(), Rmatrix(), SetCovarianceMatrix(), SetCovarianceMeasurementUpdate(), SetCovariancePropagator(), SetKalmanGainCalculation(), SetKalmanGainMatrix(), SetMeasurementCovarianceMatrix(), SetMeasurementJacobianMatrix(), SetStateJacobianMatrix(), SetStateMeasurementUpdate(), SetStatePropagator(), and SetSystemProcessNoiseMatrix().

KalmanFilter::~KalmanFilter  ) 
 

Deconstructor

Definition at line 53 of file KalmanFilter.cpp.


Member Function Documentation

void KalmanFilter::CalculateKalmanGain  ) 
 

Executes the Kalman gain calculation function

Definition at line 78 of file KalmanFilter.cpp.

References ptr_kalmanGainCalculationFunc.

Referenced by EstimateState(), IteratedExtendedKalmanFilter::EstimateState(), and ExtendedKalmanFilter::EstimateState().

void KalmanFilter::EstimateState  )  [virtual]
 

Estimate the state using the last state estimate and the current measurements

Implements SequentialFilter.

Reimplemented in ExtendedKalmanFilter, and IteratedExtendedKalmanFilter.

Definition at line 64 of file KalmanFilter.cpp.

References CalculateKalmanGain(), MeasurementUpdateCovariance(), MeasurementUpdateState(), PropagateCovariance(), and PropagateState().

Referenced by main().

Vector SequentialFilter::GetControlVector  )  [inherited]
 

Gets the control vector.

Definition at line 24 of file SequentialFilter.cpp.

References O_SESSAME::Vector.

Referenced by SequentialFilterHistory::AppendHistory(), SequentialFilterHistory::GetHistory(), LKFCovarianceMatrixPropagator(), LKFStateMeasurementUpdate(), LKFStatePropagator(), param_Euler_Ematrix(), and RungeKuttaSolve().

Matrix KalmanFilter::GetCovarianceMatrix  )  [virtual]
 

Gets the current state covairance matrix

Implements SequentialFilter.

Definition at line 56 of file KalmanFilter.cpp.

References O_SESSAME::Matrix.

Referenced by LKFCalcualteKalmanGain(), LKFCovarianceMatrixPropagator(), LKFCovarianceMeasurementUpdate(), and LKFStateMeasurementUpdate().

virtual Vector KalmanFilter::GetEstimatedMeasurements  )  [inline, virtual]
 

Gets the current measurement Jacobian matrix

Reimplemented in ExtendedKalmanFilter.

Definition at line 111 of file KalmanFilter.h.

References ptr_measurementJacobianMatrix, and O_SESSAME::Vector.

Referenced by LKFStateMeasurementUpdate().

Matrix KalmanFilter::GetKalmanGainMatrix  )  [virtual]
 

Gets the current Kalman gain matrix

Implements SequentialFilter.

Definition at line 57 of file KalmanFilter.cpp.

References O_SESSAME::Matrix.

Referenced by LKFCovarianceMatrixPropagator(), LKFCovarianceMeasurementUpdate(), and LKFStateMeasurementUpdate().

Matrix KalmanFilter::GetMeasurementCovarianceMatrix  ) 
 

Gets the current measurement covairance matrix

Definition at line 60 of file KalmanFilter.cpp.

References O_SESSAME::Matrix.

Referenced by LKFCalcualteKalmanGain().

Matrix KalmanFilter::GetMeasurementJacobianMatrix  ) 
 

Gets the current measurement Jacobian matrix

Definition at line 62 of file KalmanFilter.cpp.

References O_SESSAME::Matrix.

Referenced by LKFCalcualteKalmanGain(), LKFCovarianceMeasurementUpdate(), and LKFStateMeasurementUpdate().

Vector SequentialFilter::GetMeasurementVector  )  [inherited]
 

Gets the measurement vector.

Definition at line 27 of file SequentialFilter.cpp.

References O_SESSAME::Vector.

Referenced by ab_Hmatrix(), ab_measurementRHSFunc(), SequentialFilterHistory::AppendHistory(), SequentialFilterHistory::GetHistory(), KalmanFilterHistory::GetKalmanHistory(), LKFCovarianceMatrixPropagator(), LKFStateMeasurementUpdate(), and LKFStatePropagator().

virtual int SequentialFilter::GetNumIterations  )  [inline, virtual, inherited]
 

a bit of a hack.

Reimplemented in IteratedExtendedKalmanFilter.

Definition at line 78 of file SequentialFilter.h.

Referenced by IteratedExtendedKalmanFilterHistory::AppendHistory().

Vector SequentialFilter::GetParameterVector  )  [inherited]
 

Gets the paramter vector.

Definition at line 30 of file SequentialFilter.cpp.

References O_SESSAME::Vector.

Referenced by ab_Fmatrix(), ab_Hmatrix(), ab_measurementRHSFunc(), SequentialFilterHistory::AppendHistory(), Att_Fmatrix(), Euler_Fmatrix(), SequentialFilterHistory::GetHistory(), LKFCovarianceMatrixPropagator(), LKFStateMeasurementUpdate(), LKFStatePropagator(), param_Euler_Ematrix(), RungeKuttaSolve(), and state_Euler_Fmatrix().

Matrix KalmanFilter::GetStateJacobianMatrix  ) 
 

Gets the current state Jacobian matrix

Definition at line 61 of file KalmanFilter.cpp.

References O_SESSAME::Matrix.

Referenced by LKFCovarianceMatrixPropagator(), and LKFStatePropagator().

Vector SequentialFilter::GetStateVector  )  [inherited]
 

Gets the state vector.

Definition at line 21 of file SequentialFilter.cpp.

References O_SESSAME::Vector.

Referenced by ab_Fmatrix(), ab_Hmatrix(), ab_measurementRHSFunc(), SequentialFilterHistory::AppendHistory(), Att_Fmatrix(), Att_measurementRHSFunc(), Euler_Fmatrix(), Euler_measurementRHSFunc(), SequentialFilterHistory::GetHistory(), KalmanFilterHistory::GetKalmanHistory(), LKFCovarianceMatrixPropagator(), LKFCovarianceMeasurementUpdate(), LKFStateMeasurementUpdate(), LKFStatePropagator(), main(), param_Euler_Ematrix(), DefaultObserver::Run(), AttitudeObserver::Run(), atterrbiasObserver::Run(), RungeKuttaSolve(), state_Euler_Fmatrix(), and state_Euler_measurementRHSFunc().

Matrix KalmanFilter::GetSystemProcessNoiseMatrix  ) 
 

Gets the current system process noise matrix

Definition at line 59 of file KalmanFilter.cpp.

References O_SESSAME::Matrix.

Referenced by LKFCovarianceMatrixPropagator().

double SequentialFilter::GetTimeOfEstimate  )  [inherited]
 

Gets the time of the stored estimate.

Definition at line 15 of file SequentialFilter.cpp.

Referenced by param_Euler_Ematrix(), and RungeKuttaSolve().

double SequentialFilter::GetTimeOfMeasurements  )  [inherited]
 

Gets the time of the stored measurements.

Definition at line 18 of file SequentialFilter.cpp.

Referenced by RungeKuttaSolve().

double SequentialFilter::GetTimeStep  )  [inline, inherited]
 

Gets the time step between the last state estimate and the current measurements.

Definition at line 60 of file SequentialFilter.h.

Referenced by LKFCovarianceMatrixPropagator(), and LKFStatePropagator().

void KalmanFilter::MeasurementUpdateCovariance  ) 
 

Executes the state covariance measurement update function

Definition at line 80 of file KalmanFilter.cpp.

References ptr_covarianceMeasurementUpdateFunc.

Referenced by EstimateState(), IteratedExtendedKalmanFilter::EstimateState(), and ExtendedKalmanFilter::EstimateState().

void KalmanFilter::MeasurementUpdateState  ) 
 

Executes the state measurement update function

Definition at line 79 of file KalmanFilter.cpp.

References ptr_stateMeasurementUpdateFunc.

Referenced by EstimateState(), IteratedExtendedKalmanFilter::EstimateState(), and ExtendedKalmanFilter::EstimateState().

void KalmanFilter::PropagateCovariance  ) 
 

Executes the state covariance propagation function

Definition at line 77 of file KalmanFilter.cpp.

References ptr_covariancePropagateFunc.

Referenced by EstimateState(), IteratedExtendedKalmanFilter::EstimateState(), and ExtendedKalmanFilter::EstimateState().

void KalmanFilter::PropagateState  )  [virtual]
 

Executes the state propagation function

Reimplemented in ExtendedKalmanFilter.

Definition at line 76 of file KalmanFilter.cpp.

References ptr_statePropagteFunc.

Referenced by EstimateState().

void SequentialFilter::SetControlVector Vector _controls  )  [inline, inherited]
 

Sets the control vector, u.

Definition at line 43 of file SequentialFilter.h.

References O_SESSAME::Vector.

Referenced by main(), DefaultObserver::Run(), AttitudeObserver::Run(), and atterrbiasObserver::Run().

void KalmanFilter::SetCovarianceMatrix Matrix _covariance  )  [inline]
 

Sets the state covariance matrix

Definition at line 55 of file KalmanFilter.h.

References m_covariance, and O_SESSAME::Matrix.

Referenced by DefaultObserver::Initialize(), AttitudeObserver::Initialize(), atterrbiasObserver::Initialize(), KalmanFilter(), LKFCovarianceMatrixPropagator(), LKFCovarianceMeasurementUpdate(), and main().

void KalmanFilter::SetCovarianceMeasurementUpdate void(*)(KalmanFilter *)  covarianceMeasurementUpdateFunc  )  [inline]
 

Sets the pointer to the state covariance measurement update function

Definition at line 73 of file KalmanFilter.h.

References ptr_covarianceMeasurementUpdateFunc.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), and KalmanFilter().

void KalmanFilter::SetCovariancePropagator void(*)(KalmanFilter *)  covariancePropagateFunc  )  [inline]
 

Sets the pointer to the state covariance propagation function

Definition at line 64 of file KalmanFilter.h.

References ptr_covariancePropagateFunc.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), and KalmanFilter().

void KalmanFilter::SetKalmanGainCalculation void(*)(KalmanFilter *)  kalmanGainCalculationFunc  )  [inline]
 

Sets the pointer to the Kalman gain calculation function

Definition at line 67 of file KalmanFilter.h.

References ptr_kalmanGainCalculationFunc.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), and KalmanFilter().

void KalmanFilter::SetKalmanGainMatrix Matrix _kalmanGain  )  [inline]
 

Sets the Kalman gain matrix

Definition at line 58 of file KalmanFilter.h.

References m_kalmanGain, and O_SESSAME::Matrix.

Referenced by DefaultObserver::Initialize(), AttitudeObserver::Initialize(), atterrbiasObserver::Initialize(), KalmanFilter(), LKFCalcualteKalmanGain(), and main().

void KalmanFilter::SetMeasurementCovarianceMatrix Matrix(*)(KalmanFilter *)  measurementCovarianceMatrix  )  [inline]
 

Sets the pointer to the measurement covariance matrix function

Definition at line 79 of file KalmanFilter.h.

References O_SESSAME::Matrix, and ptr_measurementCovarianceMatrix.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), DefaultObserver::Initialize(), AttitudeObserver::Initialize(), atterrbiasObserver::Initialize(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), KalmanFilter(), and main().

void KalmanFilter::SetMeasurementJacobianMatrix Matrix(*)(KalmanFilter *)  measurementJacobianMatrix  )  [inline]
 

Sets the pointer to the measurement Jacobian matrix function

Definition at line 85 of file KalmanFilter.h.

References O_SESSAME::Matrix, and ptr_measurementJacobianMatrix.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), DefaultObserver::Initialize(), AttitudeObserver::Initialize(), atterrbiasObserver::Initialize(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), KalmanFilter(), and main().

void SequentialFilter::SetMeasurementVector Vector _measurements  )  [inline, inherited]
 

Sets the measurement vector, z.

Definition at line 46 of file SequentialFilter.h.

References O_SESSAME::Vector.

Referenced by main(), DefaultObserver::Run(), AttitudeObserver::Run(), and atterrbiasObserver::Run().

void SequentialFilter::SetParameterVector Vector _parameters  )  [inline, inherited]
 

Sets the parameter vector, w.

Definition at line 49 of file SequentialFilter.h.

References O_SESSAME::Vector.

Referenced by main(), DefaultObserver::Run(), AttitudeObserver::Run(), and atterrbiasObserver::Run().

void KalmanFilter::SetStateJacobianMatrix Matrix(*)(KalmanFilter *)  stateJacobianMatrix  )  [inline]
 

Sets the pointer to the state Jacobian matrix function

Definition at line 82 of file KalmanFilter.h.

References O_SESSAME::Matrix, and ptr_stateJacobianMatrix.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), DefaultObserver::Initialize(), AttitudeObserver::Initialize(), atterrbiasObserver::Initialize(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), KalmanFilter(), and main().

void KalmanFilter::SetStateMeasurementUpdate void(*)(KalmanFilter *)  stateMeasurementUpdateFunc  )  [inline]
 

Sets the pointer to the state measurement update function

Definition at line 70 of file KalmanFilter.h.

References ptr_stateMeasurementUpdateFunc.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), and KalmanFilter().

void KalmanFilter::SetStatePropagator void(*)(KalmanFilter *)  statePropagateFunc  )  [inline]
 

Sets the pointer to the state propagation function

Definition at line 61 of file KalmanFilter.h.

References ptr_statePropagteFunc.

Referenced by KalmanFilter().

void SequentialFilter::SetStateVector Vector _states  )  [inline, inherited]
 

Sets the state vector, x.

Definition at line 40 of file SequentialFilter.h.

References O_SESSAME::Vector.

Referenced by LKFStateMeasurementUpdate(), LKFStatePropagator(), main(), DefaultObserver::Run(), AttitudeObserver::Run(), and atterrbiasObserver::Run().

void KalmanFilter::SetSystemProcessNoiseMatrix Matrix(*)(KalmanFilter *)  systemProcessNoiseMatrix  )  [inline]
 

Sets the pointer to the system process noise matrix function

Definition at line 76 of file KalmanFilter.h.

References O_SESSAME::Matrix, and ptr_systemProcessNoiseMatrix.

Referenced by ExtendedKalmanFilter::ExtendedKalmanFilter(), DefaultObserver::Initialize(), AttitudeObserver::Initialize(), atterrbiasObserver::Initialize(), IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter(), KalmanFilter(), and main().

void SequentialFilter::SetTimeOfEstimate double &  _timeOfEstimate  )  [inline, inherited]
 

Sets the time of the currently saved state estimate in seconds

Definition at line 34 of file SequentialFilter.h.

Referenced by main(), DefaultObserver::Run(), AttitudeObserver::Run(), and atterrbiasObserver::Run().

void SequentialFilter::SetTimeOfMeasurements double &  _timeOfMeasurements  )  [inline, inherited]
 

Sets the time when the measurements were taken, seconds

Definition at line 37 of file SequentialFilter.h.

Referenced by main(), DefaultObserver::Run(), AttitudeObserver::Run(), and atterrbiasObserver::Run().


Member Data Documentation

Vector SequentialFilter::m_controls [protected, inherited]
 

The vector of controls applied at t(k), u.

Definition at line 87 of file SequentialFilter.h.

Matrix KalmanFilter::m_covariance [protected]
 

The covariance matrix, P.

Definition at line 115 of file KalmanFilter.h.

Referenced by SetCovarianceMatrix().

Matrix KalmanFilter::m_kalmanGain [protected]
 

The Kalman Gain matrix, K.

Definition at line 116 of file KalmanFilter.h.

Referenced by SetKalmanGainMatrix().

Vector SequentialFilter::m_measurements [protected, inherited]
 

The vector of measurements at t(k), z.

Definition at line 88 of file SequentialFilter.h.

Vector SequentialFilter::m_parameters [protected, inherited]
 

The vector of system parameters, w.

Definition at line 89 of file SequentialFilter.h.

Vector SequentialFilter::m_states [protected, inherited]
 

The vector of states; enters filter as $x_{k-1}^{+}$ and is incrementally updated to $x_{k}^{-}$ and finally $x_{k}^{+}$.

Definition at line 86 of file SequentialFilter.h.

double SequentialFilter::m_timeOfEstimate [protected, inherited]
 

Time of the current state estimate, seconds.

Definition at line 84 of file SequentialFilter.h.

double SequentialFilter::m_timeOfMeasurements [protected, inherited]
 

Time when the measurements were taken, seconds.

Definition at line 85 of file SequentialFilter.h.

void(* KalmanFilter::ptr_covarianceMeasurementUpdateFunc)(KalmanFilter *) [private]
 

A function pointer to the state covariance measurement update function

Referenced by MeasurementUpdateCovariance(), and SetCovarianceMeasurementUpdate().

void(* KalmanFilter::ptr_covariancePropagateFunc)(KalmanFilter *) [private]
 

A function pointer to the state covariance propagation function

Referenced by PropagateCovariance(), and SetCovariancePropagator().

void(* KalmanFilter::ptr_kalmanGainCalculationFunc)(KalmanFilter *) [private]
 

A function pointer to the Kalman gain calculation function

Referenced by CalculateKalmanGain(), and SetKalmanGainCalculation().

Matrix(* KalmanFilter::ptr_measurementCovarianceMatrix)(KalmanFilter *) [private]
 

A function pointer to the measurement covariance matrix, R.

Referenced by SetMeasurementCovarianceMatrix().

Matrix(* KalmanFilter::ptr_measurementJacobianMatrix)(KalmanFilter *) [private]
 

A function pointer to the measurement jacobian matrix, H.

Referenced by GetEstimatedMeasurements(), and SetMeasurementJacobianMatrix().

Matrix(* KalmanFilter::ptr_stateJacobianMatrix)(KalmanFilter *) [private]
 

A function pointer to the state jacobian matrix, F.

Referenced by SetStateJacobianMatrix().

void(* KalmanFilter::ptr_stateMeasurementUpdateFunc)(KalmanFilter *) [private]
 

A function pointer to the state measurement update function

Referenced by MeasurementUpdateState(), and SetStateMeasurementUpdate().

void(* KalmanFilter::ptr_statePropagteFunc)(KalmanFilter *) [private]
 

A function pointer to the state propagation function

Referenced by PropagateState(), and SetStatePropagator().

Matrix(* KalmanFilter::ptr_systemProcessNoiseMatrix)(KalmanFilter *) [private]
 

A function pointer to the system process noise matrix,Q.

Referenced by SetSystemProcessNoiseMatrix().


The documentation for this class was generated from the following files:
Generated on Wed Sep 5 12:54:40 2007 for DSACSS Operational Code by  doxygen 1.3.9.1