How can I periodically estimate the states of a discrete linear time-invariant system in the form $$\dot{\vec{x}}=\textbf{A}\vec{x}+\textbf{B}\vec{u}$$ $$\vec{y}=\textbf{C}\vec{x}+\textbf{D}\vec{u} $$if the measurements of its output $y$ are performed in irregular intervals? (suppose the input can always be measured).

My initial approach was to design a Luenberger observer using estimates $\hat{\textbf{A}}$, $\hat{\textbf{B}}$, $\hat{\textbf{C}}$ and $\hat{\textbf{D}}$ of the abovementioned matrices, and then update it periodically every $T_s$ seconds according the following rule:

If there has been a measurement of $y$ since the last update: $$\dot{\hat{x}}=\hat{\textbf{A}}\hat{x}+\hat{\textbf{B}}\hat{u}+\textbf{L}(y_{measured}-\hat{\textbf{C}}\hat{x})$$ If not: $$\dot{x}=\hat{\textbf{A}}\hat{x}+\hat{\textbf{B}}\hat{u}$$

(I have omitted the superscript arrows for clarity)

I believe that there may be a better way to do this, since I'm updating the observer using an outdated measurement of $y$ (which is outdated by $T_s$ seconds in the worst case).

  • $\begingroup$ Please consider accepting an answer or commenting on incorrect answers. This helps new users find the information they need. $\endgroup$ Jan 14, 2015 at 15:25

1 Answer 1


This problem can be conveniently addressed in the context of multi-rate Kalman estimation.

See for example "Multi-rate Kalman filtering for the data fusion of displacement and acceleration response measurements in dynamic system monitoring" (Section 4).

Essentially, you have to establish a time sample $T_s$ lower than the minimum time interval you can expect from two consecutive measurements. Then, you always perform the Kalman time update step each $T_s$ instant, whereas the measurement update is run only upon fresh data.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.