Add general plant to shape S,T,KS,GS

This commit is contained in:
tdehaeze committed 2020-11-30 19:42:57 +01:00
1 parent b24a473b35
commit 5c01eca88c
23 files changed
+3128 -356

No files matched your search

+446 -28
View File
@@ -130,6 +130,80 @@ In this document, we will mainly focus on steps 2 and 3.
| *Disadvantages* | Manual Method | No Guaranteed Robustness | Required knowledge of specific tools |
| | Only SISO | Difficult Rejection of Perturbations | Need a reasonably good model of the system |
#+begin_src latex :file robustness_performance.pdf
\begin{tikzpicture}
% Scale
\def\yscale{0.8}
\def\xscale{1.0}
% Colors
\def\colorstart{blue}
\def\colorend{red}
% Axis
\draw [->] (-0.5,0) -- (10*\xscale,0) node[below left]{Robustness};
\draw [->] (0,-0.5) -- (0,10*\yscale) node[below left, rotate=90, anchor=south east]{Performance};
% Color Bar
\shade[draw, bottom color=\colorstart, top color=\colorend, fill opacity=0.5] (10*\xscale, 1*\yscale) rectangle (11*\xscale, 9*\yscale);
\node[rotate=90, above] at (10*\xscale, 5*\yscale) {Required information on plant};
\node[above] at (10.5*\xscale, 1*\yscale) {little};
\node[below] at (10.5*\xscale, 9*\yscale) {large};
% ===================================
% Classical Control
% ===================================
% Control Types
\node[align=center] (pid) at (7.0*\xscale, 1.2*\yscale) {PID\\Lead-Lag};
\begin{scope}[on background layer]
% Control Families
\node[ellipse, draw, dashed, minimum width=3.0*\xscale cm, minimum height=2.0*\yscale cm,
fill=\colorstart!90!\colorend, fill opacity=0.5, text opacity=1]
(classicalcontrol) at (pid) {};
\end{scope}
\node[above, align=center] at (classicalcontrol.north) {\textbf{Classical control} (1930)\\{\small SISO, Manual Method}};
% ===================================
% ===================================
% Modern Control
% ===================================
% Control Types
\node[align=center] (lqg) at (2.0*\xscale, 7.5*\yscale) {LQR\\LQG};
\begin{scope}[on background layer]
\node[ellipse, draw, dashed, minimum width=2.0*\xscale cm, minimum height=2.0*\yscale cm,
fill=\colorstart!20!\colorend, fill opacity=0.5, text opacity=1]
(moderncontrol) at (lqg) {};
\end{scope}
\node[above, align=center] at (moderncontrol.north) {\textbf{Modern control} (1960)\\{\small MIMO, Optimal}};
% ===================================
% ===================================
% Robust Control
% ===================================
% Control Types
\node[align=center] (hinf) at (4.5*\xscale, 4.8*\yscale) {$H_\infty$\\$H_2$};
\node[] (mu) at (5.5*\xscale, 4.8*\yscale) {$\mu$};
\begin{scope}[on background layer]
\node[ellipse, draw, dashed, minimum width=3.0*\xscale cm, minimum height=2.5*\yscale cm,
shade, left color=\colorstart!50!\colorend, right color=\colorstart!10!\colorend, fill opacity=0.5, text opacity=1]
(robustcontrol) at ($0.5*(hinf)+0.5*(mu)$) {};
\end{scope}
\node[above, align=center] at (robustcontrol.north) {\textbf{Robust control} (1990)\\{\small MIMO, Robust}};
% ===================================
\end{tikzpicture}
#+end_src
#+name: fig:robustness_performance
#+caption: Comparison of the performance and robustness of classical control methods, modern control methods and robust control methods. The required information on the plant to succesfuly apply each of the control methods are indicated by the colors.
#+RESULTS:
[[file:figs/robustness_performance.png]]
** Example System
<<sec:example_system>>
@@ -922,33 +996,28 @@ Using Matlab, the generalized plant can be defined as follows:
<<sec:modern_interpretation_specification>>
** Introduction
The
#+name: fig:gang_of_four_feedback
#+caption: Simple Feedback Architecture
#+RESULTS:
[[file:figs/gang_of_four_feedback.png]]
As shown in Section [[sec:open_loop_shaping]], the loop gain $L(s) = G(s) K(s)$ is a useful and easy tool for the design of controllers by hand.
- *Reference tracking* Overshoot, Static error, Settling time
It is very easy to shape as it depends linearly on $K(s)$.
Moreover, it gives information on important quantities such as the stability margins and the control bandwidth.
However, the loop gain $L(s)$ does *not* directly give the performances of the closed-loop system.
The closed loop system behavior is determined by the *closed-loop transfer functions*.
If we consider the feedback system shown in Figure [[fig:gang_of_four_feedback]], we can link to the following specifications to closed-loop transfer functions
- *Reference tracking* (Overshoot, Static error, Settling time, ...)
- From $r$ to $\epsilon$
- *Disturbances rejection*
- From $d$ to $y$
- $G(s) S(s) = T_{d \rightarrow \epsilon}$
- *Measurement noise filtering*
- From $n$ to $y$
- $T(s) = T_{n \rightarrow \epsilon}$
- *Small command amplitude*
- From $n, r, d$ to $u$
- $K(s) S(s) = T_{r \rightarrow u}$
- *Stability*
- $S(s)$, $T(s)$, $K(s)S(s)$, $G(s)S(s)$
- *Robustness to plant uncertainty* (stability margins)
- *Controller implementation*
** Closed Loop Transfer Functions
<<sec:losed_loop_tf>>
As the performances of a controlled system depend on the *closed* loop transfer functions, it is very important to derive these closed-loop transfer functions as a function of the plant $G(s)$ and controller $K(s)$.
- All closed-loop transfer functions must be stable
- *Robustness* (stability margins)
- Module margin (see Section [[sec:module_margin]])
#+begin_src latex :file gang_of_four_feedback.pdf
\begin{tikzpicture}
@@ -975,6 +1044,11 @@ As the performances of a controlled system depend on the *closed* loop transfer
#+RESULTS:
[[file:figs/gang_of_four_feedback.png]]
** Closed Loop Transfer Functions
<<sec:closed_loop_tf>>
As the performances of a controlled system depend on the *closed* loop transfer functions, it is very important to derive these closed-loop transfer functions as a function of the plant $G(s)$ and controller $K(s)$.
#+begin_exercice
Write the output signals $[\epsilon, u, y]$ as a function of the systems $K(s), G(s)$ and of the input signals $[r, d, n]$ as shown in Figure [[fig:gang_of_four_feedback]].
@@ -1003,14 +1077,16 @@ The following equations should be obtained:
#+HTML: </details>
#+end_exercice
We can see that their are 4 different transfer functions describing the behavior of the system in Figure [[fig:gang_of_four_feedback]].
They are called the *Gang of Four*:
#+begin_important
We can see that they are 4 different transfer functions describing the behavior of the system in Figure [[fig:gang_of_four_feedback]].
These called the *Gang of Four*:
\begin{align}
S &= \frac{1 }{1 + GK}, \quad \text{the sensitivity function} \\
T &= \frac{GK}{1 + GK}, \quad \text{the complementary sensitivity function} \\
GS &= \frac{G }{1 + GK}, \quad \text{the load disturbance sensitivity function} \\
KS &= \frac{K }{1 + GK}, \quad \text{the noise sensitivity function}
\end{align}
#+end_important
#+begin_seealso
If a feedforward controller is included, a *Gang of Six* transfer functions can be defined.
@@ -1024,7 +1100,10 @@ And we have:
u &= KS r - S d - KS n
\end{align}
** Sensitivity Transfer Function
Thus, for reference tracking, we want to shape the /closed-loop/ transfer function from $r$ to $\epsilon$, that is the sensitivity function $S(s)$.
Similarly, to reduce the effect of measurement noise $n$ on the output $y$, we want to act on the complementary sensitivity function $T(s)$.
** Sensitivity Function
<<sec:sensitivity_transfer_functions>>
#+begin_src matlab
@@ -1132,6 +1211,8 @@ And we have:
** How to *Shape* transfer function? Using of Weighting Functions!
<<sec:weighting_functions>>
- [ ] Maybe put this section in Previous chapter
Let's say we want to shape the sensitivity transfer function corresponding to the transfer function from $r$ to $\epsilon$ of the control architecture shown in Figure [[fig:loop_shaping_S_without_W]].
#+begin_src latex :file loop_shaping_S_without_W.pdf
@@ -1173,14 +1254,12 @@ However, as the $\mathcal{H}_\infty$ norm is the maximum peak value of the trans
A /trick/ is to include a *weighting function* in the generalized plant as shown in Figure [[fig:loop_shaping_S_with_W]].
Applying the $\mathcal{H}_\infty$ synthesis to the /weighted/ generalized plant $\tilde{P}(s)$ (Figure [[fig:loop_shaping_S_with_W]]) will generate a controller $K(s)$ that minimizes the $\mathcal{H}_\infty$ norm between $r$ and $\tilde{\epsilon}$:
\begin{equation}
\begin{aligned}
& \left\| \frac{\tilde{\epsilon}}{r} \right\|_\infty < \gamma (=1) \\
\Leftrightarrow & \left\| W_s(s) S(s) \right\|_\infty < 1 \\
\Leftrightarrow & \left| W_s(j\omega) S(j\omega) \right| < 1 \quad \forall \omega \\
\Leftrightarrow & \left| S(j\omega) \right| < \frac{1}{\left| W_s(j\omega) \right|} \quad \forall \omega
\end{aligned}\label{eq:sensitivity_shaping}
\end{equation}
\begin{align}
& \left\| \frac{\tilde{\epsilon}}{r} \right\|_\infty < \gamma (=1)\nonumber \\
\Leftrightarrow & \left\| W_s(s) S(s) \right\|_\infty < 1\nonumber \\
\Leftrightarrow & \left| W_s(j\omega) S(j\omega) \right| < 1 \quad \forall \omega\nonumber \\
\Leftrightarrow & \left| S(j\omega) \right| < \frac{1}{\left| W_s(j\omega) \right|} \quad \forall \omega \label{eq:sensitivity_shaping}
\end{align}
#+begin_important
As shown in Equation eqref:eq:sensitivity_shaping, the $\mathcal{H}_\infty$ synthesis allows to *shape* the magnitude of the sensitivity transfer function.
@@ -1430,6 +1509,77 @@ This is indeed what we can see by comparing $|S|$ and $|W_S|$ in Figure [[fig:re
#+RESULTS:
[[file:figs/results_sensitivity_hinf.png]]
** Complementary Sensitivity Function
** Summary
#+name: tab:specification_modern
#+caption: Table caption
| | Open-Loop Shaping | Closed-Loop Shaping |
|-----------------------------+--------------------+--------------------------------------------|
| Reference Tracking | $L$ large | $S$ small |
| Disturbance Rejection | $L$ large | $GS$ small |
| Measurement Noise Filtering | $L$ small | $T$ small |
| Small Command Amplitude | $K$ and $L$ small | $KS$ small |
| Robustness | Phase/Gain margins | Module margin: $\Vert S\Vert_\infty$ small |
#+begin_src latex :file h-infinity-4-blocs-constrains.pdf
\begin{tikzpicture}
\begin{scope}[shift={(0, 0)}]
\draw[] (2.5, 1.0) node[]{$S$};
\draw[fill=blue!20] (-0.2, -2.5) rectangle (1.4, 0.5);
\draw[] (0.6, -0.5) node[]{$\sim GK^{-1}$};
\draw[fill=red!20] (3.6, -2.5) rectangle (5.2, 0.5);
\draw[] (4.5, -0.5) node[]{$\sim 1$};
\draw[fill=red!20] (2.5, 0.15) circle (0.15);
\draw[dashed] (-0.4, 0) -- (5.4, 0);
\draw [] (0,-2) to[out=45,in=180+45] (2,0) to[out=45,in=180] (2.5,0.3) to[out=0,in=180] (3.5,0) to[out=0,in=180] (5, 0);
\draw[dashed] (-0.5, -2.7) rectangle (5.5, 1.4);
\end{scope}
\begin{scope}[shift={(6.4, 0)}]
\draw[] (2.5, 1.0) node[]{$GS$};
\draw[fill=blue!20] (-0.2, -2.5) rectangle (1.4, 0.5);
\draw[] (0.6, -0.5) node[]{$\sim K^{-1}$};
\draw[fill=red!20] (3.6, -2.5) rectangle (5.2, 0.5);
\draw[] (4.5, -0.5) node[]{$\sim G$};
\draw[dashed] (-0.4, 0) -- (5.4, 0);
\draw [] (0,-2) to[out=45,in=180+45] (1, -1) to[out=45, in=180] (2.5,-0.2) to[out=0,in=180-45] (4,-1) to[out=-45,in=180-45] (5, -2);
\draw[dashed] (-0.5, -2.7) rectangle (5.5, 1.4);
\end{scope}
\begin{scope}[shift={(0, -4.4)}]
\draw[] (2.5, 1.0) node[]{$KS$};
\draw[fill=red!20] (-0.2, -2.5) rectangle (1.4, 0.5);
\draw[] (0.6, -1.8) node[]{$\sim G^{-1}$};
\draw[fill=blue!20] (3.6, -2.5) rectangle (5.2, 0.5);
\draw[] (4.5, -0.3) node[]{$\sim K$};
\draw[dashed] (-0.4, 0) -- (5.4, 0);
\draw [] (0,-1.5) to[out=45,in=180+45] (1, -0.5) to[out=45, in=180] (2.5,0.3) to[out=0,in=180-45] (4,-0.5) to[out=-45,in=180-45] (5, -1.5);
\draw[dashed] (-0.5, -2.7) rectangle (5.5, 1.4);
\end{scope}
\begin{scope}[shift={(6.4, -4.4)}]
\draw[] (2.5, 1.0) node[]{$T$};
\draw[fill=red!20] (-0.2, -2.5) rectangle (1.4, 0.5);
\draw[] (0.6, -0.5) node[]{$\sim 1$};
\draw[fill=blue!20] (3.6, -2.5) rectangle (5.2, 0.5);
\draw[] (4.5, -0.5) node[]{$\sim GK$};
\draw[fill=red!20] (2.5, 0.15) circle (0.15);
\draw[dashed] (-0.4, 0) -- (5.4, 0);
\draw [] (0,0) to[out=0,in=180] (1.5,0) to[out=0,in=180] (2.5,0.3) to[out=0,in=-45] (3,0) to[out=-45,in=180-45] (5, -2);
\draw[dashed] (-0.5, -2.7) rectangle (5.5, 1.4);
\end{scope}
\end{tikzpicture}
#+end_src
#+name: fig:h-infinity-4-blocs-constrains
#+caption: Shaping the Gang of Four: Limitations
#+RESULTS:
[[file:figs/h-infinity-4-blocs-constrains.png]]
* $\mathcal{H}_\infty$ Mixed-Sensitivity Synthesis
<<sec:h_infinity_mixed_sensitivity>>
@@ -1441,7 +1591,275 @@ This is indeed what we can see by comparing $|S|$ and $|W_S|$ in Figure [[fig:re
** Step 2 - Shaping of
** General Configuration for various shaping
*** S KS :ignore:
#+HTML: <details><summary>Shaping of S and KS</summary>
#+begin_src latex :file general_conf_shaping_S_KS.pdf
\begin{tikzpicture}
% Blocs
\node[block] (G) {$G$};
\node[addb={+}{-}{}{}{}, right=0.6 of G] (addw) {};
\node[block, above right=0.4 and 0.8 of addw] (W2) {$W_2$};
\node[block, above=0.5 of W2] (W1) {$W_1$};
\coordinate (Gin) at ($(G.west)+(-0.5, 0)$);
\begin{scope}[on background layer]
\node[fit={(Gin|-G.south) (W1.north east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[above] at (P.north) {Weighted Generalized Plant $P$};
\end{scope}
\node[block, below=0.6 of P] (K) {$K$};
\coordinate[right=0.8 of W1] (z);
\coordinate[above left=1.8 and 1.4 of G] (w);
% Connections
\draw[->] (G.east) -- (addw.west);
\draw[->] ($(addw.east)+(0.2, 0)$)node[branch]{} |- (W1.west);
\draw[->] (Gin)node[branch]{} |- (W2.west);
\draw[->] (W1.east) -- (W1-|z) node[above left](z1){$z_1$};
\draw[->] (W2.east) -- (W2-|z) node[above left](z2){$z_2$};
\draw[->] (addw.east) -- (addw-|z) |- node[near start, right]{$v$} (K.east);
\draw[->] (K.west) -| node[near end, left]{$u$} (G-|w) -- (G.west);
\draw[->] (w) node[above right]{$w$} -| (addw.north);
\end{tikzpicture}
#+end_src
#+name: fig:general_conf_shaping_S_KS
#+caption: Generalized Plant to shape $S$ and $KS$
#+RESULTS:
[[file:figs/general_conf_shaping_S_KS.png]]
#+name: lst:general_plant_S_KS
#+caption: General Plant definition corresponding to Figure [[fig:general_conf_shaping_S_KS]]
#+begin_src matlab :eval no :tangle no
P = [W1 -G*W1
0 W2
1 -G];
#+end_src
- $W_1(s)$ is used to shape $S$
- $W_2(s)$ is used to shape $KS$
#+HTML: </details>
*** S T :ignore:
#+HTML: <details><summary>Shaping of S and T</summary>
#+begin_src latex :file general_conf_shaping_S_T.pdf
\begin{tikzpicture}
% Blocs
\node[block] (G) {$G$};
\node[addb={+}{-}{}{}{}, right=0.8 of G] (addw) {};
\node[block, above right=0.4 and 0.8 of addw] (W2) {$W_2$};
\node[block, above=0.5 of W2] (W1) {$W_1$};
\begin{scope}[on background layer]
\node[fit={(G.south west) (W1.north east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[above] at (P.north) {Weighted Generalized Plant $P$};
\end{scope}
\node[block, below=0.6 of P] (K) {$K$};
\coordinate[right=0.8 of W1] (z);
\coordinate[above left=1.8 and 0.8 of G] (w);
% Connections
\draw[->] (G.east) -- (addw.west);
\draw[->] ($(addw.east)+(0.3, 0)$)node[branch]{} |- (W1.west);
\draw[->] ($(G.east)+(0.3, 0)$)node[branch]{} |- (W2.west);
\draw[->] (W1.east) -- (W1-|z) node[above left](z1){$z_1$};
\draw[->] (W2.east) -- (W2-|z) node[above left](z2){$z_2$};
\draw[->] (addw.east) -- (addw-|z) |- node[near start, right]{$v$} (K.east);
\draw[->] (K.west) -| node[near end, left]{$u$} (G-|w) -- (G.west);
\draw[->] (w) node[above right]{$w$} -| (addw.north);
\end{tikzpicture}
#+end_src
#+name: fig:general_conf_shaping_S_T
#+caption: Generalized Plant to shape $S$ and $T$
#+RESULTS:
[[file:figs/general_conf_shaping_S_T.png]]
#+name: lst:general_plant_S_T
#+caption: General Plant definition corresponding to Figure [[fig:general_conf_shaping_S_T]]
#+begin_src matlab :eval no :tangle no
P = [W1 -G*W1
0 G*W2
1 -G];
#+end_src
- $W_1$ is used to shape $S$
- $W_2$ is used to shape $T$
#+HTML: </details>
*** S T KS :ignore:
#+HTML: <details><summary>Shaping of S, T and KS</summary>
#+begin_src latex :file general_conf_shaping_S_T_KS.pdf
\begin{tikzpicture}
% Blocs
\node[block] (G) {$G$};
\node[addb={+}{-}{}{}{}, right=0.8 of G] (addw) {};
\node[block, above right=0.4 and 0.8 of addw] (W3) {$W_3$};
\node[block, above=0.2 of W3] (W2) {$W_2$};
\node[block, above=0.2 of W2] (W1) {$W_1$};
\coordinate (Gin) at ($(G.west)+(-0.5, 0)$);
\begin{scope}[on background layer]
\node[fit={(Gin|-G.south) (W1.north east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[above] at (P.north) {Weighted Generalized Plant $P$};
\end{scope}
\node[block, below=0.6 of P] (K) {$K$};
\coordinate[right=0.8 of W1] (z);
\coordinate[above left=1.4 and 1.3 of G] (w);
% Connections
\draw[->] (G.east) -- (addw.west);
\draw[->] ($(addw.east)+(0.3, 0)$)node[branch]{} |- (W1.west);
\draw[->] (Gin)node[branch]{} |- (W2.west);
\draw[->] ($(G.east)+(0.3, 0)$)node[branch]{} |- (W3.west);
\draw[->] (W1.east) -- (W1-|z) node[above left](z1){$z_1$};
\draw[->] (W2.east) -- (W2-|z) node[above left](z2){$z_2$};
\draw[->] (W3.east) -- (W3-|z) node[above left](z3){$z_3$};
\draw[->] (addw.east) -- (addw-|z) |- node[near start, right]{$v$} (K.east);
\draw[->] (K.west) -| node[near end, left]{$u$} (G-|w) -- (G.west);
\draw[->] (w) node[above right]{$w$} -| (addw.north);
\end{tikzpicture}
#+end_src
#+name: fig:general_conf_shaping_S_T_KS
#+caption: Generalized Plant to shape $S$, $T$ and $KS$
#+RESULTS:
[[file:figs/general_conf_shaping_S_T_KS.png]]
#+name: lst:general_plant_S_T_KS
#+caption: General Plant definition corresponding to Figure [[fig:general_conf_shaping_S_T_KS]]
#+begin_src matlab :eval no :tangle no
P = [W1 -G*W1
0 W2
0 G*W3
1 -G];
#+end_src
- $W_1$ is used to shape $S$
- $W_2$ is used to shape $KS$
- $W_3$ is used to shape $T$
#+HTML: </details>
*** S T KS GS :ignore:
#+HTML: <details><summary>Shaping of S, T, KS and GS</summary>
#+begin_src latex :file general_conf_shaping_S_T_KS_GS.pdf
\begin{tikzpicture}
% Blocs
\node[block] (G) {$G$};
\node[addb={+}{-}{}{}{}, right=0.6 of G] (addr) {};
\node[addb, left=0.6 of G] (addd) {};
\node[block, above right=0.4 and 0.8 of addr] (W2) {$W_2$};
\node[block, above=0.5 of W2] (W1) {$W_1$};
\node[block, above left=0.7 and 0.8 of addd] (W3) {$W_3$};
\node[block, above=0.5 of W3] (W4) {$1$};
\begin{scope}[on background layer]
\node[fit={(W3.west|-G.south) (W4.north -| W2.east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[above] at (P.north) {Weighted Generalized Plant $P$};
\end{scope}
\node[block, below=0.6 of P] (K) {$K$};
\coordinate[right=1.0 of W1] (z);
\coordinate[left=1.0 of W3] (w);
% Connections
\draw[->] (G.east) -- (addr.west);
\draw[->] ($(addr.east)+( 0.2, 0)$)node[branch]{} |- (W1.west);
\draw[->] ($(addd.west)+(-0.4, 0)$)node[branch]{} |- (W2.west);
\draw[->] (W1.east) -- (W1-|z) node[above left](z1){$z_1$};
\draw[->] (W2.east) -- (W2-|z) node[above left](z2){$z_2$};
\draw[->] (addr.east) -- (addw-|z) |- node[near start, right]{$v$} (K.east);
\draw[->] (K.west) -| node[near end, left]{$u$} (addd-|w) -- (addd.west);
\draw[->] (addd.east) -- (G.west);
\draw[->] (W3.east) -| (addd.north);
\draw[->] (W4.east) -| (addr.north);
\draw[->] (w) node[above right]{$w_1$} -- (W3.west);
\draw[->] (w|-W4) node[above right]{$w_2$} -- (W4.west);
\end{tikzpicture}
#+end_src
#+name: fig:general_conf_shaping_S_T_KS_GS
#+caption: Generalized Plant to shape $S$, $T$, $KS$ and $GS$
#+RESULTS:
[[file:figs/general_conf_shaping_S_T_KS_GS.png]]
#+name: lst:general_plant_S_T_KS_GS
#+caption: General Plant definition corresponding to Figure [[fig:general_conf_shaping_S_T_KS_GS]]
#+begin_src matlab :eval no :tangle no
P = [ W1 -W1*G*W3 -G*W1
0 0 W2
1 -G*W3 -G];
#+end_src
- $W_1$ is used to shape $S$
- $W_2$ is used to shape $KS$
- $W_1W_3$ is used to shape $GS$
- $W_2W_3$ is used to shape $T$
#+HTML: </details>
* Conclusion
<<sec:conclusion>>
* Things to add :noexport:
** 2 blocs criterion - constrains
#+begin_src latex :file h-infinity-2-blocs-constrains.pdf
\begin{tikzpicture}
\begin{scope}[shift={(0, 0)}]
\draw[] (2.5, 1.0) node[]{$S$};
\draw[fill=blue!20] (-0.2, -2.5) rectangle (1.4, 0.5);
\draw[] (0.6, -0.5) node[]{$\sim GK^{-1}$};
\draw[fill=red!20] (3.6, -2.5) rectangle (5.2, 0.5);
\draw[] (4.5, -0.5) node[]{$\sim 1$};
\draw[fill=red!20] (2.5, 0.15) circle (0.15);
\draw[dashed] (-0.4, 0) -- (5.4, 0);
\draw [] (0,-2) to[out=45,in=180+45] (2,0) to[out=45,in=180] (2.5,0.3) to[out=0,in=180] (3.5,0) to[out=0,in=180] (5, 0);
\draw[dashed] (-0.5, -2.7) rectangle (5.5, 1.4);
\end{scope}
\begin{scope}[shift={(6.4, 0)}]
\draw[] (2.5, 1.0) node[]{$T$};
\draw[fill=red!20] (-0.2, -2.5) rectangle (1.4, 0.5);
\draw[] (0.6, -0.5) node[]{$\sim 1$};
\draw[fill=blue!20] (3.6, -2.5) rectangle (5.2, 0.5);
\draw[] (4.5, -0.5) node[]{$\sim GK$};
\draw[fill=red!20] (2.5, 0.15) circle (0.15);
\draw[dashed] (-0.4, 0) -- (5.4, 0);
\draw [] (0,0) to[out=0,in=180] (1.5,0) to[out=0,in=180] (2.5,0.3) to[out=0,in=-45] (3,0) to[out=-45,in=180-45] (5, -2);
\draw[dashed] (-0.5, -2.7) rectangle (5.5, 1.4);
\end{scope}
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/h-infinity-2-blocs-constrains.png]]
* Resources