This is the recursive least square algorithm.

$$\hat{\theta}(t) = \hat{\theta}(t-1) + K(t)(y(t) - \phi^T(t)\hat{\theta}(t-1)) \\ K(t) = P(t)\phi(t) \\ P(t) = (I-K(t)\phi^T(t))P(t-1)$$

As I know, I want to find $\hat{\theta}(t)$, $\hat{\theta}(t-1)$ is the past "what I want to find" and I need to set some initial conditions for $\hat{\theta}(t_0)$ and $P(t_0)$.

But what is the rest for the variables? My book only describe $K(t), \phi(t), P(t)$ as matrices and vectors. I cannot accept that as a explanation.

So, how do I use this algorithm? Where do I start?


Here is the answer!

Assume that we are going to curve fit this discrete transfer function.

$$G(z) = \frac{a_0z^{-1} + a_1}{b_0z^{-2} + b_1 z^{-1} + 1}$$

Where $$z^{-1} = (k+1)\\ z^{-2} = (k+2)$$

We can expand $G(z)$ into a discrete ODE:

$$y(k+0) + b_1y(k+1) + b_0y(k+2) = a_0u(k+1) + a_1u(k+0)$$

We want to let $y(k)$ to be alone.

$$y(k+0) =-b_0y(k+2) - b_1y(k+1)+a_0u(k+1) + a_1u(k+0)$$

Remember that I know $y(k)$ for all $k$ and also I know $u(k)$ for all $k$. It's the measurement.

What I don't know is $$b_0, b_1, a_0, a_1$$

So we first create the vectors $\phi(k)$ and $\hat{\theta}$. But we want to display $\phi(k)$ as a single row matrix.

$$\phi^T(k) = [-y(k+2) -y(k+1)+u(k+1) + u(k+0)]$$

And our goal with Recursive Least Square is to find: $$\hat{\theta^T} = [b_0 \space\space\space b_1 \space\space\space a_0 \space\space\space a_1]$$


$$y(k+0) = [-y(k+2) -y(k+1) u(k+1) + u(k+0)] \begin{bmatrix} b_0\\ b_1\\ a_0\\ a_1 \end{bmatrix} = \phi^T(k) \hat{\theta}$$

I have now introduce the definition of $\phi^T(k)$ and $\hat{\theta}$.

As you can see, the RLS algorithm shows $$\hat{\theta}(t-1)$$

It's a definition for the past $\hat{\theta}$ and $\hat{\theta}(k)$ is the definition of the current $\hat{\theta}$.

So what is $P$ then?. Well, they need to be computed too! To compute $P(k)$ we need to do this. This is the initial condition:

$$P(k_0) = (\Phi^T(k_0)\Phi(k_0))^{-1}$$

The definition of the matrix $\Phi(k_0)$ is:

$$\Phi(k_0) = \begin{bmatrix} -y(k_0+2) & -y(k_0+1) & u(k_0+1) &u(k_0+0) \\ -y(k_0+3) & -y(k_0+2) & u(k_0+2) &u(k_0+1) \\ -y(k_0+4) & -y(k_0+3) & u(k_0+3) &u(k_0+2) \\ \vdots & \vdots & \vdots &\vdots \\ -y(k_0+n) & -y(k_0+n-1) & u(k_0+n-1) &u(k_0+n-2) \\ \end{bmatrix}$$

Where $k_0$ is the beginning of the sample time and $n$ is the number of samples taken.

To compute the initial $\hat{\theta}$ we compute this as:

$$\hat{\theta}(k_0) = P(k_0)\Phi^T(k_0)Y(k_0)$$

And $Y(k_0)$ is

$$Y(k_0) = \begin{bmatrix} y(k_0 + 0) \\ y(k_0 + 1) \\ y(k_0 + 2)\\ \vdots \\ y(k_0 + n -2)\\ \end{bmatrix}$$

I how you understand this.

Then to compute $\hat{\theta}(k)$ we do this:

Step 1:

$$P(k) = P(k-1) - P(k-1)\phi(k)(I-\phi^T(k)P(k-1)\phi(k))^{-1}\phi^T(k)P(k-1)$$

Here the initial conditions are: $$P(k-1) = (\Phi^T(0)\Phi(0))^{-1}$$ and $$\phi(k) = \phi(1)$$

Step 2:

$$K(k) = P(1)\phi(1)$$

Step 3:

$$\hat{\theta}(k) = \hat{\theta}(k-1) + K(k)(y(k) - \phi^T(k)\hat{\theta}(k-1))$$

Where initial condition for the estimate is:

$$\hat{\theta}(k-1) = P(0)\Phi^T(0)Y(0)$$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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