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

@ -54,53 +54,44 @@
* Tikz related packages * Tikz related packages
#+begin_src latex #+begin_src latex
\usepackage{tikz} % Tikz \usepackage{tikz} % Tikz
\usepackage{tikzscale} % Used to scale Tikz graphics \usepackage{tikzscale} % Used to scale Tikz graphics
\usepackage{adjustbox} % Used to proper positioning of tikz pictures \usepackage{adjustbox} % Used to proper positioning of tikz pictures
\usepackage{circuitikz} % Draw electronic circuits \usepackage{circuitikz} % Draw electronic circuits
\usepackage{pgfpages} % Needed to use notes \usepackage{pgfpages} % Needed to use notes
\usepackage{pgfplots} % Used to plot functions \usepackage{pgfplots} % Used to plot functions
#+end_src #+end_src
* Tikz Libraries * Tikz Libraries
#+begin_src latex #+begin_src latex
\usetikzlibrary{arrows} % Arrow tip library \usetikzlibrary{arrows} % Arrow tip library
\usetikzlibrary{arrows.meta} % Add some arrows \usetikzlibrary{arrows.meta} % Add some arrows
\usetikzlibrary{calc} % The library allows advanced Coordinate Calculations \usetikzlibrary{calc} % The library allows advanced Coordinate Calculations
\usetikzlibrary{intersections} % calculate intersections of paths \usetikzlibrary{intersections} % calculate intersections of paths
\usetikzlibrary{matrix} % \usetikzlibrary{matrix} %
\usetikzlibrary{patterns} % \usetikzlibrary{patterns} %
\usetikzlibrary{shapes} % Defines circle and rectangle \usetikzlibrary{shapes} % Defines circle and rectangle
\usetikzlibrary{shapes.geometric} % Use for the shape diamond and isosceles triangle \usetikzlibrary{shapes.geometric} % Use for the shape diamond and isosceles triangle
\usetikzlibrary{snakes} % snake=coil and snake=zigzag using segment amplitude=10pt \usetikzlibrary{snakes} % snake=coil and snake=zigzag using segment amplitude=10pt
\usetikzlibrary{positioning} % Additional options for placing nodes \usetikzlibrary{positioning} % Additional options for placing nodes
\usetikzlibrary{3d} % Plot 3D shapes \usetikzlibrary{3d} % Plot 3D shapes
\usetikzlibrary{spy} % Creating a magnified area \usetikzlibrary{spy} % Creating a magnified area
\usetikzlibrary{decorations.text} % Used to make text follows a curve \usetikzlibrary{decorations.text} % Used to make text follows a curve
\usetikzlibrary{decorations.pathmorphing} % deformation of a path \usetikzlibrary{decorations.pathmorphing} % deformation of a path
\usetikzlibrary{decorations.markings} % Used for spring and damper \usetikzlibrary{decorations.markings} % Used for spring and damper
\usetikzlibrary{babel} % A tiny library that make the interaction with the babel package easier \usetikzlibrary{babel} % A tiny library that make the interaction with the babel package easier
\usetikzlibrary{plotmarks} % This library defines a number of plot marks \usetikzlibrary{plotmarks} % This library defines a number of plot marks
\usetikzlibrary{fit} % Used to make rectangle as nodes by specifying two points \usetikzlibrary{fit} % Used to make rectangle as nodes by specifying two points
\usetikzlibrary{backgrounds} % Used to put things under others \usetikzlibrary{backgrounds} % Used to put things under others
#+end_src #+end_src
* PGF Plot libraries and config * PGF Plot libraries and config
#+begin_src latex #+begin_src latex
\usepgfplotslibrary{patchplots} \usepgfplotslibrary{patchplots}
\usepgfplotslibrary{groupplots} \usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest} \pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false} \pgfplotsset{plot coordinates/math parser=false}
#+end_src
* Setup size of figures
#+begin_src latex
\newlength{\fheight}
\newlength{\fwidth}
\setlength{\fwidth}{85mm}
\setlength{\fheight}{112mm}
#+end_src #+end_src
* Setup Arrows style * Setup Arrows style

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
\begin{tikzpicture} \graphicspath{ {/home/thomas/Cloud/thesis/papers/dehaeze21_mechatronics_approach_nass/tikz/figs-tikz} }
% Parameters
\def\blockw{6.0cm}
\def\blockh{1.2cm}
% Translation Stage \begin{tikzpicture}
\begin{scope} \node[inner sep=3pt, fill=white, draw] (plant) at (0, 0)
% Translation Stage - fixed part {\includegraphics[width=4.5cm]{nass_concept_schematic.pdf}};
\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 \coordinate[] (outputf) at ($(plant.south east)!0.75!(plant.north east)$);
\path[] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) % \coordinate[] (outputx) at ($(plant.south east)!0.25!(plant.north east)$);
-- ([shift=(-70:4*\blockh)]0, 4.9*\blockh) arc (-70:-60:4*\blockh)%
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) coordinate(tiltte) -| cycle;
% Spindle \node[block, left=0.6 of plant] (amp) {Amplifier};
\coordinate[] (spindlese) at (spindlesw-|spindlene); \node[DAC, left=0.6 of amp] (dac) {DAC};
\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; \node[ADC] (adc) at ($(plant.north-|dac) + (0, 0.2)$) {ADC};
\node[addb, left=0.6 of dac] (addu) {};
\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.};
\draw[dashed, color=black!60] ($(spindletop)+(0, 0.2)$) -- ($(spindlebot)+(0,-0.2)$); \draw[->] (outputf) -- ++(0.2, 0)node[branch]{} |- (adc.east);
\draw[->] (outputf) --node[midway, below]{$\bm{\tau}_m$} ++(0.8, 0);
\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);
% Tilt \draw[->] (pos_error.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (J.west);
\draw[fill=black!60] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) % \draw[->] (J.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{L}}$} (Kl.west);
-- ([shift=(-70:4*\blockh)]0, 4.9*\blockh) arc (-70:-60:4*\blockh)% \draw[->] (Kl.east) -- node[midway, above]{$\bm{u}^\prime$} (addu.west);
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)% \draw[->] (addu.east) -- node[midway, above]{$\bm{u}$} (dac.west);
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) -| cycle; \draw[->] (dac.east) -- (amp.west);
\draw[->] (amp.east) -- (plant.west);
% Translation Stage - mobile part \draw[->] (adc.west) -| (Kiff.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[->] (Kiff.south) -- (addu.north);
\draw[<-] (pos_error.west) -- node[midway, above]{$\bm{r}_\mu$} ++(-0.8, 0);
% Translation Guidance \end{tikzpicture}
\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_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]]