Add lot's of figures

This commit is contained in:
Thomas Dehaeze 2021-07-13 00:54:37 +02:00
parent b3c58e77b2
commit ab7e76d361
43 changed files with 374 additions and 216 deletions

View File

@ -1,7 +1,7 @@
#+TITLE: MECHATRONICS APPROACH FOR THE DEVELOPMENT OF A NANO-ACTIVE-STABILIZATION-SYSTEM #+TITLE: MECHATRONICS APPROACH FOR THE DEVELOPMENT OF A NANO-ACTIVE-STABILIZATION-SYSTEM
:DRAWER: :DRAWER:
#+LATEX_CLASS: jacow #+LATEX_CLASS: jacow
#+LATEX_CLASS_OPTIONS: [a4paper, keeplastbox, biblatex] #+LATEX_CLASS_OPTIONS: [a4paper, keeplastbox, biblatex, boxit]
#+OPTIONS: toc:nil #+OPTIONS: toc:nil
#+STARTUP: overview #+STARTUP: overview
@ -18,7 +18,8 @@
#+LATEX_HEADER: \usepackage{pdfpages,multirow,ragged2e} #+LATEX_HEADER: \usepackage{pdfpages,multirow,ragged2e}
#+LATEX_HEADER: \usepackage{graphicx,tabularx,booktabs} #+LATEX_HEADER: \usepackage{graphicx,tabularx,booktabs}
#+LATEX_HEADER: \usepackage{blindtext} #+LATEX_HEADER: \usepackage{blindtext,bm}
#+LATEX_HEADER: \usepackage{subcaption}
#+LATEX_HEADER: \usepackage[USenglish]{babel} #+LATEX_HEADER: \usepackage[USenglish]{babel}
#+LATEX_HEADER: \setcounter{footnote}{1} #+LATEX_HEADER: \setcounter{footnote}{1}
#+LATEX_HEADER_EXTRA: \usepackage[colorlinks=true, allcolors=blue]{hyperref} #+LATEX_HEADER_EXTRA: \usepackage[colorlinks=true, allcolors=blue]{hyperref}
@ -58,20 +59,45 @@ The presented development approach is foreseen to be applied more frequently to
See cite:dehaeze18_sampl_stabil_for_tomog_exper. See cite:dehaeze18_sampl_stabil_for_tomog_exper.
* MECHATRONIC APPROACH * NANO ACTIVE STABILIZATION SYSTEM
#+name: fig:nass_concept_schematic #+name: fig:nass_concept_schematic
#+attr_latex: :scale 1 #+attr_latex: :scale 1
#+caption: Nano Active Stabilization System - Schematic representation. 1) micro-station, 2) nano-hexapod, 3) sample, 4) metrology system #+caption: Nano Active Stabilization System - Schematic representation. 1) micro-station, 2) nano-hexapod, 3) sample, 4) metrology system
[[file:figs/nass_concept_schematic.pdf]] [[file:figs/nass_concept_schematic.pdf]]
* MECHATRONIC APPROACH
#+name: fig:nass_mechatronics_approach #+name: fig:nass_mechatronics_approach
#+attr_latex: :float multicolumn :width \linewidth #+attr_latex: :float multicolumn :width \linewidth
#+caption: Overview of the mechatronic approach #+caption: Overview of the mechatronic approach
[[file:figs/nass_mechatronics_approach.pdf]] [[file:figs/nass_mechatronics_approach.pdf]]
#+begin_export latex
\begin{figure*}[htbp]
\begin{subfigure}[t]{0.25\linewidth}
\centering
\includegraphics[width=0.7\linewidth]{figs/mass_spring_damper_hac_lac.pdf}
\caption{\label{fig:mass_spring_damper_hac_lac} Mass Spring Damper model}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.48\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/nass_simscape_3d.png}
\caption{\label{fig:nass_simscape_3d} Multi Body model}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.25\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/super_element_simscape_alt.pdf}
\caption{\label{fig:super_element_simscape} Finite Element Model}
\end{subfigure}
\hfill
\caption{\label{fig:nass_models}Models used during all the design process. From (\subref{fig:mass_spring_damper_hac_lac}), (\subref{fig:nass_simscape_3d}), (\subref{fig:super_element_simscape})}
\centering
\end{figure*}
#+end_export
* NANO-HEXAPOD DESIGN * NANO-HEXAPOD DESIGN
#+name: fig:nano_hexapod_elements #+name: fig:nano_hexapod_elements
@ -79,12 +105,59 @@ See cite:dehaeze18_sampl_stabil_for_tomog_exper.
#+caption: CAD view of the nano-hexapod with key elements #+caption: CAD view of the nano-hexapod with key elements
[[file:figs/nano_hexapod_elements.pdf]] [[file:figs/nano_hexapod_elements.pdf]]
#+name: fig:picture_nano_hexapod_strut
#+attr_latex: :width \linewidth
#+caption: Picture of a nano-hexapod's strut
[[file:figs/picture_nano_hexapod_strut.pdf]]
#+name: fig:nano_hexapod_picture
#+attr_latex: :width \linewidth
#+caption: Picture of the Nano-Hexapod on top of the ID31 micro-station
[[file:figs/nano_hexapod_picture.jpg]]
* TEST-BENCHES * TEST-BENCHES
#+name: fig:nass_hac_lac_schematic #+name: fig:test_bench_apa_schematic
#+attr_latex: :float multicolumn :width \linewidth #+attr_latex: :scale 1
#+caption: HAC-LAC Strategy - Block Diagram #+caption: Schematic of the bench used to identify the APA dynamics
[[file:figs/nass_hac_lac_schematic.pdf]] [[file:figs/test_bench_apa_schematic.pdf]]
#+begin_export latex
\begin{figure}[htbp]
\begin{subfigure}[t]{0.48\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/apa_test_bench_results_de.pdf}
\caption{\label{fig:apa_test_bench_results_de} Encoder}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.48\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/apa_test_bench_results_Vs.pdf}
\caption{\label{fig:apa_test_bench_results_Vs} Force Sensor}
\end{subfigure}
\caption{\label{fig:apa_test_bench_results}Measured Frequency Response functions compared with the Simscape model. From the actuator stacks voltage to the encoder (\subref{fig:apa_test_bench_results_de}) and to the force sensor stack (\subref{fig:apa_test_bench_results_Vs}).}
\centering
\end{figure}
#+end_export
* CONTROL RESULTS
#+name: fig:nass_hac_lac_schematic_test
#+attr_latex: :width \linewidth
#+caption: HAC-LAC Strategy - Block Diagram. The signals are: $\bm{r}$ the wanted sample's position, $\bm{X}$ the measured sample's position, $\bm{\epsilon}_{\mathcal{X}}$ the sample's position error, $\bm{\epsilon}_{\mathcal{L}}$ the sample position error expressed in the "frame" of the nano-hexapod struts, $\bm{u}$ the generated DAC voltages applied to the voltage amplifiers and then to the piezoelectric actuator stacks, $\bm{u}^\prime$ the new inputs corresponding to the damped plant, $\bm{\tau}$ the measured sensor stack voltages. $\bm{T}$ is . $\bm{K}_{\tiny IFF}$ is the Low Authority Controller used for active damping. $\bm{K}_{\mathcal{L}}$ is the High Authority Controller.
[[file:figs/nass_hac_lac_block_diagram_without_elec.pdf]]
#+name: fig:nano_hexapod_identification_comp_simscape
#+attr_latex: :width \linewidth
#+caption: Measured FRF and Simscape identified dynamics.
[[file:figs/nano_hexapod_identification_comp_simscape.pdf]]
#+name: fig:nano_hexapod_identification_damp_comp_simscape
#+attr_latex: :width \linewidth
#+caption: Undamped and Damped plant using IFF (measured FRF and Simscape model).
[[file:figs/nano_hexapod_identification_damp_comp_simscape.pdf]]
* CONCLUSION * CONCLUSION

View File

@ -1,16 +1,17 @@
% Created 2021-07-12 lun. 14:47 % Created 2021-07-13 mar. 00:51
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[a4paper, keeplastbox, biblatex]{jacow} \documentclass[a4paper, keeplastbox, biblatex, boxit]{jacow}
\usepackage{pdfpages,multirow,ragged2e} \usepackage{pdfpages,multirow,ragged2e}
\usepackage{graphicx,tabularx,booktabs} \usepackage{graphicx,tabularx,booktabs}
\usepackage{blindtext} \usepackage{blindtext,bm}
\usepackage{subcaption}
\usepackage[USenglish, english]{babel} \usepackage[USenglish, english]{babel}
\setcounter{footnote}{1} \setcounter{footnote}{1}
\usepackage[colorlinks=true, allcolors=blue]{hyperref} \usepackage[colorlinks=true, allcolors=blue]{hyperref}
\addbibresource{ref.bib} \addbibresource{ref.bib}
\author{T. Dehaeze\textsuperscript{1,}\thanks{thomas.dehaeze@esrf.fr}, J. Bonnefoy, ESRF, Grenoble, France \\ C. Collette\textsuperscript{1}, Université Libre de Bruxelles, BEAMS department, Brussels, Belgium \\ \textsuperscript{1}also at Precision Mechatronics Laboratory, University of Liege, Belgium} \author{T. Dehaeze\textsuperscript{1,}\thanks{thomas.dehaeze@esrf.fr}, J. Bonnefoy, ESRF, Grenoble, France \\ C. Collette\textsuperscript{1}, Université Libre de Bruxelles, BEAMS department, Brussels, Belgium \\ \textsuperscript{1}also at Precision Mechatronics Laboratory, University of Liege, Belgium}
\date{2021-07-12} \date{2021-07-13}
\title{MECHATRONICS APPROACH FOR THE DEVELOPMENT OF A NANO-ACTIVE-STABILIZATION-SYSTEM} \title{MECHATRONICS APPROACH FOR THE DEVELOPMENT OF A NANO-ACTIVE-STABILIZATION-SYSTEM}
\begin{document} \begin{document}
@ -31,12 +32,12 @@ The presented development approach is foreseen to be applied more frequently to
\end{abstract} \end{abstract}
\section{INTRODUCTION} \section{INTRODUCTION}
\label{sec:org308d5f7} \label{sec:org0bd2d65}
See \cite{dehaeze18_sampl_stabil_for_tomog_exper}. See \cite{dehaeze18_sampl_stabil_for_tomog_exper}.
\section{MECHATRONIC APPROACH} \section{NANO ACTIVE STABILIZATION SYSTEM}
\label{sec:org8ceb80a} \label{sec:orgcb63b2b}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
@ -44,16 +45,40 @@ See \cite{dehaeze18_sampl_stabil_for_tomog_exper}.
\caption{\label{fig:nass_concept_schematic}Nano Active Stabilization System - Schematic representation. 1) micro-station, 2) nano-hexapod, 3) sample, 4) metrology system} \caption{\label{fig:nass_concept_schematic}Nano Active Stabilization System - Schematic representation. 1) micro-station, 2) nano-hexapod, 3) sample, 4) metrology system}
\end{figure} \end{figure}
\section{MECHATRONIC APPROACH}
\label{sec:orgd2030b5}
\begin{figure*} \begin{figure*}
\centering \centering
\includegraphics[scale=1,width=\linewidth]{figs/nass_mechatronics_approach.pdf} \includegraphics[scale=1,width=\linewidth]{figs/nass_mechatronics_approach.pdf}
\caption{\label{fig:nass_mechatronics_approach}Overview of the mechatronic approach} \caption{\label{fig:nass_mechatronics_approach}Overview of the mechatronic approach}
\end{figure*} \end{figure*}
\begin{figure*}[htbp]
\begin{subfigure}[t]{0.25\linewidth}
\centering
\includegraphics[width=0.7\linewidth]{figs/mass_spring_damper_hac_lac.pdf}
\caption{\label{fig:mass_spring_damper_hac_lac} Mass Spring Damper model}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.48\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/nass_simscape_3d.png}
\caption{\label{fig:nass_simscape_3d} Multi Body model}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.25\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/super_element_simscape_alt.pdf}
\caption{\label{fig:super_element_simscape} Finite Element Model}
\end{subfigure}
\hfill
\caption{\label{fig:nass_models}Models used during all the design process. From (\subref{fig:mass_spring_damper_hac_lac}), (\subref{fig:nass_simscape_3d}), (\subref{fig:super_element_simscape})}
\centering
\end{figure*}
\section{NANO-HEXAPOD DESIGN} \section{NANO-HEXAPOD DESIGN}
\label{sec:org41b979c} \label{sec:org923eba1}
\begin{figure*} \begin{figure*}
\centering \centering
@ -61,20 +86,71 @@ See \cite{dehaeze18_sampl_stabil_for_tomog_exper}.
\caption{\label{fig:nano_hexapod_elements}CAD view of the nano-hexapod with key elements} \caption{\label{fig:nano_hexapod_elements}CAD view of the nano-hexapod with key elements}
\end{figure*} \end{figure*}
\section{TEST-BENCHES} \begin{figure}[htbp]
\label{sec:orgd4b8fb2}
\begin{figure*}
\centering \centering
\includegraphics[scale=1,width=\linewidth]{figs/nass_hac_lac_schematic.pdf} \includegraphics[scale=1,width=\linewidth]{figs/picture_nano_hexapod_strut.pdf}
\caption{\label{fig:nass_hac_lac_schematic}HAC-LAC Strategy - Block Diagram} \caption{\label{fig:picture_nano_hexapod_strut}Picture of a nano-hexapod's strut}
\end{figure*} \end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=\linewidth]{figs/nano_hexapod_picture.jpg}
\caption{\label{fig:nano_hexapod_picture}Picture of the Nano-Hexapod on top of the ID31 micro-station}
\end{figure}
\section{TEST-BENCHES}
\label{sec:orgeb70416}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,scale=1]{figs/test_bench_apa_schematic.pdf}
\caption{\label{fig:test_bench_apa_schematic}Schematic of the bench used to identify the APA dynamics}
\end{figure}
\begin{figure}[htbp]
\begin{subfigure}[t]{0.48\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/apa_test_bench_results_de.pdf}
\caption{\label{fig:apa_test_bench_results_de} Encoder}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.48\linewidth}
\centering
\includegraphics[width=0.95\linewidth]{figs/apa_test_bench_results_Vs.pdf}
\caption{\label{fig:apa_test_bench_results_Vs} Force Sensor}
\end{subfigure}
\caption{\label{fig:apa_test_bench_results}Measured Frequency Response functions compared with the Simscape model. From the actuator stacks voltage to the encoder (\subref{fig:apa_test_bench_results_de}) and to the force sensor stack (\subref{fig:apa_test_bench_results_Vs}).}
\centering
\end{figure}
\section{CONTROL RESULTS}
\label{sec:org2dca095}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=\linewidth]{figs/nass_hac_lac_block_diagram_without_elec.pdf}
\caption{\label{fig:nass_hac_lac_schematic_test}HAC-LAC Strategy - Block Diagram. The signals are: \(\bm{r}\) the wanted sample's position, \(\bm{X}\) the measured sample's position, \(\bm{\epsilon}_{\mathcal{X}}\) the sample's position error, \(\bm{\epsilon}_{\mathcal{L}}\) the sample position error expressed in the ``frame'' of the nano-hexapod struts, \(\bm{u}\) the generated DAC voltages applied to the voltage amplifiers and then to the piezoelectric actuator stacks, \(\bm{u}^\prime\) the new inputs corresponding to the damped plant, \(\bm{\tau}\) the measured sensor stack voltages. \(\bm{T}\) is . \(\bm{K}_{\tiny IFF}\) is the Low Authority Controller used for active damping. \(\bm{K}_{\mathcal{L}}\) is the High Authority Controller.}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=\linewidth]{figs/nano_hexapod_identification_comp_simscape.pdf}
\caption{\label{fig:nano_hexapod_identification_comp_simscape}Measured FRF and Simscape identified dynamics.}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=\linewidth]{figs/nano_hexapod_identification_damp_comp_simscape.pdf}
\caption{\label{fig:nano_hexapod_identification_damp_comp_simscape}Undamped and Damped plant using IFF (measured FRF and Simscape model).}
\end{figure}
\section{CONCLUSION} \section{CONCLUSION}
\label{sec:org45fae73} \label{sec:orgce60d85}
\section{ACKNOWLEDGMENTS} \section{ACKNOWLEDGMENTS}
\label{sec:org36b4615} \label{sec:orgfea2444}
This research was made possible by a grant from the FRIA. This research was made possible by a grant from the FRIA.
We thank the following people for their support, without whose help this work would never have been possible: V. Honkimaki, L. Ducotte and M. Lessourd and the whole team of the Precision Mechatronic Laboratory. We thank the following people for their support, without whose help this work would never have been possible: V. Honkimaki, L. Ducotte and M. Lessourd and the whole team of the Precision Mechatronic Laboratory.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 861 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

View File

@ -55,3 +55,11 @@
url = {https://doi.org/10.1088/2631-8695/abe803}, url = {https://doi.org/10.1088/2631-8695/abe803},
month = {Feb}, month = {Feb},
} }
@phdthesis{rankers98_machin,
author = {Rankers, Adrian Mathias},
school = {University of Twente},
title = {Machine dynamics in mechatronic systems: An engineering
approach.},
year = 1998,
}

View File

@ -94,15 +94,6 @@
\pgfplotsset{plot coordinates/math parser=false} \pgfplotsset{plot coordinates/math parser=false}
#+end_src #+end_src
* Setup size of figures
#+begin_src latex
\newlength{\fheight}
\newlength{\fwidth}
\setlength{\fwidth}{85mm}
\setlength{\fheight}{112mm}
#+end_src
* Setup Arrows style * Setup Arrows style
#+begin_src latex #+begin_src latex
\tikzset{>=Stealth} \tikzset{>=Stealth}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View File

@ -114,160 +114,170 @@
#+RESULTS: #+RESULTS:
[[file:figs/nass_mechatronics_approach.png]] [[file:figs/nass_mechatronics_approach.png]]
* Schematic Representation - NASS * HAC-LAC Representation (two columns)
#+begin_src latex :file nass_concept_schematic.pdf #+begin_src latex :file nass_hac_lac_block_diagram.pdf
\graphicspath{ {/home/thomas/Cloud/thesis/papers/dehaeze21_mechatronics_approach_nass/tikz/figs-tikz} }
\begin{tikzpicture} \begin{tikzpicture}
% Parameters \node[inner sep=3pt, fill=white, draw] (plant) at (0, 0)
\def\blockw{6.0cm} {\includegraphics[width=4.5cm]{nass_concept_schematic.pdf}};
\def\blockh{1.2cm}
% Translation Stage \coordinate[] (outputf) at ($(plant.south east)!0.75!(plant.north east)$);
\begin{scope} \coordinate[] (outputx) at ($(plant.south east)!0.25!(plant.north east)$);
% Translation Stage - fixed part
\draw[fill=black!40] (-0.5*\blockw, 0) coordinate[](tyb) rectangle (0.5*\blockw, 0.15*\blockh);
\coordinate[] (measposbot) at (0.5*\blockw, 0);
% Tilt \node[block, left=0.6 of plant] (amp) {Amplifier};
\path[] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) % \node[DAC, left=0.6 of amp] (dac) {DAC};
-- ([shift=(-70:4*\blockh)]0, 4.9*\blockh) arc (-70:-60:4*\blockh)% \node[ADC] (adc) at ($(plant.north-|dac) + (0, 0.2)$) {ADC};
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)% \node[addb, left=0.6 of dac] (addu) {};
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) coordinate(tiltte) -| cycle; \node[block, above=0.4 of addu] (Kiff) {$\bm{K}_{\mathcal{L}}$};
\node[block, left=0.6 of addu] (Kl) {$\bm{K}_{\mathcal{X}}$};
\node[block, left=0.6 of Kl] (J) {$\bm{J}$};
\node[block, left=0.6 of J] (pos_error) {Pos. Err.};
% Spindle \draw[->] (outputf) -- ++(0.2, 0)node[branch]{} |- (adc.east);
\coordinate[] (spindlese) at (spindlesw-|spindlene); \draw[->] (outputf) --node[midway, below]{$\bm{\tau}_m$} ++(0.8, 0);
\draw[fill=black!30] ($(spindlese)+(-0.1,0.1)+(-0.1*\blockw, 0)$) -| ($(spindlene)+(-0.1, 0)$) -| coordinate[pos=0.25](spindletop) ($(spindlesw)+(0.1,0.1)$) -| ++(0.1*\blockw, -\blockh) -| coordinate[pos=0.25](spindlebot) cycle;
\draw[dashed, color=black!60] ($(spindletop)+(0, 0.2)$) -- ($(spindlebot)+(0,-0.2)$); \draw[->] (outputx) -- ++(0.2, 0)node[branch]{} |- ($(plant.south)+(0, -0.2)$) -| (pos_error.south);
\draw[->] (outputx) --node[midway, above]{$\bm{\mathcal{X}}_m$} ++(0.8, 0);
\draw[->] (pos_error.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (J.west);
% Tilt \draw[->] (J.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{L}}$} (Kl.west);
\draw[fill=black!60] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) % \draw[->] (Kl.east) -- node[midway, above]{$\bm{u}^\prime$} (addu.west);
-- ([shift=(-70:4*\blockh)]0, 4.9*\blockh) arc (-70:-60:4*\blockh)% \draw[->] (addu.east) -- node[midway, above]{$\bm{u}$} (dac.west);
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)% \draw[->] (dac.east) -- (amp.west);
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) -| cycle; \draw[->] (amp.east) -- (plant.west);
\draw[->] (adc.west) -| (Kiff.north);
% Translation Stage - mobile part \draw[->] (Kiff.south) -- (addu.north);
\draw[fill=black!10, fill opacity=0.5] (-0.5*\blockw, 0.2*\blockh) -- (-0.5*\blockw, 1.5*\blockh) coordinate[](tyt) -- (0.5*\blockw, 1.5*\blockh) -- (0.5*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.2*\blockh) -- cycle; \draw[<-] (pos_error.west) -- node[midway, above]{$\bm{r}_\mu$} ++(-0.8, 0);
% Translation Guidance
\draw[dashed, color=black!60] ($(-0.5*\blockw, 0)+( 0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
\draw[dashed, color=black!60] ($( 0.5*\blockw, 0)+(-0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
% Tilt Guidance
\draw[dashed, color=black!60] ([shift=(-110:4*\blockh)]0, 4.8*\blockh) arc (-110:-120:4*\blockh);
\draw[dashed, color=black!60] ([shift=( -70:4*\blockh)]0, 4.8*\blockh) arc (-70:-60:4*\blockh);
\end{scope}
% Micro-Hexapod
\begin{scope}[shift={(spindletop)}]
% Parameters definitions
\def\baseh{0.2*\blockh} % Height of the base
\def\naceh{0.2*\blockh} % Height of the nacelle
\def\baser{0.22*\blockw} % Radius of the base
\def\nacer{0.18*\blockw} % Radius of the nacelle
\def\armr{0.2*\blockh} % Radius of the arms
\def\basearmborder{0.2}
\def\nacearmborder{0.2}
\def\xnace{0} \def\ynace{\blockh-\naceh} \def\anace{0}
\def\xbase{0} \def\ybase{0} \def\abase{0}
% Hexapod1
\begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
% Base
\draw[fill=white] (-\baser, 0) coordinate[](uhexabot) 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[] (uhexatop) at (0, \naceh);
\coordinate[] (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
\coordinate[] (armnacec) at (0, 0);
\coordinate[] (armnacer) at (\nacer-\nacearmborder-\armr, 0);
\end{scope}
% Nacelle1 END
\draw[] (armbasec) -- (armnacer);
\draw[] (armbasec) -- (armnacel);
\draw[] (armbasel) -- (armnacel);
\draw[] (armbasel) -- (armnacec);
\draw[] (armbaser) -- (armnacec);
\draw[] (armbaser) -- (armnacer);
\end{scope}
\end{scope}
% NASS
\begin{scope}[shift={(uhexatop)}]
% Parameters definitions
\def\baseh{0.1*\blockh} % Height of the base
\def\naceh{0.1*\blockh} % Height of the nacelle
\def\baser{0.16*\blockw} % Radius of the base
\def\nacer{0.14*\blockw} % Radius of the nacelle
\def\armr{0.1*\blockh} % Radius of the arms
\def\basearmborder{0.2}
\def\nacearmborder{0.2}
\def\xnace{0} \def\ynace{0.6*\blockh-\naceh} \def\anace{0}
\def\xbase{0} \def\ybase{0} \def\abase{0}
% Hexapod1
\begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
% Base
\draw[fill=red!50!black] (-\baser, 0) coordinate[](nhexabot) 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=red!50!black] (-\nacer, 0) rectangle (\nacer, \naceh);
\coordinate[] (nhexatop) at (0, \naceh);
\coordinate[] (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
\coordinate[] (armnacec) at (0, 0);
\coordinate[] (armnacer) at (\nacer-\nacearmborder-\armr, 0);
\coordinate[] (measpostop) at (\nacer, \naceh);
\end{scope}
% Nacelle1 END
\draw[color=red!50!black] (armbasec) -- (armnacer);
\draw[color=red!50!black] (armbasec) -- (armnacel);
\draw[color=red!50!black] (armbasel) -- (armnacel);
\draw[color=red!50!black] (armbasel) -- (armnacec);
\draw[color=red!50!black] (armbaser) -- (armnacec);
\draw[color=red!50!black] (armbaser) -- (armnacer);
% Force actuator
\coordinate[] (nassfbot) at (0.8*\baser, \baseh);
\coordinate[] (nassftop) at (armnacec-|nassfbot);
\end{scope}
\end{scope}
% Sample
\begin{scope}[shift={(nhexatop)}]
\draw[fill=white] (-0.1*\blockw, 0) coordinate[](samplebot) rectangle coordinate[pos=0.5](samplecenter) (0.1*\blockw, \blockh) coordinate[](sampletop);
\end{scope}
% Laser
\begin{scope}[shift={(samplecenter)}]
\draw[color=red, -<-=0.5] (samplecenter) node[circle, fill=red, inner sep=0pt, minimum size=3pt]{} -- node[midway, above, color=black]{X-ray} ($(samplecenter)+(0.5*\blockw,0)$);
\end{scope}
%% Measurement
\draw[dashed, color=black!50] (measposbot) -- ++(0.8,0) coordinate (measposbotend);
\draw[dashed, color=black!50] (measpostop) -- (measpostop-|measposbotend) coordinate (measpostopend);
\draw[<->, dashed] ($(measposbotend)+(-0.2, 0)$) -- node[midway, left](d){$d$} ($(measpostopend)+(-0.2, 0)$);
%% Control
\draw[<->, line width=0.5pt] (nassfbot) -- node[midway, right](F){$F$} (nassftop);
\node[draw, block={2.3em}{1.7em}, right=0.3 of F] (K){$K$};
\draw[->] (d.west) -| ($(K.east)+(0.5, 0)$) -- (K.east);
\draw[->] (K.west) -- (F.east);
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+RESULTS:
[[file:figs/nass_hac_lac_block_diagram.png]]
* HAC-LAC alternative (one column)
#+begin_src latex :file nass_hac_lac_block_diagram_without_elec.pdf
\graphicspath{ {/home/thomas/Cloud/thesis/papers/dehaeze21_mechatronics_approach_nass/tikz/figs-tikz} }
\begin{tikzpicture}
% Plant
\node[inner sep=3pt, fill=white, draw] (plant) at (0, 0)
{\includegraphics[width=4cm]{nass_concept_schematic.pdf}};
% Plant outputs
\coordinate[] (outputf) at ($(plant.south east)!0.8!(plant.north east)$);
\coordinate[] (outputx) at ($(plant.south east)!0.2!(plant.north east)$);
% Blocks
\node[addb, left=0.6 of plant] (addu) {};
\node[block, above=0.4 of addu] (Kiff) {$\bm{K}_{\text{\tiny IFF}}$};
\node[block, left=1.0 of addu] (Kl) {$\bm{K}_{\mathcal{L}}$};
\node[block, left=0.6 of Kl] (J) {$\bm{J}$};
\node[addb={+}{}{}{}{-}, left=0.6 of J] (pos_error) {};
% Lines
\draw[->] (outputf) -- ++(0.2, 0)node[below]{$\bm{\tau}$} |- ($(plant.north)+(0, 0.2)$) -| (Kiff.north);
\draw[->] (outputx) -- ++(0.6, 0)node[above]{$\bm{\mathcal{X}}$} |- ($(plant.south)+(0, -0.4)$) -| (pos_error.south);
\draw[->] (pos_error.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (J.west);
\draw[->] (J.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{L}}$} (Kl.west);
\draw[->] (Kl.east) -- node[near start, above]{$\bm{u}^\prime$} (addu.west);
\draw[->] (addu.east) -- node[midway, above]{$\bm{u}$} (plant.west);
\draw[->] (Kiff.south) -- (addu.north);
\draw[<-] (pos_error.west) -- node[midway, above]{$\bm{r}$} ++(-0.6, 0);
% Damped plant
\begin{scope}[on background layer]
\node[fit={(plant.south-|Kiff.west) ($(plant.north east)+(0.2cm,0.2cm)$)}, fill=black!10!white, draw, dashed, inner sep=0.2cm] (damped_plant) {};
\node[above right, align=left] at (damped_plant.south west) {\small Damped\\Plant};
\end{scope}
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/nass_hac_lac_block_diagram_without_elec.png]]
* Mass Spring Damper Model
#+begin_src latex :file mass_spring_damper_hac_lac.pdf
\begin{tikzpicture}
% ====================
% Parameters
% ====================
\def\bracs{0.05} % Brace spacing vertically
\def\brach{-12pt} % Brace shift horizontaly
% ====================
% ====================
% Ground
% ====================
\draw (-0.9, 0) -- (0.9, 0);
\draw[dashed] (0.9, 0) -- ++(0.5, 0);
\draw[->] (1.3, 0) -- ++(0, 0.4) node[right]{$w$};
% ====================
% ====================
% Granite
\begin{scope}[shift={(0, 0)}]
\draw[fill=white] (-0.9, 1.2) rectangle (0.9, 2.0) node[pos=0.5]{$\scriptstyle\text{granite}$};
\draw[spring] (-0.7, 0) -- ++(0, 1.2);
\draw[damper] ( 0, 0) -- ++(0, 1.2);
\draw[dashed] ( 0.9, 2.0) -- ++(2.0, 0) coordinate(xg);
% \draw[decorate, decoration={brace, amplitude=8pt}, xshift=\brach] %
% (-0.9, \bracs) -- ++(0, 2.0) node[midway,rotate=90,anchor=south,yshift=10pt]{Granite};
\end{scope}
% ====================
% ====================
% Stages
\begin{scope}[shift={(0, 2.0)}]
\draw[fill=white] (-0.9, 1.2) rectangle (0.9, 2.0) node[pos=0.5]{$\scriptstyle\mu\text{-station}$};
\draw[spring] (-0.7, 0) -- ++(0, 1.2);
\draw[damper] ( 0, 0) -- ++(0, 1.2);
\draw[actuator] ( 0.7, 0) -- ++(0, 1.2) node[midway, right=0.1](ft){$f_t$};
% \draw[decorate, decoration={brace, amplitude=8pt}, xshift=\brach] %
% (-0.9, \bracs) -- ++(0, 2.0) node[midway,rotate=90,anchor=south,yshift=10pt]{$\mu\text{-station}$};
\end{scope}
% ====================
% ====================
% NASS
\begin{scope}[shift={(0, 4.0)}]
\draw[fill=white] (-0.9, 1.5) rectangle (0.9, 2.3) node[pos=0.5]{$\scriptstyle\nu\text{-hexapod}$};
\draw[dashed] (0.9, 2.3) -- ++(2.0, 0) coordinate(xnpos);
\draw[spring] (-0.7, 0) -- ++(0, 1.2) node[midway, left=0.1]{};
\draw[damper] ( 0, 0) -- ++(0, 1.2) node[midway, left=0.2]{};
\draw[actuator] ( 0.7, 0) -- ++(0, 1.2) coordinate[midway, below right=0.2 and 0.1](f);
\node[forcesensor={1.8}{0.3}] (fsensn) at (0, 1.2){};
% \draw[decorate, decoration={brace, amplitude=8pt}, xshift=\brach] %
% (-0.9, \bracs) -- ++(0, 2.2) node[midway,rotate=90,anchor=south,yshift=10pt]{$\nu\text{-hexapod}$};
\end{scope}
% ====================
% ====================
% Measured Displacement
\draw[<->, dashed] ($(xg)+(-0.1, 0)$) node[above left](d){$d$} -- ($(xnpos)+(-0.1, 0)$);
% ====================
% ====================
% IFF Control
\node[block={2em}{1.5em}, right=0.6 of fsensn] (iff) {$K_{\scriptscriptstyle IFF}$};
\node[addb] (ctrladd) at (f-|iff) {};
\node[block={2em}{1.5em}, below=0.6 of ctrladd] (ctrl) {$K_{X}$};
\draw[->] (fsensn.east) -- node[midway, above]{$\tau_m$} (iff.west);
\draw[->] (iff.south) -- (ctrladd.north);
\draw[->] (ctrladd.west) -- (f.east) node[above right]{$u$};
\draw[->] (d.west) -| (ctrl.south);
\draw[->] (ctrl.north) -- (ctrladd.south);
% ====================
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/mass_spring_damper_hac_lac.png]]