control.lqe

control.lqe(A, G, C, QN, RN[, NN])[source]

Continuous-time linear quadratic estimator (Kalman filter).

Given the continuous-time system

dx/dt &= Ax + Bu + Gw \\
y &= Cx + Du + v

with unbiased process noise w and measurement noise v with covariances

E\{w w^T\} = QN,  E\{v v^T\} = RN,  E\{w v^T\} = NN

The lqe() function computes the observer gain matrix L such that the stationary (non-time-varying) Kalman filter

dx_e/dt = A x_e + B u + L(y - C x_e - D u)

produces a state estimate x_e that minimizes the expected squared error using the sensor measurements y. The noise cross-correlation NN is set to zero when omitted.

The function can be called with either 3, 4, 5, or 6 arguments:

  • L, P, E = lqe(sys, QN, RN)

  • L, P, E = lqe(sys, QN, RN, NN)

  • L, P, E = lqe(A, G, C, QN, RN)

  • L, P, E = lqe(A, G, C, QN, RN, NN)

where sys is an LTI object, and A, G, C, QN, RN, and NN are 2D arrays or matrices of appropriate dimension.

Parameters
A, G, C2D array_like

Dynamics, process noise (disturbance), and output matrices.

sysStateSpace or TransferFunction

Linear I/O system, with the process noise input taken as the system input.

QN, RN2D array_like

Process and sensor noise covariance matrices.

NN2D array, optional

Cross covariance matrix. Not currently implemented.

methodstr, optional

Set the method used for computing the result. Current methods are ‘slycot’ and ‘scipy’. If set to None (default), try ‘slycot’ first and then ‘scipy’.

Returns
L2D array

Kalman estimator gain.

P2D array

Solution to Riccati equation:

A P + P A^T - (P C^T + G N) R^{-1}  (C P + N^T G^T) + G Q G^T = 0

E1D array

Eigenvalues of estimator poles eig(A - L C).

See also

lqr, dlqe, dlqr

Notes

If the first argument is an LTI object, then this object will be used to define the dynamics, noise and output matrices. Furthermore, if the LTI object corresponds to a discrete-time system, the dlqe function will be called.

Examples

>>> L, P, E = lqe(A, G, C, QN, RN)                          
>>> L, P, E = lqe(A, G, C, Q, RN, NN)