I have implemented a discrete state observer for a given dynamic system in continuous time domain in following form

$$\bar{\mathbf{x}}(k) = \mathbf{A}_d\cdot\hat{\mathbf{x}}(k-1) + \mathbf{B}_d\cdot \mathbf{u}(k-1)$$ $$\hat{\mathbf{x}}(k) = \bar{\mathbf{x}}(k) + \mathbf{L}_d\cdot\left[\mathbf{y}(k) - \mathbf{C}_d\cdot\bar{\mathbf{x}}(k)\right],$$

where $\mathbf{u}(k)$ is the system input, $\bar{\mathbf{x}}(k)$ is the prediction of the state estimate, $\hat{\mathbf{x}}(k)$ is the state estimate and $\mathbf{y}(k)$ is the system output. The above mentioned difference equations comes from the book Digital Control of Dynamic Systems from section 8.2.4. The state observer is intended to estimate the unmeasurable state variables of my system.

My question is how I can check whether the observer works correctly? At first glance it seems that I could compare the estimated state variables provided by the observer with their actual values but the estimated state variables are unmeasurable so I don't know their actual values.


1 Answer 1


Try looking at the error term

$$e(k) = \mathbf{y}(k) - \mathbf{C}_d\cdot\hat{\mathbf{x}}(k)$$

and testing it for whiteness.

If the state estimate is good, then all the predictable component will be predicted and the remainder will be white noise (unpredictable).


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.