# Tikz - Sensor Fusion Paper
Author: Thomas Dehaeze

## Table of Contents

- 1. Change some default
- 2. Sensor Fusion with complementary filters
- 3. Equivalent configuration
- 4. Equivalent configuration - classical Feedback
- 5. Equivalent configuration - classical Feedback with pre-filter
- 6. Equivalent configuration - bis
- 7. H-Infinity - Complementary filters - Generalized plant
- 8. H-Infinity - Complementary filters
- 9. Input Multiplicative Uncertainty
- 10. One mass
- 11. One mass - Control
- 12. Piezoelectric Actuator
- 13. Upper bounds
- 14. Bode plot of the mechanical system
- 15. Bode plot of the mechanical system - Uncertainty
- 16. Bode plot of the controller
- 17. Bode plot of the loop gain
- 18. Upper bounds with weights
- 19. Upper bounds with Complementary Filters
- 20. Upper bounds with weights and Complementary Filters
- 21. Robustness - Nyquist
- 22. Robustness - Loop Gain
- 23. Robust performance

Configuration file is accessible here.

## 1 Change some default

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%

## 2 Sensor Fusion with complementary filters

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){};
      \node[block, right=of addfb] (K){$k$};
      \node[block, right=1.2 of K] (G){$G^\prime$};
      \node[addb={+}{}{}{}{}, right=of G] (adddy){};
      \coordinate[] (KG) at ($0.5*(K.east)+0.5*(G.west)$);
      \node[block, below=of KG] (Gm){$G$};
      \node[block, below=of Gm] (Hh){$H_H$};
      \node[addb={+}{}{}{}{}, below=of Hh] (addsf){};
      \node[block] (Hl) at (addsf-|G) {$H_L$};
      \node[addb={+}{}{}{}{}, right=1.2 of Hl] (addn) {};

      \draw[->] (addfb.east) -- (K.west) node[above left]{};
      \draw[->] (K.east) -- (G.west) node[above left]{$u$};
      \draw[->] (KG) node[branch]{} -- (Gm.north);
      \draw[->] (Gm.south) -- (Hh.north);
      \draw[->] (Hh.south) -- (addsf.north) node[above left]{};
      \draw[->] (Hl.west) -- (addsf.east);
      \draw[->] (addsf.west) -| (addfb.south) node[below right]{};
      \draw[->] (G.east) -- (adddy.west);
      \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$};
      \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$};
      \draw[->] (adddy-|addn) node[branch]{} -- (addn.north);
      \draw[<-] (addfb.west) -- ++(-\cdist, 0) node[above right]{$r$};
      \draw[->] (addn.west) -- (Hl.east) node[above right]{$y_m$};
      \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$};
    \end{tikzpicture}

Figure 1: Sensor Fusion with complementary filters (png, pdf, tex).

## 3 Equivalent configuration

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){};
      \node[addb={+}{}{}{}{-}, right=of addfb] (addK){};
      \node[block, right=of addK] (K){$k$};
      \node[block, right=1.8 of K] (G){$G^\prime$};
      \node[addb={+}{}{}{}{}, right=of G] (adddy){};
      \node[block, below right=0.5 and -0.2 of K] (Gm){$G$};
      \node[block, below left =0.5 and -0.2 of K] (Hh){$H_H$};
      \node[block, below=1.5 of G] (Hl) {$H_L$};
      \node[addb={+}{}{}{}{}, right=1 of Hl] (addn) {};

      \draw[->] (addfb.east) -- (addK.west);
      \draw[->] (addK.east) -- (K.west);
      \draw[->] (K.east) -- (G.west) node[above left]{$u$};
      \draw[->] (G.east) -- (adddy.west);
      \draw[->] ($(G.west)+(-0.8, 0)$) node[branch](sffb){} |- (Gm.east);
      \draw[->] (Gm.west) -- (Hh.east);
      \draw[->] (Hh.west) -| (addK.south);
      \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$};
      \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$};
      \draw[->] (adddy-|addn) node[branch]{} -- (addn.north);
      \draw[<-] (addfb.west) -- ++(-\cdist, 0) node[above right]{$r$};
      \draw[->] (addn.west) -- (Hl.east) node[above right]{$y_m$};
      \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$};
      \draw[->] (Hl.west) -| (addfb.south) node[below right]{};

      \node[fit={($(addK.west|-Hh.south)+(-0.1, 0)$) (K.north-|sffb)}, inner sep=5pt, draw, dashed, color=gray, label={$K$}] (Kfb) {};
    \end{tikzpicture}

Figure 2: Equivalent configuration (png, pdf, tex).

## 4 Equivalent configuration - classical Feedback

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){};
      \node[block, right=of addfb] (K){$K$};
      \node[block, right=of K] (G){$G^\prime$};
      \node[addb={+}{}{}{}{}, right=of G] (adddy){};
      \node[addb={+}{}{}{}{}, below right=and 0.5 of adddy] (addn) {};
      \node[block] (Hh) at (G|-addn) {$H_L$};

      \draw[->] (addfb.east) -- (K.west) node[above left]{};
      \draw[->] (K.east) -- (G.west) node[above left]{$u$};
      \draw[->] (G.east) -- (adddy.west);
      \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$};
      \draw[->] (G-|addn)node[branch]{} -- (addn.north);
      \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$};
      \draw[<-] (addfb.west) -- ++(-\cdist, 0) node[above right]{$r$};
      \draw[->] (addn.west) -- (Hh.east);
      \draw[->] (Hh.west) -| (addfb.south);
      \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$};
    \end{tikzpicture}

Figure 3: Equivalent configuration - classical Feedback (png, pdf, tex).

## 5 Equivalent configuration - classical Feedback with pre-filter

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){};
      \node[block, left=of addfb] (Kr){$K_r$};
      \node[block, right=of addfb] (K){$K$};
      \node[block, right=of K] (G){$G^\prime$};
      \node[addb={+}{}{}{}{}, right=of G] (adddy){};
      \node[addb={+}{}{}{}{}, below right=0.7 and 0.3 of adddy] (addn) {};
      \node[block, left=of addn] (Hh) {$H_H$};

      \draw[->] (addfb.east) -- (K.west) node[above left]{};
      \draw[->] (K.east) -- (G.west) node[above left]{$u$};
      \draw[->] (G.east) -- (adddy.west);
      \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$};
      \draw[->] (G-|addn)node[branch]{} -- (addn.north);
      \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$};
      \draw[<-] (Kr.west) -- ++(-\cdist, 0) node[above right]{$r$};
      \draw[->] (Kr.east) -- (addfb.west);
      \draw[->] (addn.west) -- (Hh.east);
      \draw[->] (Hh.west) -| (addfb.south);
      \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$};
    \end{tikzpicture}

Figure 4: Equivalent configuration - classical Feedback with pre-filter (png, pdf, tex).

## 6 Equivalent configuration - bis

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      \node[addb={+}{}{}{}{-}] (addfb) at (0, 0){};
      \node[block, left=of addfb] (Kr){${H_H}^{-1}$};
      \node[block, right=of addfb] (K){$G^{-1} {H_L}^{-1} H_H$};
      \node[block, right=of K] (G){$G^\prime$};
      \node[addb={+}{}{}{}{}, right=of G] (adddy){};
      \node[addb={+}{}{}{}{}, below right=0.7 and 0.3 of adddy] (addn) {};

      \draw[->] (addfb.east) -- (K.west) node[above left]{};
      \draw[->] (K.east) -- (G.west) node[above left]{$u$};
      \draw[->] (G.east) -- (adddy.west);
      \draw[<-] (addn.east) -- ++(\cdist, 0) coordinate[](endpos) node[above left]{$n$};
      \draw[->] (G-|addn)node[branch]{} -- (addn.north);
      \draw[->] (adddy.east) -- (G-|endpos) node[above left]{$y$};
      \draw[<-] (Kr.west) -- ++(-\cdist, 0) node[above right]{$r$};
      \draw[->] (Kr.east) -- (addfb.west);
      \draw[->] (addn.west) -| (addfb.south);
      \draw[<-] (adddy.north) -- ++(0, \cdist) node[below right]{$d_y$};
    \end{tikzpicture}

Figure 5: Equivalent configuration - bis (png, pdf, tex).

## 7 H-Infinity - Complementary filters - Generalized plant

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
       \node[block={4.0cm}{3.0cm}, dashed] (P) {};
       \node[above] at (P.north) {$P$};

       \coordinate[] (inputw)  at ($(P.south west)!0.8!(P.north west) + (-\cdist, 0)$);
       \coordinate[] (inputu)  at ($(P.south west)!0.4!(P.north west) + (-\cdist, 0)$);

       \coordinate[] (outputh) at ($(P.south east)!0.8!(P.north east) + ( \cdist, 0)$);
       \coordinate[] (outputl) at ($(P.south east)!0.4!(P.north east) + ( \cdist, 0)$);
       \coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( \cdist, 0)$);

       \node[block, left=2*\cdist of outputl] (WL){$w_L$};
       \node[block, left=2*\cdist of outputh] (WH){$w_H$};
       \node[addb={+}{}{}{}{-}, left=of WH] (sub) {};

       \draw[->] (inputw) node[above right]{$w$} -- (sub.west);
       \draw[->] (inputu) node[above right]{$u$} -- (WL.west);
       \draw[->] (inputu-|sub) node[branch]{} -- (sub.south);
       \draw[->] (sub.east) -- (WH.west);
       \draw[->] ($(inputw)+(2*\cdist, 0)$) node[branch]{} |- (outputv) node[above left]{$v$};
       \draw[->] (WH.east) -- (outputh)node[above left]{$z_H$};
       \draw[->] (WL.east) -- (outputl)node[above left]{$z_L$};
     \end{tikzpicture}

Figure 6: H-Infinity - Complementary filters - Generalized plant (png, pdf, tex).

## 8 H-Infinity - Complementary filters

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
       \node[block={4.0cm}{3.0cm}, dashed] (P) {};
       \node[above] at (P.north) {$P$};

       \coordinate[] (inputw)  at ($(P.south west)!0.8!(P.north west) + (-\cdist, 0)$);
       \coordinate[] (inputu)  at ($(P.south west)!0.4!(P.north west) + (-\cdist, 0)$);

       \coordinate[] (outputh) at ($(P.south east)!0.8!(P.north east) + ( \cdist, 0)$);
       \coordinate[] (outputl) at ($(P.south east)!0.4!(P.north east) + ( \cdist, 0)$);
       \coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( \cdist, 0)$);

       \node[block, left=2*\cdist of outputl] (WL){$w_L$};
       \node[block, left=2*\cdist of outputh] (WH){$w_H$};
       \node[addb={+}{}{}{}{-}, left=of WH] (sub) {};

       \node[block, below=\cdist of P] (HL) {$H_L$};

       \draw[->] (inputw) node[above right]{$w$} -- (sub.west);
       \draw[->] (HL.west) -| ($(inputu)+(0.5*\cdist, 0)$) -- (WL.west);
       \draw[->] (inputu-|sub) node[branch]{} -- (sub.south);
       \draw[->] (sub.east) -- (WH.west);
       \draw[->] ($(inputw)+(2*\cdist, 0)$) node[branch]{} |- ($(outputv)+(-0.5*\cdist, 0)$) |- (HL.east);
       \draw[->] (WH.east) -- (outputh)node[above left]{$z_H$};
       \draw[->] (WL.east) -- (outputl)node[above left]{$z_L$};
    \end{tikzpicture}

Figure 7: H-Infinity - Complementary filters (png, pdf, tex).

## 9 Input Multiplicative Uncertainty

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      % Blocs
      \node[block] (G) {$G$};

      \node[addb, left=of G] (addi) {};
      \node[block, above left=0.5 and 0.2 of addi] (deltai) {$\Delta_I$};
      \node[block, left=of deltai] (wi) {$w_I$};

      % Connections and labels
      \draw[->] ($(G.west)+(-4, 0)$)coordinate[](start) node[branch]{} |- (wi.west);
      \draw[->] ($(start)+(-\cdist, 0)$) -- (addi.west);
      \draw[->] (wi.east) -- (deltai.west);
      \draw[->] (deltai.east) -| (addi.north);
      \draw[->] (addi.east) -- (G.west);
      \draw[->] (G.east) -- ++(0.8, 0);

      \node[fit={(start|-wi.north) (G.south east)}, inner sep=10pt, draw, dashed, color=gray, label={$G_p$}] (Gp) {};
    \end{tikzpicture}

Figure 8: Input Multiplicative Uncertainty (png, pdf, tex).

## 10 One mass

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      % ====================
      % Parameters
      % ====================
      \def\massw{2.2}  % Width of the masses
      \def\massh{0.8}  % Height of the masses
      \def\spaceh{1.2} % Height of the springs/dampers
      \def\dispw{0.3}  % Width of the dashed line for the displacement
      \def\disph{0.5}  % Height of the arrow for the displacements
      \def\bracs{0.05} % Brace spacing vertically
      \def\brach{-10pt} % Brace shift horizontaly
      % ====================

      % ====================
      % Ground
      % ====================
      \draw (-0.5*\massw, 0) -- (0.5*\massw, 0);
      \draw[dashed] (0.5*\massw, 0) -- ++(\dispw, 0);
      \draw[->] (0.5*\massw+0.5*\dispw, 0) -- ++(0, \disph) node[right]{$w$};
      % ====================

      \begin{scope}[shift={(0, 0)}]
        % Mass
        \draw[fill=white] (-0.5*\massw, \spaceh) rectangle (0.5*\massw, \spaceh+\massh) node[pos=0.5]{$m$};

        % Spring, Damper, and Actuator
        \draw[spring] (-0.4*\massw, 0) -- (-0.4*\massw, \spaceh) node[midway, left=0.1]{$k$};
        \draw[damper] (0, 0)           -- ( 0, \spaceh)          node[midway, left=0.2]{$c$};
        \draw[actuator] ( 0.4*\massw, 0) -- ( 0.4*\massw, \spaceh) node[midway, left=0.1](F){$F$};

        % Displacements
        \draw[dashed] (0.5*\massw, \spaceh) -- ++(\dispw, 0);
        \draw[->] (0.5*\massw+0.5*\dispw, \spaceh) -- ++(0, \disph) node[right]{$x$};

        % Legend
        % \draw[decorate, decoration={brace, amplitude=8pt}, xshift=\brach] %
        %   (-0.5*\massw, \bracs) -- (-0.5*\massw, \spaceh+\massh-\bracs) %
        %   node[midway,rotate=90,anchor=south,yshift=10pt]{};
      \end{scope}
    \end{tikzpicture}

Figure 9: One mass (png, pdf, tex).

## 11 One mass - Control

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      % ====================
      % Parameters
      % ====================
      \def\massw{2.2}  % Width of the masses
      \def\massh{0.8}  % Height of the masses
      \def\spaceh{1.2} % Height of the springs/dampers
      \def\dispw{0.3}  % Width of the dashed line for the displacement
      \def\disph{0.5}  % Height of the arrow for the displacements
      \def\bracs{0.05} % Brace spacing vertically
      \def\brach{-10pt} % Brace shift horizontaly
      % ====================

      % ====================
      % Ground
      % ====================
      \draw (-0.5*\massw, 0) -- (0.5*\massw, 0);
      \draw[dashed] (0.5*\massw, 0) -- ++(\dispw, 0);
      \draw[->] (0.5*\massw+0.5*\dispw, 0) -- ++(0, \disph) node[below right]{$w$};
      % ====================

      \begin{scope}[shift={(0, 0)}]
        % Mass
        \draw[fill=white] (-0.5*\massw, \spaceh) rectangle (0.5*\massw, \spaceh+\massh) node[pos=0.5]{$m$};

        % Spring, Damper, and Actuator
        \draw[spring] (-0.4*\massw, 0) -- (-0.4*\massw, \spaceh) node[midway, left=0.1]{$k$};
        \draw[damper] (0, 0)           -- ( 0, \spaceh)          node[midway, left=0.2]{$c$};
        \draw[actuator] ( 0.4*\massw, 0) -- ( 0.4*\massw, \spaceh) coordinate[midway, right=0.15](F);

        % Displacements
        \draw[dashed] (0.5*\massw, \spaceh) -- ++(\dispw, 0);
        \draw[->] (0.5*\massw+0.5*\dispw, \spaceh) -- ++(0, \disph) node[right](x){$x$};
      \end{scope}

      \node[block, right=1 of F] (Kfb) {$K$};
      \node[addb={+}{}{-}{}{}, right=2*\cdist of Kfb] (add) {};
      \node[addb] (addn) at (x-|Kfb) {};
      \node[block, right=of addn] (Hl) {$H_L$};

      \draw[->] (x) -- (addn.west);
      \draw[->] (addn.east) -- (Hl.west);
      \draw[->] (Hl.east) -| (add.north);
      \draw[->] (add.west) -- (Kfb.east);
      \draw[->] (Kfb.west) -- (F) node[above right]{$F$};
      \draw[<-] (addn.north) -- ++(0,\cdist) node[below right]{$n$};
      \draw[<-] (add.east) -- ++(\cdist,0) node[above left]{$r$};
    \end{tikzpicture}

Figure 10: One mass - Control (png, pdf, tex).

## 12 Piezoelectric Actuator

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \begin{tikzpicture}
      \node[piezo={2}{3}{10}] (piezo) at (0, 0){};
      \node[draw, fill=white, anchor=south, minimum width=3cm, minimum height=1.5cm] (mass) at ($(piezo.north)+(0, 0.5)$) {Mass};
      \draw[] ($(piezo.south)+(-1.5, -0.5)$) -- ++(3, 0);
      \draw ($0.8*(piezo.north west)+0.2*(piezo.north east)$) -- ++(0, 0.5);
      \draw ($0.2*(piezo.north west)+0.8*(piezo.north east)$) -- ++(0, 0.5);
      \draw ($0.8*(piezo.south west)+0.2*(piezo.south east)$) -- ++(0, -0.5);
      \draw ($0.2*(piezo.south west)+0.8*(piezo.south east)$) -- ++(0, -0.5);
    \end{tikzpicture}

Figure 11: Piezoelectric Actuator (png, pdf, tex).

## 13 Upper bounds

    \tikzset{block/.default={0.8cm}{0.6cm}}
    \tikzset{addb/.append style={scale=0.7}}
    \tikzset{node distance=0.6}
    \def\cdist{0.7}

    \definecolor{T}{rgb}{0.230, 0.299, 0.754}%
    \definecolor{S}{rgb}{0.706, 0.016, 0.150}%
    \setlength\fwidth{7cm}
    \setlength\fheight{5cm}

    \begin{tikzpicture}
      \begin{axis}[%
        name=axis,
        width=\fwidth,
        height=\fheight,
        at={(0, 0)},
        scale only axis,
        separate axis lines,
        every outer x axis line/.append style={black},
        every x tick label/.append style={font=\color{black}},
        every x tick/.append style={black},
        xmode=log,
        xmin=0.1,
        xmax=1000,
        xminorticks=true,
        xlabel={Frequency [Hz]},
        every outer y axis line/.append style={black},
        every y tick label/.append style={font=\color{black}},
        every y tick/.append style={black},
        ymode=log,
        ymin=0.001,
        ymax=10,
        yminorticks=true,
        ylabel={Magnitude},
        axis background/.style={fill=white},
        xmajorgrids,
        xminorgrids,
        ymajorgrids,
        yminorgrids
        ]
        \addplot [color=T, line width=1.5pt, forget plot, upperbound]
        table[row sep=crcr]{%
          0.1 4.7609074288834\\
          0.457784053837662 4.74112847250108\\
          0.781435060784454 4.70208061093208\\
          1.0991097009295 4.64559165613624\\
          1.42283045721435  4.57144906349989\\
          1.75891659032773  4.47927616460061\\
          2.09566239948043  4.37423445322045\\
          2.45126006203334  4.25274519592358\\
          2.8408836901833 4.11095719445138\\
          3.26222200971167  3.95170788088451\\
          3.71167181947577  3.77948905141281\\
          4.18428850790158  3.59988757314696\\
          4.71708469091702  3.40317136463527\\
          5.31772317785097  3.19223684289429\\
          5.99484250318941  2.97087790006113\\
          6.82077673286568  2.72585419958062\\
          7.76050333513357  2.47949503869403\\
          8.9114823228402 2.2201435349723\\
          10.3279473191895  1.95491825546796\\
          12.0804213467733  1.69160934903556\\
          14.3932264471941  1.42447068049222\\
          17.3076553419573  1.17667603248786\\
          21.1995345753607  0.943491337665097\\
          26.2070669648385  0.740920673515988\\
          32.6974974451177  0.569453372601831\\
          41.1731993116168  0.427919272009563\\
          51.8459354389291  0.317863515154134\\
          65.8898955079995  0.230558428152838\\
          85.2964449974102  0.1611173349527\\
          114.566872863487  0.105607825522203\\
          228.74908173557 0.0390036255196556\\
          272.543253128103  0.0307810979565345\\
          315.863540826782  0.025500739341156\\
          359.381366380463  0.0218605610825003\\
          405.142317111465  0.0191453206052172\\
          452.538627817017  0.0171066280251345\\
          505.479682119124  0.0154393411147139\\
          559.432570616938  0.0141825204910006\\
          619.144175597784  0.0131421696026314\\
          685.229159528406  0.012282656024432\\
          758.367791499719  0.0115737646620205\\
          847.08682665574 0.0109423524789141\\
          946.1848194722  0.0104322816237634\\
          1000  0.0102154679782451\\
        };
        \addplot [color=T, line width=1.5pt, forget plot, upperbound]
        table[row sep=crcr]{%
          20  0.7\\
          50  0.7\\
        };
        \addplot [color=T, line width=1.5pt, forget plot, upperbound]
        table[row sep=crcr]{%
          50  0.1\\
          500 0.1\\
        };
        \addplot [color=T, line width=1.5pt, forget plot, upperbound]
        table[row sep=crcr]{%
          500 0.01\\
          1000  0.01\\
        };
        \addplot [color=S, line width=1.5pt, forget plot, upperbound]
        table[row sep=crcr]{%
          0.02  1e-05\\
          2 0.1\\
        };

        \node[draw, fill=white, align=center, anchor=west] (noise) at (20, 0.01){Noise\\Attenuation};
        \draw[->] (noise.north) -- (100, 0.1-|noise.north);
        \draw[->] (noise.east) -- (500, 0.01);

        \node[draw, fill=white, align=center, anchor=north east] (bandwidth) at (900, 8) {Bandwidth\\Limitation};
        \draw[->] (bandwidth.west) -- (20, 0.7);

        \node[draw, fill=white, align=center, anchor=south west] (robust) at (0.2, 1) {Robust\\Stability};
        \draw[->] (robust.east) -- (8,2|-robust.east);

        \node[draw, fill=white, align=center, anchor=south west] (dist) at (0.11, 0.1) {Disturbance\\Rejection};
        \draw[->] (dist.south) -- (1, 0.025);
      \end{axis}

      % \begin{customlegend}[legend cell align=left, %<= to align cells
      %   legend entries={ % <= in the following there are the entries
      %   $S$,
      %   $T$
      % },
      %   legend style={at={(axis.north east)}, outer sep=5pt, font=\footnotesize}]
      %   \addlegendimage{upperbound, S}
      %   \addlegendimage{upperbound, T}
      % \end{customlegend}

    \end{tikzpicture}

Figure 12: Upper bounds (png, pdf, tex).

## 14 Bode plot of the mechanical system

Figure 13: Bode plot of the mechanical system (png, pdf, tex).

## 15 Bode plot of the mechanical system - Uncertainty

Figure 14: Bode plot of the mechanical system - Uncertainty (png, pdf, tex).

## 16 Bode plot of the controller

Figure 15: Bode plot of the controller (png, pdf, tex).

## 17 Bode plot of the loop gain

Figure 16: Bode plot of the loop gain (png, pdf, tex).

## 18 Upper bounds with weights

Figure 17: Upper bounds with weights (png, pdf, tex).

## 19 Upper bounds with Complementary Filters

Figure 18: Upper bounds with Complementary Filters (png, pdf, tex).

## 20 Upper bounds with weights and Complementary Filters

Figure 19: Upper bounds with weights and Complementary Filters (png, pdf, tex).

## 21 Robustness - Nyquist

Figure 20: Robustness - Nyquist (png, pdf, tex).

## 22 Robustness - Loop Gain

Figure 21: Robustness - Loop Gain (png, pdf, tex).

## 23 Robust performance

Figure 22: Robust performance (png, pdf, tex).

Author: Thomas Dehaeze

Created: 2019-07-22 lun. 11:55

Validate