Bayesian Filtering Library Generated from SVN r
Public Member Functions | Protected Attributes | List of all members
SystemModel< T > Class Template Reference

#include <systemmodel.h>

Public Member Functions

 SystemModel (ConditionalPdf< T, T > *systempdf=NULL)
 Constructor.
 
virtual ~SystemModel ()
 Destructor.
 
int StateSizeGet () const
 Get State Size.
 
bool SystemWithoutInputs () const
 Has the system inputs or not.
 
ConditionalPdf< T, T > * SystemPdfGet ()
 Get the SystemPDF.
 
void SystemPdfSet (ConditionalPdf< T, T > *pdf)
 Set the SystemPDF.
 
Simulate (const T &x, const T &u, const SampleMthd sampling_method=SampleMthd::DEFAULT, void *sampling_args=NULL)
 Simulate the system.
 
Simulate (const T &x, const SampleMthd sampling_method=SampleMthd::DEFAULT, void *sampling_args=NULL)
 Simulate the system (no input system)
 
Probability ProbabilityGet (const T &x_k, const T &x_kminusone, const T &u)
 Get the probability of arriving in a next state.
 
Probability ProbabilityGet (const T &x_k, const T &x_kminusone)
 Get the probability of arriving in a next state.
 

Protected Attributes

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

Detailed Description

template<typename T>
class BFL::SystemModel< T >

Template class representing all possible (continu and discrete) System Models

Todo
Check if there should be a "model" base class...
Bug
Currently supports only systemmodels of the form P(x | x, u), where both u and x are continu or discrete. So it lacks support for mixed systems () and systems with extra parameters. You are welcome to provide an API and implementation for this :-)

Definition at line 48 of file systemmodel.h.

Constructor & Destructor Documentation

◆ SystemModel()

template<typename T >
SystemModel ( ConditionalPdf< T, T > * systempdf = NULL)

Constructor.

Parameters
systempdfConditionalPdf<T,T> representing $ P(X_k |
X_{k-1}, U_{k}) $
See also
STATE_SIZE, INPUT_SIZE, _SystemPdf

Member Function Documentation

◆ ProbabilityGet() [1/2]

template<typename T >
Probability ProbabilityGet ( const T & x_k,
const T & x_kminusone )

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]

template<typename T >
Probability ProbabilityGet ( const T & x_k,
const T & x_kminusone,
const T & u )

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]

template<typename T >
T Simulate ( const T & x,
const SampleMthd sampling_method = SampleMthd::DEFAULT,
void * sampling_args = NULL )

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)

◆ Simulate() [2/2]

template<typename T >
T Simulate ( const T & x,
const T & u,
const SampleMthd sampling_method = SampleMthd::DEFAULT,
void * sampling_args = NULL )

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

◆ StateSizeGet()

template<typename T >
int StateSizeGet ( ) const

Get State Size.

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

Returns
the statesize of the system

◆ SystemPdfGet()

template<typename T >
ConditionalPdf< T, T > * SystemPdfGet ( )

Get the SystemPDF.

Returns
a reference to the ConditionalPdf describing the system

◆ SystemPdfSet()

template<typename T >
void SystemPdfSet ( ConditionalPdf< T, T > * pdf)

Set the SystemPDF.

Parameters
pdfa reference to the ConditionalPdf describing the system

Member Data Documentation

◆ _SystemPdf

template<typename T >
ConditionalPdf<T,T>* _SystemPdf
protected

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

Definition at line 59 of file systemmodel.h.

◆ _systemWithoutInputs

template<typename T >
bool _systemWithoutInputs
protected

System with no inputs?

Definition at line 62 of file systemmodel.h.


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