diff --git a/paper/dehaeze21_mechatronics_approach_nass.org b/paper/dehaeze21_mechatronics_approach_nass.org index 651714e..3af58fa 100644 --- a/paper/dehaeze21_mechatronics_approach_nass.org +++ b/paper/dehaeze21_mechatronics_approach_nass.org @@ -1,7 +1,7 @@ #+TITLE: MECHATRONICS APPROACH FOR THE DEVELOPMENT OF A NANO-ACTIVE-STABILIZATION-SYSTEM :DRAWER: #+LATEX_CLASS: jacow -#+LATEX_CLASS_OPTIONS: [a4paper, keeplastbox, biblatex] +#+LATEX_CLASS_OPTIONS: [a4paper, keeplastbox, biblatex, boxit] #+OPTIONS: toc:nil #+STARTUP: overview @@ -18,7 +18,8 @@ #+LATEX_HEADER: \usepackage{pdfpages,multirow,ragged2e} #+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: \setcounter{footnote}{1} #+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. -* MECHATRONIC APPROACH +* NANO ACTIVE STABILIZATION SYSTEM #+name: fig:nass_concept_schematic #+attr_latex: :scale 1 #+caption: Nano Active Stabilization System - Schematic representation. 1) micro-station, 2) nano-hexapod, 3) sample, 4) metrology system [[file:figs/nass_concept_schematic.pdf]] - - +* MECHATRONIC APPROACH #+name: fig:nass_mechatronics_approach #+attr_latex: :float multicolumn :width \linewidth #+caption: Overview of the mechatronic approach [[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 #+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 [[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 -#+name: fig:nass_hac_lac_schematic -#+attr_latex: :float multicolumn :width \linewidth -#+caption: HAC-LAC Strategy - Block Diagram -[[file:figs/nass_hac_lac_schematic.pdf]] +#+name: fig:test_bench_apa_schematic +#+attr_latex: :scale 1 +#+caption: Schematic of the bench used to identify the APA dynamics +[[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 diff --git a/paper/dehaeze21_mechatronics_approach_nass.pdf b/paper/dehaeze21_mechatronics_approach_nass.pdf index 3bfc3bd..6d143ba 100644 Binary files a/paper/dehaeze21_mechatronics_approach_nass.pdf and b/paper/dehaeze21_mechatronics_approach_nass.pdf differ diff --git a/paper/dehaeze21_mechatronics_approach_nass.tex b/paper/dehaeze21_mechatronics_approach_nass.tex index a8948eb..f3309cf 100644 --- a/paper/dehaeze21_mechatronics_approach_nass.tex +++ b/paper/dehaeze21_mechatronics_approach_nass.tex @@ -1,16 +1,17 @@ -% Created 2021-07-12 lun. 14:47 +% Created 2021-07-13 mar. 00:51 % Intended LaTeX compiler: pdflatex -\documentclass[a4paper, keeplastbox, biblatex]{jacow} +\documentclass[a4paper, keeplastbox, biblatex, boxit]{jacow} \usepackage{pdfpages,multirow,ragged2e} \usepackage{graphicx,tabularx,booktabs} -\usepackage{blindtext} +\usepackage{blindtext,bm} +\usepackage{subcaption} \usepackage[USenglish, english]{babel} \setcounter{footnote}{1} \usepackage[colorlinks=true, allcolors=blue]{hyperref} \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} -\date{2021-07-12} +\date{2021-07-13} \title{MECHATRONICS APPROACH FOR THE DEVELOPMENT OF A NANO-ACTIVE-STABILIZATION-SYSTEM} \begin{document} @@ -31,12 +32,12 @@ The presented development approach is foreseen to be applied more frequently to \end{abstract} \section{INTRODUCTION} -\label{sec:org308d5f7} +\label{sec:org0bd2d65} See \cite{dehaeze18_sampl_stabil_for_tomog_exper}. -\section{MECHATRONIC APPROACH} -\label{sec:org8ceb80a} +\section{NANO ACTIVE STABILIZATION SYSTEM} +\label{sec:orgcb63b2b} \begin{figure}[htbp] \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} \end{figure} - - +\section{MECHATRONIC APPROACH} +\label{sec:orgd2030b5} \begin{figure*} \centering \includegraphics[scale=1,width=\linewidth]{figs/nass_mechatronics_approach.pdf} \caption{\label{fig:nass_mechatronics_approach}Overview of the mechatronic approach} \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} -\label{sec:org41b979c} +\label{sec:org923eba1} \begin{figure*} \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} \end{figure*} -\section{TEST-BENCHES} -\label{sec:orgd4b8fb2} - -\begin{figure*} +\begin{figure}[htbp] \centering -\includegraphics[scale=1,width=\linewidth]{figs/nass_hac_lac_schematic.pdf} -\caption{\label{fig:nass_hac_lac_schematic}HAC-LAC Strategy - Block Diagram} -\end{figure*} +\includegraphics[scale=1,width=\linewidth]{figs/picture_nano_hexapod_strut.pdf} +\caption{\label{fig:picture_nano_hexapod_strut}Picture of a nano-hexapod's strut} +\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} -\label{sec:org45fae73} +\label{sec:orgce60d85} \section{ACKNOWLEDGMENTS} -\label{sec:org36b4615} +\label{sec:orgfea2444} 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. diff --git a/paper/figs/apa_test_bench_results.pdf b/paper/figs/apa_test_bench_results.pdf new file mode 100644 index 0000000..787a291 Binary files /dev/null and b/paper/figs/apa_test_bench_results.pdf differ diff --git a/paper/figs/apa_test_bench_results.svg b/paper/figs/apa_test_bench_results.svg new file mode 100644 index 0000000..c1ae8e8 Binary files /dev/null and b/paper/figs/apa_test_bench_results.svg differ diff --git a/paper/figs/apa_test_bench_results_Vs.pdf b/paper/figs/apa_test_bench_results_Vs.pdf new file mode 100644 index 0000000..595886b Binary files /dev/null and b/paper/figs/apa_test_bench_results_Vs.pdf differ diff --git a/paper/figs/apa_test_bench_results_Vs.svg b/paper/figs/apa_test_bench_results_Vs.svg new file mode 100644 index 0000000..75b41ab Binary files /dev/null and b/paper/figs/apa_test_bench_results_Vs.svg differ diff --git a/paper/figs/apa_test_bench_results_de.pdf b/paper/figs/apa_test_bench_results_de.pdf new file mode 100644 index 0000000..b13b13e Binary files /dev/null and b/paper/figs/apa_test_bench_results_de.pdf differ diff --git a/paper/figs/apa_test_bench_results_de.svg b/paper/figs/apa_test_bench_results_de.svg new file mode 100644 index 0000000..470bd2f Binary files /dev/null and b/paper/figs/apa_test_bench_results_de.svg differ diff --git a/paper/figs/mass_spring_damper_hac_lac.pdf b/paper/figs/mass_spring_damper_hac_lac.pdf new file mode 100644 index 0000000..e28cc0d Binary files /dev/null and b/paper/figs/mass_spring_damper_hac_lac.pdf differ diff --git a/paper/figs/mass_spring_damper_hac_lac.png b/paper/figs/mass_spring_damper_hac_lac.png new file mode 100644 index 0000000..04047fb Binary files /dev/null and b/paper/figs/mass_spring_damper_hac_lac.png differ diff --git a/paper/figs/mass_spring_damper_hac_lac.svg b/paper/figs/mass_spring_damper_hac_lac.svg new file mode 100644 index 0000000..f725f1c Binary files /dev/null and b/paper/figs/mass_spring_damper_hac_lac.svg differ diff --git a/paper/figs/nano_hexapod_identification_comp_simscape.pdf b/paper/figs/nano_hexapod_identification_comp_simscape.pdf new file mode 100644 index 0000000..08ff6d8 Binary files /dev/null and b/paper/figs/nano_hexapod_identification_comp_simscape.pdf differ diff --git a/paper/figs/nano_hexapod_identification_comp_simscape.svg b/paper/figs/nano_hexapod_identification_comp_simscape.svg new file mode 100644 index 0000000..ccfb955 Binary files /dev/null and b/paper/figs/nano_hexapod_identification_comp_simscape.svg differ diff --git a/paper/figs/nano_hexapod_identification_damp_comp_simscape.pdf b/paper/figs/nano_hexapod_identification_damp_comp_simscape.pdf new file mode 100644 index 0000000..16bb36b Binary files /dev/null and b/paper/figs/nano_hexapod_identification_damp_comp_simscape.pdf differ diff --git a/paper/figs/nano_hexapod_identification_damp_comp_simscape.svg b/paper/figs/nano_hexapod_identification_damp_comp_simscape.svg new file mode 100644 index 0000000..e16d649 Binary files /dev/null and b/paper/figs/nano_hexapod_identification_damp_comp_simscape.svg differ diff --git a/paper/figs/nano_hexapod_picture.jpg b/paper/figs/nano_hexapod_picture.jpg new file mode 100644 index 0000000..e03ed72 Binary files /dev/null and b/paper/figs/nano_hexapod_picture.jpg differ diff --git a/paper/figs/nass_concept_schematic.pdf b/paper/figs/nass_concept_schematic.pdf index ecd991a..76444a8 100644 Binary files a/paper/figs/nass_concept_schematic.pdf and b/paper/figs/nass_concept_schematic.pdf differ diff --git a/paper/figs/nass_concept_schematic.svg b/paper/figs/nass_concept_schematic.svg index cf97603..5d63d17 100644 Binary files a/paper/figs/nass_concept_schematic.svg and b/paper/figs/nass_concept_schematic.svg differ diff --git a/paper/figs/nass_hac_lac_block_diagram.pdf b/paper/figs/nass_hac_lac_block_diagram.pdf new file mode 100644 index 0000000..30d3dad Binary files /dev/null and b/paper/figs/nass_hac_lac_block_diagram.pdf differ diff --git a/paper/figs/nass_hac_lac_block_diagram.png b/paper/figs/nass_hac_lac_block_diagram.png new file mode 100644 index 0000000..99ee811 Binary files /dev/null and b/paper/figs/nass_hac_lac_block_diagram.png differ diff --git a/paper/figs/nass_hac_lac_block_diagram.svg b/paper/figs/nass_hac_lac_block_diagram.svg new file mode 100644 index 0000000..36b3c10 Binary files /dev/null and b/paper/figs/nass_hac_lac_block_diagram.svg differ diff --git a/paper/figs/nass_hac_lac_block_diagram_without_elec.pdf b/paper/figs/nass_hac_lac_block_diagram_without_elec.pdf new file mode 100644 index 0000000..9acbcc3 Binary files /dev/null and b/paper/figs/nass_hac_lac_block_diagram_without_elec.pdf differ diff --git a/paper/figs/nass_hac_lac_block_diagram_without_elec.png b/paper/figs/nass_hac_lac_block_diagram_without_elec.png new file mode 100644 index 0000000..459ffad Binary files /dev/null and b/paper/figs/nass_hac_lac_block_diagram_without_elec.png differ diff --git a/paper/figs/nass_hac_lac_block_diagram_without_elec.svg b/paper/figs/nass_hac_lac_block_diagram_without_elec.svg new file mode 100644 index 0000000..47bf84c Binary files /dev/null and b/paper/figs/nass_hac_lac_block_diagram_without_elec.svg differ diff --git a/paper/figs/nass_simscape_3d.png b/paper/figs/nass_simscape_3d.png new file mode 100644 index 0000000..80e476b Binary files /dev/null and b/paper/figs/nass_simscape_3d.png differ diff --git a/paper/figs/nass_simscape_no_sample.png b/paper/figs/nass_simscape_no_sample.png new file mode 100644 index 0000000..4c9ac35 Binary files /dev/null and b/paper/figs/nass_simscape_no_sample.png differ diff --git a/paper/figs/nass_simscape_no_sample_bis.png b/paper/figs/nass_simscape_no_sample_bis.png new file mode 100644 index 0000000..757cb9c Binary files /dev/null and b/paper/figs/nass_simscape_no_sample_bis.png differ diff --git a/paper/figs/picture_nano_hexapod_strut.pdf b/paper/figs/picture_nano_hexapod_strut.pdf new file mode 100644 index 0000000..ac84ac4 Binary files /dev/null and b/paper/figs/picture_nano_hexapod_strut.pdf differ diff --git a/paper/figs/picture_nano_hexapod_strut.svg b/paper/figs/picture_nano_hexapod_strut.svg new file mode 100644 index 0000000..f5e9203 Binary files /dev/null and b/paper/figs/picture_nano_hexapod_strut.svg differ diff --git a/paper/figs/super_element_simscape.pdf b/paper/figs/super_element_simscape.pdf new file mode 100644 index 0000000..e0d045b Binary files /dev/null and b/paper/figs/super_element_simscape.pdf differ diff --git a/paper/figs/super_element_simscape.svg b/paper/figs/super_element_simscape.svg new file mode 100644 index 0000000..1e946b6 Binary files /dev/null and b/paper/figs/super_element_simscape.svg differ diff --git a/paper/figs/super_element_simscape_alt.pdf b/paper/figs/super_element_simscape_alt.pdf new file mode 100644 index 0000000..c81e342 Binary files /dev/null and b/paper/figs/super_element_simscape_alt.pdf differ diff --git a/paper/figs/super_element_simscape_alt.svg b/paper/figs/super_element_simscape_alt.svg new file mode 100644 index 0000000..05f6c46 Binary files /dev/null and b/paper/figs/super_element_simscape_alt.svg differ diff --git a/paper/figs/test_bench_apa_schematic.pdf b/paper/figs/test_bench_apa_schematic.pdf new file mode 100644 index 0000000..1737524 Binary files /dev/null and b/paper/figs/test_bench_apa_schematic.pdf differ diff --git a/paper/figs/test_bench_apa_schematic.svg b/paper/figs/test_bench_apa_schematic.svg new file mode 100644 index 0000000..1b9e273 Binary files /dev/null and b/paper/figs/test_bench_apa_schematic.svg differ diff --git a/paper/ref.bib b/paper/ref.bib index 8036ae0..d03f669 100644 --- a/paper/ref.bib +++ b/paper/ref.bib @@ -55,3 +55,11 @@ url = {https://doi.org/10.1088/2631-8695/abe803}, month = {Feb}, } + +@phdthesis{rankers98_machin, + author = {Rankers, Adrian Mathias}, + school = {University of Twente}, + title = {Machine dynamics in mechatronic systems: An engineering + approach.}, + year = 1998, +} diff --git a/tikz/config.org b/tikz/config.org index 4d1b957..ca46d78 100644 --- a/tikz/config.org +++ b/tikz/config.org @@ -54,53 +54,44 @@ * Tikz related packages #+begin_src latex - \usepackage{tikz} % Tikz - \usepackage{tikzscale} % Used to scale Tikz graphics - \usepackage{adjustbox} % Used to proper positioning of tikz pictures - \usepackage{circuitikz} % Draw electronic circuits - \usepackage{pgfpages} % Needed to use notes - \usepackage{pgfplots} % Used to plot functions +\usepackage{tikz} % Tikz +\usepackage{tikzscale} % Used to scale Tikz graphics +\usepackage{adjustbox} % Used to proper positioning of tikz pictures +\usepackage{circuitikz} % Draw electronic circuits +\usepackage{pgfpages} % Needed to use notes +\usepackage{pgfplots} % Used to plot functions #+end_src * Tikz Libraries #+begin_src latex - \usetikzlibrary{arrows} % Arrow tip library - \usetikzlibrary{arrows.meta} % Add some arrows - \usetikzlibrary{calc} % The library allows advanced Coordinate Calculations - \usetikzlibrary{intersections} % calculate intersections of paths - \usetikzlibrary{matrix} % - \usetikzlibrary{patterns} % - \usetikzlibrary{shapes} % Defines circle and rectangle - \usetikzlibrary{shapes.geometric} % Use for the shape diamond and isosceles triangle - \usetikzlibrary{snakes} % snake=coil and snake=zigzag using segment amplitude=10pt - \usetikzlibrary{positioning} % Additional options for placing nodes - \usetikzlibrary{3d} % Plot 3D shapes - \usetikzlibrary{spy} % Creating a magnified area - \usetikzlibrary{decorations.text} % Used to make text follows a curve - \usetikzlibrary{decorations.pathmorphing} % deformation of a path - \usetikzlibrary{decorations.markings} % Used for spring and damper - \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{fit} % Used to make rectangle as nodes by specifying two points - \usetikzlibrary{backgrounds} % Used to put things under others +\usetikzlibrary{arrows} % Arrow tip library +\usetikzlibrary{arrows.meta} % Add some arrows +\usetikzlibrary{calc} % The library allows advanced Coordinate Calculations +\usetikzlibrary{intersections} % calculate intersections of paths +\usetikzlibrary{matrix} % +\usetikzlibrary{patterns} % +\usetikzlibrary{shapes} % Defines circle and rectangle +\usetikzlibrary{shapes.geometric} % Use for the shape diamond and isosceles triangle +\usetikzlibrary{snakes} % snake=coil and snake=zigzag using segment amplitude=10pt +\usetikzlibrary{positioning} % Additional options for placing nodes +\usetikzlibrary{3d} % Plot 3D shapes +\usetikzlibrary{spy} % Creating a magnified area +\usetikzlibrary{decorations.text} % Used to make text follows a curve +\usetikzlibrary{decorations.pathmorphing} % deformation of a path +\usetikzlibrary{decorations.markings} % Used for spring and damper +\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{fit} % Used to make rectangle as nodes by specifying two points +\usetikzlibrary{backgrounds} % Used to put things under others #+end_src * PGF Plot libraries and config #+begin_src latex - \usepgfplotslibrary{patchplots} - \usepgfplotslibrary{groupplots} +\usepgfplotslibrary{patchplots} +\usepgfplotslibrary{groupplots} - \pgfplotsset{compat=newest} - \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} +\pgfplotsset{compat=newest} +\pgfplotsset{plot coordinates/math parser=false} #+end_src * Setup Arrows style diff --git a/tikz/figs-tikz/nass_concept_schematic.pdf b/tikz/figs-tikz/nass_concept_schematic.pdf new file mode 100644 index 0000000..8f7b68d Binary files /dev/null and b/tikz/figs-tikz/nass_concept_schematic.pdf differ diff --git a/tikz/figs-tikz/nass_concept_schematic.svg b/tikz/figs-tikz/nass_concept_schematic.svg new file mode 100644 index 0000000..b12d950 Binary files /dev/null and b/tikz/figs-tikz/nass_concept_schematic.svg differ diff --git a/tikz/figs-tikz/nass_simscape_no_sample.png b/tikz/figs-tikz/nass_simscape_no_sample.png new file mode 100644 index 0000000..4c9ac35 Binary files /dev/null and b/tikz/figs-tikz/nass_simscape_no_sample.png differ diff --git a/tikz/figs-tikz/simscape_nass.png b/tikz/figs-tikz/simscape_nass.png new file mode 100644 index 0000000..3e0a330 Binary files /dev/null and b/tikz/figs-tikz/simscape_nass.png differ diff --git a/tikz/figures.org b/tikz/figures.org index 65b545f..1950656 100644 --- a/tikz/figures.org +++ b/tikz/figures.org @@ -114,160 +114,170 @@ #+RESULTS: [[file:figs/nass_mechatronics_approach.png]] -* Schematic Representation - NASS -#+begin_src latex :file nass_concept_schematic.pdf - \begin{tikzpicture} - % Parameters - \def\blockw{6.0cm} - \def\blockh{1.2cm} +* HAC-LAC Representation (two columns) +#+begin_src latex :file nass_hac_lac_block_diagram.pdf +\graphicspath{ {/home/thomas/Cloud/thesis/papers/dehaeze21_mechatronics_approach_nass/tikz/figs-tikz} } - % Translation Stage - \begin{scope} - % 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); +\begin{tikzpicture} + \node[inner sep=3pt, fill=white, draw] (plant) at (0, 0) + {\includegraphics[width=4.5cm]{nass_concept_schematic.pdf}}; - % Tilt - \path[] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) % - -- ([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; + \coordinate[] (outputf) at ($(plant.south east)!0.75!(plant.north east)$); + \coordinate[] (outputx) at ($(plant.south east)!0.25!(plant.north east)$); - % Spindle - \coordinate[] (spindlese) at (spindlesw-|spindlene); - \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[block, left=0.6 of plant] (amp) {Amplifier}; + \node[DAC, left=0.6 of amp] (dac) {DAC}; + \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[fill=black!60] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) % - -- ([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) -| cycle; - - % Translation Stage - mobile part - \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; - - % 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} + \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[midway, above]{$\bm{u}^\prime$} (addu.west); + \draw[->] (addu.east) -- node[midway, above]{$\bm{u}$} (dac.west); + \draw[->] (dac.east) -- (amp.west); + \draw[->] (amp.east) -- (plant.west); + \draw[->] (adc.west) -| (Kiff.north); + \draw[->] (Kiff.south) -- (addu.north); + \draw[<-] (pos_error.west) -- node[midway, above]{$\bm{r}_\mu$} ++(-0.8, 0); +\end{tikzpicture} #+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]]