This is going to be a long question. To answer this question, you need to undestand the following:

  • Sensitivity transfer function matrix $S(s)$
  • Complementary sensitivity function matrix $T(s)$
  • Disturbance transfer function matrix $G_{\omega u}(s)$
  • Separation principle for LQG controllers

So here we go!

Let's say that we got a multivariable system $G(s)$ from the state space model:

$$G(s) = C(sI-A)^{-1}B + D$$

The sensitivity transfer function matrix is know as:

$$S(s) = \frac{1}{I + G(s)F_y}$$

Where $F_y$ is our matrix which will give a good sensitivity transfer function.

The complementary sensitivity function matrix is know as:

$$T(s) = \frac{G(s)F_y}{I + G(s)F_y}$$

The disturbance transfer function matrix is known as:

$$G_{\omega u}(s) = -F_yS(s) = -\frac{F_y}{I + G(s)F_y}$$

I need to choose the matrix $F_y$ so $S(s)$, $T(s)$ and $G_{\omega u}$ gets good properties.

Our goal with $H_\infty$ controll is to choosing the transfer function weighting matrices $W_S(s)$, $W_T(s)$ and $W_u(s)$ so this will be true:

$$\left | W_S(s)S(s) \right | < \gamma \hspace{0.2cm} \forall s$$ $$\left | W_T(s)T(s) \right | < \gamma \hspace{0.2cm} \forall s$$ $$\left | W_u(s)G_{\omega u}(s) \right | < \gamma \hspace{0.2cm} \forall s$$

Where $\gamma$ is a real number which needs to be choosen as a small number. If all this meet the conditions then move next to this riccati equation:

$$A^TS + SA + M^TM + S(\gamma^{-2} NN^T -BB^T)S = 0$$

Where $N$ is our disturbance matrix for the system. If the disturbances affects input $u$ then the distrurbance matrix $N$ will be $N = B$. The whole open loop system for the controller will look like this:

$$ \begin{matrix} \dot{x} = Ax + Bu + N\omega \\ z = Mx + Du\\ y = Cx + I\omega \end{matrix} $$

It's a state space model and we are going to buld a control law:

$$ u = -L_\infty \hat{x}$$

Yes! $H_\infty$ control has an observer too. The observer is the matrix $N$.

Anyway! Back to the riccati equation!

We need to solve the positive semidefenit matrix $S$ from the riccati equation. The matrix $S$ is not the sensitivity transfer function matrix $S(s)$. Remember that.

Now the are two choises:

  1. If we didin't found any positive semidefenit $S$ for the riccati equation. I need to go back and increese $\gamma$.
  2. If we found a positive semidefenit $S$ for the riccati equation. Accept that, or decreese $\gamma$ and test if the riccati equation will give a positive semidefenit $S$ too.

There is one thing more! Make sure that this is stable too:

$$det(sI - (A-BB^TS_\gamma)) = 0$$

Where $S = S_\gamma$

If $A-BB^TS_\gamma$ is stable, then we can find our control law:

$$ L_\infty = B^TS_\gamma$$

Our $H_\infty$ observer is:

$$\boxed{ \dot{\hat{x}} = A\hat{x} + Bu + N(y - C\hat{x})}$$

And our $H_\infty$ controller is: $$\boxed{ u = -L_\infty \hat{x}}$$

Our transfer fucntion matrix $F_y(s)$ will be then:

$$F_y(s) = L_\infty(sI - A + BB^TS_\gamma + NC)^{-1}N$$

Notice that $F_y(s)$ is not the same as matrix $F_y$.

If you want an integral action to this. You should create this controller:

$$\boxed{ u = -L_\infty \hat{x} + L_i x_i}$$

You can set $L_i$ to an identity matrix $I$ to begin with.

And one extra state more:

$$\boxed{\dot{x_i} = r - y = r - Cx}$$

Because: $$ x_i = \int_{0}^{t} (r- y)dt = \int_{0}^{t} (r - Cx)dt = \int_{0}^{t} = \dot{x_i} dt$$

Highly recommended if you can to have a good tracking of the reference input $r$.

So to summarize this:

  1. Given $G(s) = C(sI-A)^{-1}B + D$
  2. Choose $F_y$ which will give you good properties for $S(s)$, $T(s)$ and $G_{\omega u}(s)$
  3. Then choose the weighting transfer function matrices $W_u(s)$, $W_S(s)$ and $W_u(s)$ so this meets its conditions. Notice that $\gamma$ needs to be a small number.

$$\left | W_S(s)S(s) \right | < \gamma \hspace{0.2cm} \forall s$$ $$\left | W_T(s)T(s) \right | < \gamma \hspace{0.2cm} \forall s$$ $$\left | W_u(s)G_{\omega u}(s) \right | < \gamma \hspace{0.2cm} \forall s$$

  1. Find the positive semidefinite matix $S$ from the riccati equation

$$A^TS + SA + M^TM + S(\gamma^{-2} NN^T -BB^T)S = 0$$

  1. Check the if this is stable: $$det(sI - (A-BB^TS_\gamma)) = 0$$

  2. Create the control law

$$ L_\infty = B^TS_\gamma$$

  1. Now create the observer and the controller

    $$\boxed{ \dot{\hat{x}} = A\hat{x} + Bu + N(y - C\hat{x})}$$ $$\boxed{ u = -L_\infty \hat{x}}$$

  2. If you want integral action to this controller. You need to add one extra state to the model and change the controller.

$$\boxed{ u = -L_\infty \hat{x} + L_i x_i}$$ $$\boxed{\dot{x_i} = r - y = r - Cx}$$

Done! Questions:

  1. Have I done it right?
  2. Are they diffrent ways to creating a $H_\infty$ controller?
  3. How do I know if the system is observable, stable and detectable?
  4. Other?

I have read the book: "Control Theory - Multivariable and Nonlinear Methods" by Lennart Ljung and Torkel Glad


Your Answer

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

Browse other questions tagged or ask your own question.