3

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).

Ian
  • 11,013
  • 2
  • 23
  • 65
JLagana
  • 295
  • 1
  • 6

1 Answers1

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.

Ugo Pattacini
  • 4,005
  • 1
  • 14
  • 36