Main Content


Design discrete Kalman estimator for continuous plant


[kest,L,P,M,Z] = kalmd(sys,Qn,Rn,Ts)


kalmd designs a discrete-time Kalman estimator that has response characteristics similar to a continuous-time estimator designed with kalman. This command is useful to derive a discrete estimator for digital implementation after a satisfactory continuous estimator has been designed.

[kest,L,P,M,Z] = kalmd(sys,Qn,Rn,Ts) produces a discrete Kalman estimator kest with sample time Ts for the continuous-time plant

x˙=Ax+Bu+Gw(state equation)yv=Cx+Du+v(measurement equation)

with process noise w and measurement noise v satisfying


The estimator kest is derived as follows. The continuous plant sys is first discretized using zero-order hold with sample time Ts (see c2d entry), and the continuous noise covariance matrices Qn and Rn are replaced by their discrete equivalents


The integral is computed using the matrix exponential formulas in [2]. A discrete-time estimator is then designed for the discretized plant and noise. See kalman for details on discrete-time Kalman estimation.

kalmd also returns the estimator gains L and M, and the discrete error covariance matrices P and Z (see kalman for details).


The discretized problem data should satisfy the requirements for kalman.


[1] Franklin, G.F., J.D. Powell, and M.L. Workman, Digital Control of Dynamic Systems, Second Edition, Addison-Wesley, 1990.

[2] Van Loan, C.F., "Computing Integrals Involving the Matrix Exponential," IEEE® Trans. Automatic Control, AC-15, October 1970.

Version History

Introduced before R2006a

See Also

| |