Catatan Singkat Kalman Filter


Nama Kalman filter diambil dari nama Rudolf Emil Kálmán, orang yang menggagas dan mempopulerkan metode prediksi ini. Kalman filter digunakan pada misi peluncuran Apollo ke bulan, dan sejak itu Kalman filter menjadi kian populer dan diterapkan diberbagai bidang seperti pada pesawat terbang, kapal selam, dan juga untuk peluncuran misil.

Bahkan Wall street menggunakan Kalman filter untuk memprediksi perkembangan pasar. Diterapkan juga di bidang robotika, IoT (Internet of Things) sensor, dan juga perangkat laboratorium instrumentasi.

Secara umum, Kalman Filter dapat dibagi menjadi prediction model dan correction model untuk suatu dalam sistem. Pada prediction model terdapat noise proses. Sementara itu, correction model melakukan update dari suatu nilai yang diperkirakan (estimated value) beserta dengan noise pengukuran.

Prediction Model
Diasumsikan bahwa actual state pada saat $k$ merupakan hasil update dari state sebelumnya saat $(k-1)$
\begin{equation} \mathbf{x}_k = \mathbf{F}_k\mathbf{x}_{k-1} + \mathbf{B}_k\mathbf{u}_k + \mathbf{w}_k, \label{eq:kalman} \end{equation}
dengan $\mathbf{F}_k$, $\mathbf{B}_k$, dan $\mathbf{w}_k$ masing-masing merupakan state transition, control-input, dan noise proses.

A priori estimated state, $\mathbf{\hat{x}}_{k|k-1}$, dan error covariance, $\mathbf{P}_{k|k-1}$
\begin{eqnarray} \mathbf{\hat{x}}_{k|k-1} {}&=&{} \mathbf{F}_k\mathbf{\hat{x}}_{k-1|k-1}+\mathbf{B}_k\mathbf{u}_k,\\ \mathbf{P}_{k|k-1} {}&=&{} \mathbf{F}_k\mathbf{P}_{k-1|k-1}\mathbf{F}_k^{\mathsf{T}}+\mathbf{Q}_k, \label{eq:apriori} \end{eqnarray}
dengan $\mathbf{Q}_k$ merupakan covariance untuk noise proses.

Correction Model
Sementara itu, untuk pengukuran
\begin{equation} \mathbf{z}_k = \mathbf{H}_k\mathbf{x}_k+\mathbf{v}_k, \label{eq:measurement} \end{equation}
dengan $\mathbf{H}_k$ merupakan model pengukuran dan $\mathbf{v}_k$ adalah noise pengukuran.

Sebelum melakukan update, perlu diidentifikasi residu awal
\begin{equation} \mathbf{\tilde{y}}_k = \mathbf{z}_k - \mathbf{H}_k\mathbf{\hat{x}}_{k|k-1}, \label{eq:residu_prefit} \end{equation}
dan covariance residu
\begin{equation} \mathbf{S}_k = \mathbf{R}_k + \mathbf{H}_k\mathbf{P}_{k|k-1}\mathbf{H}_k^{\mathsf{T}}, \label{eq:residu_covariance} \end{equation}
dengan $\mathbf{R}_k$ merupakan covariance dari noise pengukuran.

Selanjutnya perlu diketahui nilai Kalman gain
\begin{equation} \mathbf{K}_k = \mathbf{P}_{k|k-1}\mathbf{H}_k^{\mathsf{T}}\mathbf{S}_k^{-1}. \label{eq:kalman_gain} \end{equation}
Dengan demikian, update dari estimated state dan error covariance
\begin{eqnarray} \mathbf{\hat{x}}_{k|k} {}&=&{} \mathbf{\hat{x}}_{k|k-1} + \mathbf{K}_k\mathbf{\tilde{y}}_k,\\ \mathbf{P}_{k|k} {}&=&{} \left(\mathbf{I}_{2 \times 2}-\mathbf{K}_k\mathbf{H}_k\right)\mathbf{P}_{k|k-1}\left(\mathbf{I}_{2 \times 2}-\mathbf{K}_k\mathbf{H}_k\right)^{\mathsf{T}}\nonumber\\ {}&&{}+\mathbf{K}_k\mathbf{R}_k\mathbf{K}_k^{\mathsf{T}}. \label{eq:posteriori} \end{eqnarray}

Sehingga, update nilai residu
\begin{equation} \mathbf{\tilde{y}}_{k|k} = \mathbf{z}_k-\mathbf{H}_k\mathbf{\hat{x}}_{k|k}. \label{eq:post_residu} \end{equation}