Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

[ Cross-posted to: ]

I have a system for which I have obtained a non-linear time-varying state-space representation. For this system I am able to measure one of the states. I would like to estimate the input from this.

In my parameter estimation notes I have found a scribbled aside "[the extended Kalman Filter] can be used to estimate the system input if the output is known". So far I've not found any references or sections in my notes that describe the use of the EKF in this way. Can anyone suggest a reference (or provide) an explanation of how to perform this task?

The system is: $$x(t)= \begin{bmatrix} x_1(t)\\ x_2(t) \end{bmatrix}; \quad \dot{x}(t)= \begin{bmatrix} x_2(t) \\ \alpha(t) x^2_2(t) + \beta(t) + \gamma(t) u_1(t) \end{bmatrix}; \quad y=x_2(t) $$ Where: $\alpha(t)$ and $\gamma(t)$ are constant parameters; $\beta(t)$ is a time-varying parameter; $y=x_2(t)$ is a known (measured) time-varying state; and $u(t)$ is the unknown system input. I have made a simplifying assumption that $\beta(t)$ is constant initially. After proving against this simplified system I want to move to a system where: $$x(t)= \begin{bmatrix} x_1(t)\\ x_2(t) \end{bmatrix}; \quad u(t)= \begin{bmatrix} u_1(t)\\ u_2(t) \end{bmatrix}; \quad y=x_2(t)\\ \quad \dot{x}(t)= \begin{bmatrix} x_2(t) \\ \alpha(t) x^2_2(t) + \beta(t) + \gamma(t) u_1(t) \end{bmatrix}; \quad \beta(t) = f(u_2(t)) $$ Where: $u_1(t)$ is the unknown system input ($u(t)$ in part 1); $u_2(t)$ and $f(u_2(t))$ are a known input and a known function. If someone can point me at a reference for the first part (constant $\beta(t)$) or give a brief explanation of how to approach this then I hope to be able to work to a solution for the second part.

share|cite|improve this question
Perhaps I need to rephrase my question slightly? – IainCunningham Aug 7 '12 at 11:58
up vote 1 down vote accepted

One possible method to estimate unknonwn inputs to a system with the EKF, is to add those inputs as additional states to the systems, i.e. to go from $$\dot x(t) = F(x, u)$$ to $$ \left[\begin{array} \dot x (t) \\ \dot u \end{array}\right] = \left[\begin{array}{c} F(x,u) \\ 0 \end{array}\right]$$

and consider it an autonomous systems. Please note that this approach gives you estimates of the inputs that, in the case that the EKF converges properly, converge only to constants. This can work in practice if the input you try to estimate is slower that the rest of the dynamics. If that is not the case, you can "expand" your unknown input to a chain of integrators: in this case the filter, if converges properly, would converge exactly to inputs that are a polynomial function of time of degree $n$, where $n$ is the number of integrators in the chain (that is, with one integrator you can guess a linear evolution, with two a parabolic evolution, and so on...).

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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