1149 lines
43 KiB
Org Mode
1149 lines
43 KiB
Org Mode
#+TITLE: Mechatronic approach for the design of a Nano Active Stabilization System
|
|
:DRAWER:
|
|
#+SUBTITLE: PhD Thesis
|
|
|
|
#+LANGUAGE: en
|
|
#+EMAIL: dehaeze.thomas@gmail.com
|
|
#+AUTHOR: Dehaeze Thomas
|
|
|
|
#+STARTUP: overview
|
|
#+DATE: {{{time(%Y-%m-%d)}}}
|
|
|
|
#+LATEX_CLASS: scrreprt
|
|
#+LATEX_CLASS_OPTIONS: [a4paper, twoside, 11pt, onecolumn, bibliography=totoc, openright, appendixprefix=true]
|
|
|
|
#+OPTIONS: num:t toc:nil ':t *:t -:t ::t <:nil author:t date:t tags:nil todo:nil |:t H:4 title:nil
|
|
|
|
#+SELECT_TAGS: export
|
|
#+EXCLUDE_TAGS: noexport
|
|
|
|
#+BIND: org-latex-bib-compiler "biber"
|
|
|
|
#+LATEX_HEADER: \input{config.tex}
|
|
#+LATEX_HEADER_EXTRA: \input{config_extra.tex}
|
|
#+LATEX_HEADER_EXTRA: \addbibresource{ref.bib}
|
|
|
|
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
|
|
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
|
|
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
|
|
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
|
|
#+PROPERTY: header-args:latex+ :results file raw replace
|
|
#+PROPERTY: header-args:latex+ :buffer no
|
|
#+PROPERTY: header-args:latex+ :eval no-export
|
|
#+PROPERTY: header-args:latex+ :exports results
|
|
#+PROPERTY: header-args:latex+ :mkdirp yes
|
|
#+PROPERTY: header-args:latex+ :output-dir figs
|
|
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
|
|
:END:
|
|
|
|
* Build :noexport:
|
|
#+NAME: startblock
|
|
#+BEGIN_SRC emacs-lisp :results none
|
|
(add-to-list 'org-latex-classes
|
|
'("scrreprt"
|
|
"\\documentclass{scrreprt}"
|
|
("\\chapter{%s}" . "\\chapter*{%s}")
|
|
("\\section{%s}" . "\\section*{%s}")
|
|
("\\subsection{%s}" . "\\subsection*{%s}")
|
|
("\\paragraph{%s}" . "\\paragraph*{%s}")
|
|
))
|
|
|
|
|
|
;; Remove automatic org heading labels
|
|
(defun my-latex-filter-removeOrgAutoLabels (text backend info)
|
|
"Org-mode automatically generates labels for headings despite explicit use of `#+LABEL`. This filter forcibly removes all automatically generated org-labels in headings."
|
|
(when (org-export-derived-backend-p backend 'latex)
|
|
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
|
|
(add-to-list 'org-export-filter-headline-functions
|
|
'my-latex-filter-removeOrgAutoLabels)
|
|
|
|
;; Remove all org comments in the output LaTeX file
|
|
(defun delete-org-comments (backend)
|
|
(loop for comment in (reverse (org-element-map (org-element-parse-buffer)
|
|
'comment 'identity))
|
|
do
|
|
(setf (buffer-substring (org-element-property :begin comment)
|
|
(org-element-property :end comment))
|
|
"")))
|
|
(add-hook 'org-export-before-processing-hook 'delete-org-comments)
|
|
|
|
;; Use no package by default
|
|
(setq org-latex-packages-alist nil)
|
|
(setq org-latex-default-packages-alist nil)
|
|
|
|
;; Do not include the subtitle inside the title
|
|
(setq org-latex-subtitle-separate t)
|
|
(setq org-latex-subtitle-format "\\subtitle{%s}")
|
|
|
|
(setq org-export-before-parsing-hook '(org-ref-glossary-before-parsing
|
|
org-ref-acronyms-before-parsing))
|
|
#+END_SRC
|
|
|
|
* Useful snippets :noexport:
|
|
- acronyms acrshort:nass acrshort:mimo acrshort:lti [[acrfull:siso][Single-Input Single-Output (SISO)]]
|
|
- glossary terms gls:ka, gls:phi.
|
|
- Footnote[fn:1]
|
|
|
|
* Glossary and Acronyms - Tables :ignore:
|
|
|
|
#+name: glossary
|
|
| label | name | description |
|
|
|-------+-------------------+-----------------------|
|
|
| ka | \ensuremath{k_a} | Actuator Stiffness in |
|
|
| phi | \ensuremath{\phi} | A woody bush |
|
|
|
|
#+name: acronyms
|
|
| key | abbreviation | full form |
|
|
|------+--------------+----------------------------------|
|
|
| mimo | MIMO | Multiple-Inputs Multiple-Outputs |
|
|
| siso | SISO | Single-Input Single-Output |
|
|
| nass | NASS | Nano Active Stabilization System |
|
|
| lti | LTI | Linear Time Invariant |
|
|
|
|
* Title Page :ignore:
|
|
|
|
#+begin_export latex
|
|
\begin{titlepage}
|
|
\vspace*{5cm}
|
|
\makeatletter
|
|
\begin{center}
|
|
\begin{Huge}
|
|
\@title
|
|
\end{Huge}\\[0.1cm]
|
|
%
|
|
\begin{Large}
|
|
\@subtitle
|
|
\end{Large}\\
|
|
%
|
|
\emph{by}\\
|
|
\@author
|
|
%
|
|
\vfill
|
|
A thesis submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (PhD) in Engineering Science\\
|
|
at\\
|
|
\textsc{Liège Université}
|
|
\end{center}
|
|
\makeatother
|
|
\end{titlepage}
|
|
|
|
\newpage
|
|
\null
|
|
\thispagestyle{empty}
|
|
\newpage
|
|
#+end_export
|
|
|
|
* Abstract
|
|
:PROPERTIES:
|
|
:UNNUMBERED: notoc
|
|
:END:
|
|
|
|
* Résumé
|
|
:PROPERTIES:
|
|
:UNNUMBERED: notoc
|
|
:END:
|
|
|
|
* Acknowledgments
|
|
:PROPERTIES:
|
|
:UNNUMBERED: notoc
|
|
:END:
|
|
|
|
* Table of Contents :ignore:
|
|
|
|
#+begin_export latex
|
|
\dominitoc
|
|
\tableofcontents
|
|
|
|
\listoftables
|
|
\listoffigures
|
|
#+end_export
|
|
|
|
* Introduction
|
|
** Context of this thesis / Background and Motivation
|
|
|
|
- ESRF (Figure [[fig:esrf_picture]])
|
|
|
|
#+name: fig:esrf_picture
|
|
#+caption: European Synchrotron Radiation Facility
|
|
#+attr_latex: :width 0.7\linewidth
|
|
[[file:figs/esrf_picture.jpg]]
|
|
|
|
- ID31 and Micro Station (Figure [[fig:id31_microstation_picture]])
|
|
|
|
#+begin_src latex :file id31_microstation_picture.pdf
|
|
\begin{tikzpicture}
|
|
\node[inner sep=0pt, anchor=south west] (photo) at (0,0)
|
|
{\includegraphics[width=0.39\textwidth]{/home/thomas/Cloud/documents/reports/phd-thesis/figs/exp_setup_photo.png}};
|
|
|
|
\coordinate[] (aheight) at (photo.north west);
|
|
\coordinate[] (awidth) at (photo.south east);
|
|
|
|
\coordinate[] (granite) at ($0.1*(aheight)+0.1*(awidth)$);
|
|
\coordinate[] (trans) at ($0.5*(aheight)+0.4*(awidth)$);
|
|
\coordinate[] (tilt) at ($0.65*(aheight)+0.75*(awidth)$);
|
|
\coordinate[] (hexapod) at ($0.7*(aheight)+0.5*(awidth)$);
|
|
\coordinate[] (sample) at ($0.9*(aheight)+0.55*(awidth)$);
|
|
|
|
% Granite
|
|
\node[labelc] at (granite) {1};
|
|
% Translation stage
|
|
\node[labelc] at (trans) {2};
|
|
% Tilt Stage
|
|
\node[labelc] at (tilt) {3};
|
|
% Micro-Hexapod
|
|
\node[labelc] at (hexapod) {4};
|
|
% Sample
|
|
\node[labelc] at (sample) {5};
|
|
|
|
% Axis
|
|
\begin{scope}[shift={($0.07*(aheight)+0.87*(awidth)$)}]
|
|
\draw[->] (0, 0) -- ++(55:0.7) node[above] {$y$};
|
|
\draw[->] (0, 0) -- ++(90:0.9) node[left] {$z$};
|
|
\draw[->] (0, 0) -- ++(-20:0.7) node[above] {$x$};
|
|
\end{scope}
|
|
\end{tikzpicture}
|
|
#+end_src
|
|
|
|
#+name: fig:id31_microstation_picture
|
|
#+caption: Picture of the ID31 Micro-Station with annotations
|
|
#+attr_latex: :width 0.49\linewidth
|
|
#+RESULTS:
|
|
[[file:figs/id31_microstation_picture.png]]
|
|
|
|
Alternative: =id31_microstation_cad_view.png= (CAD view)
|
|
|
|
- X-ray beam + detectors + sample stage (Figure [[fig:id31_beamline_schematic]])
|
|
|
|
#+begin_src latex :file id31_beamline_schematic.pdf
|
|
\begin{tikzpicture}
|
|
% Parameters
|
|
\def\blockw{6.0cm}
|
|
\def\blockh{1.2cm}
|
|
|
|
\def\tiltdeg{3}
|
|
\coordinate[] (rotationpoint) at (0, 4.5*\blockh);
|
|
|
|
\begin{scope}[rotate around={\tiltdeg:(rotationpoint)}]
|
|
% Tilt
|
|
\path[] ([shift=(-120:4*\blockh)]rotationpoint) coordinate(beginarc) arc (-120:-110:4*\blockh) %
|
|
-- ([shift=(-70:4*\blockh)]rotationpoint) 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
|
|
\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;
|
|
|
|
% \draw[dashed, color=black!60] ($(spindletop)+(0, 0.2)$) -- ($(spindlebot)+(0,-0.2)$);
|
|
|
|
% Tilt
|
|
\draw[fill=black!60] ([shift=(-120:4*\blockh)]rotationpoint) coordinate(beginarc) arc (-120:-110:4*\blockh) %
|
|
-- ([shift=(-70:4*\blockh)]rotationpoint) arc (-70:-60:4*\blockh)%
|
|
|- coordinate (tiltne) ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|
|
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) -| cycle;
|
|
|
|
% Micro-Hexapod
|
|
\begin{scope}[shift={(spindletop)}]
|
|
% Parameters definitions
|
|
\def\baseh{0.22*\blockh} % Height of the base
|
|
\def\naceh{0.18*\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);
|
|
|
|
\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}
|
|
|
|
\draw[] (armbasec) -- (armnacer);
|
|
\draw[] (armbasec) -- (armnacel);
|
|
\draw[] (armbasel) -- coordinate(mhexaw) (armnacel);
|
|
\draw[] (armbasel) -- (armnacec);
|
|
\draw[] (armbaser) -- (armnacec);
|
|
\draw[] (armbaser) -- coordinate(mhexae) (armnacer);
|
|
\end{scope}
|
|
\end{scope}
|
|
|
|
% Sample
|
|
\begin{scope}[shift={(uhexatop)}]
|
|
\draw[fill=white] (-0.1*\blockw, 0) coordinate[](samplebot) rectangle coordinate[pos=0.5](samplecenter) node[pos=0.5, above]{Sample} (0.1*\blockw, \blockh) coordinate[](samplene);
|
|
\coordinate[](samplenw) at (-0.1*\blockw, \blockh);
|
|
\end{scope}
|
|
\end{scope}
|
|
|
|
\begin{scope}[shift={(0, -0.3*\blockh)}]
|
|
% 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);
|
|
|
|
% 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=(-107:4.1*\blockh)]rotationpoint) arc (-107:-120:4.1*\blockh);
|
|
\draw[dashed, color=black!60] ([shift=( -73:4.1*\blockh)]rotationpoint) arc (-73:-60:4.1*\blockh);
|
|
\end{scope}
|
|
|
|
% % Vertical line
|
|
% \draw[dashed, color=black] (samplecenter) -- ++(0, -4*\blockh);
|
|
% \begin{scope}[rotate around={\tiltdeg:(samplecenter)}]
|
|
% \draw[dashed, color=black] (samplecenter) -- ++(0, -4*\blockh);
|
|
% \node[] at ($(samplecenter)+(0, -2.3*\blockh)$) {\AxisRotator[rotate=-90]};
|
|
% \node[right, shift={(0.3,0)}] at ($(samplecenter)+(0, -2.3*\blockh)$) {$\theta_z$};
|
|
% \end{scope}
|
|
% \draw[->] ([shift=(-90:3.6*\blockh)]samplecenter) arc (-90:-87:3.6*\blockh) node[right]{$\theta_y$};
|
|
|
|
% Laser
|
|
\begin{scope}[shift={(samplecenter)}]
|
|
\draw[color=red, -<-=0.3] (samplecenter) node[circle, fill=red, inner sep=0pt, minimum size=3pt]{} -- node[pos=0.3, above, color=black]{X-ray} ($(samplecenter)+(1.2*\blockw,0)$);
|
|
\end{scope}
|
|
|
|
% Axis
|
|
\begin{scope}[shift={(-0.35*\blockw, 3*\blockh)}]
|
|
\def\axissize{0.8cm}
|
|
\draw[->] (0, 0) -- ++(0, \axissize) node[right]{$z$};
|
|
\draw[->] (0, 0) -- ++(-\axissize, 0) node[above]{$x$};
|
|
\draw[fill, color=black] (0, 0) circle (0.05*\axissize);
|
|
\node[draw, circle, inner sep=0pt, minimum size=0.4*\axissize, label=right:$y$] (yaxis) at (0, 0){};
|
|
% \node[draw, circle, inner sep=0pt, cross, minimum size=0.4*\axissize, label=left:$y$] (yaxis) at (0, 0){};
|
|
\end{scope}
|
|
|
|
\node[fit={($(-0.6*\blockw, -0.5*\blockh)$) ($(0.6*\blockw, 4*\blockh)$)}, inner sep=0pt, draw, dashed, color=gray, label={Positioning Station}] (possystem) {};
|
|
|
|
\draw[fill=black!30] ($(tyb)+(-5, -1)$) coordinate[](granitesw) rectangle node[pos=0.5]{Granite Frame} ($(measposbot)+(5, 0)$) coordinate[](granitene);
|
|
|
|
% Focusing Optics
|
|
\draw[fill=black!20] ($(granitene)+(-1.5, 3)$) rectangle ++(-1, 2);
|
|
\draw[spring] ($(granitene)+(-2, 0)$) -- ++(0, 3);
|
|
|
|
\node[fit={($(granitene)+(-2.8, -0.2)$) ($(granitene)+(-1.2, 5.2)$)}, inner sep=0pt, draw, dashed, color=gray, label={Focusing Optics}] () {};
|
|
|
|
% Measurement Optics
|
|
\draw[fill=black!20] ($(granitesw)+(1.5, 4)$) rectangle ++(1, 2);
|
|
\draw[spring] ($(granitesw)+(2, 1)$) -- ++(0, 3);
|
|
|
|
\node[fit={($(granitesw)+(2.8, 0.8)$) ($(granitesw)+(1.2, 6.2)$)}, inner sep=0pt, draw, dashed, color=gray, label={Imagery System}] () {};
|
|
\end{tikzpicture}
|
|
#+end_src
|
|
|
|
#+name: fig:id31_beamline_schematic
|
|
#+caption: ID31 Beamline Schematic. With light source, nano-focusing optics, sample stage and detector.
|
|
#+attr_latex: :width \linewidth
|
|
#+RESULTS:
|
|
[[file:figs/id31_beamline_schematic.png]]
|
|
|
|
- Few words about science made on ID31 and why nano-meter accuracy is required
|
|
- Typical experiments (tomography, ...), various samples (up to 50kg)
|
|
- Example of picture obtained (Figure [[fig:id31_tomography_result]])
|
|
|
|
#+name: fig:id31_tomography_result
|
|
#+caption: Image obtained on the ID31 beamline
|
|
#+attr_latex: :width 0.49\linewidth
|
|
[[file:example-image-c.png]]
|
|
|
|
- Explain wanted positioning accuracy and why micro-station cannot have this accuracy (backlash, play, thermal expansion, ...)
|
|
|
|
** Challenge definition
|
|
|
|
#+name: fig:nass_concept_schematic
|
|
#+caption: Nass Concept. 1: micro-station, 2: nano-hexapod, 3: sample, 4: 5DoF metrology
|
|
[[file:figs/nass_concept_schematic.png]]
|
|
|
|
- 6DoF vibration control platform on top of a complex positioning platform
|
|
- *Goal*: Improve accuracy of 6DoF long stroke position platform
|
|
- *Approach*: Mechatronic approach / model based / predictive
|
|
- *Control*: Robust control approach / various payloads.
|
|
First hexapod with control bandwidth higher than the suspension modes that accepts various payloads?
|
|
- Rotation aspect
|
|
- Compactness? (more related to mechanical design)
|
|
|
|
** Literature Review
|
|
|
|
#+name: fig:stewart_platform_examples
|
|
#+caption: Examples of Stewart Platforms
|
|
#+begin_figure
|
|
#+name: fig:stewart_platform_a
|
|
#+attr_latex: :caption \subcaption{Stewart platform based on voice coil actuators}
|
|
#+attr_latex: :options {0.49\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.8\linewidth
|
|
[[file:example-image-a.png]]
|
|
#+end_subfigure
|
|
#+name: fig:stewart_platform_a
|
|
#+attr_latex: :options {0.49\textwidth}
|
|
#+attr_latex: :caption \subcaption{Stewart platform based on piezoelectric actuators}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.8\linewidth
|
|
[[file:example-image-b.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
- Hexapods
|
|
cite:li01_simul_fault_vibrat_isolat_point
|
|
cite:bishop02_devel_precis_point_contr_vibrat
|
|
cite:hanieh03_activ_stewar
|
|
cite:afzali-far16_vibrat_dynam_isotr_hexap_analy_studies
|
|
cite:naves20_desig
|
|
- Positioning stations
|
|
- Mechatronic approach?
|
|
cite:rankers98_machin
|
|
cite:monkhorst04_dynam_error_budget
|
|
cite:jabben07_mechat
|
|
|
|
** Outline of thesis / Thesis Summary / Thesis Contributions
|
|
|
|
*Mechatronic Design Approach* / *Model Based Design*:
|
|
- [[cite:&monkhorst04_dynam_error_budget]] high costs of the design process: the designed system must be *first time right*.
|
|
When the system is finally build, its performance level should satisfy the specifications.
|
|
No significant changes are allowed in the post design phase.
|
|
Because of this, the designer wants to be able to predict the performance of the system a-priori and gain insight in the performance limiting factors of the system.
|
|
|
|
#+begin_src latex :file nass_mechatronics_approach.pdf
|
|
% \graphicspath{ {/home/thomas/Cloud/thesis/papers/dehaeze21_mechatronics_approach_nass/tikz/figs-tikz} }
|
|
|
|
\begin{tikzpicture}
|
|
% Styles
|
|
\tikzset{myblock/.style= {draw, thin, color=white!70!black, fill=white, text width=3cm, align=center, minimum height=1.4cm}};
|
|
\tikzset{mylabel/.style= {anchor=north, below, font=\bfseries\small, color=black, text width=3cm, align=center}};
|
|
\tikzset{mymodel/.style= {anchor=south, above, font=\small, color=black, text width=3cm, align=center}};
|
|
\tikzset{mystep/.style= {->, ultra thick}};
|
|
|
|
% Blocks
|
|
\node[draw, fill=lightblue, align=center, label={[mylabel, text width=8.0cm] Dynamical Models}, minimum height = 4.5cm, text width = 8.0cm] (model) at (0, 0) {};
|
|
|
|
\node[myblock, fill=lightgreen, label={[mylabel] Disturbances}, left = 3 of model.west] (dist) {};
|
|
\node[myblock, fill=lightgreen, label={[mylabel] $\mu$ Station}, below = 2pt of dist] (mustation) {};
|
|
\node[myblock, fill=lightgreen, label={[mylabel] $\nu$ Hexapod}, above = 2pt of dist] (nanohexapod) {};
|
|
|
|
\node[myblock, fill=lightyellow, label={[mylabel] Mech. Design}, above = 1 of model.north] (mechanical) {};
|
|
\node[myblock, fill=lightyellow, label={[mylabel] Instrumentation}, left = 2pt of mechanical] (instrumentation) {};
|
|
\node[myblock, fill=lightyellow, label={[mylabel] FEM}, right = 2pt of mechanical] (fem) {};
|
|
|
|
\node[myblock, fill=lightred, label={[mylabel] Test Benches}, right = 3 of model.east] (testbenches) {};
|
|
\node[myblock, fill=lightred, label={[mylabel] Assembly}, above = 2pt of testbenches] (mounting) {};
|
|
\node[myblock, fill=lightred, label={[mylabel] Implementation}, below = 2pt of testbenches] (implementation) {};
|
|
|
|
% Text
|
|
\node[anchor=south, above, text width=8cm, align=left] at (model.south) {Extensive use of models for:\begin{itemize}[noitemsep,topsep=5pt]\item Extraction of transfer functions \\ \item Choice of appropriate control architecture \\ \item Tuning of control laws \\ \item Closed loop simulations \\ \item Noise budgets / Evaluation of performances \\ \item Sensibility to parameters / disturbances\end{itemize}\centerline{Models are at the core the mecatronic approach!}};
|
|
|
|
\node[mymodel] at (mustation.south) {Multiple stages \\ Complex dynamics};
|
|
\node[mymodel] at (dist.south) {Ground motion \\ Position errors};
|
|
\node[mymodel] at (nanohexapod.south) {Different concepts \\ Sensors, Actuators};
|
|
|
|
\node[mymodel] at (instrumentation.south) {Sensors, Actuators \\ Electronics};
|
|
\node[mymodel] at (mechanical.south) {Proper integration \\ Ease of assembly};
|
|
\node[mymodel] at (fem.south) {Optimize key parts: \\ Joints, Plates, APA};
|
|
|
|
\node[mymodel] at (mounting.south) {Struts \\ Nano-Hexapod};
|
|
\node[mymodel] at (testbenches.south) {Instrumentation \\ APA, Struts};
|
|
\node[mymodel] at (implementation.south) {Control tests \\ $\mu$ Station};
|
|
|
|
% Links
|
|
\draw[->] (dist.east) -- node[above, midway]{{\small Measurements}} node[below,midway]{{\small Spectral Analysis}} (dist.east-|model.west);
|
|
\draw[->] (mustation.east) -- node[above, midway]{{\small Measurements}} node[below, midway]{{\small CAD Model}} (mustation.east-|model.west);
|
|
|
|
\draw[->] ($(nanohexapod.east-|model.west)-(0, 0.15)$) -- node[below, midway]{{\small Optimization}} ($(nanohexapod.east)-(0, 0.15)$);
|
|
\draw[<-] ($(nanohexapod.east-|model.west)+(0, 0.15)$) -- node[above, midway]{{\small Model}} ($(nanohexapod.east)+(0, 0.15)$);
|
|
|
|
\draw[->] ($(fem.south|-model.north)+(0.15, 0)$) -- node[right, midway]{{\small Specif.}} ($(fem.south)+(0.15,0)$);
|
|
\draw[<-] ($(fem.south|-model.north)-(0.15, 0)$) -- node[left, midway,align=right]{{\small Super}\\{\small Element}} ($(fem.south)-(0.15,0)$);
|
|
|
|
\draw[->] ($(mechanical.south|-model.north)+(0.15, 0)$) -- node[right, midway]{{\small Specif.}} ($(mechanical.south)+(0.15,0)$);
|
|
\draw[<-] ($(mechanical.south|-model.north)-(0.15, 0)$) -- node[left, midway,align=right]{{\small CAD}\\{\small model}} ($(mechanical.south)-(0.15,0)$);
|
|
|
|
\draw[->] ($(instrumentation.south|-model.north)+(0.15, 0)$) -- node[right, midway]{{\small Specif.}} ($(instrumentation.south)+(0.15,0)$);
|
|
\draw[<-] ($(instrumentation.south|-model.north)-(0.15, 0)$) -- node[left, midway]{{\small Model}} ($(instrumentation.south)-(0.15,0)$);
|
|
|
|
\draw[->] ($(mounting.west-|model.east)+(0, 0.15)$) -- node[above, midway]{{\small Requirements}} ($(mounting.west)+(0, 0.15)$);
|
|
\draw[<-] ($(mounting.west-|model.east)-(0, 0.15)$) -- node[below, midway]{{\small Model refinement}} ($(mounting.west)-(0, 0.15)$);
|
|
|
|
\draw[->] ($(testbenches.west-|model.east)+(0, 0.15)$) -- node[above, midway]{{\small Control Laws}} ($(testbenches.west)+(0, 0.15)$);
|
|
\draw[<-] ($(testbenches.west-|model.east)-(0, 0.15)$) -- node[below, midway]{{\small Model refinement}} ($(testbenches.west)-(0, 0.15)$);
|
|
|
|
\draw[->] ($(implementation.west-|model.east)+(0, 0.15)$) -- node[above, midway]{{\small Control Laws}} ($(implementation.west)+(0, 0.15)$);
|
|
\draw[<-] ($(implementation.west-|model.east)-(0, 0.15)$) -- node[below, midway]{{\small Model refinement}} ($(implementation.west)-(0, 0.15)$);
|
|
|
|
% Main steps
|
|
\node[font=\bfseries, rotate=90, anchor=south, above] (conceptual_phase_node) at (dist.west) {1 - Conceptual Phase};
|
|
\node[font=\bfseries, above] (detailed_phase_node) at (mechanical.north) {2 - Detail Design Phase};
|
|
\node[font=\bfseries, rotate=-90, anchor=south, above] (implementation_phase_node) at (testbenches.east) {3 - Experimental Phase};
|
|
\begin{scope}[on background layer]
|
|
\node[fit={(conceptual_phase_node.north|-nanohexapod.north) (mustation.south east)}, fill=lightgreen!50!white, draw, inner sep=2pt] (conceptual_phase) {};
|
|
\node[fit={(detailed_phase_node.north-|instrumentation.west) (fem.south east)}, fill=lightyellow!50!white, draw, inner sep=2pt] (detailed_phase) {};
|
|
\node[fit={(implementation_phase_node.north|-mounting.north) (implementation.south west)}, fill=lightred!50!white, draw, inner sep=2pt] (implementation_phase) {};
|
|
% \node[above left] at (dob.south east) {DOB};
|
|
\end{scope}
|
|
|
|
% Between main steps
|
|
\draw[mystep, postaction={decorate,decoration={raise=1ex,text along path,text align=center,text={Concept Validation}}}] (conceptual_phase.north) to[out=90, in=180] (detailed_phase.west);
|
|
\draw[mystep, postaction={decorate,decoration={raise=1ex,text along path,text align=center,text={Procurement}}}] (detailed_phase.east) to[out=0, in=90] (implementation_phase.north);
|
|
|
|
% % Inside Model
|
|
% \node[inner sep=1pt, outer sep=6pt, anchor=north west, draw, fill=white, thin] (multibodymodel) at ($(model.north west) - (0, 0.5)$)
|
|
% {\includegraphics[width=5.6cm]{simscape_nano_hexapod.png}};
|
|
|
|
% \node[inner sep=1pt, outer sep=6pt, anchor=south west, draw, fill=white, thin] (simscape) at (model.south west)
|
|
% {\includegraphics[width=5.6cm]{simscape_picture.jpg}};
|
|
|
|
% % Feedback Model
|
|
% \node[inner sep=3pt, outer sep=6pt, anchor=north east, draw, fill=white, thin] (simscape_sim) at ($(model.north east) - (0, 0.5)$)
|
|
% {\includegraphics[width=3.6cm]{simscape_simulations.pdf}};
|
|
|
|
% % FeedBack
|
|
% \node[inner sep=3pt, outer sep=6pt, anchor=south east, draw, fill=white, thin] (feedback) at (model.south east)
|
|
% {\includegraphics[width=3.6cm]{classical_feedback_small.pdf}};
|
|
\end{tikzpicture}
|
|
#+end_src
|
|
|
|
#+name: fig:nass_mechatronics_approach
|
|
#+caption: Overview of the mechatronic approach used for the Nano-Active-Stabilization-System
|
|
#+attr_latex: :width \linewidth
|
|
#+RESULTS:
|
|
[[file:figs/nass_mechatronics_approach.png]]
|
|
|
|
|
|
* Conceptual Design Development
|
|
\minitoc
|
|
**** Abstract
|
|
|
|
Schematic that summarizes this phase.
|
|
Uniaxial => Rotation => Multi body => Simulations
|
|
|
|
** Constrains on the system
|
|
|
|
- Size
|
|
- Payload
|
|
- Connections to samples
|
|
- ... should justify the nano-hexapod design
|
|
- choice of parallel architecture
|
|
|
|
- [ ] Picture/schematic of the micro-station with indicated location of Nano-Hexapod
|
|
|
|
** Uni-axial Model
|
|
*** Introduction :ignore:
|
|
|
|
- Explain what we want to capture with this model
|
|
- Schematic of the uniaxial model (with X-ray)
|
|
- Identification of disturbances (ground motion, stage vibrations)
|
|
- Optimal nano-hexapod stiffness/actuator: Voice coil VS Piezo (conclusion?)
|
|
- Control architecture (IFF, DVF, ...)?
|
|
- Conclusion
|
|
|
|
#+begin_src latex :file mass_spring_damper_nass.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}$};
|
|
|
|
\coordinate (mustation) at (0.9, 1.6);
|
|
|
|
\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.2) rectangle (0.9, 2.0) node[pos=0.5]{$\scriptstyle\nu\text{-hexapod}$};
|
|
\draw[dashed] (0.9, 2.0) -- ++(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, right=0.1](f);
|
|
|
|
% \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}, right=0.6 of mustation] (ctrl) {$K$};
|
|
|
|
% \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) |- (f) node[above right]{$u$};
|
|
% ====================
|
|
\end{tikzpicture}
|
|
#+end_src
|
|
|
|
#+name: fig:mass_spring_damper_nass
|
|
#+caption: 3-DoF uniaxial mass-spring-damper model of the NASS
|
|
#+RESULTS:
|
|
[[file:figs/mass_spring_damper_nass.png]]
|
|
|
|
*** Noise Budgeting
|
|
|
|
#+name: fig:measurement_microstation_vibration_picture
|
|
#+caption: Setup used to measure the micro-station vibrations during operation
|
|
#+attr_latex: :width 0.4\linewidth
|
|
[[file:measurement_microstation_vibration_picture.jpg]]
|
|
|
|
#+name: fig:asd_ground_motion_ustation_dist
|
|
#+caption: Amplitude Spectral density of the measured disturbance sources
|
|
#+attr_latex: :width 0.49\linewidth
|
|
[[file:example-image-b.png]]
|
|
|
|
*** Effect of support compliance
|
|
[[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_support.org::+TITLE: Effect of Uncertainty on the support's dynamics on the isolation platform dynamics][study]]
|
|
|
|
- *goal*: make the nano-hexapod independent of the support compliance
|
|
- Simple 2DoF model
|
|
- Generalized to any support compliance
|
|
- *conclusion*: frequency of nano-hexapod resonances should be lower than first suspension mode of the support
|
|
|
|
*** Effect of payload dynamics
|
|
[[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_payload.org::+TITLE: Effect of Uncertainty on the payload's dynamics on the isolation platform dynamics][study]]
|
|
|
|
- *goal*: be robust to a change of payload
|
|
- Simple 2DoF model
|
|
- Generalized to any payload dynamics
|
|
|
|
*** Active Damping
|
|
|
|
Conclusion: IFF is better for this application
|
|
|
|
**** Integral Force Feedback
|
|
|
|
- Mass spring damper model
|
|
- Root Locus
|
|
- Sensitivity to disturbances
|
|
|
|
**** Direct Velocity Feedback
|
|
|
|
- Mass spring damper model
|
|
- Root Locus
|
|
- Sensitivity to disturbances
|
|
|
|
|
|
** Effect of rotation
|
|
*** Introduction :ignore:
|
|
|
|
[[cite:&dehaeze20_activ_dampin_rotat_platf_integ_force_feedb;&dehaeze21_activ_dampin_rotat_platf_using]]
|
|
|
|
*** X-Y rotating platform model
|
|
|
|
- x-y-Rz model
|
|
- explain why this is representing the NASS
|
|
- Equation of motion
|
|
- Centrifugal forces, Coriolis
|
|
|
|
#+begin_src latex :file 2dof_rotating_system.pdf
|
|
\begin{tikzpicture}
|
|
% Angle
|
|
\def\thetau{25}
|
|
|
|
% Rotational Stage
|
|
\draw[fill=black!60!white] (0, 0) circle (4.3);
|
|
\draw[fill=black!40!white] (0, 0) circle (3.8);
|
|
|
|
% Label
|
|
\node[anchor=north west, rotate=\thetau] at (-2.5, 2.5) {\small Rotating Stage};
|
|
|
|
% Rotating Scope
|
|
\begin{scope}[rotate=\thetau]
|
|
% Rotating Frame
|
|
\draw[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6);
|
|
% Label
|
|
\node[anchor=north west, rotate=\thetau] at (-2.6, 2.6) {\small Suspended Platform};
|
|
|
|
% Mass
|
|
\draw[fill=white] (-1, -1) rectangle (1, 1);
|
|
% Label
|
|
\node[anchor=south west, rotate=\thetau] at (-1, -1) {\small Payload};
|
|
|
|
% Attached Points
|
|
\node[] at (-1, 0){$\bullet$};
|
|
\draw[] (-1, 0) -- ++(-0.2, 0) coordinate(cu);
|
|
\draw[] ($(cu) + (0, -0.8)$) coordinate(actu) -- ($(cu) + (0, 0.8)$) coordinate(ku);
|
|
\node[] at (0, -1){$\bullet$};
|
|
\draw[] (0, -1) -- ++(0, -0.2) coordinate(cv);
|
|
\draw[] ($(cv) + (-0.8, 0)$)coordinate(kv) -- ($(cv) + (0.8, 0)$) coordinate(actv);
|
|
|
|
% Spring and Actuator for U
|
|
\draw[actuator={0.6}{0.2}] (actu) -- node[above=0.1, rotate=\thetau]{$F_u$} (actu-|-2.6,0);
|
|
\draw[spring=0.2] (ku) -- node[above=0.1, rotate=\thetau]{$k$} (ku-|-2.6,0);
|
|
\draw[damper={8}{8}] (cu) -- node[above left=0.2 and -0.1, rotate=\thetau]{$c$} (cu-|-2.6,0);
|
|
|
|
\draw[actuator={0.6}{0.2}] (actv) -- node[left, rotate=\thetau]{$F_v$} (actv|-0,-2.6);
|
|
\draw[spring=0.2] (kv) -- node[left, rotate=\thetau]{$k$} (kv|-0,-2.6);
|
|
\draw[damper={8}{8}] (cv) -- node[left=0.1, rotate=\thetau]{$c$} (cv|-0,-2.6);
|
|
\end{scope}
|
|
|
|
% Inertial Frame
|
|
\draw[->] (-4, -4) -- ++(2, 0) node[below]{$\vec{i}_x$};
|
|
\draw[->] (-4, -4) -- ++(0, 2) node[left]{$\vec{i}_y$};
|
|
\draw[fill, color=black] (-4, -4) circle (0.06);
|
|
\node[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:$\vec{i}_z$] at (-4, -4){};
|
|
|
|
\draw[->] (0, 0) node[above left, rotate=\thetau]{$\vec{i}_w$} -- ++(\thetau:2) node[above, rotate=\thetau]{$\vec{i}_u$};
|
|
\draw[->] (0, 0) -- ++(\thetau+90:2) node[left, rotate=\thetau]{$\vec{i}_v$};
|
|
\draw[fill, color=black] (0,0) circle (0.06);
|
|
\node[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){};
|
|
\draw[dashed] (0, 0) -- ++(2, 0);
|
|
\draw[] (1.5, 0) arc (0:\thetau:1.5) node[midway, right]{$\theta$};
|
|
|
|
\draw[->] (3.5, 0) arc (0:40:3.5) node[midway, left]{$\Omega$};
|
|
\end{tikzpicture}
|
|
#+end_src
|
|
|
|
#+name: fig:2dof_rotating_system
|
|
#+caption: Mass spring damper model of an X-Y stage on top of a rotating stage
|
|
#+RESULTS:
|
|
[[file:figs/2dof_rotating_system.png]]
|
|
|
|
*** Effect of rotational velocity on the system dynamics
|
|
|
|
- Campbell diagram
|
|
|
|
*** Decentralized Integral Force Feedback
|
|
|
|
- Control diagram
|
|
- Root Locus: unstable with pure IFF
|
|
|
|
*** Two proposed modification of IFF
|
|
|
|
- Comparison of parallel stiffness and change of controller
|
|
- Transmissibility
|
|
|
|
*** Conclusion
|
|
|
|
- problem with voice coil actuator
|
|
- Two solutions: add parallel stiffness, or change controller
|
|
- Conclusion: minimum stiffness is required
|
|
- APA is a nice architecture for parallel stiffness + integrated force sensor (have to speak about IFF before that)
|
|
|
|
** Multi Body Model - Nano Hexapod
|
|
*** Introduction :ignore:
|
|
|
|
- What we want to capture with this model
|
|
- Explain what is a multi body model (rigid body, springs, etc...)
|
|
- Key elements (plates, joints, struts): for now simplistic model (rigid body elements, perfect joints, ...), but in next section, FEM will be used
|
|
- Matlab/Simulink developed toolbox for the study of Stewart platforms
|
|
|
|
*** Stewart Platform Architecture
|
|
|
|
#+name: fig:stewart_platform_architecture
|
|
#+caption: Stewart Platform Architecture
|
|
#+begin_figure
|
|
#+name: fig:stewart_architecture_example
|
|
#+attr_latex: :caption \subcaption{Initial position}
|
|
#+attr_latex: :options {0.49\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.8\linewidth
|
|
[[file:stewart_architecture_example.png]]
|
|
#+end_subfigure
|
|
#+name: fig:stewart_architecture_example_pose
|
|
#+attr_latex: :options {0.49\textwidth}
|
|
#+attr_latex: :caption \subcaption{After some motion}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.8\linewidth
|
|
[[file:stewart_architecture_example_pose.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
|
|
- Little review
|
|
- explain key elements:
|
|
- two plates
|
|
- joints
|
|
- actuators
|
|
- explain advantages compared to serial architecture
|
|
|
|
*** Kinematics
|
|
|
|
- Well define elements, frames, ...
|
|
- Derivation of jacobian matrices: for forces and for displacement
|
|
- Explain this is true for small displacements (show how small)
|
|
|
|
*** Model of an Amplified Piezoelectric Actuator
|
|
|
|
- APA test bench
|
|
- Piezoelectric effects
|
|
- mass spring damper representation (2dof)
|
|
- Compare the model and the experiment
|
|
|
|
*** Dynamics
|
|
|
|
- Effect of joints stiffnesses
|
|
|
|
#+name: fig:simscape_nano_hexapod
|
|
#+caption: 3D view of the multi-body model of the Nano-Hexapod (simplified)
|
|
#+attr_latex: :width \linewidth
|
|
[[file:figs/simscape_nano_hexapod.png]]
|
|
|
|
** Multi Body Model - Micro Station
|
|
*** Introduction :ignore:
|
|
|
|
#+name: fig:simscape_first_model_screenshot
|
|
#+caption: 3D view of the multi-body model of the micro-station
|
|
#+attr_latex: :width 0.7\linewidth
|
|
[[file:figs/simscape_first_model_screenshot.jpg]]
|
|
|
|
*** Kinematics
|
|
|
|
- Small overview of each stage and associated stiffnesses / inertia
|
|
- schematic that shows to considered DoF
|
|
- import from CAD
|
|
|
|
*** Modal Analysis
|
|
[[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-measurements/modal-analysis/index.org][study]]
|
|
|
|
- Picture of the experimental setup
|
|
- Location of accelerometers
|
|
- Show obtained modes
|
|
- Validation of rigid body assumption
|
|
- Explain how this helps tuning the multi-body model
|
|
|
|
*** Validation of the Model
|
|
|
|
- Most important metric: support compliance
|
|
- Compare model and measurement
|
|
|
|
** Control Architecture
|
|
*** Introduction :ignore:
|
|
|
|
Discussion of:
|
|
- Transformation matrices / control architecture
|
|
- Control in the frame of struts or cartesian?
|
|
- Effect of rotation on IFF? => APA
|
|
- HAC-LAC
|
|
|
|
*** High Authority Control - Low Authority Control (HAC-LAC)
|
|
|
|
- general idea
|
|
- case for parallel manipulator: decentralized LAC + centralized HAC
|
|
|
|
*** Decoupling Strategies for parallel manipulators
|
|
[[file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org::+TITLE: Diagonal control using the SVD and the Jacobian Matrix][study]]
|
|
|
|
- Jacobian matrices, CoK, CoM, ...
|
|
- Discussion of cubic architecture
|
|
- SVD, Modal, ...
|
|
|
|
*** Decentralized Integral Force Feedback (LAC)
|
|
|
|
- Root Locus
|
|
- Damping optimization
|
|
|
|
*** Control Kinematics
|
|
|
|
- Explain how the position error can be expressed in the frame of the nano-hexapod
|
|
- block diagram
|
|
- Explain how to go from external metrology to the frame of the nano-hexapod
|
|
|
|
*** Decoupled Dynamics
|
|
|
|
- Centralized HAC
|
|
- Control in the frame of the struts
|
|
- Effect of IFF
|
|
|
|
*** Centralized Position Controller (HAC)
|
|
|
|
- Decoupled plant
|
|
- Controller design
|
|
|
|
** Simulations - Concept Validation
|
|
*** Introduction :ignore:
|
|
|
|
- Tomography experiment
|
|
- Open VS Closed loop results
|
|
- *Conclusion*: concept validation
|
|
nano hexapod architecture with APA
|
|
decentralized IFF + centralized HAC
|
|
|
|
#+name: fig:simscape_nass_final
|
|
#+caption: 3D view of the multi-body model including the micro-station, the nano-hexapod and the associated metrology
|
|
#+attr_latex: :width \linewidth
|
|
[[file:figs/simscape_nass_final.png]]
|
|
|
|
** Conclusion
|
|
|
|
|
|
* Detailed Design
|
|
\minitoc
|
|
**** Abstract
|
|
|
|
CAD view of the nano-hexapod with key components:
|
|
- plates
|
|
- flexible joints
|
|
- APA
|
|
- required instrumentation (ADC, DAC, Speedgoat, Amplifiers, Force Sensor instrumentation, ...)
|
|
|
|
** Optimal Nano-Hexapod geometry
|
|
*** Introduction :ignore:
|
|
- [ ] Geometry?
|
|
- [ ] Cubic architecture?
|
|
- [ ] Kinematics
|
|
- [ ] Trade-off for the strut orientation
|
|
- [ ] Sensors required
|
|
|
|
*** Optimal strut orientation
|
|
|
|
*** Cubic Architecture: a Special Case?
|
|
|
|
** Including Flexible elements in the Multi-body model
|
|
*** Introduction :ignore:
|
|
Reduced order flexible bodies [[cite:brumund21_multib_simul_reduc_order_flexib_bodies_fea]]
|
|
- Used with APA, Flexible joints, Plates
|
|
|
|
*** Reduced order flexible bodies
|
|
|
|
- Quick explanation of the theory
|
|
- Implementation with Ansys (or Comsol) and Simscape
|
|
|
|
*** Numerical Validation
|
|
|
|
- Numerical Validation Ansys VS Simscape (APA)
|
|
- Figure with 0 and 1kg mass
|
|
|
|
*** Experimental Validation
|
|
|
|
- Test bench
|
|
- Obtained transfer functions and comparison with Simscape model with reduced order flexible body
|
|
|
|
** Amplified Piezoelectric Actuator
|
|
*** Introduction :ignore:
|
|
[[file:~/Cloud/work-projects/ID31-NASS/matlab/test-bench-apa/index.org::+TITLE: Test Bench - Amplified Piezoelectric Actuator][study 1]], [[file:~/Cloud/work-projects/ID31-NASS/matlab/test-bench-apa300ml/test-bench-apa300ml.org::+TITLE: Nano-Hexapod Struts - Test Bench][study 2]]
|
|
|
|
#+name: fig:apa_schmeatic
|
|
#+caption: Schematical representation of an Amplified Piezoelectric Actuator
|
|
#+attr_latex: :width 0.49\linewidth
|
|
[[file:example-image-a.png]]
|
|
|
|
- First tests with the APA95ML
|
|
|
|
*** Model
|
|
|
|
Piezoelectric equations
|
|
|
|
#+name: fig:apa_schmeatic_2dof
|
|
#+caption: Schematical representation of a 2DoF model of an Amplified Piezoelectric Actuator
|
|
#+attr_latex: :width 0.49\linewidth
|
|
[[file:example-image-a.png]]
|
|
|
|
#+name: fig:apa_schmeatic_fem
|
|
#+caption: Schematical representation of a FEM of an Amplified Piezoelectric Actuator
|
|
#+attr_latex: :width 0.49\linewidth
|
|
[[file:example-image-b.png]]
|
|
|
|
- FEM
|
|
- Simscape model
|
|
- (2 DoF, FEM, ...)
|
|
|
|
#+name: fig:root_locus_iff_rot_stiffness
|
|
#+caption: Limitation of the attainable damping due to the APA design
|
|
[[file:figs/root_locus_iff_rot_stiffness.png]]
|
|
|
|
*** Experimental System Identification
|
|
|
|
- Experimental validation (granite test bench)
|
|
- Electrical parameters
|
|
- Required instrumentation to read force sensor?
|
|
- Add resistor to include high pass filtering: no risk of saturating the ADC
|
|
- Estimation of piezoelectric parameters
|
|
|
|
*** Validation with Simscape model
|
|
|
|
- Tuned Simscape model
|
|
- IFF results: OK
|
|
|
|
** Flexible Joints
|
|
*** Introduction :ignore:
|
|
|
|
*** Effect of flexible joint characteristics on obtained dynamics
|
|
|
|
- Based on Simscape model
|
|
- Effect of axial stiffness, bending stiffness, ...
|
|
- Obtained specifications (trade-off)
|
|
|
|
|
|
*** Flexible joint geometry optimization
|
|
|
|
- Chosen geometry
|
|
- Optimisation with Ansys
|
|
- Validation with Simscape model
|
|
|
|
*** Experimental identification
|
|
|
|
- Experimental validation, characterisation ([[file:~/Cloud/work-projects/ID31-NASS/matlab/test-bench-flexible-joints-adv/bending.org::+TITLE: Flexible Joint - Measurement of the Bending Stiffness][study]])
|
|
- Visual inspection
|
|
- Test bench
|
|
- Obtained results
|
|
|
|
** Instrumentation
|
|
*** Introduction :ignore:
|
|
|
|
*** DAC
|
|
|
|
|
|
*** ADC
|
|
|
|
Force sensor
|
|
|
|
*** Voltage amplifier ([[https://research.tdehaeze.xyz/test-bench-pd200/][link]])
|
|
|
|
- Test Bench: capacitive load, ADC, DAC, Instrumentation amplifier
|
|
- Noise measurement
|
|
- Transfer function measurement
|
|
|
|
*** Encoder ([[https://research.tdehaeze.xyz/test-bench-vionic/][link]])
|
|
- Noise measurement
|
|
|
|
** Obtained Design
|
|
|
|
- CAD view of the nano-hexapod
|
|
- Chosen geometry, materials, ease of mounting, cabling, ...
|
|
|
|
* Experimental Validation
|
|
\minitoc
|
|
**** Abstract
|
|
|
|
Schematic representation of the experimental validation process.
|
|
- APA
|
|
- Strut
|
|
- Nano-hexapod on suspended table
|
|
- Nano-hexapod with Spindle
|
|
|
|
** Amplified Piezoelectric Actuator ([[https://research.tdehaeze.xyz/test-bench-apa300ml/][link]])
|
|
|
|
APA alone:
|
|
- *Goal*: Tune model of APA
|
|
- [ ] FRF and fit with FEM model
|
|
- [ ] Show all six FRF and how close they are
|
|
- [ ] IFF
|
|
|
|
** Struts
|
|
|
|
Strut (APA + joints):
|
|
- [ ] FRF, tune model
|
|
- [ ] Issue with encoder (comparison with axial motion)
|
|
- [ ] IFF
|
|
|
|
** Nano-Hexapod
|
|
|
|
Mounting
|
|
|
|
Test bench on top of soft table:
|
|
- *Goal*: Tune model of nano-hexapod, validation of dynamics
|
|
- modal analysis soft table (first mode at xxx Hz => rigid body in Simscape)
|
|
- FRF + comp model (multiple masses)
|
|
- IFF and robustness to change of mass
|
|
|
|
** Rotating Nano-Hexapod
|
|
|
|
- *Goal*: validation of control strategy with rotation
|
|
- Interferometers to have more stroke
|
|
|
|
#+name: fig:rot_nano_hexapod_bench_schematic
|
|
#+caption: Schematic of the rotating nano-hexapod test bench
|
|
#+attr_latex: :width 0.49\linewidth
|
|
[[file:example-image-a.png]]
|
|
|
|
** ID31 Micro Station
|
|
|
|
- *Goal*: full validation without the full metrology
|
|
|
|
* Conclusion and Future Work
|
|
|
|
* Appendix :ignore:
|
|
#+latex: \appendix
|
|
|
|
* Stewart Platform - Kinematics
|
|
* Comments on something
|
|
* Bibliography :ignore:
|
|
#+latex: \printbibliography[heading=bibintoc,title={Bibliography}]
|
|
|
|
* List of Publications
|
|
:PROPERTIES:
|
|
:UNNUMBERED: notoc
|
|
:END:
|
|
|
|
#+begin_export latex
|
|
\begin{refsection}[ref.bib]
|
|
% List all papers even if not cited
|
|
\nocite{*}
|
|
% Sort by year
|
|
\newrefcontext[sorting=ynt]
|
|
% Articles
|
|
\printbibliography[keyword={publication},heading={subbibliography},title={Articles},env=mypubs,type={article}]
|
|
% Proceedings
|
|
\printbibliography[keyword={publication},heading={subbibliography},title={In Proceedings},env=mypubs,type={inproceedings}]
|
|
\end{refsection}
|
|
#+end_export
|
|
|
|
* Glossary :ignore:
|
|
#+latex: \printglossary[type=\acronymtype]
|
|
#+latex: \printglossary
|
|
|
|
* Footnotes
|
|
|
|
[fn:1]this is a footnote with citation [[cite:&dehaeze21_mechat_approac_devel_nano_activ_stabil_system]].
|