control.dlqe
- control.dlqe(A, G, C, QN, RN[, N])[source]
Discrete-time linear quadratic estimator (Kalman filter).
Given the system
![x[n+1] &= Ax[n] + Bu[n] + Gw[n] \\
y[n] &= Cx[n] + Du[n] + v[n]](../_images/math/5f82f94a9672d37417b6441b48da671b4ab74d0e.png)
with unbiased process noise w and measurement noise v with covariances

The dlqe() function computes the observer gain matrix L such that the stationary (non-time-varying) Kalman filter
![x_e[n+1] = A x_e[n] + B u[n] + L(y[n] - C x_e[n] - D u[n])](../_images/math/95e7e458dc7556f9d5bbea0746ea95728efca2c0.png)
produces a state estimate x_e[n] that minimizes the expected squared error using the sensor measurements y. The noise cross-correlation
NNis set to zero when omitted.- Parameters:
- A, G, C2D array_like
Dynamics, process noise (disturbance), and output matrices.
- QN, RN2D array_like
Process and sensor noise covariance matrices.
- NN2D array, optional
Cross covariance matrix (not yet supported).
- 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.

- E1D array
Eigenvalues of estimator poles eig(A - L C).
Examples
>>> L, P, E = dlqe(A, G, C, QN, RN) >>> L, P, E = dlqe(A, G, C, QN, RN, NN)