An Introduction to the Kalman-Bucy Filter

The Kalman-Bucy Filter is a continuous time counterpart to the discrete time Kalman Filter. As with the Kalman Filter, the Kalman-Bucy Filter is designed to estimate unmeasured states of a process, usually for the purpose of controlling one or more of them.

Other tutorials discuss the Kalman Filter and its non-linear forms -- the Extended Kalman Filter and the Unscented Kalman Filter.

Linear continuous-time process with input and measurement noise.

Figure 1: Linear continuous-time process with input and measurement noise.

Consider the linear continuous-time process shown in Figure 1 which may be written in the following standard state-space form. (The time dependence of the parameters has been dropped to simplify the notation.)

Equations for a linear continuous-time process with input and measurement noise.

Here

Given the inputs, measured outputs and assumptions on the process and output noise, the purpose of the Kalman-Bucy Filter is to estimate unmeasured states (assuming they are observable) and the actual process outputs. This is shown in Figure 2 where the estimated states are Math character x_hat , and Math character y_hat are the estimated measured outputs.

Input-output of the Kalman-Bucy Filter.

Figure 2: Input-output of the Kalman-Bucy Filter.

Unlike the Kalman Filter the Kalman-Bucy filter does not use a predictor-corrector algorithm to update the state estimates. Rather it requires a differential Riccati equation to be integrated through time.

Mathematically, the filter update equations are given by

Equations for Kalman-Bucy filter.

In the above equations P is an estimate of the covariance of the measurement error and K is called the Kalman-Bucy gain. As part of the filter implementation both Math character x_hat_dot and Math character P_dot must be integrated through time. Note that since P is a symmetric matrix the number of covariance states that must be integrated may be reduced by only considering the diagonal and terms above (or below) the diagonal.

A simple example demonstrating how to implement a Kalman-Bucy filter in Simulink can be found here.

Back To Top | Kalman Filters