UP | HOME

Tikz - Mechanical Systems

Table of Contents

1 Mass-Spring Systems

1.1 One mass

\def\massw{2.2}   % Width of the masses
\def\massh{0.8}   % Height of the masses
\def\spaceh{1.4}  % 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
\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]{$x_{w}$};
% Mass
\draw[fill=white] (-0.5*\massw, \spaceh) rectangle (0.5*\massw, \spaceh+\massh) node[pos=0.5]{$m_{g}$};

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

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

% 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]{};
\begin{tikzpicture}
  <<tikz_1dof_smd_params>>
  <<tikz_1dof_smd_ground>>
  <<tikz_1dof_smd_mass>>
\end{tikzpicture}

mech_sys_1dof.png

1.2 Two masses

\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]{$x_{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_{g}$};

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

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

    % 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}

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

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

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

    % 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}

mech_sys_2dof.png

1.3 Three masses

\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]{$x_{w}$};
  % ====================

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

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

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

    % 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]{Support};
  \end{scope}

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

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

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

    % 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]{Actuator};
  \end{scope}

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

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

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

    % 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]{Flexibility};
  \end{scope}
\end{tikzpicture}

mech_sys_3dof.png

1.4 Four masses

\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]{$x_{w}$};

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

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

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

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

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

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

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

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

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

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

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

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

mech_sys_4dof.png

2 Mass-Spring Systems - bis

2.1 One mass

\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}

mech_sys_alone.png

2.2 One mass - Control

\begin{tikzpicture}
  % ====================
  % Parameters
  % ====================
  \def\massw{3}  % Width of the masses
  \def\massh{1}  % Height of the masses
  \def\spaceh{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.8}{0.3}] ( 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_{\text{fb}}$};
  \node[addb={+}{}{-}{}{}, right=1.8 of Kfb] (add) {};
  \node[addb] (addn) at (x-|Kfb) {};
  \node[block, right=0.75 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,0.75) node[below right]{$n$};
  \draw[<-] (add.east) -- ++(0.75,0) node[above left]{$r$};
\end{tikzpicture}

mech_sys_alone_ctrl.png

2.3 Two masses

\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]{$x_{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_{g}$};

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

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

    % 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}

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

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

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

    % 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}

mech_sys.png

2.4 Three masses

\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]{$x_{w}$};
  % ====================

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

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

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

    % 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]{Support};
  \end{scope}

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

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

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

    % 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]{Actuator};
  \end{scope}

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

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

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

    % 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]{Flexibility};
  \end{scope}
\end{tikzpicture}

mech_sys_flex.png

3 Control Based on distance measurement

\begin{tikzpicture}
  % Parameters
  \def\massw{3}
  \def\massh{1}
  \def\spaceh{2}

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

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

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

  % Measurement
  \draw[dashed] (-0.5*\massw, 0) -- ++(-0.2*\massw, 0);
  \draw[dashed] (-0.5*\massw, \spaceh) -- ++(-0.2*\massw, 0);
  \draw[dashed, <->] (-0.6*\massw, 0) -- ++(0, \spaceh) node[midway](meas){};

  % Noise
  \node[addb, left=1 of meas] (addn) {};
  \draw[->] (meas.center) node[above left]{$d$} -- (addn.east);
  \draw[<-] (addn.west) -- ++(-0.8, 0) node[above right]{$n$};

  % Controller
  \node[block, above=1 of m] (K) {$K$};

  % Reference signal
  \node[addb] (addr) at (addn|-K){};
  \draw[<-] (addr.west) -- ++(-0.8, 0) node[above right]{$r$};
  \draw[->] (addn.north) -- (addr.south) node[below left]{$d_m$};
  \draw[->] (addr.east) -- (K.west) node[above left]{$\epsilon$};

  % Force injected and input noise
  \node[addb, right=1 of F] (addF) {};
  \draw[->] (K.east) -| (addF.north);
  \draw[->] (addF.west) -- (F.east) node[above right]{$F$};
  \draw[<-] (addF.east) -- ++(0.8, 0) node[above left]{$n_i$};
\end{tikzpicture}

mech_sys_1dof_contr.png

4 Inertial Control

\begin{tikzpicture}
  % Parameters
  \def\massw{3}
  \def\massh{1}
  \def\spaceh{2}

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

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

  % Displacements
  \draw[dashed] (0.5*\massw, 0) -- ++(0.2*\massw, 0);
  \draw[->] (0.6*\massw, 0) -- ++(0, 0.2*\spaceh) node[below right]{$w$};

  % Inertial Sensor
  \node[inertialsensor] (inertials) at (0.5*\massw, \spaceh+\massh){};

  \node[block, above right=0.5*\massh and 1 of F.east] (K){$K$};

  \draw[->] (inertials.east) node[above right]{$x$} -| (K.north);
  \draw[->] (K.south) |- (F.east) node[above right]{$F$};
\end{tikzpicture}

mech_sys_1dof_inertial_contr.png

5 Force Feedback Control

\begin{tikzpicture}
  % Parameters
  \def\massw{3}
  \def\massh{1}
  \def\spaceh{2}

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

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

  % Force Sensor
  \node[forcesensor={\massw}{0.2}] (fsens) at (0, \spaceh){};

  % Displacements
  \draw[dashed] (0.5*\massw, 0) -- ++(0.2*\massw, 0);
  \draw[->] (0.6*\massw, 0) -- ++(0, 0.2*\spaceh) node[below right]{$w$};

  \node[block={0.7cm}{0.6cm}, above right=0.1*\massh and 1 of F.east] (K){$K$};

  \draw[->] (fsens.east) node[above right]{$F_m$} -| (K.north);
  \draw[->] (K.south) |- (F.east) node[above right]{$F$};
\end{tikzpicture}

mech_sys_1dof_force_contr.png

6 Inertial Sensor

6.1 1dof geophone or accelerometer

\begin{tikzpicture}
  \def\massw{2.2}   % Width of the masses
  \def\massh{0.8}   % Height of the masses
  \def\spaceh{1.4}  % 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
  \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$};
  % 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$};

  \draw[<->] (-0.5*\massw+-1.5*\dispw, 0) -- node[midway, left]{$d$} ++(0, \spaceh);
\end{tikzpicture}

inertial_sensor.png

7 Mechanical Systems

7.1 Piezoelectric Actuator

\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}

1dof_isolation_piezo.png

8 3D

8.1 Coriolis Forces

\begin{tikzpicture}

  \draw[->] (0, 0, 0) -- (4, 0, 0) node[above] {$x$};
  \draw[->] (0, 0, 0) -- (0, 4, 0) node[left] {$z$};
  \draw[->] (0, 0, 0) -- (0, 0, -4) node[right] {$y$};

  \draw[->, style={canvas is zx plane at y=2}] (1, 0) arc (0:270:1) node[left]{$\vv{\Omega_z}$};


  \begin{scope}[shift={(4, 3.2, 0)}]
    \draw (1,0,0)--(1,1,0)--(0,1,0);
    \draw[dashed] (0,1,0)--(0,0,0)--(1,0,0);
    \draw (0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--(0,0,1);
    \draw[dashed] (0,0,0) -- (0,0,1);
    \draw (1,0,0) -- (1,0,1);
    \draw (1,1,0) -- (1,1,1);
    \draw (0,1,0) -- (0,1,1);

    \fill[fill=black!10, opacity=0.7] (0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle;
    \fill[fill=black!20, opacity=0.7] (1,0,1)--(1,0,0)--(1,1,0)--(1,1,1)--cycle;

    \draw (0.5, 1, 0) node [above] {Masse $m$};

    \draw[->] (0.5, 0.5, 0.5) -- ++(3, 0, 0) node[above]{$\displaystyle\vec{v_x}$};

    \draw[->] (0.5, 0.5, 0.5) -- ++(0, 0, 3) node[below right]{$\displaystyle\vv{F_{cor}} = 2 m \vv{v_x} \wedge \vv{\Omega_z}$};
  \end{scope}

\end{tikzpicture}

3d-mass.png

8.2 Cube

\begin{tikzpicture}
  \begin{scope}
    \fill[fill=black!40, opacity=0.7] (0,0,4) -- (4,0,4) -- (4,4,4) -- (0,4,4) -- cycle;
    \fill[fill=black!20, opacity=0.7] (4,0,4) -- (4,0,0) -- (4,4,0) -- (4,4,4) -- cycle;

    \draw (4,0,0)node{$\bullet$} -- (4,4,0)node{$\bullet$} -- (0,4,0)node{$\bullet$};
    \draw[dashed] (0,4,0) -- (0,0,0) -- (4,0,0);
    \draw (0,0,4)node{$\bullet$} -- (4,0,4)node{$\bullet$} -- (4,4,4)node{$\bullet$} -- (0,4,4)node{$\bullet$} -- (0,0,4);
    \draw[dashed] (0,0,0)node{$\bullet$} -- (0,0,4);
    \draw (4,0,0) -- (4,0,4);
    \draw (4,4,0) -- (4,4,4);
    \draw (0,4,0) -- (0,4,4);
  \end{scope}

  \draw[->] (0, 0, 0) -- (0, 0, 2) node[above] {$x$};
  \draw[->] (0, 0, 0) -- (2, 0, 0) node[right] {$y$};
  \draw[->] (0, 0, 0) -- (0, 2, 0) node[left]  {$z$};
\end{tikzpicture}

3d-cube.png

9 Gravity Compensation System

9.1 Null angle

\begin{tikzpicture}
  % Parameters definitions
  \def\baseh{0.2} % Height of the base
  \def\naceh{0.2} % Height of the nacelle
  \def\baser{3.8} % Radius of the base
  \def\nacer{3.0} % Radius of the nacelle

  \def\armr{0.2} % Radius of the arms
  \def\basearmborder{0.2}
  \def\nacearmborder{0.2}

  \def\xnace{0.0} % X position of the nacelle
  \def\ynace{2.0} % Y position of the nacelle
  \def\anace{0.0} % Angle of the nacelle

  \def\xbase{0.0} % X position of the base
  \def\ybase{0.0} % Y position of the base
  \def\abase{0.0} % Angle of the base

  % Hexapod1
  \begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
    % Base
    \draw[fill=white] (-\baser, 0) rectangle (\baser, \baseh);
    \coordinate (armbasel) at (-\baser+\basearmborder+\armr, \baseh);
    \coordinate (armbasec) at (0, \baseh);
    \coordinate (armbaser) at (\baser-\basearmborder-\armr, \baseh);

    % Nacelle1
    \begin{scope}[shift={(\xnace, \ynace)}, rotate=\anace]
      \draw[fill=white] (-\nacer, 0) rectangle (\nacer, \naceh);
      \coordinate (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
      \coordinate (armnacec) at (0, 0);
      \coordinate (armnacer) at (\nacer-\nacearmborder-\armr, 0);
    \end{scope}

    \draw (armbasec) -- (armnacer);
    \draw (armbasec) -- (armnacel);
    \draw (armbasel) -- (armnacel);
    \draw (armbasel) -- (armnacec);
    \draw (armbaser) -- (armnacec);
    \draw (armbaser) -- (armnacer);

    \draw[fill=white] (-0.5*\nacer, \ynace+\naceh) rectangle coordinate[pos=0.5](massc) (0.5*\nacer, \ynace+\naceh+2);
    \draw[spring] (0, \baseh) -- node[midway, left=0.1]{$k$} (0, \baseh+\ynace-\naceh) coordinate(stiffnessF);
    \draw[->, color=colorred] (stiffnessF)node{$\bullet$} -- ++(0, 1) node[below left]{$F$};
  \end{scope}
  \draw[->, color=colorblue] (massc)node{$\bullet$} -- ++(0, -1) node[above right]{$m\vec{g}$};
\end{tikzpicture}

gravity_compensation.png

9.2 Maximum angle

\begin{tikzpicture}
  % Parameters definitions
  \def\baseh{0.2} % Height of the base
  \def\naceh{0.2} % Height of the nacelle
  \def\baser{3.8} % Radius of the base
  \def\nacer{3.0} % Radius of the nacelle

  \def\armr{0.2} % Radius of the arms
  \def\basearmborder{0.2}
  \def\nacearmborder{0.2}

  \def\xnace{0.0} % X position of the nacelle
  \def\ynace{2.0} % Y position of the nacelle
  \def\anace{0.0} % Angle of the nacelle

  \def\xbase{0.0} % X position of the base
  \def\ybase{0.0} % Y position of the base
  \def\abase{-3.0} % Angle of the base

  % Hexapod1
  \begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
    % Base
    \draw[fill=white] (-\baser, 0) rectangle (\baser, \baseh);
    \coordinate (armbasel) at (-\baser+\basearmborder+\armr, \baseh);
    \coordinate (armbasec) at (0, \baseh);
    \coordinate (armbaser) at (\baser-\basearmborder-\armr, \baseh);

    % Nacelle1
    \begin{scope}[shift={(\xnace, \ynace)}, rotate=\anace]
      \draw[fill=white] (-\nacer, 0) rectangle (\nacer, \naceh);
      \coordinate (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
      \coordinate (armnacec) at (0, 0);
      \coordinate (armnacer) at (\nacer-\nacearmborder-\armr, 0);
    \end{scope}

    \draw (armbasec) -- (armnacer);
    \draw (armbasec) -- (armnacel);
    \draw (armbasel) -- (armnacel);
    \draw (armbasel) -- (armnacec);
    \draw (armbaser) -- (armnacec);
    \draw (armbaser) -- (armnacer);

    \draw[fill=white] (-0.5*\nacer, \ynace+\naceh) rectangle coordinate[pos=0.5](massc) (0.5*\nacer, \ynace+\naceh+2);
    \draw[spring] (0, \baseh) -- node[midway, left=0.1]{$k$} (0, \baseh+\ynace-\naceh) coordinate(stiffnessF);
    \draw[->, color=colorred] (stiffnessF)node{$\bullet$} -- ++(0, 1) node[below left]{$F$};
  \end{scope}
  \draw[->, color=colorblue] (massc)node{$\bullet$} -- ++(0, -1) node[above right]{$m\vec{g}$};
\end{tikzpicture}

gravity_compensation_angle.png

10 3Dof System

\begin{tikzpicture}
  \draw[fill=white] (-3, 0) -- (-3, 1) -- (3, 1) -- (3, 0) -- cycle;
  \draw[fill=white] (-3, 4) -- (-3, 5) -- (3, 5) -- (3, 4) -- cycle;

  \coordinate[] (a1) at (-3, 1);
  \coordinate[] (a2) at ( 1, 1);
  \coordinate[] (a3) at ( 3, 1);
  \coordinate[] (b1) at (-3, 4);
  \coordinate[] (b2) at ( 2, 4);
  \coordinate[] (b3) at ( 2, 4);

  \draw[spring] (a1) -- (b1);
  \draw[spring] (a2) -- (b2);
  \draw[spring] (a3) -- (b3);

  \node[] at (a1){$\bullet$}; \node[left]        at (a1) {$A_1$};
  \node[] at (a2){$\bullet$}; \node[above left]  at (a2) {$A_2$};
  \node[] at (a3){$\bullet$}; \node[above right] at (a3) {$A_3$};
  \node[] at (b1){$\bullet$}; \node[left]        at (b1) {$B_1$};
  \node[] at (b2){$\bullet$}; \node[above left]  at (b2) {$B_2$};
  \node[] at (b3){$\bullet$}; \node[above right] at (b3) {$B_3$};

  \draw[<->, dashed] ($(a1)+(0.2,0)$) -- node[midway, right]{$l_1$} ($(b1)+(0.2,0)$);
  \draw[->] (a1) -- ($0.8*(a1)+0.2*(b1)$) node[left]{$\hat{s}_1$};

  \begin{scope}[shift={(0,0)}]
    \draw[->] (0, 0) -- ++(1, 0) node[above]{$x$};
    \draw[->] (0, 0) -- ++(0, 1) node[right]{$y$};
    \draw[] (0, 0)node[]{$\bullet$} circle [radius=0.2] node[above left]{$\{A\}$};
  \end{scope}

  \begin{scope}[shift={(0,5)}]
    \draw[->] (0, 0) -- ++(1, 0) node[above]{$x$};
    \draw[->] (0, 0) -- ++(0, 1) node[right]{$y$};
    \draw[] (0, 0)node[]{$\bullet$} circle [radius=0.2] node[above left]{$\{B\}$};
  \end{scope}
\end{tikzpicture}

3dof_system.png

11 3Dof System - bis

\begin{tikzpicture}
  \draw[fill=white] (-1, -1) -- (-1, 7) -- (0, 7) -- (0, 0) -- (6, 0) -- (6, -1) -- cycle;

  \draw[->] (0, 0) -- ++(1, 0) node[above]{$x$};
  \draw[->] (0, 0) -- ++(0, 1) node[right]{$y$};
  \draw[] (0, 0)node[]{$\bullet$} circle [radius=0.2] node[above left]{$\{A\}$};

  \begin{scope}[shift={(4,5)}]
    \draw[fill=white] (-2, -3) rectangle (2, 3);

    \draw[->] (0, 0) -- ++(1, 0) node[above]{$x$};
    \draw[->] (0, 0) -- ++(0, 1) node[right]{$y$};
    \draw[] (0, 0)node[]{$\bullet$} circle [radius=0.2] node[above left]{$\{B\}$};

    \coordinate[] (b1) at (-2, -1);
    \coordinate[] (b2) at (-1.5, -3);
    \coordinate[] (b3) at ( 1.5, -3);

    \draw[dashed] (0, 0) -- ++(-2, 0);
    \draw[dashed] (0, 0) -- ++(0, -3);
    \draw[dashed, <->] (-1.9, 0) -- node[midway,right]{$h_1$} ++(0, -1);
    \draw[dashed, <->] (0, -2.9) -- node[midway,above]{$l_2$} ++(-1.5, 0);
    \draw[dashed, <->] (0, -2.9) -- node[midway,above]{$l_3$} ++( 1.5, 0);

    \draw[dashed, <->] (-2, 2.9) -- node[midway,below]{$l$} (2, 2.9);
    \draw[dashed, <->] ( 1.9, -3) -- node[midway,left]{$h$} (1.9, 3);
  \end{scope}

  \coordinate[] (a1) at (0, 4);
  \coordinate[] (a2) at (2.5, 0);
  \coordinate[] (a3) at (5.5, 0);

  \draw[spring] (a1) -- node[midway, above]{$k_1$} (b1);
  \draw[spring] (a2) -- node[midway, right]{$k_2$} (b2);
  \draw[spring] (a3) -- node[midway, right]{$k_3$} (b3);

  \node[] at (a1){$\bullet$}; \node[left]  at (a1) {$A_1$};
  \node[] at (a2){$\bullet$}; \node[below] at (a2) {$A_2$};
  \node[] at (a3){$\bullet$}; \node[below] at (a3) {$A_3$};
  \node[] at (b1){$\bullet$}; \node[below right] at (b1) {$B_1$};
  \node[] at (b2){$\bullet$}; \node[above] at (b2) {$B_2$};
  \node[] at (b3){$\bullet$}; \node[above] at (b3) {$B_3$};



  \draw[<->, dashed] (0, 7) -- node[midway, above]{$l_a$} ++(2, 0);
  \draw[<->, dashed] (6, 0) -- node[midway, right]{$h_a$} ++(0, 2);
  % \draw[->] (a1) -- ($0.8*(a1)+0.2*(b1)$) node[left]{$\hat{s}_1$};
\end{tikzpicture}

3dof_system_bis.png

12 Rotating System

12.1 Rotating Frame - 1DoF

\begin{tikzpicture}
  % ================
  % Parameters
  % ================
  % Sizes
  \def\lengthi{5} % Size of unit vectors
  \def\lengthd{3} % Length of d
  \def\rotsize{4} % Size of the rotational stage
  \def\thetasize{4.5} % Size of the theta indicator
  \def\stagesize{0.3} % Size of the place for actuator and spring
  % Angles
  \def\thetau{25} % Current angle Theta
  \def\thetav{\thetau+90} % Current angle Theta+90
  % ================


  % Rotational Stage
  \draw[] (-10:\rotsize) arc (-10:125:\rotsize);
  \path[fill=black!20!white] (-10:\rotsize) arc (-10:125:\rotsize) |- cycle;
  % % Guidance
  % \draw[dashed, thin] (\thetau+1:\rotsize) -- ++(\thetau:-0.8*\rotsize);
  % \draw[dashed, thin] (\thetau-1:\rotsize) -- ++(\thetau:-0.8*\rotsize);


  % Inertial Frame
  \draw[->] (0, 0) -- (\lengthi, 0) node[below]{$\vec{i}_x$};
  \draw[->] (0, 0) -- (0, \lengthi) node[left]{$\vec{i}_y$};

  % Angle of rotation
  \draw[] (\thetasize, 0) arc (0:\thetau:\thetasize) node[midway, right]{$\theta$};

  % Rotating Scope
  \begin{scope}[rotate=\thetau]
    % Guidance
    \draw[fill=white, thin] (0.1*\rotsize,-0.1) rectangle (0.9*\rotsize, 0.1);

    % Rotating Frame
    \draw[->, dashed] (0, 0) -- (\lengthi, 0) node[below]{$\vec{i}_u$};
    \draw[->, dashed] (0, 0) -- (0, \lengthi) node[left]{$\vec{i}_v$};

    % Mass
    \coordinate[] (mass) at (\lengthd, 0);
    \draw[fill=black] (mass) circle (0.08);
    \node[below right=0.05 and 0.05 of mass] {$m$};

    % Spring and Actuator
    \draw[] (0, \stagesize) coordinate(act_start) -- (0, -\stagesize) coordinate(spring_start);
    \begin{scope}[shift={(mass)}]
    \draw[] (0, \stagesize) coordinate(act_end) -- (0, -\stagesize) coordinate(spring_end);
    \end{scope}

    \draw[actuator={1.6}{0.3}] (act_start) -- node[above=0.3]{$F$} (act_end);
    \draw[spring=0.7] (spring_start) -- node[below]{$k$} (spring_end);

    % Coordinates
    \draw[<->, dashed] (0, -2*\stagesize) coordinate(act_start) -- node[below]{$d$} (\lengthd, -2*\stagesize);
  \end{scope}

  % x-y position
  \coordinate[] (origin) at (0, 0);
  \draw[dashed, thin] (mass) -- (mass |- origin) node[below]{$x$};
  \draw[dashed, thin] (mass) -- (mass -| origin) node[left]{$y$};

  % Torque
  \draw[->] (-0.5, 0) arc (180:270:0.5) node[near start, left]{$\vec{M}$};
\end{tikzpicture}

rotating_frame.png

12.2 Rotating Frame - 2DoF

\begin{tikzpicture}
  % ================
  % Parameters
  % ================
  % Sizes
  \def\lengthi{5} % Size of unit vectors
  \def\lengthd{3} % Length of d
  \def\rotsize{4} % Size of the rotational stage
  \def\thetasize{4.5} % Size of the theta indicator
  \def\stagesize{0.3} % Size of the place for actuator and spring
  % Angles
  \def\thetau{25} % Current angle Theta
  \def\thetav{\thetau+90} % Current angle Theta+90
  % ================


  % Rotational Stage
  \draw[] (-10:\rotsize) arc (-10:125:\rotsize);
  \path[fill=black!20!white] (-10:\rotsize) arc (-10:125:\rotsize) |- cycle;

  % Inertial Frame
  \draw[->] (0, 0) -- (\lengthi, 0) node[below]{$\vec{i}_x$};
  \draw[->] (0, 0) -- (0, \lengthi) node[left]{$\vec{i}_y$};

  % Angle of rotation
  \draw[] (\thetasize, 0) arc (0:\thetau:\thetasize) node[midway, right]{$\theta$};
below
  % Rotating Scope
  \begin{scope}[rotate=\thetau]
    % Guidance
    \draw[fill=white, thin] (0.1*\rotsize, -0.1) rectangle (0.9*\rotsize, 0.1);
    \draw[fill=white, thin] (-0.1, 0.1*\rotsize) rectangle (0.1, 0.9*\rotsize);

    % Rotating Frame
    \draw[->, dashed] (0, 0) -- (\lengthi, 0) node[below]{$\vec{i}_u$};
    \draw[->, dashed] (0, 0) -- (0, \lengthi) node[left]{$\vec{i}_v$};

    % Mass
    \coordinate[] (mass) at (0.8*\lengthd, 0.6*\lengthd);
    \node[] at (mass){$\bullet$};
    \node[above right=0 and 0 of mass] {$m$};
    \draw[] (mass) -- ($(mass)+( 0, -0.5)$);
    \draw[] (mass) -- ($(mass)+(-0.5, 0)$);
    \draw[] ($(mass)+(-0.3, -0.5)$)coordinate(actv) -- ($(mass)+( 0.3, -0.5)$)coordinate(stiffv);
    \draw[] ($(mass)+(-0.5,  0.3)$)coordinate(actu) -- ($(mass)+(-0.5, -0.3)$)coordinate(stiffu);
    % \node[draw, minimum width=1cm, minimum height=1cm, transform shape] (massb) at (mass){};

    % Spring and Actuator for U
    \draw[actuator={0.6}{0.2}] (actu) -- node[above left]{$F_u$} (actu-|0,0);
    \draw[spring=0.2] (stiffu) -- node[below right]{$k_u$} (stiffu-|0,0);
    % Spring and Actuator for V
    \draw[actuator={0.6}{0.2}] (actv) -- node[left]{$F_v$} (actv|-0,0);
    \draw[spring=0.2] (stiffv) -- node[right]{$k_v$} (stiffv|-0,0);
  \end{scope}

  % x-y position
  % \coordinate[] (origin) at (0, 0);
  % \draw[dashed, thin] (mass) -- (mass |- origin) node[below]{$x$};
  % \draw[dashed, thin] (mass) -- (mass -| origin) node[left]{$y$};

  % Torque
  \draw[->] (-0.5, 0) arc (180:270:0.5) node[near start, left]{$\vec{M}$};
\end{tikzpicture}

rotating_frame_2dof.png

13 Guiding Errors

\begin{tikzpicture}
  \tikzset{%
    guidingpath/.style={%
      decorate,
      decoration={random steps,segment length=2.8pt,amplitude=0.8pt}
    }
  }
  \def\massw{1.6}   % Width of the masses
  \def\massh{0.6}   % Height of the masses
  \def\spaceh{1.2}  % Height of the springs/dampers

  \draw[guidingpath] (-2,0) -- (2,0);
  \draw[dashed] (-2, 3) -- (2, 3);

  \draw[fill=black] (0, 0.1) circle [radius=0.1];
  \draw[] (0, 0.2) -- ++(0, 0.1);

  \begin{scope}[shift={(0, 0.3)}]
    \draw[] (-0.5*\massw, 0) -- (0.5*\massw, 0);

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

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

  \draw[dashed, <->] (masstop) -- node[midway, right]{$d$} (0, 3);

  \draw[dashed, <->] (-2, -0.2) -- node[midway, below]{$x$} (0, -0.2);
\end{tikzpicture}

guiding_error.png

14 Vibration analysis procedure

\begin{tikzpicture}
  \node[block, inner sep = 8pt, align=center] (1) {Description\\of structure};
  \node[block, inner sep = 8pt, align=center, right=0.6 of 1] (2) {Vibration\\Modes};
  \node[block, inner sep = 8pt, align=center, right=0.6 of 2] (3) {Response\\Levels};

  \draw[<->] (1) -- (2);
  \draw[<->] (2) -- (3);

  \node[above] (labelt) at (1.north) {Spatial Model};
  \node[] at (2|-labelt) {Modal Model};
  \node[] at (3|-labelt) {Response Model};

  \node[align = center, font=\tiny, below] (labelb) at (1.south) {Mass, Damping\\Stiffness};
  \node[align = center, font=\tiny] at (2|-labelb) {Natural Frequencies\\Mode Shapes};
  \node[align = center, font=\tiny] at (3|-labelb) {Frequency Responses\\Impulse Responses};
\end{tikzpicture}

vibration_analysis_procedure.png

15 Pendulum Experiment

15.1 Side view

\begin{tikzpicture}
  % Colors
  \definecolor{mirror}{RGB}{178,178,178} % light grey

  % Pendulum
  \draw[fill=white] (0, 0) rectangle ++(0.5, 4);
  \coordinate[] (fixation) at (0.25, 4.25);
  \node[] at (fixation) {$\bullet$};
  \draw[] (fixation) -- (0.5, 4);
  \draw[] (fixation) -- (0, 4);

  % Voice Coil
  \begin{scope}[shift={(0.5, 0)}]
    \voicecoil{1.5}{1.5}{-90};
  \end{scope}

  % Corner Cube
  \draw[fill=mirror] (0, 0.25) rectangle (-0.75, 1.25);
  \draw[ultra thick] (-0.75, 0.4) -- (-0.75, 1.1);

  % Support
  \draw[fill=white] (-6.5, -1) rectangle (4, -0.5);

  % Interferometer
  \draw[fill=white] (-5.5, -0.5) rectangle ++(3, 2);

  % Voice coil fixation
  \draw[fill=white] (2, -0.5) rectangle ++(1, 2.5);

  % Coil Wires
  \draw[->-=.5] (vc_wire_one) node[]{$\bullet$} to[out=0,in=-180] ++(1.5, 0.2);
  \draw[-<-=.5] (vc_wire_two) node[]{$\bullet$} to[out=0,in=-180] node[midway, above]{$\hat{I}$} ++(1.5, 0.2);

  % LASER
  \draw[red, ->-=.6, -<-=.4] (-2.5, 0.75) -- (-0.75, 0.75);

  % F
  \draw[->] (vc_force) node[]{$\bullet$} -- ++(0.5, 0) node[right]{$\hat{F}$};

  % D
  \draw[<->] (-2.5, 0) -- node[midway, above]{$\hat{d}$} (-0.75, 0);
  \draw[dashed] (-0.75, 0.25) -- (-0.75, -0.25);

  % x
  \draw[->] (-0.75, 1.5) -- ++(0.5, 0) node[above]{$\hat{x}$};
  \draw[dashed] (-0.75, 1.25) -- (-0.75, 1.75);

  % Dm
  \coordinate[] (output_interferometer) at (-5, 0.75);
  \draw[->-=.6] (output_interferometer) node[]{$\bullet$} to[out=-180,in=0] node[pos=0.6, above]{$\hat{d}_m$} ++(-1.5, 0.2) ;

  % Xg
  \draw[->] (-6.5, -0.25) -- ++(0.5, 0) node[above]{$\hat{x}_g$};
  \draw[dashed] (-6.5, -0.5) -- ++(0, 0.5);

\end{tikzpicture}

pend_side_view.png

15.2 Top view

\begin{tikzpicture}
  % Parameters definitions
  \def\splitw{2} % Width of the split mirrors
  \def\splith{2} % Height of the split mirrors

  \def\photow{1} % Width of the photodiodes
  \def\photoh{3} % Height of the photodiodes

  \def\mirrorw{1} % Width of the mirrors
  \def\mirrorh{1.5} % Height of the mirrors

  \def\pendulumw{3} % Width of the pendulum
  \def\pendulumh{1} % Height of the pendulum

  \def\pendmirrw{1} % Width of the mirror on the pendulum
  \def\pendmirrh{1} % Height of the mirror on the pendulum

  \def\firstinter{3} % First intersection of the beam
  \def\secinter{6}   % Second intersection of the beam
  \def\finalinter{9} % Intersection with the pendulum

  \def\magnetw{1.5} % Width of the magnet
  \def\magneth{1.0} % Height of the magnet

  \def\magnetwb{0.2} % Width of the borders of the magnet
  \def\magnethl{0.2} % Height of the low part of the magnet

  \def\magnetmw{0.3} % Width of the middle part of the magnet
  \def\magnetmh{0.2} % Height of the middle part of the magnet

  \def\magnethg{0.3} % Height of the gap of the magnet
  \def\magnetwg{0.7} % Width of the gap of the magnet

  % Colors
  \definecolor{split}{RGB}{162,255,255} % light blue
  \definecolor{photodiode}{RGB}{254,197,66} % light orange
  \definecolor{mirror}{RGB}{178,178,178} % light grey
  \begin{scope}[rotate=-90]
    % Label positions
    \pgfmathsetmacro{\labelright}{0.5*\splitw+\photow+0.5}%
    \pgfmathsetmacro{\labelleft}{-0.5*\splitw-\photow-0.5}%

    % Laser Source
    \begin{scope}[shift={(0, 0)}]
      \draw[fill=white] (-0.5, 0) rectangle node[pos=0.5]{Laser} (0.5, -1.5);
      \draw[] (-0.2, -1.5) to[out=-90,in=45] ++(-1, -1);
      \draw[] ( 0.2, -1.5) to[out=-90,in=45] ++(-1, -1);
    \end{scope}

    % Split Mirror 1
    \begin{scope}[shift={(0, \firstinter)}]
      \draw[fill=split] (-0.5*\splitw, -0.5*\splith) rectangle (0.5*\splitw, 0.5*\splith);
      \draw[dashed] (0.5*\splitw, -0.5*\splith) -- (-0.5*\splitw, 0.5*\splith);
    \end{scope}
    % Photodiode 1
    \begin{scope}[shift={(-0.5*\splitw, \firstinter)}]
      \draw[fill=photodiode] (-\photow, -0.5*\photoh) rectangle node[pos=0.5]{Photodiode} (0, 0.5*\photoh);
      \draw[] (-0.5*\photow, -0.5*\photoh+0.5*\photow) node[]{$\bullet$} to[out=-90,in=0] ++(-\photow, -\photow);
    \end{scope}
    % Mirror 1
    \begin{scope}[shift={(0.5*\splitw, \firstinter)}]
      \draw[fill=mirror] (0, -0.5*\mirrorh) rectangle node[pos=0.5]{Mirror} (\mirrorw, 0.5*\mirrorh);
      \draw[ultra thick] (0, -0.4*\mirrorh) -- (0, 0.4*\mirrorh);
    \end{scope}

    % Split Mirror 2
    \begin{scope}[shift={(0, \secinter)}]
      \draw[fill=split] (-0.5*\splitw, -0.5*\splith) rectangle (0.5*\splitw, 0.5*\splith);
      \draw[dashed] (-0.5*\splitw, -0.5*\splith) -- (0.5*\splitw, 0.5*\splith);
    \end{scope}
    % Photodiode 2
    \begin{scope}[shift={(0.5*\splitw, \secinter)}]
      \draw[fill=photodiode] (0, -0.5*\photoh) rectangle node[pos=0.5]{Photodiode} (\photow, 0.5*\photoh);
      \draw[] (0.5*\photow, -0.5*\photoh+0.5*\photow) node[]{$\bullet$} to[out=-90,in=-180] ++(\photow, -\photow);
    \end{scope}
    % Mirror 2
    \begin{scope}[shift={(-0.5*\splitw, \secinter)}]
      \draw[fill=mirror] (-\mirrorw, -0.5*\mirrorh) rectangle node[pos=0.5]{Mirror} (0, 0.5*\mirrorh);
      \draw[ultra thick] (0, -0.4*\mirrorh) -- (0, 0.4*\mirrorh);
    \end{scope}

    % Pendulum
    \begin{scope}[shift={(0, \finalinter)}]
      % Overall delimitation of the pendulum system
      \coordinate[] (delimmec) at (-0.5*\pendulumw-0.5*\magnetmw-0.5, -1.2);
      \coordinate[] (delimmecbis) at (0.5*\pendulumw+0.5*\magnetmw+0.5, \pendulumh+2.8);
      \draw[dashed] (delimmec) rectangle (delimmecbis);
      \path[] (-0.5*\pendulumw-0.5*\magnetmw-0.5, -1.2) -- (-0.5*\pendulumw-0.5*\magnetmw-0.5, \pendulumh+2.8) node[midway,above]{Mechanical System};

      \draw[fill=white] (-0.5*\pendulumw, 0) rectangle (0.5*\pendulumw, \pendulumh);
      \draw[] (-0.5*\pendulumw-0.5, 0.5*\pendulumh) node[]{$\bullet$} -- (0.5*\pendulumw+0.5, 0.5*\pendulumh) node[]{$\bullet$};
      \node[] at (-0.5*\pendulumw-0.3, 0.5*\pendulumh) {\AxisRotator[rotate=-90]};
      \draw[dashed] (0.5*\pendulumw, 0) -- ++(0.5, 0);
      \draw[->, >=latex] (0.5*\pendulumw+0.3, 0) -- ++(0, -0.6) node[below]{$x$};
      \draw[fill=mirror] (-0.5*\pendmirrw, -\pendmirrh) rectangle (0.5*\pendmirrw, 0);
      \draw[ultra thick] (-0.4*\pendmirrw, -\pendmirrh) -- (0.4*\pendmirrw, -\pendmirrh);
    \end{scope}

    % Magnet
    \begin{scope}[shift={(0, \finalinter+\pendulumh)}]
      \draw[fill=white] (0, 0) -| ++(0.5*\magnetw, \magneth) -| ++(-0.5*\magnetw+0.5*\magnetwg, -\magnethg) -| (0.5*\magnetw-\magnetwb, \magnethl) -| (-0.5*\magnetw+\magnetwb, \magneth-\magnethg) -| (-0.5*\magnetwg, \magneth) -| (-0.5*\magnetw, 0) -- (cycle);
      % Magnet
      \begin{scope}[shift={(0, \magnethl)}]
        \draw[fill=red]  (-0.5*\magnetmw, 0) rectangle (0.5*\magnetmw, 0.5*\magnetmh);
        \draw[fill=blue] (-0.5*\magnetmw, 0.5*\magnetmh) rectangle (0.5*\magnetmw, \magnetmh);
        % Top conductive Magnet
        \draw[fill=white] (-0.5*\magnetmw, \magnetmh) -| (0.5*\magnetmw, -\magnethl+\magneth-\magnethg) -| ++(0.1, \magnethg) -| ++(-0.2-\magnetmw, -\magnethg) -| (-0.5*\magnetmw, \magnetmh);
        % Force
        \draw[->, >=latex] (0, -0.8*\magnethl+0.8*\magneth)node[]{$\bullet$} -- ++(0, -1.2) node[below]{$F$};
      \end{scope}

      % Coil
      \pgfmathsetmacro{\coilwidth}{0.5*0.5*\magnetmw+0.5*0.1+0.25*\magnetwg}%
      \draw[] ( \coilwidth, \magneth-1.5*\magnethg) -- ++(0, 0.8);
      \draw[] (-\coilwidth, \magneth-1.5*\magnethg) -- ++(0, 0.8);
      % Point on the coil
      \foreach \x in {0,0.1,...,0.8}
      {\node[circle,inner sep=0.6pt,fill] at ( \coilwidth, \x+\magneth-1.5*\magnethg);
        \node[circle,inner sep=0.6pt,fill] at (-\coilwidth, \x+\magneth-1.5*\magnethg);}
      % Actuator Attachement
      \draw[fill=white] (-0.5*\pendulumw, \magneth-1.5*\magnethg+0.8) rectangle ++(\pendulumw, \pendulumh);
      % Ground
      \node (ground) [anchor=south, ground, minimum width={\pendulumw cm}, rotate=-90] at (0, \magneth-1.5*\magnethg+0.8+\pendulumh) {};

      % Coil Wires
      \draw[] ( \coilwidth, \magneth-1.5*\magnethg+0.8) node[]{$\bullet$} to[out=90,in=-180] ++(0.6*\pendulumh, 0.6*\pendulumh);
      \draw[] (-\coilwidth, \magneth-1.5*\magnethg+0.8) node[]{$\bullet$} to[out=90,in=-180] ++(0.6*\pendulumh, 0.6*\pendulumh);
    \end{scope}

    % LASER
    \draw[red, ->-=.5] (0, 0) -- (0, \firstinter);
    \draw[red, ->-=.6, -<-=.4] (0, \firstinter) -- (-, \secinter);
    \draw[red, ->-=.7, -<-=.3] (0, \secinter) -- (0, \finalinter-\pendmirrh);

    \draw[red, ->-=.7, -<-=.3] (0, \firstinter) -- ++( 0.5*\splitw, 0);
    \draw[red, ->-=.5] (0, \firstinter) -- ++(-0.5*\splitw, 0);
    \draw[red, ->-=.5] (0, \secinter)   -- ++( 0.5*\splitw, 0);
    \draw[red, ->-=.7, -<-=.3] (0, \secinter)   -- ++(-0.5*\splitw, 0);

    % Delimitation of the Interferometer system
    \coordinate[] (deliminter) at ($(delimmec)-(0, 0.1)$);
    \coordinate[] (deliminterbis) at ($(delimmecbis)-(0, 15.4)$);
    \draw[dashed] (deliminter) rectangle (deliminterbis);
    \path[] (deliminter) -- (deliminterbis -| deliminter) node[midway, above]{Interferometer};
  \end{scope}

\end{tikzpicture}

pend_top_view.png

Author: Dehaeze Thomas

Created: 2020-03-01 dim. 21:29