NFourSID

Overview

Implementation of the N4SID algorithm for subspace identification [1], together with Kalman filtering and state-space models.

State-space models are versatile models for representing multi-dimensional timeseries. As an example, the ARMAX(p, q, r)-models - AutoRegressive MovingAverage with eXogenous input - are included in the representation of state-space models. By extension, ARMA-, AR- and MA-models can be described, too. The numerical implementations are based on [2].

The state-space model of interest has the following form:

\begin{cases}
    x_{k+1} &= A x_k + B u_k + K e_k \\
    y_k &= C x_k + D u_k + e_k
\end{cases}

where

  • k \in \mathbb{N} is the timestep,

  • y_k \in \mathbb{R}^{d_y} is the output vector with dimension d_y,

  • u_k \in \mathbb{R}^{d_u} is the input vector with dimension d_u,

  • x_k \in \mathbb{R}^{d_x} is the internal state vector with dimension d_x,

  • e_k \in \mathbb{R}^{d_y} is the noise vector with dimension d_y,

  • (A, B, C, D) are system matrices describing time dynamics and input-output coupling,

  • K is a system matrix describing noise relationships.

Code example

An example Jupyter notebook is provided here.

References

  1. Van Overschee, Peter, and Bart De Moor. “N4SID: Subspace algorithms for the identification of combined deterministic-stochastic systems.” Automatica 30.1 (1994): 75-93.

  2. Verhaegen, Michel, and Vincent Verdult. Filtering and system identification: a least squares approach. Cambridge university press, 2007.

Indices and tables