# Which function from SciLab should I use to develop a robust controller?

I have been used SciLab for a day from now and I really excited to develop so called "H_{\infty}" controllers.

Normaly I have used LQG-controllers with integral actions, but I have heard that $H_{\infty}$ controllers is much better in real life because a $H_{\infty}$ controller do not require a perfect model of the system, as LQG-controller want to have.

If you look at this link: https://help.scilab.org/docs/6.0.0/en_US/section_64a8529216e858b335b0e6c058385350.html

You will find this:

• ccontrg — Central H-infinity continuous time controller
• dhinf — H_infinity design of discrete-time systems
• dhnorm — discrete H-infinity norm
• gamitg — H-infinity gamma iterations for continuous time systems
• h2norm — H2 norm of a continuous time proper dynamical system
• h_cl — closed loop matrix
• h_inf — Continuous time H-infinity (central) controller
• h_inf_st — static H_infinity problem
• h_norm — H-infinity norm
• hinf — H_infinity design of continuous-time systems
• linf — infinity norm
• linfn — infinity norm
• macglov — Continuous time dynamical systems Mac Farlane Glover problem
• nehari — Nehari approximant of continuous time dynamical systems
• parrot — Parrot's problem

My question is: What is important of this, if I want to develop a controller $K$ which have guaranteed stability margins - robustness.

I have two books about robust control, but I don't recognize anything when I read the list. What should I use? What should I focus on? The CACSD library for SciLab look like a mess.

Let's look at:

• h_inf - Continuous time H-infinity (central) controller

Ok! A $H_{\infty}$ controller!

Or should I use:

• ccontrg — Central H-infinity continuous time controller

My books tells me nothing about central controllers. So I guess that I have too start with the "ccontrg"....

Ok! The formula or code...what ever..tells me this:

[K]=ccontrg(P,r,gamma);

Ok! The $P$ is the agumented state space model, r..I don't know but gamma needs to be some kind of limit I guess?

The definition of $H_{\infty}$ is:

$$||F(P, K)||_{\infty} = max_{\omega}\bar{\sigma}(F(P, K)(i\omega))$$

Which means that our maximum singular value $E_{11}$(singular = positive value) of the

$$[U, E, V] = svd(P)$$

Cannot be larger that $\gamma$. So

$$max_{\omega}\bar{\sigma}(F(P, K)(i\omega)) < \gamma$$

Is the definition of $H_{\infty}$ controllers.

As you see...I know what I'm doing, but I still feel very unsure about this $H_{\infty}$ part of library. None of those functions asking the user about weighting matrices.

A $H_{\infty}$ controller look like the block diagram above. In this case $K = R$.

• Just a minor comment: Don't expect to see any revolutionary improvements in robustness when going to $H_{\infty}$ compared to LQG. It is robust in the particular sense the robustness problem is stated, with nice math, but in practice that does not say much. There's a reason $H_{\infty}$ basically is unheard of in practice. If it was better it would have been adopted much more. The paper Robust, fragile or optimal by Keel et. al might be relevant. – Johan Löfberg Aug 19 '17 at 18:59
• @JohanLöfberg So you mean that LQG is much more used that H-inf?Isn't H-inf controller the new and better "LQG controller"? Because Doyle's paper said that LQG controllers have no guaranteed stability margins, which makes the LQG very weak for disturbances? In pratice the LQG controller can be far more robust that H-inf? – Daniel Mårtensson Aug 19 '17 at 19:35
• @JohanLöfberg If you had to choose...LQG with integral action, or H-inf with integral action? – Daniel Mårtensson Aug 19 '17 at 19:42
• LQG everyday of the week. Natural tuning and clear separation of control and estimation. – Johan Löfberg Aug 19 '17 at 19:47
• Doyles paper was seminal and opened up a whole new field of control. Academically fascinating and theoretically better does not mean better in practice. I cannot think of real case where $H_{\infty}$ actually was used (there are many of course, but it just doesn't compare to LQG) – Johan Löfberg Aug 19 '17 at 19:50