Function File: [m, p, z, e] = dlqe (a, g, c, q, r)
Function File: [m, p, z, e] = dlqe (a, g, c, q, r, s)
Function File: [m, p, z, e] = dlqe (a, [], c, q, r)
Function File: [m, p, z, e] = dlqe (a, [], c, q, r, s)

Kalman filter for discrete-time systems.

x[k] = Ax[k] + Bu[k] + Gw[k]   (State equation)
y[k] = Cx[k] + Du[k] + v[k]    (Measurement Equation)
E(w) = 0, E(v) = 0, cov(w) = Q, cov(v) = R, cov(w,v) = S

Inputs

a

State transition matrix of discrete-time system (n-by-n).

g

Process noise matrix of discrete-time system (n-by-g). If g is empty [], an identity matrix is assumed.

c

Measurement matrix of discrete-time system (p-by-n).

q

Process noise covariance matrix (g-by-g).

r

Measurement noise covariance matrix (p-by-p).

s

Optional cross term covariance matrix (g-by-p), s = cov(w,v). If s is empty [] or not specified, a zero matrix is assumed.

Outputs

m

Kalman filter gain matrix (n-by-p).

p

Unique stabilizing solution of the discrete-time Riccati equation (n-by-n). Symmetric matrix.

z

Error covariance (n-by-n), cov(x(k|k)-x)

e

Closed-loop poles (n-by-1).

Equations

x[k|k] = x[k|k-1] + M(y[k] - Cx[k|k-1] - Du[k])

x[k+1|k] = Ax[k|k] + Bu[k] for S=0

x[k+1|k] = Ax[k|k] + Bu[k] + G*S*(C*P*C' + R)^-1*(y[k] - C*x[k|k-1]) for non-zero S
         

E = eig(A - A*M*C) for S=0

E = eig(A - A*M*C - G*S*(C*P*C' + Rv)^-1*C) for non-zero S
 

See also: dare, care, dlqr, lqr, lqe.

Package: control