Bayesian Filtering Library Generated from SVN r
Public Member Functions | Protected Attributes | List of all members
LinearAnalyticSystemModelGaussianUncertainty Class Reference

Class for linear analytic systemmodels with additive gaussian noise. More...

#include <linearanalyticsystemmodel_gaussianuncertainty.h>

Inheritance diagram for LinearAnalyticSystemModelGaussianUncertainty:
AnalyticSystemModelGaussianUncertainty SystemModel< MatrixWrapper::ColumnVector >

Public Member Functions

 LinearAnalyticSystemModelGaussianUncertainty (LinearAnalyticConditionalGaussian *pdf)
 Constructor.
 
virtual ~LinearAnalyticSystemModelGaussianUncertainty ()
 Destructor.
 
void ASet (const MatrixWrapper::Matrix &a)
 Set Matrix A.
 
void BSet (const MatrixWrapper::Matrix &b)
 Set Matrix B.
 
const MatrixWrapper::Matrix & AGet () const
 Get Matrix A.
 
const MatrixWrapper::Matrix & BGet () const
 Get Matrix B.
 
virtual MatrixWrapper::Matrix df_dxGet (const MatrixWrapper::ColumnVector &u, const MatrixWrapper::ColumnVector &x)
 Returns F-matrix.
 
virtual MatrixWrapper::ColumnVector PredictionGet (const MatrixWrapper::ColumnVector &u, const MatrixWrapper::ColumnVector &x)
 Returns prediction of state.
 
virtual MatrixWrapper::SymmetricMatrix CovarianceGet (const MatrixWrapper::ColumnVector &u, const MatrixWrapper::ColumnVector &x)
 Covariance of system noise.
 
int StateSizeGet () const
 Get State Size.
 
bool SystemWithoutInputs () const
 Has the system inputs or not.
 
ConditionalPdf< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > * SystemPdfGet ()
 Get the SystemPDF.
 
void SystemPdfSet (ConditionalPdf< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *pdf)
 Set the SystemPDF.
 
MatrixWrapper::ColumnVector Simulate (const MatrixWrapper::ColumnVector &x, const MatrixWrapper::ColumnVector &u, const SampleMthd sampling_method=SampleMthd::DEFAULT, void *sampling_args=NULL)
 Simulate the system.
 
MatrixWrapper::ColumnVector Simulate (const MatrixWrapper::ColumnVector &x, const SampleMthd sampling_method=SampleMthd::DEFAULT, void *sampling_args=NULL)
 Simulate the system (no input system)
 
Probability ProbabilityGet (const MatrixWrapper::ColumnVector &x_k, const MatrixWrapper::ColumnVector &x_kminusone, const MatrixWrapper::ColumnVector &u)
 Get the probability of arriving in a next state.
 
Probability ProbabilityGet (const MatrixWrapper::ColumnVector &x_k, const MatrixWrapper::ColumnVector &x_kminusone)
 Get the probability of arriving in a next state.
 

Protected Attributes

ConditionalPdf< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > * _SystemPdf
 ConditionalPdf representing $ P(X_k | X_{k-1}, U_{k}) $.
 
bool _systemWithoutInputs
 System with no inputs?
 

Detailed Description

Class for linear analytic systemmodels with additive gaussian noise.

This class represents all systemmodels of the form

\[ x_k = A \times x_{k-1} + B \times u_{k} + N(\mu,\Sigma) \]

Definition at line 33 of file linearanalyticsystemmodel_gaussianuncertainty.h.

Constructor & Destructor Documentation

◆ LinearAnalyticSystemModelGaussianUncertainty()

Constructor.

Precondition
LinearAnalyticConditionalGaussian should have 1/2 conditional Arguments (checked) and the first conditional argument should be x!
Parameters
pdfConditional pdf with Gaussian uncertainty

Member Function Documentation

◆ ASet()

void ASet ( const MatrixWrapper::Matrix &  a)

Set Matrix A.

This can be particularly useful for time-varying systems

Parameters
aMatrix a

◆ BSet()

void BSet ( const MatrixWrapper::Matrix &  b)

Set Matrix B.

This can be particularly useful for time-varying systems

Parameters
bMatrix b

◆ df_dxGet()

virtual MatrixWrapper::Matrix df_dxGet ( const MatrixWrapper::ColumnVector &  u,
const MatrixWrapper::ColumnVector &  x 
)
virtualinherited

Returns F-matrix.

\[ F = \frac{df}{dx} \mid_{u,x} \]

used by kalman filter variants

Parameters
uThe value of the input in which the derivate is evaluated
xThe value in the state in which the derivate is evaluated
Bug:
Should actually be defined for any continuous system model! There should be a class between this one and system model tout court, not assuming gaussian uncertainty!

◆ ProbabilityGet() [1/2]

Probability ProbabilityGet ( const MatrixWrapper::ColumnVector &  x_k,
const MatrixWrapper::ColumnVector &  x_kminusone 
)
inherited

Get the probability of arriving in a next state.

(no-input-system)

Parameters
x_kthe next state (at time k)
x_kminusonethe current state (at time k-1)
Returns
the probability value

◆ ProbabilityGet() [2/2]

Probability ProbabilityGet ( const MatrixWrapper::ColumnVector &  x_k,
const MatrixWrapper::ColumnVector &  x_kminusone,
const MatrixWrapper::ColumnVector &  u 
)
inherited

Get the probability of arriving in a next state.

Parameters
x_kthe next state (at time k)
x_kminusonethe current state (at time k-1)
uthe input
Returns
the probability value

◆ Simulate() [1/2]

MatrixWrapper::ColumnVector Simulate ( const MatrixWrapper::ColumnVector &  x,
const MatrixWrapper::ColumnVector &  u,
const SampleMthd  sampling_method = SampleMthd::DEFAULT,
void *  sampling_args = NULL 
)
inherited

Simulate the system.

Parameters
xcurrent state of the system
uinput to the system
Returns
State where we arrive by simulating the system model for 1 step
Parameters
sampling_methodthe sampling method to be used while sampling from the Conditional Pdf describing the system (if not specified = DEFAULT)
sampling_argsSometimes a sampling method can have some extra parameters (eg mcmc sampling)
Note
Maybe the return value would better be a Sample<T> instead of a T

◆ Simulate() [2/2]

MatrixWrapper::ColumnVector Simulate ( const MatrixWrapper::ColumnVector &  x,
const SampleMthd  sampling_method = SampleMthd::DEFAULT,
void *  sampling_args = NULL 
)
inherited

Simulate the system (no input system)

Parameters
xcurrent state of the system
Returns
State where we arrive by simulating the system model for 1 step
Note
Maybe the return value would better be a Sample<T> instead of a T
Parameters
sampling_methodthe sampling method to be used while sampling from the Conditional Pdf describing the system (if not specified = DEFAULT)
sampling_argsSometimes a sampling method can have some extra parameters (eg mcmc sampling)

◆ StateSizeGet()

int StateSizeGet ( ) const
inherited

Get State Size.

Copy constructor SystemModel(const SystemModel<T>& model);

Returns
the statesize of the system

◆ SystemPdfGet()

ConditionalPdf< MatrixWrapper::ColumnVector , MatrixWrapper::ColumnVector > * SystemPdfGet ( )
inherited

Get the SystemPDF.

Returns
a reference to the ConditionalPdf describing the system

◆ SystemPdfSet()

void SystemPdfSet ( ConditionalPdf< MatrixWrapper::ColumnVector , MatrixWrapper::ColumnVector > *  pdf)
inherited

Set the SystemPDF.

Parameters
pdfa reference to the ConditionalPdf describing the system

Member Data Documentation

◆ _SystemPdf

ConditionalPdf<MatrixWrapper::ColumnVector ,MatrixWrapper::ColumnVector >* _SystemPdf
protectedinherited

ConditionalPdf representing $ P(X_k | X_{k-1}, U_{k}) $.

Definition at line 59 of file systemmodel.h.

◆ _systemWithoutInputs

bool _systemWithoutInputs
protectedinherited

System with no inputs?

Definition at line 62 of file systemmodel.h.


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