Kalman filter implementation.
More...
Go to the source code of this file.
|
|
typedef struct _KFilterData | KFilterData |
| | Single Kalman filter instance internal data structure.
|
| |
|
typedef KFilterData * | KFilter |
| | Opaque reference to Kalman filter data structure.
|
| |
|
| KFilter | Kalman_CreateFilter (size_t statesNumber, size_t measurementsNumber, size_t inputsNumber) |
| | Creates and initializes internal matrices of Kalman filter data structure
More...
|
| |
| void | Kalman_DiscardFilter (KFilter filter) |
| | Deallocates internal data of given filter
More...
|
| |
| void | Kalman_SetInputFactor (KFilter filter, size_t stateIndex, size_t inputIndex, double ratio) |
| | Defines correlation between input and state variables for prediction phase. More...
|
| |
| void | Kalman_SetTransitionFactor (KFilter filter, size_t newStateIndex, size_t oldStateIndex, double ratio) |
| | Defines correlation between two state variables for state transition on prediction phase
More...
|
| |
| void | Kalman_SetMeasureWeight (KFilter filter, size_t measureIndex, size_t stateIndex, double maxError) |
| | Defines impact of a measurement variable for state estimation
More...
|
| |
| void | Kalman_SetMeasure (KFilter filter, size_t measureIndex, double value) |
| | Sets new value for a single measument. More...
|
| |
| void | Kalman_SetInput (KFilter filter, size_t inputIndex, double value) |
| | Sets new value for a single input. More...
|
| |
| double * | Kalman_Predict (KFilter filter, double *inputsList, double *result) |
| | Runs prediction phase on given Kalman filter
More...
|
| |
| double * | Kalman_Update (KFilter filter, double *measuresList, double *result) |
| | Runs update phase on given Kalman filter
More...
|
| |
| void | Kalman_Reset (KFilter filter) |
| | Resets internal filter matrices data. More...
|
| |
Kalman filter implementation.
Signal filtering and fusion utilities using Kalman algorithm Based on http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/#mjx-eqn-kalupdatefull
◆ Kalman_CreateFilter()
| KFilter Kalman_CreateFilter |
( |
size_t |
statesNumber, |
|
|
size_t |
measurementsNumber, |
|
|
size_t |
inputsNumber |
|
) |
| |
Creates and initializes internal matrices of Kalman filter data structure
- Parameters
-
| [in] | statesNumber | size (in elements) of the internal estimated state vector
|
| [in] | measurementsNumber | size (in elements) of the measurements vector |
| [in] | inputsNumber | size (in elements) of the inputs vector |
- Returns
- reference/pointer to allocated and initialized Kalman filter data structure
◆ Kalman_DiscardFilter()
| void Kalman_DiscardFilter |
( |
KFilter |
filter | ) |
|
Deallocates internal data of given filter
- Parameters
-
| [in] | filter | reference to filter |
◆ Kalman_Predict()
| double* Kalman_Predict |
( |
KFilter |
filter, |
|
|
double * |
inputsList, |
|
|
double * |
result |
|
) |
| |
Runs prediction phase on given Kalman filter
- Parameters
-
| [in] | filter | reference to filter |
| [in] | inputsList | array of input values (NULL if not updated) |
| [out] | result | pointer to array where predicted internal state will be copied (NULL if not required) |
- Returns
- pointer to result array containing predicted filter state (NULL on errors)
◆ Kalman_Reset()
| void Kalman_Reset |
( |
KFilter |
filter | ) |
|
Resets internal filter matrices data.
- Parameters
-
| [in] | filter | reference to filter |
◆ Kalman_SetInput()
| void Kalman_SetInput |
( |
KFilter |
filter, |
|
|
size_t |
inputIndex, |
|
|
double |
value |
|
) |
| |
Sets new value for a single input.
- Parameters
-
| [in] | filter | reference to filter |
| [in] | inputIndex | index of the input variable in the internal input vector |
| [in] | value | new value of the input variable |
◆ Kalman_SetInputFactor()
| void Kalman_SetInputFactor |
( |
KFilter |
filter, |
|
|
size_t |
stateIndex, |
|
|
size_t |
inputIndex, |
|
|
double |
ratio |
|
) |
| |
Defines correlation between input and state variables for prediction phase.
- Parameters
-
| [in] | filter | reference to filter |
| [in] | stateIndex | index of the correspondent state variable in the internal state vector |
| [in] | inputIndex | index of the input variable in the internal input vector |
| [in] | ratio | output/input ratio desired on prediction |
◆ Kalman_SetMeasure()
| void Kalman_SetMeasure |
( |
KFilter |
filter, |
|
|
size_t |
measureIndex, |
|
|
double |
value |
|
) |
| |
Sets new value for a single measument.
- Parameters
-
| [in] | filter | reference to filter |
| [in] | measureIndex | index of the measure variable in the internal measure vector |
| [in] | value | new value of the measurement variable |
◆ Kalman_SetMeasureWeight()
| void Kalman_SetMeasureWeight |
( |
KFilter |
filter, |
|
|
size_t |
measureIndex, |
|
|
size_t |
stateIndex, |
|
|
double |
maxError |
|
) |
| |
Defines impact of a measurement variable for state estimation
- Parameters
-
| [in] | filter | reference to filter |
| [in] | measureIndex | index of the measure variable in the internal measure vector |
| [in] | stateIndex | index of the correspondent state variable in the internal state vector |
| [in] | maxError | maximum deviation for error modeling |
◆ Kalman_SetTransitionFactor()
| void Kalman_SetTransitionFactor |
( |
KFilter |
filter, |
|
|
size_t |
newStateIndex, |
|
|
size_t |
oldStateIndex, |
|
|
double |
ratio |
|
) |
| |
Defines correlation between two state variables for state transition on prediction phase
- Parameters
-
| [in] | filter | reference to filter |
| [in] | newStateIndex | index (in state vector) of variable updated during predicition |
| [in] | oldStateIndex | index (in state vector) of variable used to calculate predicition
|
| [in] | ratio | output/input ratio desired on prediction |
◆ Kalman_Update()
| double* Kalman_Update |
( |
KFilter |
filter, |
|
|
double * |
measuresList, |
|
|
double * |
result |
|
) |
| |
Runs update phase on given Kalman filter
- Parameters
-
| [in] | filter | reference to filter |
| [in] | measuresList | array of measurement values (NULL if not updated)
|
| [out] | result | pointer to array where updated internal state will be copied (NULL if not required) |
- Returns
- pointer to result array containing updated filter state (NULL on errors)