Skip to content
/ dyne Public

Python package containing a collection of algorithms for state estimation in dynamic systems

License

Notifications You must be signed in to change notification settings

nmayorov/dyne

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tests status

dyne

dyne is a Python package containing a collection of algorithms for state estimation in dynamic systems. Specifically it deals with discrete-time stochastic dynamic systems of the form:

$$\begin{gather} X_{k + 1} = f_k(X_k, W_k) \\\ Z_{k} = h_k(X_k) + V_k \end{gather}$$

With

  • $k$ - integer epoch index
  • $X_k$ - state vector
  • $W_k$ - process noise vector
  • $Z_k$ - measurement vector
  • $V_k$ - measurement noise vector
  • $f_k$ - process function
  • $h_k$ - measurement function

The system can be depicted as a chain graph:

chain graph

The task is to estimate $X_k$ given the known process dynamics and measurements.

Package content

At the moment the following estimation algorithms are implemented in dyne:

Algorithm Function Causal? Requires Jacobian?
Linear Kalman Smoother run_kalman_smoother No Not applicable
Extended Kalman Filter run_ekf Yes Yes
Unscented Kalman Filter run_ukf Yes No
Moving Horizon Filter run_mhf Yes Yes
Batch Nonlinear Optimizer run_optimization No Yes

The file examples.py contains example problems which can be setup and run by all available algorithms.

Installation

The package is pure Python and can be easily installed on any platform. Runtime dependencies include (versions in parentheses were used for the latest development):

  • numpy (1.25.2)
  • scipy (1.11.3)

To perform a regular install, execute in the cloned repository directory:

pip install .

To perform an editable (inplace) install:

pip install -e .

About

Python package containing a collection of algorithms for state estimation in dynamic systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages