How am I suppose to estimate the next state vector if the model have internal integration? – Kalman filter

adaptive controlcontrol theorykalman filterlinear-controloptimal control

Assume that we have a state space model with no integration (no poles at 1)

$$x(k+1) = Ax(k) + Bu(k)\\y(k) = Cx(k)$$

And we know our kalman gain matrix $K$. To compute the next state $\hat x(k+1)$, we can do this:

$$\hat x(k+1) = Ax(k) + Bu(k) + K(y(k) – y_m(k))$$

Where $y_m(k)$ is our real world measurement and $y(k) = Cx(k)$.

But what if we want to have integration in our model.

$$\begin{bmatrix}
x(k+1)\\
x_i(k+1)
\end{bmatrix} = \begin{bmatrix}
A & 0 \\
CA & 1
\end{bmatrix}\begin{bmatrix}
x\\
x_i
\end{bmatrix} + \begin{bmatrix}
B\\
CB
\end{bmatrix}\begin{bmatrix}
u
\end{bmatrix}$$

$$\begin{bmatrix}
y_i(k+1)
\end{bmatrix} = \begin{bmatrix}
0 & 1
\end{bmatrix}\begin{bmatrix}
x\\
x_i
\end{bmatrix}$$

How can I estimate the next state vector $\begin{bmatrix}
x\\
x_i
\end{bmatrix}$
if $K$ have the same dimension as $A$?

The reason why I'm asking this is beacuse I have wrote a C-library made for control engineering. I just notice that after I have estimate my model from recursive least square and implement integration into the model, my kalman.c file could not find the next state vector because it's expecting a non-itegration model.

https://github.com/DanielMartensson/CControl

Best Answer

First of all if your real measurement $y_m$ comes from the first model, then the second model should reflect this fact, i.e. $$y(k) = \begin{bmatrix}C & 0\end{bmatrix}\begin{bmatrix}x \\ x_i\end{bmatrix}$$ In this case the system becomes non-detectable. So, the Kalman filter fails to work.

In general, you cannot estimate an integration with only measuring the integrated state in the presence of noise by any method whatsoever. For example, you cannot estimate the position by only measuring the velocity in the presence of noise. This becomes a mathematical impossibility because you lose detectability property.

Edit: By "cannot estimate" I mean estimations does not converge to the real values.

Related Question