2499 lines
140 KiB
Org Mode
2499 lines
140 KiB
Org Mode
#+TITLE: Nano Active Stabilization System - Introduction
|
||
:DRAWER:
|
||
#+LANGUAGE: en
|
||
#+EMAIL: dehaeze.thomas@gmail.com
|
||
#+AUTHOR: Dehaeze Thomas
|
||
|
||
#+BIND: org-latex-image-default-option "scale=1"
|
||
#+BIND: org-latex-image-default-width ""
|
||
|
||
#+LATEX_CLASS: scrreprt
|
||
#+LATEX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]
|
||
#+LATEX_HEADER: \input{preamble.tex}
|
||
#+LATEX_HEADER_EXTRA: \input{preamble_extra.tex}
|
||
#+LATEX_HEADER_EXTRA: \bibliography{nass-introduction.bib}
|
||
|
||
#+BIND: org-latex-bib-compiler "biber"
|
||
|
||
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||
#+PROPERTY: header-args:matlab+ :comments org
|
||
#+PROPERTY: header-args:matlab+ :exports none
|
||
#+PROPERTY: header-args:matlab+ :results none
|
||
#+PROPERTY: header-args:matlab+ :eval no-export
|
||
#+PROPERTY: header-args:matlab+ :noweb yes
|
||
#+PROPERTY: header-args:matlab+ :mkdirp yes
|
||
#+PROPERTY: header-args:matlab+ :output-dir figs
|
||
#+PROPERTY: header-args:matlab+ :tangle no
|
||
|
||
#+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+ :tangle 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:
|
||
|
||
#+latex: \clearpage
|
||
|
||
* Build :noexport:
|
||
#+NAME: startblock
|
||
#+BEGIN_SRC emacs-lisp :results none :tangle no
|
||
(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
|
||
|
||
* Notes :noexport:
|
||
|
||
Prefix is =introduction=
|
||
|
||
** Figures [11/11]
|
||
*** DONE [#C] Make all the figures
|
||
CLOSED: [2024-05-30 Thu 08:36]
|
||
|
||
1. [X] Map with all the Synchrotrons in the World: =introduction_synchrotrons=
|
||
Show Synchrotron going to 4th generation, Highlight ESRF
|
||
2. [X] =introduction_esrf_schematic=
|
||
highlight Linac, Booster, Storage ring, ID31 beamline
|
||
3. [X] Good Picture of ESRF: =introduction_esrf_picture=
|
||
4. [X] Synchrotron Moore law =fig:introduction_moore_law_brillance=
|
||
5. [X] Picture of the beam =introduction_beam_3rd_generation= and =introduction_beam_4th_generation=
|
||
6. [X] ID31/typical beamline layout with: =introduction_id31_layout=
|
||
- Insertion device
|
||
7. [X] CAD view of the ID31 EH: =introduction_id31_cad=
|
||
- Highlight focussing optics, positioning station, sample, detector
|
||
- Show X-Y-Z vectors
|
||
8. [X] Micro-Station with each stage in different color and associated motions
|
||
- [X] =introduction_micro_station_dof=
|
||
- [X] =introduction_id31_microstation_picture=
|
||
9. [X] Typical experiment (ideally from ID31 experiments):
|
||
- [X] tomography: =introduction_exp_tomography= and =introduction_exp_tomography_image=
|
||
- [X] scanning: =introduction_exp_scanning= and =introduction_exp_scanning_image=
|
||
10. [X] Typical linear stage =introduction_translation_stage=
|
||
- [X] Show: stepper motor, ball screw, linear guides
|
||
- [X] Show: straightness, flatness, etc...
|
||
11. [X] Flexure based stage =introduction_flexure_stage=
|
||
12. [X] NASS concept: =introduction_nass_concept_schematic=
|
||
- 4 elements: micro-station, nano-hexapod, metrology, control system
|
||
13. [X] NASS metrology schematic: =introduction_nass_metrology=
|
||
- Nano-hexapod, sample, spherical mirror with flat bottom surface
|
||
- several fiber interferometers with tracking systems (arrows showing that they can move in Rx/Ry)
|
||
14. [ ] straightness, flatness and issue with stack stages? (already have a figure comparing serial vs parallel kinematics)
|
||
15. [X] Show some passive end-stations =introduction_passive_stations=
|
||
- [X] ID16b
|
||
- [X] ID11
|
||
16. [X] Show passive end-stations with extral metrology =introduction_metrology_stations=
|
||
17. [X] Show active end-stations =introduction_acti_stations=
|
||
- [X] ID16a
|
||
- [X] Nazaretski
|
||
18. [X] Two stage control =introduction_two_stage_control=
|
||
Schematic with the long stroke, short stroke, metrology and control architecture: trajectory generation => long stroke & short stroke + feedback on the short stroke
|
||
19. [X] Examples of two stage control:
|
||
- [X] =introduction_two_stage_control_h_bridge= from [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition]]
|
||
- [X] =introduction_two_stage_control_example= from [[cite:&shinno11_newly_devel_long_range_posit]]
|
||
20. [X] Serial VS Parallel: comparison of X-Y-Rz stages
|
||
- [X] =introduction_kinematics_serial=
|
||
- [X] =introduction_kinematics_parallel=
|
||
21. [X] Stewart platform architecture =introduction_stewart_platform=
|
||
Show the classical architecture (two plates, 6 struts, spherical joints)
|
||
Maybe two pose to show that by changing the length of each strut, it is possible to change the relative position between the two plates?
|
||
Maybe do that with Matlab and then editing with Inkscape
|
||
22. [X] Example of Stewart platforms found in the literature
|
||
- [X] Voice coil based (maybe 2?)
|
||
- [X] cite:hauge04_sensor_contr_space_based_six, cite:thayer02_six_axis_vibrat_isolat_system
|
||
- [X] cite:tang18_decen_vibrat_contr_voice_coil
|
||
- [X] Piezo based (maybe 2?)
|
||
- [X] cite:du14_piezo_actuat_high_precis_flexib
|
||
- [X] cite:yang19_dynam_model_decoup_contr_flexib
|
||
23. [X] Different model types
|
||
- [X] =introduction_model_lumped=
|
||
- [X] =introduction_model_multibody=
|
||
- [X] =introduction_model_fem=
|
||
24. [X] Feedback System / Closed loop simulations =introduction_close_loop=
|
||
- feedback model with: controller =K=, plant =G=, disturbances (plant output) =dy=, sensor with noise =n=, actuator with noise =du=
|
||
- (no feedforward)
|
||
25. [X] Dynamic Error Budgeting =introduction_dyn_error_budget=
|
||
- PSD + CPS ? => understand what are the limitations?, similar to what is in [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition]]
|
||
- Use the same signals than for the previous figure
|
||
- Concrete example? Open-Loop? Close Loop?
|
||
26. [X] About Stewart platform control? Centralized / Decentralized? MIMO / 6 SISO?
|
||
|
||
*** DONE [#C] Create figures with Matlab
|
||
CLOSED: [2024-05-14 Tue 18:12]
|
||
*** Matlab Init
|
||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||
<<matlab-dir>>
|
||
#+end_src
|
||
|
||
#+begin_src matlab :exports none :results silent :noweb yes
|
||
<<matlab-init>>
|
||
#+end_src
|
||
|
||
#+begin_src matlab
|
||
colors = colororder;
|
||
#+end_src
|
||
|
||
*** DONE [#C] Brilliance
|
||
CLOSED: [2024-05-30 Thu 09:30]
|
||
#+begin_src matlab
|
||
%% Data
|
||
dates = [1900, 1956, 1970, 1973, 1978, 1982, 2000, 2010, 2020];
|
||
brilliances = [10^6.9, 10^8.3, 10^11.7, 10^12.5, 10^14.0, 10^15.0, 10^19.0, 10^21.0, 10^22.6];
|
||
#+end_src
|
||
|
||
#+begin_src matlab :exports none :results none
|
||
%% Evolution of the Brilliance for light sources
|
||
figure;
|
||
hold on;
|
||
plot([1900, 1950, 2020], [10^6.9, 10^6.9, 10^23], 'k--', 'HandleVisibility', 'off')
|
||
plot(dates(1:2), brilliances(1:2), 'o', 'DisplayName', 'X-ray tubes')
|
||
plot(dates(3:4), brilliances(3:4), 'o', 'DisplayName', '$1^{st}$ generation')
|
||
plot(dates(5:6), brilliances(5:6), 'o', 'DisplayName', '$2^{nd}$ generation')
|
||
plot(dates(7:8), brilliances(7:8), 'o', 'DisplayName', '$3^{rd}$ generation')
|
||
plot(dates(9), brilliances(9), 'o', 'DisplayName', '$4^{th}$ generation')
|
||
hold off;
|
||
set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log');
|
||
xlabel(''); ylabel('Brilliance');
|
||
legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||
xticks([1900:20:2020]);
|
||
xlim([1895, 2025]);
|
||
ylim([1e6, 1e24])
|
||
#+end_src
|
||
|
||
#+begin_src matlab :tangle no :exports results :results file replace
|
||
exportFig('figs/introduction_moore_law_brillance.pdf', 'width', 'wide', 'height', 'normal');
|
||
#+end_src
|
||
|
||
#+name: fig:introduction_moore_law_brillance
|
||
#+caption: Evolution of the Brilliance for light sources
|
||
#+RESULTS:
|
||
[[file:figs/introduction_moore_law_brillance.png]]
|
||
|
||
*** DONE [#C] Focus
|
||
CLOSED: [2024-05-30 Thu 09:31]
|
||
|
||
#+begin_src matlab :exports none :results none
|
||
%%
|
||
figure;
|
||
set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log');
|
||
xlabel(''); ylabel('Spot Size');
|
||
% legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||
xticks([1995:5:2020]);
|
||
xlim([1995, 2020]);
|
||
yticks([1, 10, 100, 1000, 10000]);
|
||
yticklabels({'$1\,nm$', '$10\,nm$', '$100\,nm$', '$1\,\mu m$', '$10\,\mu m$'})
|
||
ylim([1, 1e4])
|
||
#+end_src
|
||
|
||
#+begin_src matlab :tangle no :exports results :results file replace
|
||
exportFig('figs/introduction_moore_law_focus.pdf', 'width', 'wide', 'height', 'normal');
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_moore_law_focus.png]]
|
||
|
||
*** DONE [#C] PSD / CPS figures
|
||
CLOSED: [2024-05-30 Thu 09:31]
|
||
#+begin_src matlab
|
||
% Plant
|
||
m = 1;
|
||
k = (2*pi*10)^2*m;
|
||
c = 0.02*2*sqrt(k*m);
|
||
G = 1e9/(m*s^2 + c*s + k); % [nm/V]
|
||
Gd = (c*s + k)/(m*s^2 + c*s + k);
|
||
|
||
% PSD
|
||
asd_du = tf(1e-5); % [V/sqrt(Hz)]
|
||
asd_n = tf(1); % [nm/sqrt(Hz)]
|
||
asd_dy = 10/(s + 0.1*2*pi)^2*(s + 2*pi*1)^2*(1/((1 + s/2/pi/10)^3)); % [nm/sqrt(Hz)]
|
||
|
||
f = logspace(0, 2, 500);
|
||
#+end_src
|
||
|
||
#+begin_src matlab
|
||
%% PSD
|
||
figure;
|
||
hold on;
|
||
plot(f, abs(squeeze(freqresp(asd_du*G, f, 'Hz'))).^2, 'DisplayName', '$d_u$')
|
||
plot(f, abs(squeeze(freqresp(asd_dy*Gd, f, 'Hz'))).^2, 'DisplayName', '$d_y$')
|
||
plot(f, abs(squeeze(freqresp(asd_n, f, 'Hz'))).^2, '--', 'DisplayName', '$n$')
|
||
plot(f, abs(squeeze(freqresp(asd_du*G, f, 'Hz'))).^2 + abs(squeeze(freqresp(asd_dy*Gd, f, 'Hz'))).^2, 'k--', 'DisplayName', 'tot')
|
||
hold off;
|
||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||
leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1);
|
||
leg.ItemTokenSize(1) = 20;
|
||
xlabel('Frequency [Hz]');
|
||
ylabel('PSD [$nm^2/Hz$]');
|
||
ylim([1e-4, 1e4]);
|
||
xlim([1, 100]);
|
||
#+end_src
|
||
|
||
#+begin_src matlab :tangle no :exports results :results file replace
|
||
exportFig('figs/introduction_psd.pdf', 'width', 600, 'height', 550);
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_psd.png]]
|
||
|
||
#+begin_src matlab
|
||
%% CPS
|
||
cps_du = cumtrapz(f, abs(squeeze(freqresp(asd_du*G, f, 'Hz'))).^2);
|
||
cps_dy = cumtrapz(f, abs(squeeze(freqresp(asd_dy*Gd, f, 'Hz'))).^2);
|
||
cps_tot = cps_du+cps_dy;
|
||
figure;
|
||
hold on;
|
||
plot(f, cps_du, 'DisplayName', '$d_u$')
|
||
plot(f, cps_dy, 'DisplayName', '$d_y$')
|
||
plot(f, cps_tot, 'k--', 'DisplayName', 'tot')
|
||
text(80, 9000, sprintf('%.0f nm RMS', sqrt(cps_tot(end))), 'horizontalalignment', 'right');
|
||
hold off;
|
||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||
leg.ItemTokenSize(1) = 20;
|
||
xlabel('Frequency [Hz]');
|
||
ylabel('CPS [$nm^2$]');
|
||
xlim([1, 100]);
|
||
ylim([0, 1e4]);
|
||
#+end_src
|
||
|
||
#+begin_src matlab :tangle no :exports results :results file replace
|
||
exportFig('figs/introduction_cps.pdf', 'width', 600, 'height', 550);
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_cps.png]]
|
||
|
||
#+begin_src matlab
|
||
%% Damped plant
|
||
c = 0.5*2*sqrt(k*m);
|
||
G_damp = 1e9/(m*s^2 + c*s + k); % [nm/V]
|
||
Gd_damp = (c*s + k)/(m*s^2 + c*s + k);
|
||
|
||
%% Closed loop
|
||
a_lead = 8;
|
||
fb = 20;
|
||
K = 1/abs(squeeze(freqresp(G, fb, 'Hz'))) * ...
|
||
(s + 2*pi*5)/s * ...
|
||
1/(sqrt(a_lead))*(1 + s/(2*pi*fb/sqrt(a_lead)))/(1 + s/(2*pi*fb*sqrt(a_lead))); % Lead
|
||
|
||
S = 1/(1 + K*G);
|
||
T = K*G/(1 + K*G);
|
||
#+end_src
|
||
|
||
#+begin_src matlab
|
||
%% CPS
|
||
cps_ol = cumtrapz(f, abs(squeeze(freqresp(asd_du*G, f, 'Hz'))).^2 + abs(squeeze(freqresp(asd_dy*Gd, f, 'Hz'))).^2);
|
||
cps_dp = cumtrapz(f, abs(squeeze(freqresp(asd_du*G_damp, f, 'Hz'))).^2 + abs(squeeze(freqresp(asd_dy*Gd_damp, f, 'Hz'))).^2);
|
||
cps_cl = cumtrapz(f, abs(squeeze(freqresp(asd_du*G*S, f, 'Hz'))).^2 + abs(squeeze(freqresp(asd_dy*Gd*S, f, 'Hz'))).^2 + abs(squeeze(freqresp(asd_n*T, f, 'Hz'))).^2);
|
||
|
||
figure;
|
||
hold on;
|
||
plot(f, cps_ol, 'DisplayName', 'Open Loop')
|
||
plot(f, cps_dp, 'DisplayName', 'Damped')
|
||
plot(f, cps_cl, 'DisplayName', 'Closed Loop')
|
||
text(80, 9000, sprintf('%.0f nm RMS', sqrt(cps_ol(end))), 'horizontalalignment', 'right', 'color', colors(1,:));
|
||
text(80, 1500, sprintf('%.0f nm RMS', sqrt(cps_dp(end))), 'horizontalalignment', 'right', 'color', colors(2,:));
|
||
text(80, 500, sprintf('%.0f nm RMS', sqrt(cps_cl(end))), 'horizontalalignment', 'right', 'color', colors(3,:));
|
||
hold off;
|
||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||
leg.ItemTokenSize(1) = 20;
|
||
xlabel('Frequency [Hz]');
|
||
ylabel('CPS [$nm^2$]');
|
||
#+end_src
|
||
|
||
#+begin_src matlab :tangle no :exports results :results file replace
|
||
exportFig('figs/introduction_cps_cl.pdf', 'width', 600, 'height', 550);
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_cps_cl.png]]
|
||
|
||
*** DONE [#C] Schematic that compares step-by-step scan and "fly-scan"
|
||
CLOSED: [2024-05-30 Thu 10:37]
|
||
|
||
Y position as a function of time.
|
||
|
||
Show when the shutter is opened and closed.
|
||
Show when the detector is integrating the photons.
|
||
|
||
Show that /fly-scan/ is much faster.
|
||
|
||
#+begin_src matlab
|
||
v_max = 1;
|
||
d = 6;
|
||
|
||
t = [0, 2, 8, 10];
|
||
x = [1, 1, 7, 7];
|
||
#+end_src
|
||
|
||
#+begin_src matlab :exports none :results none
|
||
%%
|
||
figure;
|
||
plot(t, x);
|
||
xlabel('Time [s]');
|
||
ylabel('Displacement [$\mu m$]');
|
||
xticks([0:1:10]);
|
||
xlim([0, 10]);
|
||
yticks([0:1:8])
|
||
ylim([0, 8]);
|
||
#+end_src
|
||
|
||
#+begin_src matlab :tangle no :exports results :results file replace
|
||
exportFig('figs/introduction_scan_fly.pdf', 'width', 'half', 'height', 'normal');
|
||
#+end_src
|
||
|
||
[[file:figs/introduction_scan_fly.png]]
|
||
|
||
|
||
*** DONE [#C] Make figures for multiple sensor control
|
||
CLOSED: [2024-05-29 Wed 14:56]
|
||
|
||
#+begin_src latex :file introduction_architecture_hac_lac.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
\coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$);
|
||
\coordinate[] (outputH) at ($(P.south east)!0.2!(P.north east)$);
|
||
\coordinate[] (outputL) at ($(P.south east)!0.8!(P.north east)$);
|
||
|
||
\node[block, above=0.2 of P] (Klac) {$K_\text{LAC}$};
|
||
\node[addb, left=0.5 of input] (addF) {};
|
||
\node[block, left=0.6 of addF] (Khac) {$K_\text{HAC}$};
|
||
% \node[addb={+}{}{}{}{-}, left=0.5 of Khac] (subr) {};
|
||
|
||
% Connections and labels
|
||
\draw[->] (outputL) -- ++(0.5, 0) coordinate(eastlac) |- (Klac.east);
|
||
\node[above right] at (outputL){$x^\prime$};
|
||
\draw[->] (Klac.west) -| (addF.north);
|
||
\draw[->] (addF.east) -- (input) node[above left]{$u$};
|
||
|
||
% \draw[<-] (subr.west)node[above left]{$r$} -- ++(-0.5, 0);
|
||
% \draw[->] (outputH) -- ++(0.5, 0) -- ++(0, -1.0) -| (subr.south);
|
||
\draw[->] (outputH) -- ++(0.5, 0) -- ++(0, -0.7) -| ($(Khac.west)+(-0.5, 0)$) -- (Khac.west);
|
||
\node[above right] at (outputH){$x$};
|
||
% \draw[->] (subr.east) -- (Khac.west) node[above left]{$\epsilon$};
|
||
\draw[->] (Khac.east) node[above right]{$u^\prime$} -- (addF.west);
|
||
|
||
\begin{scope}[on background layer]
|
||
\node[fit={(Klac.north-|eastlac) (addF.west|-P.south)}, fill=black!20!white, draw, dashed, inner sep=4pt] (Pi) {};
|
||
% \node[anchor={north west}, align=left] at (Pi.north west){\scriptsize{Damped}\\\scriptsize{Plant}};
|
||
\node[above=0 of Pi]{\scriptsize{Damped Plant}};
|
||
\end{scope}
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_architecture_hac_lac.png]]
|
||
|
||
#+begin_src latex :file introduction_architecture_sensor_fusion.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
\coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$);
|
||
\coordinate[] (outputH) at ($(P.south east)!0.2!(P.north east)$);
|
||
\coordinate[] (outputL) at ($(P.south east)!0.8!(P.north east)$);
|
||
\coordinate[] (outputSS) at ($(P.south east)!0.5!(P.north east)$);
|
||
|
||
\node[block, right=0.8 of outputH] (KH) {$H_\text{HPF}$};
|
||
\node[block, right=0.8 of outputL] (KL) {$H_\text{LPF}$};
|
||
\node[addb={+}{}{}{}{}, right=2.2 of outputSS] (addss) {};
|
||
\node[block, left=0.6 of input] (K) {$K_{ss}$};
|
||
|
||
% Connections and labels
|
||
\draw[->] (outputL) -- (KL.west);
|
||
\draw[->] (outputH) -- (KH.west);
|
||
\node[above right] at (outputL){$x_L$};
|
||
\node[above right] at (outputH){$x_H$};
|
||
\draw[->] (KL.east) -| (addss.north);
|
||
\draw[->] (KH.east) -| (addss.south);
|
||
\draw[->] (addss.east) -- ++(0.9, 0);
|
||
\draw[->] ($(addss.east) + (0.5, 0)$)node[branch]{}node[above]{$x_{ss}$} -- ++(0, -1.6) -| ($(K.west)+(-0.5, 0)$) -- (K.west);
|
||
\draw[->] (K.east) -- (input) node[above left]{$u$};
|
||
|
||
\begin{scope}[on background layer]
|
||
\node[fit={(KL.north west) (KH.south-|addss.east)}, fill=black!20!white, draw, dashed, inner sep=4pt] (Pss) {};
|
||
\node[above=0 of Pss]{\scriptsize{Sensor Fusion}};
|
||
\end{scope}
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_architecture_sensor_fusion.png]]
|
||
|
||
#+begin_src latex :file introduction_architecture_two_sensor_control.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
\coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$);
|
||
\coordinate[] (output1) at ($(P.south east)!0.8!(P.north east)$);
|
||
\coordinate[] (output2) at ($(P.south east)!0.2!(P.north east)$);
|
||
|
||
\node[addb={+}{}{}{}{}, left=0.8 of input] (addF) {};
|
||
\coordinate[left= 1.0 of addF] (Ks);
|
||
\node[block] (K1) at (Ks|-output1) {$K_\text{1}$};
|
||
\node[block] (K2) at (Ks|-output2) {$K_\text{2}$};
|
||
|
||
\draw[->] (output1) -| ++(0.6, 1.2) -| ($(K1.west)+(-0.5, 0)$) -- (K1.west);
|
||
\draw[->] (output2) -| ++(0.6,-1.0) -| ($(K2.west)+(-0.5, 0)$) -- (K2.west);
|
||
|
||
\draw[->] (K1.east)node[above right]{$u_1$} -| (addF.north);
|
||
\draw[->] (K2.east)node[above right]{$u_2$} -| (addF.south);
|
||
\draw[->] (addF.east) -- (input) node[above left=0 and 0.2]{$u$};
|
||
|
||
\node[above right] at (output1){$x_1$};
|
||
\node[above right] at (output2){$x_2$};
|
||
|
||
\begin{scope}[on background layer]
|
||
\node[fit={(K1.north west) (K2.south-|addF.east)}, fill=black!20!white, draw, dashed, inner sep=4pt] (Pss) {};
|
||
\node[above=0 of Pss]{\scriptsize{Two-Sensor Control}};
|
||
\end{scope}
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_architecture_two_sensor_control.png]]
|
||
|
||
*** DONE [#C] Make figures for active damping strategies / Vibration Control
|
||
CLOSED: [2024-05-29 Wed 18:58]
|
||
|
||
- [X] =introduction_damping_iff=
|
||
- [X] =introduction_damping_skyhook=
|
||
- [X] Decentralized Control
|
||
=introduction_control_decentralized=
|
||
- [X] Maybe a schematic of the Stewart platform with several independent loops
|
||
=introduction_control_decentralized_schematic=
|
||
|
||
#+begin_src latex :file introduction_damping_iff.pdf
|
||
\begin{tikzpicture}
|
||
% ====================
|
||
% Parameters
|
||
% ====================
|
||
\def\massw{2.2} % Width of the masses
|
||
\def\massh{0.8} % Height of the masses
|
||
\def\spaceh{1.4} % Height of the springs/dampers
|
||
\def\dispw{0.4} % Width of the dashed line for the displacement
|
||
\def\disph{0.3} % Height of the arrow for the displacements
|
||
\def\bracs{0.05} % Brace spacing vertically
|
||
\def\brach{-12pt} % Brace shift horizontaly
|
||
\def\fsensh{0.2} % Height of the force sensor
|
||
\def\velsize{0.2} % Size of the velocity sensor
|
||
% ====================
|
||
|
||
\begin{scope}
|
||
% ====================
|
||
% Stage Below
|
||
\begin{scope}
|
||
\draw[fill=white] (-0.5*\massw, 1.0) rectangle (0.5*\massw, 1.0+\massh);
|
||
\draw[spring] (-0.25*\massw, 0) -- (-0.25*\massw, 1.0);
|
||
\draw[damper] ( 0.25*\massw, 0) -- ( 0.25*\massw, 1.0);
|
||
|
||
\draw[decorate,decoration={zigzag,segment length=6pt},draw=black!50!white,very thick] (-0.5*\massw, 0) -- (0.5*\massw, 0);
|
||
\draw[draw=black!50!white,very thick, dashed] (-0.5*\massw, 0) -- ++(-0.5, 0);
|
||
\draw[draw=black!50!white,very thick, dashed] ( 0.5*\massw, 0) -- ++( 0.5, 0);
|
||
\end{scope}
|
||
% ====================
|
||
|
||
% ====================
|
||
% NASS
|
||
\begin{scope}[shift={(0, 1.0+\massh)}]
|
||
\draw[fill=white] (-0.5*\massw, \spaceh) rectangle (0.5*\massw, \spaceh+\massh);
|
||
\node[forcesensor={\massw}{\fsensh}{colorblue}] (fsensn) at (0, \spaceh-\fsensh){};
|
||
|
||
\node[left, color=colorblue] at (fsensn.west) {Load Cell};
|
||
|
||
\draw[spring] (-0.4*\massw, 0) -- (-0.4*\massw, \spaceh-\fsensh);
|
||
\draw[damper] ( 0, 0) -- ( 0, \spaceh-\fsensh);
|
||
\draw[actuator={0.6}{0.2}{black}] ( 0.4*\massw, 0) -- (0.4*\massw, \spaceh-\fsensh) coordinate[midway, shift={(0.1,0)}](f);
|
||
\end{scope}
|
||
% ====================
|
||
|
||
% ====================
|
||
% IFF Control
|
||
\node[block={2em}{2em}, right=0.6 of f, color=colorblue, fill=colorblue!10!white] (iff) {$g/s$};
|
||
\draw[->, draw=colorblue] (fsensn.east)node[above right, color=colorblue]{$f_n$} -- ++(1.6, 0) |- (iff.east);
|
||
\draw[->, draw=colorblue] (iff.west) -- (f.east) node[above right, color=colorblue]{$f$};
|
||
% ====================
|
||
\end{scope}
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_damping_iff.png]]
|
||
|
||
#+begin_src latex :file introduction_damping_skyhook.pdf
|
||
\begin{tikzpicture}
|
||
% ====================
|
||
% Parameters
|
||
% ====================
|
||
\def\massw{2.2} % Width of the masses
|
||
\def\massh{0.8} % Height of the masses
|
||
\def\spaceh{1.2} % Height of the springs/dampers
|
||
\def\dispw{0.4} % Width of the dashed line for the displacement
|
||
\def\disph{0.3} % Height of the arrow for the displacements
|
||
\def\bracs{0.05} % Brace spacing vertically
|
||
\def\brach{-12pt} % Brace shift horizontaly
|
||
\def\fsensh{0.2} % Height of the force sensor
|
||
\def\velsize{0.2} % Size of the velocity sensor
|
||
% ====================
|
||
|
||
\begin{scope}
|
||
% ====================
|
||
% Stage Below
|
||
\begin{scope}
|
||
\draw[fill=white] (-0.5*\massw, 1.0) rectangle (0.5*\massw, 1.0+\massh);
|
||
\draw[spring] (-0.25*\massw, 0) -- (-0.25*\massw, 1.0);
|
||
\draw[damper] ( 0.25*\massw, 0) -- ( 0.25*\massw, 1.0);
|
||
|
||
\draw[decorate,decoration={zigzag,segment length=6pt},draw=black!50!white,very thick] (-0.5*\massw, 0) -- (0.5*\massw, 0);
|
||
\draw[draw=black!50!white,very thick, dashed] (-0.5*\massw, 0) -- ++(-0.5, 0);
|
||
\draw[draw=black!50!white,very thick, dashed] ( 0.5*\massw, 0) -- ++( 0.5, 0);
|
||
\end{scope}
|
||
% ====================
|
||
|
||
% ====================
|
||
% NASS
|
||
\begin{scope}[shift={(0, 1.0+\massh)}]
|
||
\draw[fill=white] (-0.5*\massw, \spaceh) rectangle (0.5*\massw, \spaceh+\massh);
|
||
\draw[spring] (-0.4*\massw, 0) -- (-0.4*\massw, \spaceh);
|
||
\draw[damper] (0, 0) -- ( 0, \spaceh);
|
||
\draw[actuator={0.6}{0.2}{black}] ( 0.4*\massw, 0) -- (0.4*\massw, \spaceh) coordinate[midway, shift={(0.1,0)}](f);
|
||
|
||
% Velocity Sensor
|
||
\node[inertialsensor={\velsize}{colorred}] (veln) at (0.5*\massw, \spaceh+\massh) {};
|
||
|
||
\node[left, color=colorred] at (veln.north west) {Geophone};
|
||
\end{scope}
|
||
% ====================
|
||
|
||
% ====================
|
||
% DVF Control
|
||
\node[block={2em}{2em}, below right=0.3 and 0.4 of veln, color=colorred, fill=colorred!10!white] (ppf) {$-g$};
|
||
\draw[->, draw=colorred] (veln.east) node[above right, color=colorred]{$v$} -| (ppf.north);
|
||
\draw[->, draw=colorred] (ppf.south) |- (f.east) node[above right, color=colorred]{$f$};
|
||
% ====================
|
||
\end{scope}
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_damping_skyhook.png]]
|
||
|
||
#+begin_src latex :file introduction_control_decentralized_diagram.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
\node[block={2.0cm}{2.0cm}, left=0.8 of P] (K) {\begin{matrix}K_1 & & 0 \\ & \ddots & \\ 0 & & K_6\end{matrix}};
|
||
|
||
% Connections and labels
|
||
\draw[->] (P.east)node[above right]{$\begin{bmatrix}y_1 \\ \vdots \\ y_6 \end{bmatrix}$} -| ++(0.5, -1.5) -| ($(K.west)+(-0.5, 0)$) -- (K.west);
|
||
\draw[->] (K.east) --node[midway, above]{$\begin{bmatrix}u_1 \\ \vdots \\ u_6 \end{bmatrix}$} (P.west);
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_control_decentralized_diagram.png]]
|
||
|
||
*** DONE [#C] Make figures for control strategies
|
||
CLOSED: [2024-05-29 Wed 17:20]
|
||
|
||
- [X] Full MIMO control
|
||
=introduction_control_mimo=
|
||
- [X] Decoupling Frame
|
||
=introduction_control_decoupling=
|
||
|
||
#+begin_src latex :file introduction_control_mimo.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
\coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$);
|
||
\coordinate[] (output) at ($(P.south east)!0.5!(P.north east)$);
|
||
\node[block, left=0.6 of input] (K) {$\bm{K}$};
|
||
% \node[addb={+}{}{}{}{-}, left=0.5 of Khac] (subr) {};
|
||
|
||
% Connections and labels
|
||
\draw[->] (output) -| ++(0.5, -1.5) -| ($(K.west)+(-0.5, 0)$) -- (K.west);
|
||
\draw[->] (K.east) -- (input);
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_control_mimo.png]]
|
||
|
||
#+begin_src latex :file introduction_control_decoupling.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
|
||
\node[block, left=0.5 of P] (Hpost) {$H_{\text{post}}$};
|
||
\node[block={2.0cm}{2.0cm}, left=0.5 of Hpost] (K) {\begin{matrix}K_1 & & 0 \\ & \ddots & \\ 0 & & K_n\end{matrix}};
|
||
\node[block, left=0.5 of K] (Hpre) {$H_{\text{pre}}$};
|
||
|
||
\draw[->] (P.east) -| ++(0.5, -1.5) -| ($(Hpre.west)+(-0.5, 0)$) -- (Hpre.west);
|
||
\draw[->] (Hpre.east) -- (K.west);
|
||
\draw[->] (K.east) -- (Hpost.west);
|
||
\draw[->] (Hpost.east) -- (P.west);
|
||
|
||
\begin{scope}[on background layer]
|
||
\node[fit={(Hpre.north west) (K.south-|Hpost.east)}, fill=black!20!white, inner sep=8pt] (Pi) {};
|
||
\node[fit={(K.north west) (K.south east)}, fill=white, inner sep=4pt] {};
|
||
\end{scope}
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_control_decoupling.png]]
|
||
|
||
*** DONE [#C] Centralized Control
|
||
CLOSED: [2024-05-29 Wed 17:09]
|
||
|
||
- [X] Centralized Control - Struts
|
||
=introduction_control_centralized_struts=
|
||
- [X] Centralized Control - Cartesian
|
||
=introduction_control_centralized_cartesian=
|
||
|
||
#+begin_src latex :file introduction_control_centralized_cartesian.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
\coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$);
|
||
\coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$);
|
||
|
||
\node[block, left=0.8 of inputF] (J) {$\bm{J}^{-T}$};
|
||
\node[block={2.0cm}{2.0cm}, left=0.8 of J] (K) {\begin{matrix}K_x & & 0 \\ & \ddots & \\ 0 & & K_{R_z}\end{matrix}};
|
||
\node[addb={+}{}{}{}{-}, left=0.8 of K] (subr) {};
|
||
|
||
% Connections and labels
|
||
\draw[->] (outputX) -- ++(0.8, 0);
|
||
\draw[->] ($(outputX) + (0.3, 0)$)node[branch]{} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1.2) -| (subr.south);
|
||
|
||
\draw[->] (subr.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (K.west);
|
||
\draw[->] (K.east) -- node[midway, above]{$\bm{\mathcal{F}}$} (J.west);
|
||
\draw[->] (J.east) -- node[midway, above]{$\bm{\tau}$} (inputF.west);
|
||
\draw[<-] (subr.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-0.8, 0);
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_control_centralized_cartesian.png]]
|
||
|
||
#+begin_src latex :file introduction_control_centralized_struts.pdf
|
||
\begin{tikzpicture}
|
||
% Blocs
|
||
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||
\coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$);
|
||
\coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$);
|
||
|
||
\node[block={2.0cm}{2.0cm}, left=0.8 of inputF] (K) {\begin{matrix}K_1 & & 0 \\ & \ddots & \\ 0 & & K_6\end{matrix}};
|
||
\node[block, left=0.8 of K] (J) {$\bm{J}$};
|
||
\node[addb={+}{}{}{}{-}, left=0.8 of J] (subr) {};
|
||
% \node[block, align=center, left=0.6 of subr] (J) {Inverse\\Kinematics};
|
||
|
||
% Connections and labels
|
||
\draw[->] (outputX) -- ++(0.8, 0);
|
||
\draw[->] ($(outputX) + (0.3, 0)$)node[branch]{} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1.2) -| (subr.south);
|
||
\draw[->] (subr.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (J.west);
|
||
\draw[->] (J.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{L}}$} (K.west);
|
||
\draw[->] (K.east) -- node[midway, above]{$\bm{\tau}$} (inputF);
|
||
|
||
\draw[<-] (subr.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-0.8, 0);
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_control_centralized_struts.png]]
|
||
|
||
|
||
*** CANC [#C] Schematic for Cubic Architecture
|
||
CLOSED: [2024-05-30 Thu 08:36]
|
||
|
||
- State "CANC" from "TODO" [2024-05-30 Thu 08:36]
|
||
#+begin_src latex :file introduction_stewart_cubic.pdf
|
||
\begin{tikzpicture}
|
||
\begin{scope}[rotate={45}, shift={(0, 0, -4)}]
|
||
% We first define the coordinate of the points of the Cube
|
||
\coordinate[] (bot) at (0,0,4);
|
||
\coordinate[] (top) at (4,4,0);
|
||
\coordinate[] (A1) at (0,0,0);
|
||
\coordinate[] (A2) at (4,0,4);
|
||
\coordinate[] (A3) at (0,4,4);
|
||
\coordinate[] (B1) at (4,0,0);
|
||
\coordinate[] (B2) at (4,4,4);
|
||
\coordinate[] (B3) at (0,4,0);
|
||
|
||
% Center of the Cube
|
||
% \node[] at ($0.5*(bot) + 0.5*(top)$){$\bullet$};
|
||
|
||
% We then draw parts of the cube that is not part of the Stewart platform
|
||
\draw[dashed] (A1) -- (bot);
|
||
\draw[dashed] (A2) -- (bot);
|
||
\draw[dashed] (A3) -- (bot);
|
||
\draw[dashed] (B1) -- (top);
|
||
\draw[dashed] (B2) -- (top);
|
||
\draw[dashed] (B3) -- (top);
|
||
|
||
% We draw parts of the cube that corresponds to the Stewart platform
|
||
\draw[] (A1) -- (B1) -- (A2) -- (B2) -- (A3) -- (B3) -- (A1);
|
||
|
||
% ai and bi are computed
|
||
\def\lfrom{0.2}
|
||
\def\lto{0.8}
|
||
|
||
\coordinate(a1) at ($(A1) - \lfrom*(A1) + \lfrom*(B1)$);
|
||
\coordinate(b1) at ($(A1) - \lto*(A1) + \lto*(B1)$);
|
||
\coordinate(a2) at ($(A2) - \lfrom*(A2) + \lfrom*(B1)$);
|
||
\coordinate(b2) at ($(A2) - \lto*(A2) + \lto*(B1)$);
|
||
\coordinate(a3) at ($(A2) - \lfrom*(A2) + \lfrom*(B2)$);
|
||
\coordinate(b3) at ($(A2) - \lto*(A2) + \lto*(B2)$);
|
||
\coordinate(a4) at ($(A3) - \lfrom*(A3) + \lfrom*(B2)$);
|
||
\coordinate(b4) at ($(A3) - \lto*(A3) + \lto*(B2)$);
|
||
\coordinate(a5) at ($(A3) - \lfrom*(A3) + \lfrom*(B3)$);
|
||
\coordinate(b5) at ($(A3) - \lto*(A3) + \lto*(B3)$);
|
||
\coordinate(a6) at ($(A1) - \lfrom*(A1) + \lfrom*(B3)$);
|
||
\coordinate(b6) at ($(A1) - \lto*(A1) + \lto*(B3)$);
|
||
|
||
% Center of the Stewart Platform
|
||
% \node[color=colorblue] at ($0.25*(a1) + 0.25*(a6) + 0.25*(b3) + 0.25*(b4)$){$\bullet$};
|
||
|
||
% We draw the fixed and mobiles platforms
|
||
\path[fill=colorblue, opacity=0.2] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle;
|
||
\path[fill=colorblue, opacity=0.2] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle;
|
||
\draw[color=colorblue, dashed] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle;
|
||
\draw[color=colorblue, dashed] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle;
|
||
|
||
% The legs of the hexapod are drawn
|
||
\draw[color=colorblue] (a1)node{$\bullet$} -- (b1)node{$\bullet$};
|
||
\draw[color=colorblue] (a2)node{$\bullet$} -- (b2)node{$\bullet$};
|
||
\draw[color=colorblue] (a3)node{$\bullet$} -- (b3)node{$\bullet$};
|
||
\draw[color=colorblue] (a4)node{$\bullet$} -- (b4)node{$\bullet$};
|
||
\draw[color=colorblue] (a5)node{$\bullet$} -- (b5)node{$\bullet$};
|
||
\draw[color=colorblue] (a6)node{$\bullet$} -- (b6)node{$\bullet$};
|
||
|
||
% Labels
|
||
% \node[left=0.1 of a5] {$a_i$};
|
||
% \node[left=0.1 of b5] {$b_i$};
|
||
|
||
\end{scope}
|
||
|
||
% % Height of the Hexapod
|
||
% \coordinate[] (sizepos) at ($(a2)+(0.2, 0)$);
|
||
% \coordinate[] (origin) at (0,0,0);
|
||
% \draw[<->, dashed] (a2-|sizepos) -- node[midway, right]{$H$} (b2-|sizepos);
|
||
% % Height offset
|
||
% \draw[<->, dashed] (a2-|sizepos) -- node[midway, right]{$H_0$} (origin-|sizepos);
|
||
|
||
% \draw[->] (0,0,0) -- (0,0,1)node[left]{$x$};
|
||
% \draw[->] (0,0,0) -- (1,0,0)node[above]{$y$};
|
||
% \draw[->] (0,0,0) -- (0,1,0)node[right]{$z$};
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
[[file:figs/introduction_stewart_cubic.png]]
|
||
|
||
** Unused figures
|
||
*** Stewart - Control objectives
|
||
|
||
Different control goals:
|
||
- Vibration Isolation ref:fig:introduction_stewart_isolation
|
||
- Position ref:fig:introduction_stewart_positioning
|
||
|
||
Depending on the goal, different sensors and different architectures.
|
||
|
||
For the NASS, both objectives.
|
||
|
||
#+name: fig:introduction_stewart_control_goal
|
||
#+caption: Example of two control goals. In (\subref{fig:introduction_stewart_isolation}), the Stewart platform is used to isolate the payload from a vibration environment. In (\subref{fig:introduction_stewart_positioning}), the Stewart platform is used to position the payload along a defined trajectory.
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_isolation} Vibration Isolation}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_stewart_isolation.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_positioning} Positioning}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_stewart_positioning.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** Mechatronics approach
|
||
#+begin_src latex :file nass_introduction_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] Micro Station}, below = 2pt of dist] (mustation) {};
|
||
\node[myblock, fill=lightgreen, label={[mylabel] Nano 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 \\ Micro 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:introduction_nass_mechatronics_approach
|
||
#+caption: Overview of the mechatronic approach used for the Nano-Active-Stabilization-System
|
||
#+attr_latex: :width \linewidth
|
||
#+RESULTS:
|
||
[[file:figs/introduction_nass_mechatronics_approach.png]]
|
||
|
||
*** Stewart platform
|
||
|
||
#+name: fig:introduction_stewart_platform
|
||
#+caption: The Stewart Platform. Architecutre is shown in (\subref{fig:introduction_stewart_architecture}). Change of pose induce by change of strut length is shown in (\subref{fig:introduction_stewart_pose})
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_architecture} Stewart Platform Architecture}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 0.8
|
||
[[file:figs/introduction_stewart_architecture.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_pose} Change of mobile platform pose}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 0.8
|
||
[[file:figs/introduction_stewart_pose.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** Models (lumped mass - multi-body - FEM)
|
||
|
||
#+begin_src latex :file introduction_model_lumped.pdf :results file raw silent
|
||
\begin{tikzpicture}
|
||
% ====================
|
||
% Parameters
|
||
% ====================
|
||
\def\massw{2.2} % Width of the masses
|
||
\def\massh{0.8} % Height of the masses
|
||
\def\spaceh{1.2} % Height of the springs/dampers
|
||
\def\dispw{0.4} % Width of the dashed line for the displacement
|
||
\def\disph{0.4} % Height of the arrow for the displacements
|
||
\def\bracs{0.05} % Brace spacing vertically
|
||
\def\brach{-12pt} % Brace shift horizontaly
|
||
\def\fsensh{0.2} % Height of the force sensor
|
||
\def\velsize{0.2} % Size of the velocity sensor
|
||
% ====================
|
||
|
||
|
||
% ====================
|
||
% Floor
|
||
% ====================
|
||
\draw (-0.5*\massw, 0) -- (0.5*\massw, 0);
|
||
% \draw[dashed] (0.5*\massw, 0) -- ++(\dispw, 0);
|
||
% \draw[->, draw=colorred] (0.5*\massw+0.5*\dispw, 0) -- ++(0, \disph) node[right, color=colorred]{$x_{f}$};
|
||
% ====================
|
||
|
||
% ====================
|
||
% Granite
|
||
\begin{scope}[shift={(0, 0)}]
|
||
% Mass
|
||
\draw[fill=white] (-0.5*\massw, \spaceh) rectangle (0.5*\massw, \spaceh+\massh) node[pos=0.5]{$m_{1}$};
|
||
|
||
% Spring, Damper, and Actuator
|
||
\draw[spring] (-0.3*\massw, 0) -- (-0.3*\massw, \spaceh) node[midway, left=0.1]{$k_{1}$};
|
||
\draw[damper] ( 0.3*\massw, 0) -- ( 0.3*\massw, \spaceh) node[midway, left=0.2]{$c_{1}$};
|
||
|
||
% Displacement
|
||
\draw[dashed] (0.5*\massw, \spaceh+\massh) -- ++(\dispw, 0);
|
||
\draw[->] (0.5*\massw+0.5*\dispw, \spaceh+\massh) -- ++(0, \disph) node[right]{$x_{1}$};
|
||
\end{scope}
|
||
% ====================
|
||
|
||
|
||
% ====================
|
||
% Stages
|
||
\begin{scope}[shift={(0, \spaceh+\massh)}]
|
||
% Mass
|
||
\draw[fill=white] (-0.5*\massw, \spaceh) rectangle (0.5*\massw, \spaceh+\massh) node[pos=0.5]{$m_{2}$};
|
||
|
||
% Spring, Damper, and Actuator
|
||
\draw[spring] (-0.4*\massw, 0) -- (-0.4*\massw, \spaceh) node[midway, left=0.1]{$k_{1}$};
|
||
\draw[damper] (0, 0) -- ( 0, \spaceh) node[midway, left=0.2]{$c_{2}$};
|
||
\draw[actuator={0.45}{0.2}{black}] ( 0.4*\massw, 0) -- (0.4*\massw, \spaceh) node[midway, left=0.1]{$F$};
|
||
|
||
% Displacement
|
||
\draw[dashed] (0.5*\massw, \spaceh+\massh) -- ++(\dispw, 0);
|
||
\draw[->] (0.5*\massw+0.5*\dispw, \spaceh+\massh) -- ++(0, \disph) node[right]{$x_{2}$};
|
||
\end{scope}
|
||
% ====================
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+name: fig:introduction_models
|
||
#+caption: Types of models used when using a mechatronics approach. (\subref{fig:introduction_model_lumped}) (\subref{fig:introduction_model_multibody}) (\subref{fig:introduction_model_fem})
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_model_lumped} Mass-Spring-Damper model}
|
||
#+attr_latex: :options {0.3\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_model_lumped.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_model_multibody} Multi-Body model}
|
||
#+attr_latex: :options {0.39\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.9\linewidth
|
||
[[file:figs/introduction_model_multibody.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_model_fem} Finite Element Model}
|
||
#+attr_latex: :options {0.3\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.9\linewidth
|
||
[[file:figs/introduction_model_fem.jpg]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** Closed-Loop
|
||
#+begin_src latex :file introduction_closed_loop.pdf
|
||
\begin{tikzpicture}
|
||
\node[block] (controller) {Controller};
|
||
\node[block, right = 1 of controller] (driver) {Driver};
|
||
\node[block, right = 1 of driver] (actuator) {Actuator};
|
||
\node[block, right = 1 of actuator, align=center] (system) {Mechanical\\System};
|
||
\node[block, right = 1 of system] (sensor) {Sensor};
|
||
|
||
% Connections and labels
|
||
\draw[->] (controller.east) node[above right]{$u$} -- (driver.west);
|
||
\draw[->] (driver.east) -- (actuator.west);
|
||
\draw[->] (actuator.east) -- (system.west);
|
||
\draw[->] (system.east) --node[midway, above]{$y$} (sensor.west);
|
||
\draw[->] (sensor.east) -- ++(1.2, 0);
|
||
\draw[->] ($(sensor.east)+(0.6,0)$)node[branch]{}node[above]{$y_m$} -- ++(0, -2.0) -| (controller.south);
|
||
|
||
\draw[<-] (controller.west) -- ++(-1.0, 0) node[above right]{$r$};
|
||
\draw[<-] (driver.north) -- ++(0, 1.2) node[below right, align=left]{$d_u$};
|
||
\draw[<-] (system.north) -- ++(0, 1.2) node[below right, align=left]{$d_y$};
|
||
\draw[<-] (sensor.north) -- ++(0, 1.2) node[below right, align=left](sensornoise){$n$};
|
||
|
||
% Plant
|
||
\begin{scope}[on background layer]
|
||
\node[fit={(driver.south west) (sensornoise.north -| sensor.east)}, fill=black!20!white, draw, dashed, inner sep=8pt] (plant) {};
|
||
\node[below] at (plant.north) {\textbf{Plant}};
|
||
\end{scope}
|
||
|
||
\draw[->, dashed] ($(plant.south) + (0, -0.3)$) arc (90:-90:0.3) -- ++(-2.5, 0) arc (-90:-270:0.3);
|
||
\node[left] at ($(plant.south) + (0, -0.6)$) {Feedback Loop}
|
||
\end{tikzpicture}
|
||
#+end_src
|
||
|
||
#+RESULTS:
|
||
#+name: fig:introduction_closed_loop
|
||
#+caption: Block diagram of a typical feedback control architecture
|
||
[[file:figs/introduction_closed_loop.png]]
|
||
|
||
|
||
*** Dynamic Error Budgeting
|
||
|
||
#+name: fig:introduction_deb
|
||
#+caption: Tools used for the dynamic error budgeting. First the Power Spectral Density can be compared (\subref{fig:introduction_psd}). The cumulative power spectrum is shown in (\subref{fig:introduction_cps}). To compare the effectivness of different strategies, the cumulative power spectrum can be compared (\subref{fig:introduction_cps_cl})
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_psd} Power Spectral Density - Open Loop}
|
||
#+attr_latex: :options {0.33\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.9\linewidth
|
||
[[file:figs/introduction_psd.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_cps} Cumulative Power Spectrum - Open Loop}
|
||
#+attr_latex: :options {0.33\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.9\linewidth
|
||
[[file:figs/introduction_cps.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_cps_cl} Cumulative Power Spectrum - Comparison}
|
||
#+attr_latex: :options {0.33\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.9\linewidth
|
||
[[file:figs/introduction_cps_cl.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** Active Damping
|
||
|
||
#+name: fig:introduction_damping
|
||
#+caption: Uniaxial vibration isolation strategies. Integral force feedback (\subref{fig:introduction_damping_iff}) and "sky-hook" damping (\subref{fig:introduction_damping_skyhook}).
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_damping_iff} Integral Force Feedback}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_damping_iff.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_damping_skyhook} "Sky-hook" Damping}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_damping_skyhook.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** Decentralized Control
|
||
|
||
#+name: fig:introduction_control_decentralized
|
||
#+caption: Decentralized control. Example of decentralized force feedback (\subref{fig:introduction_control_decentralized_schematic}), only three struts are shown for simplicity. Equivalent block diagram (\subref{fig:introduction_control_decentralized_diagram}), the controller is then diagonal.
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_control_decentralized_schematic} Decentralized Control applied on Stewart platform}
|
||
#+attr_latex: :options {0.54\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_control_decentralized_schematic.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_control_decentralized_diagram} Equivalent block diagram}
|
||
#+attr_latex: :options {0.45\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_control_decentralized_diagram.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
*** Centralized Control
|
||
|
||
#+name: fig:introduction_control_centralized
|
||
#+caption: Two centralized control strategies. Express the position error in the frame of the struts and design one controller for each strut (\subref{fig:introduction_control_centralized_struts}). Design one controller for each direction, and then map the forces and torques to each struts (\subref{fig:introduction_control_centralized_cartesian}).
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_control_centralized_struts} Control in the frame of the struts}
|
||
#+attr_latex: :options {0.95\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_control_centralized_struts.png]]
|
||
#+end_subfigure
|
||
|
||
\bigskip
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_control_centralized_cartesian} Control in the cartesian frame}
|
||
#+attr_latex: :options {0.95\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_control_centralized_cartesian.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** MIMO vs Decoupling Control
|
||
|
||
#+name: fig:introduction_control_mimo_vs_decoupling
|
||
#+caption: Two strategies to control a multi-inputs-multi-outputs system. Use of a multivariable controller (\subref{fig:introduction_control_mimo}), or first decouple the plant with matrices, and then designing several single-input-single-output controllers (\subref{fig:introduction_control_decoupling})
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_control_mimo} Multivariable Control}
|
||
#+attr_latex: :options {0.33\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_control_mimo.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_control_decoupling} Decoupling Control}
|
||
#+attr_latex: :options {0.66\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_control_decoupling.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** Multiple Sensor Control
|
||
|
||
#+name: fig:introduction_control_multiple_sensors
|
||
#+caption: Different control strategies when using multiple sensors. High Authority Control / Low Authority Control (\subref{fig:introduction_architecture_hac_lac}). Sensor Fusion (\subref{fig:introduction_architecture_sensor_fusion}). Two-Sensor Control (\subref{fig:introduction_architecture_two_sensor_control})
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_architecture_hac_lac} HAC-LAC}
|
||
#+attr_latex: :options {0.48\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_architecture_hac_lac.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_architecture_two_sensor_control} Two Sensor Control}
|
||
#+attr_latex: :options {0.48\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_architecture_two_sensor_control.png]]
|
||
#+end_subfigure
|
||
|
||
\bigskip
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_architecture_sensor_fusion} Sensor Fusion}
|
||
#+attr_latex: :options {0.95\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_architecture_sensor_fusion.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
*** Mechanical bearing and Flexure stages
|
||
|
||
#+name: fig:introduction_translation_stage
|
||
#+caption: A classical translation stage composed of: a rotary motor and possibly reduction gears (in blue), a mechanism to transform the rotary motion to a translation (here a lead screw in green), a guiding mechanism (here linear rails and bearings in red). The mobile platform (in yellow) can then translate with respect to the fixed base.
|
||
[[file:figs/introduction_translation_stage.png]]
|
||
|
||
#+name: fig:introduction_flexure_stage
|
||
#+caption: A simple flexure stage
|
||
[[file:figs/introduction_flexure_stage.png]]
|
||
|
||
** Unused Tables
|
||
*** End-Stations with Online metrology
|
||
|
||
#+name: tab:introduction_online_metrology
|
||
#+caption: End-Station integrating accurate online metrology systems. For all the examples, the sample used are in the micron scale.
|
||
#+attr_latex: :environment tabularx :width 1.0\linewidth :align cccccc
|
||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||
| *Architecture* | *Metrology* | *Usage* | *Institute* | *References* |
|
||
|-------------------------------------+-------------------+------------------+-------------+--------------------------------------------|
|
||
| Sample | 3 Capacitive | Post processing | NSLS | cite:&wang12_autom_marker_full_field_hard |
|
||
| XYZ Stage | $D_yD_zR_x$ | | (X8C) | Figure ref:fig:introduction_stages_wang |
|
||
| *Metrology Ring* | | | | |
|
||
| Spindle | | | | |
|
||
|-------------------------------------+-------------------+------------------+-------------+--------------------------------------------|
|
||
| *Ball-lens retroreflector* / Sample | 3 interferometers | Characterization | PETRA III | [[cite:&schroer17_ptynam;&schropp20_ptynam]] |
|
||
| XYZ piezo stage ($100\,\mu m$) | $D_yD_z$ | | (P06) | Figure ref:fig:introduction_stages_schroer |
|
||
| Spindle ($180\,\text{deg}$) | | | | |
|
||
|-------------------------------------+-------------------+------------------+-------------+--------------------------------------------|
|
||
| *Metrology Ring* / Sample | 2 interferometers | Detector | NSLS | [[cite:&xu23_high_nsls_ii]] |
|
||
| Spindle | $D_yD_z$ | triggering | (HRX) | |
|
||
| XYZ piezo stage | | | | |
|
||
|
||
*** End stations with Feedback control based on online-metrology
|
||
|
||
#+name: tab:introduction_active_stations
|
||
#+caption: End-Stations with integrated feedback loops based on online metrology. Stages used for static positioning are ommited for readability. Stages used for feedback are indicated in bold font.
|
||
#+attr_latex: :environment tabularx :width 1.0\linewidth :align cccccc
|
||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||
| *Architecture* | *Metrology* | *Stroke* | *Bandwidth* | *Institute* | *References* |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Mirror / Sample | 3 Interferometers | | n/a | APS | [[cite:&nazaretski15_pushin_limit]] |
|
||
| *XYZ piezo motors* | $D_xD_yD_z$ | $D_xD_yD_z: 3\,\text{mm}$ | | | Figure ref:fig:introduction_stages_nazaretski |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Metrology Ring / Sample | 12 Capacitive | light | 10 Hz | ESRF | [[cite:&villar18_nanop_esrf_id16a_nano_imagin_beaml]] |
|
||
| Spindle | $D_xD_yD_zR_xR_y$ | $R_z: 180\,\text{deg}$ | | (ID16a) | Figure ref:fig:introduction_stages_villar |
|
||
| *Piezo Hexapod* | | $D_xD_yD_z: 50\,\mu m$ | | | |
|
||
| | | $R_x R_y: 500\,\mu \text{rad}$ | | | |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Spherical Reference / Sample | 5 Interferometers | light | n/a | PSI | [[cite:&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage]] |
|
||
| Spindle | $D_yD_zR_x$ | $R_z: 365\,\text{deg}$ | | (OMNY) | |
|
||
| *Piezo Tripod* | | $D_xD_yD_z: 400\,\mu m$ | | | |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Cylindrical Reference / Sample | 5 Interferometers | light | n/a | Soleil | [[cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&engblom18_nanop_resul]] |
|
||
| Spindle | $D_xD_yD_zR_xR_y$ | $R_z: 360\,\text{deg}$ | | | |
|
||
| *Stacked XYZ linear motors* | | $D_xD_yD_z: 400\,\mu m$ | | | |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Metrology Ring / Sample | 3 Interferometers | up to 500g | n/a | NSLS | [[cite:&nazaretski22_new_kirkp_baez_based_scann]] |
|
||
| Spindle | $D_xD_yD_z$ | $R_z: 360\,\text{deg}$ | | (SRX) | |
|
||
| *XYZ piezo* | | $D_xD_yD_z: 100\,\mu m$ | | | |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Mirrors / Sample | 3 Interferometers | up to 350g | 100 Hz | Diamond | [[cite:&kelly22_delta_robot_long_travel_nano]] |
|
||
| *Parallel XYZ voice coil* | $D_xD_yD_z$ | $D_xD_yD_z: 3\,\text{mm}$ | | (I14) | |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Retroreflectors / Samples | 3 Interferometers | light | 100 Hz | LNLS | [[cite:&geraldes23_sapot_carnaub_sirius_lnls]] |
|
||
| *Parallel XYZ voice coil* | $D_xD_yD_z$ | $D_yD_z: 3\,\text{mm}$ | | (Carnauba) | |
|
||
| Spindle | | $R_z: \pm 110\,\text{deg}$ | | | |
|
||
|--------------------------------+-------------------+--------------------------------+-------------+-------------+-------------------------------------------------------------------------------------------------------|
|
||
| Sample | 6 Interferometers | *up to 50kg* | | ESRF | [[cite:&dehaeze18_sampl_stabil_for_tomog_exper;&dehaeze21_mechat_approac_devel_nano_activ_stabil_system]] |
|
||
| *Hexapod* | $D_xD_yD_zR_xR_y$ | | | (ID31) | Figure ref:fig:introduction_nass_concept_schematic |
|
||
| Spindle | | $R_z : 360\,\text{deg}$ | | | |
|
||
| Ry | | $R_y : \pm 3\,\text{deg}$ | | | |
|
||
| Ty | | $D_y : \pm 5\,\text{mm}$ | | | |
|
||
|
||
*** Two stage control
|
||
|
||
#+name: tab:introduction_dual_stages
|
||
#+caption: For each example, interferometers are used as the measured stage position (and signal feedback for the short stroke actuator).
|
||
#+attr_latex: :environment tabularx :width \linewidth :align ccccc
|
||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||
| *DoF* | *Long Stroke* | *Short Stroke* | *Bandwidth* | *Metrology* | *References* |
|
||
|--------+-----------------------------------------------------+----------------------------+------------------------+-----------------------+-------------------------------------------------------------------------------|
|
||
| X | Servo motor, leadscrew, rotary encoder | PZT, flexure (10um) | n/a | Interferometer, X | cite:&pahk01_ultra_precis_posit_system_servo_motor |
|
||
| X,Y | 2 axis, linear motor | 2 PZT, flexures | n/a | Interferometers, XY | cite:&chassagne07_nano_posit_system_with_sub |
|
||
| X,Y,Rz | X, linear motor, linear guides | 4 VCM (1mm), air bearing | 85Hz | Interferometers, XYRz | cite:&choi08_desig_contr_nanop_xy_theta_scann |
|
||
| X | 1 axis, DC motor, feedscrew, rotary encoder (25mm) | 1 PZT (17um), flexures | 2000Hz | Interferometer, X | cite:&buice09_desig_evaluat_singl_axis_precis |
|
||
| X,Y,Rz | 1 axis, ballscrew, rotary motor | 3 piezo, flexure | 3 PID, $\approx 1\,Hz$ | Interferometers, XYRz | cite:&liu10_desig_contr_long_travel_nano_posit_stage |
|
||
| X | 1 axis, Servo motor, ball screw (300mm) | 1 VCM, air bearing (5mm) | n/a | Interferometer, X | cite:&shinno11_newly_devel_long_range_posit |
|
||
| X | 1 axis, VCM, flexure (10mm) | APA, flexure (15um) | PID, $\approx 1\,Hz$ | Interferometer, X | cite:&xu12_desig_devel_flexur_based_dual |
|
||
| X | 1 axis X, ballscrew, stepper | 1 piezo stack Y | n/a | Capacitive, Y | cite:&ting11_contr_desig_high_frequen_cuttin |
|
||
| X,Y | 2 axis, air bearing, linear motors (500mm), encoder | 4 VCM XYRz (3mm) | n/a | Interferometer, XYRz | cite:&okazaki12_dual_servo_mechan_stage_contin_posit |
|
||
| X | 1 axis, linear motor | 1 VCM | 800Hz | Interferometer, X | cite:&ito13_high_precis_posit_system_using;&ito15_low_stiff_dual_stage_actuat |
|
||
| X | stepper motor, ballscrew (300mm) | PZT (16um) | 70Hz | Linear Encoder, X | cite:&kim13_desig_contr_singl_stage_dual |
|
||
| X,Y | 2 axis stepper (100mm), encoder | 4 PZT (130um) | $\approx 10\,Hz$ | Interferometers, XY | cite:&wu13_desig |
|
||
| X | 1 axis, linear motor (10mm), encoder | 1 VCM | 130 Hz | Interferometer, X | cite:&zhu17_flexur_based_paral_actuat_dual |
|
||
| X,Y | XY stepper motor (100mm), ballscrew, encoder | 2 PZT (100um) + capacitive | $\approx 10\,Hz$ | Combine both | cite:&wang17_devel_contr_long_strok_precis_stage |
|
||
|
||
** DONE [#A] Make a paragraph about Mechatronics approach / DEB
|
||
CLOSED: [2025-04-17 Thu 16:52]
|
||
**** Predicting performances using models
|
||
|
||
|
||
**** Dynamic Error Budgeting
|
||
|
||
cite:jabben07_mechat
|
||
|
||
** DONE [#A] Review of two stage control
|
||
CLOSED: [2025-04-17 Thu 16:49]
|
||
|
||
- *Could be interesting to show that 6DoF active compensation of two-stage control is quite new*
|
||
|
||
*Articles*:
|
||
- [X] cite:&xu12_desig_devel_flexur_based_dual
|
||
- [X] cite:&pahk01_ultra_precis_posit_system_servo_motor
|
||
- [X] cite:&kobayashi03_phase_stabil_servo_contr_dual
|
||
disk drive
|
||
- [X] cite:&michellod06_strat_contr_dual_nano_system_singl_metrol
|
||
- [X] cite:&woody06_desig_perfor_dual_drive_system
|
||
- [X] cite:&chassagne07_nano_posit_system_with_sub
|
||
- [X] cite:&schitter08_dual
|
||
- [X] cite:&buice09_desig_evaluat_singl_axis_precis
|
||
- [X] cite:&liu10_desig_contr_long_travel_nano_posit_stage
|
||
- [X] cite:&ting11_contr_desig_high_frequen_cuttin
|
||
- [X] cite:&okazaki12_dual_servo_mechan_stage_contin_posit
|
||
- [X] cite:&ito13_high_precis_posit_system_using
|
||
- [X] cite:&kim13_desig_contr_singl_stage_dual
|
||
- [X] cite:&wu13_desig
|
||
- [X] cite:&ito15_low_stiff_dual_stage_actuat
|
||
- [X] cite:&zhu17_flexur_based_paral_actuat_dual
|
||
- [X] cite:&wang17_devel_contr_long_strok_precis_stage
|
||
- [X] cite:&yun20_inves_two_stage_vibrat_suppr
|
||
Stewart platform used as vibration isolation
|
||
|
||
*Books*:
|
||
- [ ] cite:&yamaguchi13_advan_high_perfor_motion_contr_mechat_system
|
||
- [ ] cite:&qingsong16_desig_implem_large_range_compl_microp_system
|
||
- [ ] cite:&du19_multi_actuat_system_contr
|
||
|
||
*To read in details*:
|
||
- [X] cite:&choi08_desig_contr_nanop_xy_theta_scann
|
||
*top*
|
||
- [X] [[cite:&buice09_desig_evaluat_singl_axis_precis]]
|
||
- [X] cite:&shinno11_newly_devel_long_range_posit
|
||
- [X] cite:&okazaki12_dual_servo_mechan_stage_contin_posit
|
||
- [X] cite:&shan15_contr_review
|
||
*Good review*
|
||
#+begin_quote
|
||
Since the proposal of the first dual-actuation stage composed of a combination of ball screw drives and a rotary motor for the long-stroke stage and piezoelectric actuators for the fine stage in 1988, many studies have been performed.
|
||
When the coarse actuator and fine actuator are combined, some problems are solved and some other problems develop, such as stability, response speed, and friction.
|
||
#+end_quote
|
||
#+begin_quote
|
||
The motion range of the piezoelectric actuator (short stroke) will at least compensate the motion error of the VCM (long-stroke) and the bandwidth of the piezoelectric actuator is higher than that of the VCM to compensate the system error.
|
||
#+end_quote
|
||
- [X] cite:&okyay16_mechat_desig_dynam_contr_metrol
|
||
*Good review*
|
||
#+begin_quote
|
||
The alternative, sliding contact bearings are limited to 2-10 [μm] motion resolution, due to stick-slip motion [[cite:&slocum92_precis_machin_desig]], hence they are not preferred.
|
||
Stick-slip occurs due to the difference between static and dynamic coefficients of friction in such bearings, which results in an impact-like disturbance in the control system during motion reversal.
|
||
#+end_quote
|
||
- [X] cite:&kong18_vibrat_isolat_dual_stage_actuat
|
||
*Only found example of dual stage with hexapod*. But only for vibration isolation
|
||
#+begin_quote
|
||
The coarse stage is usually actuated by VCMs or other linear motors, and the fine stage is usually actuated by piezoelectric actuators or VCMs.
|
||
#+end_quote
|
||
|
||
** DONE [#C] Complete list of Synchrotrons
|
||
CLOSED: [2024-05-14 Tue 17:28]
|
||
|
||
| Name | Country | Gen | Status | Energy | Brightness | Emittance | Current |
|
||
|------------------------+----------------------+-------------+-----------------+---------+------------+--------------------+---------|
|
||
| [[https://www.esrf.fr/about/upgrade][ESRF]] | France, Grenoble | 4th | In operation | 6GeV | | 110pm.rad, 5pm.rad | 200mA |
|
||
| [[https://www.synchrotron-soleil.fr/fr][Soleil II]] | France, Paris | 3rd => 4th | Upgrade planned | 2.75GeV | | 83pm.rad | 500mA |
|
||
| [[https://www.diamond.ac.uk/Home/About/Vision/Diamond-II.html][Diamond II]] | UK, Oxfordshire | 3rd => 4th | Upgrade planned | 3GeV | | 3nm.rad, 8pm.rad | 300mA |
|
||
| [[https://als.lbl.gov/als-u/als-u-approach/][ALS-U]] | US, Berkeley | 3rd => 4th | Ongoing upgrade | 2Gev | | | 500mA |
|
||
| [[https://www-ssrl.slac.stanford.edu/content/spear3/photon-source-parameters][SLAC]] | US, Standford | 3rd | | 3GeV | | 10nm.rad, 14pm.rad | 500mA |
|
||
| [[https://www.aps.anl.gov/About/Overview][APS]] | US, Lemont | 4th | In operation | 7GeV | | | |
|
||
| [[https://www.bnl.gov/nsls2/][NSLS II]] | US, New York | 3rd | | 3GeV | 10^21 | 0.5nm.rad, 8pm.rad | |
|
||
| [[https://www.cells.es/en/about/welcome][Alba]] | Spain, Barcelona | 3rd | | 3GeV | | | |
|
||
| [[https://www.psi.ch/en/sls/about-sls][PSI, SLS]] | Switzerland | 3rd => 4th | Ongoing upgrade | 2.4GeV | | | |
|
||
| [[https://www.elettra.eu/lightsources/elettra/machine.html][Elettra 2.0]] | Italy, Triestre | 3rd => 4th | Upgrade planned | 2.4GeV | | 0.2nm.rad | |
|
||
| [[https://www.maxiv.lu.se/beamlines-accelerators/accelerators/][Max IV]] | Sweden, Lund | 4th | In operation | 3GeV | | 0.2nm.rad, 2pm.rad | 500mA |
|
||
| [[https://petra4.desy.de/index_eng.html][DESY, PETRA IV]] | Germany, Hamburg | 3rd => 4th | Upgrade planned | 6GeV | | 10pm.rad, 10pm.rad | 100mA |
|
||
| [[https://www.helmholtz-berlin.de/forschung/quellen/bessy/bessy-in-zahlen_en.html][BESSY II]] | Germany, Berlin | 3rd => 4th | Upgrade planned | 1.7GeV | | | |
|
||
| [[https://www.sesame.org.jo/accelerators][SESAME]] | Jordan | 3rd | | 2.5GeV | | | |
|
||
| [[https://lnls.cnpem.br/accelerators/][LNLS, Sirius]] | Brazil | 4th | In operation | 3Gev | | 0.25nm.rad | 100mA |
|
||
| [[http://english.ihep.cas.cn/heps/nae/nh/][HEPS]] | China, Huairou | 4th | In operation | 6GeV | 10^22 | 60pm.rad | 200mA |
|
||
| [[https://en.nsrl.ustc.edu.cn/2015/0128/c10878a117870/page.htm][NSRL]] | China, Hefei | 3rd | | 0.8Gev | | | 300mA |
|
||
| [[https://lssf.cas.cn/en/facilities-view.jsp?id=ff8080814ff56599014ff599b8550033][SSRF]] | China, Shangai | 3rd | | 3.5GeV | | 4nm.rad | 300mA |
|
||
| [[http://www.spring8.or.jp/en/][Spring-8 II]] | Japan, Himeji | 3rd => 4th | Upgrade planned | 6Gev | | 50pm.rad | 200mA |
|
||
| [[https://www.qst.go.jp/site/3gev-eng/][NanoTerasu]] | Japan | 4th | In operation | 3GeV | | 1nm.rad | 400mA |
|
||
| [[https://www.ansto.gov.au/facilities/australian-synchrotron][Australian Synchrotron]] | Australia, Clayton | 3rd | | 3GeV | | 16nm.rad | 200mA |
|
||
| [[https://www.lightsource.ca/index.php][Canadian Light Source]] | Canada, Saskatchewan | 3rd | | 3GeV | | 18nm.rad | 220mA |
|
||
|
||
** DONE [#C] Review about Stewart platforms
|
||
CLOSED: [2024-05-30 Thu 09:16]
|
||
|
||
- [X] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org]]
|
||
- [ ] 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:kong18_vibrat_isolat_dual_stage_actuat]]
|
||
- [ ] cite:naves20_desig
|
||
|
||
** DONE [#B] Review of stages with online metrology for Synchrotrons
|
||
CLOSED: [2024-05-30 Thu 14:24]
|
||
|
||
*Sensors*:
|
||
- Capacitive: [[cite:&schroer17_ptynam;&villar18_nanop_esrf_id16a_nano_imagin_beaml;&schropp20_ptynam]]
|
||
- Fiber Interferometers Interferometers:
|
||
- Attocube FPS3010 Fabry-Pérot interferometers: [[cite:&nazaretski15_pushin_limit;&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&engblom18_nanop_resul;&nazaretski22_new_kirkp_baez_based_scann]]
|
||
- Attocube IDS3010 Fabry-Pérot interferometers: [[cite:&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage;&kelly22_delta_robot_long_travel_nano]]
|
||
- PicoScale SmarAct Michelson interferometers: [[cite:&schroer17_ptynam;&schropp20_ptynam;&xu23_high_nsls_ii;&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
|
||
*Actuators*:
|
||
- Piezoelectric: [[cite:&nazaretski15_pushin_limit;&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage;&villar18_nanop_esrf_id16a_nano_imagin_beaml;&nazaretski22_new_kirkp_baez_based_scann]]
|
||
- 3-phase linear motor: [[cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&engblom18_nanop_resul]]
|
||
- Voice Coil: [[cite:&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
|
||
*Bandwidth*: rarely specificity.
|
||
Usually slow, so that only drifts are compensated.
|
||
Only recently, high bandwidth (100Hz) have been reported with the use of voice coil actuators [[cite:&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]].
|
||
|
||
*Degrees of Freedom*:
|
||
- Full rotation for tomography:
|
||
- Spindle bellow YZ stage: [[cite:&wang12_autom_marker_full_field_hard;&schroer17_ptynam;&schropp20_ptynam;&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
- Spindle above YZ stage: [[cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage;&villar18_nanop_esrf_id16a_nano_imagin_beaml;&engblom18_nanop_resul;&nazaretski22_new_kirkp_baez_based_scann;&xu23_high_nsls_ii]]
|
||
- Only for mapping: [[cite:&nazaretski15_pushin_limit;&kelly22_delta_robot_long_travel_nano]]
|
||
|
||
*Stroke*:
|
||
- > 1mm: [[cite:&nazaretski15_pushin_limit;&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
|
||
*Payload capabilities*:
|
||
- Micron scale samples
|
||
- Samples up to 500g [[cite:&nazaretski22_new_kirkp_baez_based_scann;&kelly22_delta_robot_long_travel_nano]]
|
||
|
||
#+caption: End-Station with integrated online metrology
|
||
#+attr_latex: :environment tabularx :width \linewidth :align lllllllX
|
||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||
| Architecture | Sensors and measured DoFs | Metrology Use | Stroke, DoF | Samples | Institute, BL | Ref |
|
||
|-----------------------------------------------------------------+--------------------------------+---------------------+-------------------------+--------------+----------------+-------------------------------------------|
|
||
| Spindle / *XYZ piezo stage* / Spherical retroreflector / Sample | 3 interferometers[fn:1]: $YZ$ | Characterization | XYZ: 100um, Rz: 180 deg | micron scale | PETRA III, P06 | [[cite:&schroer17_ptynam;&schropp20_ptynam]] |
|
||
| | | | | | | |
|
||
| Spindle / Metrology Ring / *XYZ* Stage / Sample | 3 Capacitive: $YZR_x$ | Post processing | | micron scale | NSLS, X8C | cite:&wang12_autom_marker_full_field_hard |
|
||
| *XYZ piezo stage* / Spindle / Metrology Ring / Sample | 2 interferometers [fn:1]: $YZ$ | Detector triggering | | micron scale | NSLS, HRX | [[cite:&xu23_high_nsls_ii]] |
|
||
|
||
- [ ] Maybe only keep the scanning DoF
|
||
|
||
#+caption: End-Station with integrated feedback loops based on online metrology. Stages used for feedback are indicated in bold font.
|
||
#+attr_latex: :environment tabularx :width \linewidth :align lllllllX
|
||
#+attr_latex: :center t :booktabs t :font \scriptsize
|
||
| Stacked Stages | Sensors and measured DoFs | Bandwidth | Stroke, DoF | Samples | Institute, BL | Ref |
|
||
|--------------------------------------------------------------------+--------------------------------------+-----------+--------------------------------------+------------+-------------------+----------------------------------------------------------------------------------|
|
||
| *XYZ piezo motors* / Mirrors / Sample | 3 interferometers[fn:3]: $XYZ$ | 3 PID | XYZ: 3mm | light | APS | [[cite:&nazaretski15_pushin_limit]] |
|
||
| *Piezo Hexapod* / Spindle / Metrology Ring / Sample | 12 Capacitive[fn:4]: $XYZR_xR_y$ | 10Hz | XYZ: 50um, Rx/Ry:500urad, Rz: 180deg | light | ESRF, ID16a | [[cite:&villar18_nanop_esrf_id16a_nano_imagin_beaml]] |
|
||
| *Piezo Tripod* / Spindle / Spherical Reference / Sample | 5 Custom interferometers: $YZR_x$ | PID | XYZ: 400um, Rz: 365 deg | light | PSI, OMNY | [[cite:&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage]] |
|
||
| *Stacked XYZ linear motors* / Spindle / XY / Cylindrical Reference | 5 interferometers[fn:3]: $XYZR_xR_y$ | | XYZ: 400um, Rz: 360 deg | light | Soleil, Nanoprobe | [[cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&engblom18_nanop_resul]] |
|
||
| *XYZ piezo* / Spindle / Metrology Ring / Sample | 3 interferometers [fn:3]: $XYZ$ | | XYZ: 100um, Rz: 360 deg | up to 500g | NSLS, SRX | [[cite:&nazaretski22_new_kirkp_baez_based_scann]] |
|
||
| *Parallel XYZ voice coil stage* / Sample | 3 interferometers[fn:2]: $XYZ$ | 100Hz | XYZ: 3mm | up to 350g | Diamond, I14 | [[cite:&kelly22_delta_robot_long_travel_nano]] |
|
||
| Rz / *Parallel XYZ voice coil stage* / Sample | 3 interferometers[fn:1]: $XYZ$ | 100Hz | YZ: 3mm, Rz: +-110deg | light | LNLS, CARNAUBA | [[cite:&geraldes23_sapot_carnaub_sirius_lnls]] |
|
||
|
||
[fn:4]Capacitive sensors from Fogale Sensors
|
||
[fn:3]Attocube FPS3010 Fabry-Pérot interferometers
|
||
[fn:2]Attocube IDS3010 Fabry-Pérot interferometers
|
||
[fn:1]PicoScale SmarAct Michelson interferometers
|
||
|
||
** DONE [#C] Review about Stewart platform control
|
||
CLOSED: [2024-05-29 Wed 16:16]
|
||
|
||
Based on [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org]]
|
||
|
||
Broad subject (MIMO control), maybe talk only about vibration control based on external metrology.
|
||
|
||
- Active Damping
|
||
- Decentralized
|
||
- Centralized
|
||
- Manually tuned: PID, lead lag, etc...
|
||
- Automatic / Optimal: LQG, H-Infinity
|
||
|
||
** DONE [#B] Check these papers for literature review
|
||
CLOSED: [2024-05-05 Sun 16:22]
|
||
|
||
Check these papers:
|
||
- [[elisp:(helm-bibtex nil nil "nass ")][Nano Active Stabilization System]]
|
||
- [[elisp:(helm-bibtex nil nil "esrf ")][ESRF]]
|
||
- [[elisp:(helm-bibtex nil nil "nanostage ")][Nano Positioning Stage]]
|
||
|
||
|
||
NASS:
|
||
- [X] cite:&wang12_autom_marker_full_field_hard
|
||
Calibration of spindle run-out errors, and correct the errors in post processing, for tomography
|
||
- [X] cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot
|
||
- [X] cite:&schroer17_ptynam
|
||
- [X] cite:&nazaretski17_desig_perfor_x_ray_scann
|
||
- [X] cite:&nazaretski15_pushin_limit
|
||
- [X] cite:nazaretski22_new_kirkp_baez_based_scann
|
||
|
||
- [X] cite:&naves20_t_flex
|
||
- [X] cite:&kim13_compac_protot_appar_reduc_circl
|
||
- [X] cite:&khaled18_pract_desig_applic_model_predic_contr
|
||
- [X] cite:&holler18_omny_tomog_nano_cryo_stage
|
||
- [X] cite:&holler17_omny_pin_versat_sampl_holder
|
||
- [X] cite:&engblom18_nanop_resul
|
||
- [X] cite:&dehaeze18_sampl_stabil_for_tomog_exper
|
||
- [X] HXN [[cite:&xu23_high_nsls_ii]]
|
||
Laser interferometers on reference ring (on top of rotary stage).
|
||
Used to trigger the detectors (ptychography, microscope)
|
||
|
||
ESRF:
|
||
- [X] cite:raimondi21_commis_hybrid_multib_achrom_lattic
|
||
- [X] cite:cotte17_id21_x_ray_infrar_micros
|
||
- [X] cite:martinez-criado16_id16b
|
||
- [X] cite:villar18_nanop_esrf_id16a_nano_imagin_beaml
|
||
- [X] cite:riekel10_progr_micro_nano_diffr_at
|
||
- [X] cite:wright20_new_oppor_at_mater_scien
|
||
- [X] cite:leake19_nanod_beaml_id01
|
||
- [X] cite:versteegen23_inser_devic_contr
|
||
- [X] cite:marion04_hexap_esrf
|
||
- [X] cite:fajardo95_contr_six_degree_paral_manip
|
||
- [X] cite:cammarata09_chopp_system_time_resol_exper
|
||
- [X] cite:dabin02_mechan_desig_high_precis_posit
|
||
- [X] cite:dabin03_precis_mechan_high_accur_beaml
|
||
- [X] cite:guijarro17_bliss_exper_contr_esrf_ebs_beaml
|
||
- [X] cite:janvier13_icepap
|
||
- [X] cite:baker18_esrf_doubl_cryst_monoc_protot_projec
|
||
- [X] cite:dabin04_mecan
|
||
- [X] cite:reichert21_stiff_hexap
|
||
- [X] cite:dehaeze21_mechat_approac_devel_nano_activ_stabil_system
|
||
- [X] cite:brumund21_multib_simul_reduc_order_flexib_bodies_fea
|
||
- [X] cite:dehaeze21_activ_dampin_rotat_platf_using
|
||
- [X] cite:zhang96_groun_vibrat_orme_meris_super_esrf
|
||
- [X] cite:zelenika04_flexur_use_elast_sr_instr_desig
|
||
- [X] cite:youness20_concep
|
||
- [X] cite:ravy18_shinin_light_synch_light
|
||
- [X] cite:dimper15_esrf_upgrad_progr_phase_ii
|
||
- [X] cite:dehaeze18_sampl_stabil_for_tomog_exper
|
||
- [X] cite:dabin04_mecan
|
||
- [X] cite:brendike19_esrf_doubl_cryst_monoc_protot_contr_concep
|
||
|
||
nanostage:
|
||
- [X] cite:&yong16_mechan_desig_high_speed_nanop_system
|
||
- [X] cite:&lee17_compac_compl_paral_xy_nano
|
||
- [X] cite:&awtar13_desig_large_range_xy_nanop_system
|
||
- [X] cite:&liu18_desig_trajec_track_contr_piezoel
|
||
- [X] cite:&yong09_desig_ident_contr_flexur_based
|
||
- [X] cite:&fleming10_integ_strain_force_feedb_high
|
||
- [X] cite:&barillot99_desig_funct_tests_xy_piezoel
|
||
|
||
** DONE [#C] Table that compares nano positioning stations with metrology / feedback
|
||
CLOSED: [2024-05-05 Sun 11:55]
|
||
|
||
- [X] ID16a: capacitive sensors, short stroke, spindle above the fix hexapod, light samples [[cite:&villar18_nanop_esrf_id16a_nano_imagin_beaml]]
|
||
- [X] Soleil Nano probe [[cite:&engblom18_nanop_resul;&stankevic17_inter_charac_rotat_stages_x_ray_nanot]]
|
||
- [X] PSI OMNY [[cite:&holler18_omny_tomog_nano_cryo_stage;&holler17_omny_pin_versat_sampl_holder]]
|
||
[[cite:&holler15_error_motion_compen_track_inter;&holler12_instr_x_ray_nano_imagin]]
|
||
- [X] DESY PETRA III /PtyNAMi/ [[cite:&schropp20_ptynam;&schroer17_ptynam;&schroeck01_compen_desig_linear_time_invar]]
|
||
scanning microscope and tomography
|
||
tracking the mechanical stability of optics relative to the sample scanner
|
||
laser interferometer system to track the sample in the two directions transverse to the optical axis
|
||
#+begin_quote
|
||
For scanning microscopy and tomography it is essential to know where the beam hits the sample.
|
||
Position uncertainties can arise from vibrations of the focusing optics and of the sample.
|
||
The sample is scanned through the nanobeam, while the optics are kept fixed after initial alignment.
|
||
#+end_quote
|
||
Interferometers used for monitoring, not for closed-loop control
|
||
- [ ] APS/Diamond:
|
||
- [X] cite:&wang12_autom_marker_full_field_hard
|
||
Calibration of spindle run-out errors, and correct the errors in post processing, for tomography
|
||
- [X] [[cite:&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
SIRIUS, LNLS
|
||
#+begin_quote
|
||
Synchrotron scanning X-ray microscopes are generally based on piezo scanning stages, with motion range typically
|
||
limited to 100 µm, such that complementary long-stroke stages, with motion range of several millimeters, are often
|
||
required to comply with alignment and the search of regions of interest in typical millimeter-size samples or sample
|
||
mounts [3, 5–13, 15, 16]. However, potential limitations in this architecture include: 1) limited dynamics and stability,
|
||
with resonance modes in the order of 100 Hz (or less) resulting from multiple stacked stages; 2) parasitic motion
|
||
associated with coarse stages; and 3) deteriorated performance in continuous fly-scan beyond the piezo range, which
|
||
are caused by disturbances introduced by stepper motors or stick-slip piezos [43].
|
||
#+end_quote
|
||
- [X] Delta robot, diamond [[cite:&kelly22_delta_robot_long_travel_nano]]
|
||
|
||
Bandwidth is rarely specified
|
||
|
||
Same table for nano positioning stages without integrated metrology?
|
||
|
||
** DONE [#B] Talk about performance specifications
|
||
CLOSED: [2025-04-17 Thu 15:30]
|
||
|
||
Smallest beamsize: 200nm x 100nm
|
||
- Goal: Keep the PoI in the beam: peak to peak errors of 200nm in Dy and 100nm in Dz
|
||
- RMS errors (/ by 6.6) gives 30nmRMS in Dy and 15nmRMS in Dz.
|
||
- Ry error <1.7urad, 250nrad RMS
|
||
|
||
What is the filtering?
|
||
I don't think we consider any filtering as high frame rate might be used
|
||
|
||
** CANC [#B] Add table to compare Stewart platforms
|
||
CLOSED: [2025-04-16 Wed 19:12]
|
||
|
||
- State "CANC" from "TODO" [2025-04-16 Wed 19:12]
|
||
[[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org]]
|
||
|
||
** DONE [#A] Modifications based on discussion with Christophe
|
||
CLOSED: [2025-04-17 Thu 15:30]
|
||
|
||
- [X] Evolution of precision of instrument over time?
|
||
Difficult to do
|
||
- [ ] Tables can be put in annex if necessary
|
||
- [-] Review of literature should not be in introduction:
|
||
- [X] Stewart platform in chapter 2
|
||
- [X] Control architecture for Stewart platforms: maybe in chapter 1 when talking about control? *yes*
|
||
- [ ] Mechatronics approach just before/in the outline
|
||
|
||
** DONE [#A] Important point of payload mass
|
||
CLOSED: [2025-04-17 Thu 16:27]
|
||
|
||
Because the payload's mass can be higher than the mass of the micro-hexapod mass, the coupling becomes very high.
|
||
|
||
** DONE [#C] Maybe remove the footnotes that may not be important
|
||
CLOSED: [2025-04-17 Thu 16:48]
|
||
* Context of this thesis
|
||
** Synchrotron Radiation Facilities
|
||
:PROPERTIES:
|
||
:UNNUMBERED: t
|
||
:END:
|
||
**** Accelerating electrons to produce intense X-ray
|
||
|
||
- Explain what is a Synchrotron:
|
||
- A particle (electrons) accelerator light source
|
||
- Electrons produce very bright light, called synchrotron light
|
||
- This very intense light, in the X-ray regime, is then used to study matter.
|
||
- There are around 70 Synchrotron light sources in the world
|
||
Some of the main ones are shown in Figure ref:fig:introduction_synchrotrons.
|
||
This shows how useful the produced light is for the scientific community.
|
||
|
||
#+name: fig:introduction_synchrotrons
|
||
#+caption: Major synchrotron radiation facilities in the world. 3rd generation Synchrotrons are shown in blue. Planned upgrades to 4th generation are shown in green, and 4th generation Synchrotrons in operation are shown in red.
|
||
#+attr_latex: :width \linewidth
|
||
[[file:figs/introduction_synchrotrons.png]]
|
||
|
||
There are two main parts in the Synchrotron:
|
||
- The accelerator where electrons are accelerated close to the speed of light
|
||
The generation of the synchrotron light is made by placing magnetic fields on the electron beam path.
|
||
These are called Insertion device or Bending magnet.
|
||
- The beamlines where the intense X-ray beam is used to study matter
|
||
|
||
**** The European Synchrotron Radiation Facility
|
||
|
||
European Synchrotron Radiation Facility (ESRF):
|
||
- Joint research facility situated in Grenoble, France
|
||
- supported by 19 countries
|
||
- Opened for user operation in 1994: World's first third generation synchrotron (i.e. integrating )
|
||
|
||
Accelerator (Schematically shown in Figure ref:fig:introduction_esrf_schematic):
|
||
- The Linear accelerator: where the electrons are
|
||
- Booster: electrons are accelerated closed to the speed of light
|
||
- Storage Ring: where the electrons are stored. Circumference of 844m.
|
||
|
||
Then, there are over 40 beamlines all around the storage ring:
|
||
- Large diversity in terms of instrumentation and science
|
||
- Science that can be performed: structural biology, structure of materials, matter at extreme, ...
|
||
|
||
#+name: fig:instroduction_esrf
|
||
#+caption: Schematic (\subref{fig:introduction_esrf_schematic}) and picture (\subref{fig:introduction_esrf_picture}) of the European Synchrotron Radiation Facility
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_esrf_schematic} Schematic of the ESRF. The linear accelerator is shown in blue, the booster synchrotron in purple and the storage ring in green. There are over 40 beamlines, the ID31 beamline is highlighted in red}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_esrf_schematic.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_esrf_picture} European Synchrotron Radiation Facility}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_esrf_picture.jpg]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
**** 3rd and 4th Generation Light Sources
|
||
|
||
ESRF–EBS (Extremely Brilliant Source): [[cite:&raimondi21_commis_hybrid_multib_achrom_lattic]]
|
||
- In August 2020, after a 20-month shutdown, the ESRF is the first fourth-generation
|
||
- It uses a new storage ring concept that allows increased brilliance and coherence of the X-ray beams
|
||
The brilliance (also called brightness) is figure of merit for Synchrotron.
|
||
It corresponds to ...
|
||
100x increase with the EBS
|
||
- This new beam offers many new scientific opportunities, but also creates many engineering challenges.
|
||
|
||
#+name: fig:introduction_moore_law_brillance
|
||
#+caption: Evolution of the peak brilliance (expressed in $\text{photons}/s/mm^2/mrad^2/0.1\%BW$) of synchrotron radiation facilities. Note the vertical logarithmic scale.
|
||
[[file:figs/introduction_moore_law_brillance.png]]
|
||
|
||
** The ID31 ESRF Beamline
|
||
:PROPERTIES:
|
||
:UNNUMBERED: t
|
||
:END:
|
||
**** Beamline Layout
|
||
|
||
Beamline "layout" refers to the series of elements located in between the "light source" and the sample.
|
||
- Each beamline start with a "white" beam, which is just generated by the insertion device (i.e. the "source").
|
||
This beam has very high power (typically above kW), and is typically not directly used on the sample.
|
||
- Instead, the beam goes through a series of optical elements (absorbers, mirrors, slits, monochromators, etc.) to filter and "shape" the x-ray beam as wanted.
|
||
These elements are located in several Optical Hutches as shown in Figure Figure ref:fig:introduction_id31_oh
|
||
- Then, there is the Experimental Hutch (Figure ref:fig:introduction_id31_cad).
|
||
For some experiments (that are especially of interest here), focusing optics are used.
|
||
The sample is located on the sample stage (also called "end-station"), as is used to position the sample with respect to the x-ray.
|
||
Detectors are used to capture the image formed by the x-ray going through the sample
|
||
- Explain the XYZ frame for all the thesis (ESRF convention: X: x-ray, Z gravity up)
|
||
|
||
#+name: fig:introduction_id31_oh
|
||
#+caption: Schematic of the two ID31 optical hutches: OH1 (\subref{fig:introduction_id31_oh1}) and OH2 (\subref{fig:introduction_id31_oh2}). Distance from the source (the insertion device) is indicated in meters.
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_id31_oh1}OH1}
|
||
#+attr_latex: :options {\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 0.9
|
||
[[file:figs/introduction_id31_oh1.png]]
|
||
#+end_subfigure
|
||
|
||
\bigskip
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_id31_oh2}OH2}
|
||
#+attr_latex: :options {\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 0.9
|
||
[[file:figs/introduction_id31_oh2.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
|
||
**** Positioning End Station: The Micro-Station
|
||
|
||
The end station on the ID31 beamline is called the "micro-station":
|
||
- It is composed of several stacked stages, shown in Figure ref:fig:introduction_micro_station_dof:
|
||
- A translation stage (blue)
|
||
- Tilt stage (red)
|
||
- Spindle (yellow) for continuous rotation
|
||
- Micro hexapod (purple)
|
||
- The sample (cyan), which can weight up to 50kg
|
||
Typically the samples are fixed inside a sample environment, to provide special environment: high pressure, low or high temperatures, high magnetic field, etc.
|
||
|
||
Presentation of the Micro-Station in details:
|
||
- Goal of each stage (e.g. micro-hexapod: static positioning, Ty and Rz: scans, ...)
|
||
- Stroke
|
||
- Initial design objectives: as stiff as possible, smallest errors as possible
|
||
|
||
#+name: fig:introduction_micro_station
|
||
#+caption: CAD view of the ID31 Experimal Hutch (\subref{fig:introduction_id31_cad}). There are typically four main elements: the focusing optics in yellow, the sample stage in green, the sample itself in purple and the detector in blue. All these elements are fixed to the same granite. CAD view of the The micro-station with the associated degrees of freedom (\subref{fig:introduction_micro_station_dof}).
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_id31_cad} Experimental Hutch}
|
||
#+attr_latex: :options {0.52\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_id31_station_detector.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_micro_station_dof} Micro-Station}
|
||
#+attr_latex: :options {0.44\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_micro_station_dof.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
**** Example of Scientific experiments performed on ID31
|
||
|
||
Such end station, being composed of several stacked stages, has an high mobility and allow for various scientific experiments (i.e. imaging techniques).
|
||
|
||
Two examples are here given to showcase the possibility offers by
|
||
|
||
|
||
Tomography experiment:
|
||
- Experimental setup illustrated in Figure ref:fig:introduction_tomography_schematic.
|
||
- A sample is place on the X-ray beam, and its vertical angle is controlled using a rotation stage.
|
||
- The detector images are captures for many different rotation angles.
|
||
- A 3D image of the sample, such as the one shown in Figure ref:fig:introduction_tomography_results (taken from [[cite:&schoeppler17_shapin_highl_regul_glass_archit]]), can then be reconstructed if the sample's point of interest stays on the beam while it is being rotated.
|
||
|
||
|
||
Mapping/Scanning experiments:
|
||
- Experimental setup illustrated in Figure ref:fig:introduction_scanning_schematic
|
||
- Optics are used to focus the X-ray beam on the sample.
|
||
- Then, the sample is moved perpendicularly to the beam (i.e. in the Y and Z directions)
|
||
- Example of obtained imagine in Figure ref:fig:introduction_scanning_results, the position of the sample is scanned with 20nm step increments [[cite:&sanchez-cano17_synch_x_ray_fluor_nanop]]
|
||
- The quality/accuracy of the obtained image is directly linked to the beam size and the positioning accuracy of the sample with respect to the focused X-ray beam.
|
||
Any vibrations and drifts would blur and deforms the obtained image.
|
||
|
||
|
||
Other imaging techniques used on ID31 include reflectivity, diffraction tomography, small and wide angle X-ray scattering.
|
||
|
||
#+name: fig:introduction_tomography
|
||
#+caption: Exemple of a tomography experiment. The sample is rotated and images are taken at several angles (\subref{fig:introduction_tomography_schematic}). Example of one 3D image obtained after tomography (\subref{fig:introduction_tomography_results}).
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_tomography_schematic} Experimental setup}
|
||
#+attr_latex: :options {0.65\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 0.9
|
||
[[file:figs/introduction_tomography_schematic.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_tomography_results} Obtained image \cite{schoeppler17_shapin_highl_regul_glass_archit}}
|
||
#+attr_latex: :options {0.34\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :height 4.5cm
|
||
[[file:figs/introduction_tomography_picture.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
#+name: fig:introduction_scanning
|
||
#+caption: Exemple of a scanning experiment. The sample is scanned in the Y-Z plane (\subref{fig:introduction_scanning_schematic}). Example of one 2D image obtained after scanning with a step size of 20nm (\subref{fig:introduction_scanning_results}).
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_scanning_schematic} Experimental setup}
|
||
#+attr_latex: :options {0.65\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 0.9
|
||
[[file:figs/introduction_scanning_schematic.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_scanning_results} Obtained image \cite{sanchez-cano17_synch_x_ray_fluor_nanop}}
|
||
#+attr_latex: :options {0.34\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :height 4.5cm
|
||
[[file:figs/introduction_scanning_picture.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
** Need of Accurate Positioning End-Stations with High Dynamics
|
||
:PROPERTIES:
|
||
:UNNUMBERED: t
|
||
:END:
|
||
**** A push towards brighter and smaller beams
|
||
|
||
Thanks to the improvement of both the light source and the instrumentation, smaller and more stable beams are available.
|
||
|
||
First, the EBS upgrade allowed for a smaller source (especially in the horizontal direction) as illustrated in Figure ref:fig:introduction_beam_3rd_4th_gen.
|
||
|
||
#+name: fig:introduction_beam_3rd_4th_gen
|
||
#+caption: View of the ESRF X-ray beam before the EBS upgrade (\subref{fig:introduction_beam_3rd_gen}) and after the EBS upgrade (\subref{fig:introduction_beam_4th_gen}). The brilliance is increased, whereas the horizontal size and emittance are reduced.
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_beam_3rd_gen}$3^{rd}$ generation}
|
||
#+attr_latex: :options {0.69\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :height 1.6cm
|
||
[[file:figs/introduction_beam_3rd_gen.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_beam_4th_gen}$4^{th}$ generation}
|
||
#+attr_latex: :options {0.29\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :height 1.6cm
|
||
[[file:figs/introduction_beam_4th_gen.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
- At the start of the ESRF, spot sizes for micro-focusing were in the order to $10\,\mu m$ [[cite:&riekel89_microf_works_at_esrf]].
|
||
- Since then, lots of developments were perform to decrease the spot size, whether using Zone plates, Mirrors or Refractive lenses [[cite:&barrett16_reflec_optic_hard_x_ray]].
|
||
- Each with their advantages and drawbacks.
|
||
- Such evolution is illustrated in Figure ref:fig:introduction_moore_law_focus
|
||
- Today, spot size in the order of 10 to 20nm FWHM are common for specialized nano-focusing beamline.
|
||
|
||
#+name: fig:introduction_moore_law_focus
|
||
#+caption: Evolution of the measured spot size for different hard x-ray focusing elements. CRL, KB, FZP, MLL. Adapated from\nbsp{}[[cite:&barrett24_x_optic_accel_based_light_sourc]]
|
||
[[file:figs/introduction_moore_law_focus.png]]
|
||
|
||
**** New Dynamical Positioning Needs
|
||
|
||
- Higher brilliance / flux density => "Radiation damage".
|
||
- This is especially true for high energy beamlines such as ID31.
|
||
- This means that the focused beam should not be kept on the sample for long period of time with the risk of damaging the sample.
|
||
|
||
Two solutions:
|
||
- Traditional way of performing experiments, illustrated in Figure ref:fig:introduction_scan_step.
|
||
The sample is positioned as wanted, the detector acquisition (i.e. "photon integration") starts, and then a beam shutter is opened for a short period of time to avoid radiation damage.
|
||
Then it goes to the next position, and this process is repeated.
|
||
This process can takes of lot of time when high resolution is wanted.
|
||
- An alternative is to perform what is called /fly-scan/ of /continuous-scan/, [[cite:&xu23_high_nsls_ii]].
|
||
This is illustrated in Figure ref:fig:introduction_scan_fly.
|
||
As the sample undergoes continuous movement, the detector is triggered either based on the measured position of the sample of based on the time elapsed since the start of the motion.
|
||
This allows to perform experiments much faster [[cite:&huang15_fly_scan_ptych]] (i.e. better use of the beam time), and have potentially smaller pixel size.
|
||
|
||
#+name: fig:introduction_scan_mode
|
||
#+caption: Two acquisition modes. In step-by-step mode (\subref{fig:introduction_scan_step}), the motor moves at the wanted imaged position, the detector acquisition is started, the shutter is openned briefly to have the wanted exposition, the detector acquisition is stopped, and the motor can move to a new position. In /fly-scan/ mode (\subref{fig:introduction_scan_fly}), the shutter is openned while the sample is in motion, and the detector is acquired only at the wanted positions, on the /fly/.
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_scan_step} Step by step scan}
|
||
#+attr_latex: :options {0.55\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :height 6cm
|
||
[[file:figs/introduction_scan_step.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_scan_fly} Fly scan}
|
||
#+attr_latex: :options {0.44\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :height 6cm
|
||
[[file:figs/introduction_scan_fly.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
|
||
Recent detector developments:
|
||
- Better spatial resolution, lower noise and higher frame rates [[cite:&hatsui15_x_ray_imagin_detec_synch_xfel_sourc]].
|
||
- For typical scanning/tomography experiments: the detector integration time was in the order to 0.1s to 1s
|
||
- This long integration time (i.e. averaging) effectively "filters" out high frequency vibration in the beam position or of the sample's position, resulting in a apparent stable beam (but having bigger apparent size)
|
||
- With higher x-ray beam flux and lower noise in the detector, the integration time can be reduced.
|
||
Typical integration time can be in the over of 1ms, with frame rate in the order of 100Hz or more.
|
||
|
||
This has two main implications related to positioning requirements:
|
||
- First: need for faster scans. For a same "pixel size", having an integration time reduced means that the scanning velocity is increased by the same amount.
|
||
- Second: the measurement is more sensitive to high frequency vibration.
|
||
This means that there is a need to control the position up to higher frequency, typically in the kHz range.
|
||
When performing dynamic error budgeting, the vibration needs to be integrated up to higher frequencies.
|
||
Not only the sample position need to be stable (i.e. free of drifts) with respect to the x-ray beam, it also need to be vibration-less
|
||
Combined with /fly-scan/ mode, this means that the position needs to be well controlled, even during scans.
|
||
|
||
** Existing Nano Positioning End-Stations
|
||
:PROPERTIES:
|
||
:UNNUMBERED: t
|
||
:END:
|
||
**** Introduction :ignore:
|
||
|
||
In order to highlight the specificity of the developed system:
|
||
- Options to tackle the need of higher accuracy and better dynamical characteristics of end-station is briefly discussed.
|
||
- The goal is to extract specific characteristics of the developed system that puts it apart from currently developed end-station.
|
||
|
||
**** End-Station with Stacked Stages
|
||
|
||
Distinction between serial and parallel kinematics: Example of an end-station with 3DoF (Dx, Dy, Rz): Figure ref:fig:introduction_kinematics
|
||
- Stack stages (serial kinematics): Figure ref:fig:introduction_serial_kinematics
|
||
Each DoF is decoupled and positioned by only one actuator.
|
||
This usually lead to higher mobility.
|
||
But positioning errors / guiding errors of different stages are combined, and the overall positioning accuracy may be poor.
|
||
Similarly, the stiffness (i.e dynamical performances) of the overall end-station depends on the stiffness of the individual stages in all DoF, requiring extremely stiff stages.
|
||
When too many stages are stacked up, the overall stiffness is usually poor, and dynamical performances are not great.
|
||
- Parallel architecture: Figure ref:fig:introduction_parallel_kinematics
|
||
Motion induced by several actuator are combined to obtain the wanted DoF.
|
||
Theoretically, the controlled DoF are the same as the stacked stages architecture.
|
||
But in practice, motion are limited to very small strokes.
|
||
However, this has the advantage of having much higher stiffness, and therefore better dynamical performances.
|
||
|
||
#+name: fig:introduction_kinematics
|
||
#+caption: Two positioning platforms with $D_x/D_y/R_z$ degrees of freedom. One is using serial kinematics (\subref{fig:introduction_serial_kinematics}), while the other uses parallel kinematics (\subref{fig:introduction_parallel_kinematics})
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_serial_kinematics} Serial Kinematics}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_serial_kinematics.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_parallel_kinematics} Parallel Kinematics}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_parallel_kinematics.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
Most of end-station, because of the wanted high mobility, are composed of stacked stages.
|
||
In such case, their positioning performance solely depends on the accuracy of each of the individual stages.
|
||
|
||
To have acceptable performance / stability:
|
||
- A limited number of high performances stages, such as air bearing spindles, are used [[cite:&riekel10_progr_micro_nano_diffr_at]]
|
||
- Extremely stable hutch temperature, while wanted stability usually reached only after several days without intervention in the hutch [[cite:&leake19_nanod_beaml_id01]]
|
||
|
||
Two examples of such end-stations are shown in Figure ref:fig:introduction_passive_stations.
|
||
- ID16b [[cite:&martinez-criado16_id16b]]: uses a limited number of stacked stages, and uses extremely accurate air bearing spindle for tomography experiments
|
||
- ID11 [[cite:&wright20_new_oppor_at_mater_scien]]: Spindle, XYZ stage for scanning purposes and small hexapod used for pre-positioning
|
||
|
||
But when many degrees of freedom are wanted, the overall accuracy and stability usually does not allow (or maybe is making working with nano-focused beam very difficult) for experiments with a nano-beam.
|
||
|
||
#+name: fig:introduction_passive_stations
|
||
#+caption: Example of two nano end-stations without online metrology: (\subref{fig:introduction_endstation_id16b}) [[cite:&martinez-criado16_id16b]] and (\subref{fig:introduction_endstation_id11}) [[cite:&wright20_new_oppor_at_mater_scien]]
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_endstation_id16b}ID16b}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_endstation_id16b.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_endstation_id11}ID11}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_endstation_id11.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
**** Online Metrology
|
||
|
||
The idea of having an external metrology to correct for errors is not new.
|
||
|
||
Ideally, the relative position between the sample and the x-ray beam is measured.
|
||
In practice, it is not possible, but instead the position of the sample is measured with respect to the focusing optics and/or slits, providing an indirect measurement.
|
||
|
||
Several strategies:
|
||
- Used for know the relative position of the sample with respect to the x-ray beam.
|
||
Used during the post processing of the obtained data
|
||
- For calibration purposes. In that way repeatable errors can be compensated.
|
||
- For real time positioning control
|
||
For some applications, it is not only important to know the relative position of the sample with respect to the X-ray, but it is equality important to precisely control this position.
|
||
For instance, in order to keep a nano-particle on the beam while a tomography experiment is performed.
|
||
|
||
Several Sensors have been used, but mainly two types:
|
||
- Capacitive: [[cite:&schroer17_ptynam;&villar18_nanop_esrf_id16a_nano_imagin_beaml;&schropp20_ptynam]]
|
||
- Fiber Interferometers Interferometers: more and more used
|
||
- Attocube FPS3010 Fabry-Pérot interferometers: [[cite:&nazaretski15_pushin_limit;&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&engblom18_nanop_resul;&nazaretski22_new_kirkp_baez_based_scann]]
|
||
- Attocube IDS3010 Fabry-Pérot interferometers: [[cite:&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage;&kelly22_delta_robot_long_travel_nano]]
|
||
- PicoScale SmarAct Michelson interferometers: [[cite:&schroer17_ptynam;&schropp20_ptynam;&xu23_high_nsls_ii;&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
|
||
Two examples are shown in Figure ref:fig:introduction_metrology_stations, in which metrology systems are used ot monitor the sample's position:
|
||
- Figure ref:fig:introduction_stages_wang: X8C beamline at National Synchrotron Light Source (NSLS). Capacitive sensors are used to calibrate the errors of the rotation stage, and are used during the alignment of different images captures during a tomography experiment [[cite:&wang12_autom_marker_full_field_hard]].
|
||
- Figure ref:fig:introduction_stages_schroer: PtiNAMi microscope at P06 beamline at DESY. Three interferometers are pointed at a ball lens (1cm in diameter) located just below the sample. The spheres allows the sample to be rotated to perform tomography experiments.
|
||
Interferometers were reported to be used for monitoring, and is planned to be further used in a feedback loop with the piezoelectric stage located just below the sample [[cite:&schropp20_ptynam]].
|
||
|
||
#+name: fig:introduction_metrology_stations
|
||
#+caption: Two examples of end-station with integrated online metrology. (\subref{fig:introduction_stages_wang}) [[cite:&wang12_autom_marker_full_field_hard]] and (\subref{fig:introduction_stages_schroer}) [[cite:&schroer17_ptynam]]
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stages_wang} Wang}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_stages_wang.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stages_schroer} Schroer}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_stages_schroer.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
**** Active Control of Positioning Errors
|
||
|
||
For some applications (especially when using a nano-beam), the sample's position has not only to be measured, but to be controlled using feedback loops.
|
||
|
||
In that case, mainly three actuator types are used:
|
||
- Piezoelectric: [[cite:&nazaretski15_pushin_limit;&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage;&villar18_nanop_esrf_id16a_nano_imagin_beaml;&nazaretski22_new_kirkp_baez_based_scann]]
|
||
- 3-phase linear motor: [[cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&engblom18_nanop_resul]]
|
||
- Voice Coil: [[cite:&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
|
||
In the literature, the feedback bandwidth for such end-station is rarely specificity.
|
||
It is usually slow (in the order of 1Hz), so that only (thermal) drifts are compensated.
|
||
Only recently, high bandwidth (100Hz) have been reported with the use of voice coil actuators [[cite:&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]].
|
||
|
||
Two examples of end-station integrating online-metrology and feedback loops are shown in Figure ref:fig:introduction_active_stations:
|
||
- Figure ref:fig:introduction_stages_villar: ID16a beamline at ESRF (short stroke) Piezoelectric hexapod, rotation stage, Online metrology using many capacitive sensors.
|
||
The feedback loop (between the capacitive sensors and the piezoelectric hexapod) is used to compensate for errors of the rotation stage, and also to perform accurate scans with the hexapod.
|
||
- Figure ref:fig:introduction_stages_nazaretski: interferometers are used to measure the position of the sample. multi-layer Laue lenses (MLLs) are used to focus the beam down
|
||
Feedback control is used to compensate for drifts of the positioning stages.
|
||
|
||
More extensive review of end-station with feedback loops based on online metrology will be given in section [...].
|
||
# TODO - Add section to the review of stages with active vibration control ref:sec:nhexa_platform_review
|
||
|
||
#+name: fig:introduction_active_stations
|
||
#+caption: Example of two end-stations with real-time position feedback based on an online metrology. (\subref{fig:introduction_stages_villar}) [[cite:&villar18_nanop_esrf_id16a_nano_imagin_beaml]]. (\subref{fig:introduction_stages_nazaretski}) [[cite:&nazaretski17_desig_perfor_x_ray_scann;&nazaretski15_pushin_limit]]
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stages_villar} ID16a. =KB= is the focusing optics, =S= the sample, =C= the capacitive sensors and =LM= is the light microscope}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_stages_villar.jpg]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stages_nazaretski} 1 and 2 are stage to position the focusing optics. 3 is the sample location, 4 the sample stage and 5 the interferometers}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :scale 1
|
||
[[file:figs/introduction_stages_nazaretski.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
For tomography experiments, correcting for guiding errors of the rotation stage is of primary concern.
|
||
Two approaches can be used:
|
||
- Having the stage used for correcting the errors below the Spindle. [[cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage;&villar18_nanop_esrf_id16a_nano_imagin_beaml;&engblom18_nanop_resul;&nazaretski22_new_kirkp_baez_based_scann;&xu23_high_nsls_ii]]
|
||
- Having the stage correcting the errors above the Spindle: [[cite:&wang12_autom_marker_full_field_hard;&schroer17_ptynam;&schropp20_ptynam;&geraldes23_sapot_carnaub_sirius_lnls]]
|
||
In all these cases, only XYZ stages are used to compensate for the guiding errors of the spindle.
|
||
|
||
# Only for mapping: [[cite:&nazaretski15_pushin_limit;&kelly22_delta_robot_long_travel_nano]]
|
||
|
||
In terms of payload capabilities:
|
||
- All are only supported calibrated, micron scale samples
|
||
- Higher sample masses to up to 500g have been reported in [[cite:&nazaretski22_new_kirkp_baez_based_scann;&kelly22_delta_robot_long_travel_nano]]
|
||
|
||
100 times heavier payload capabilities than previous stations with similar performances.
|
||
|
||
**** Long Stroke - Short Stroke architecture
|
||
|
||
As shown in the previous examples, end-stations integrating online-metrology for nano-positioning are typically limited to only few degrees of freedom with only short stroke capabilities (in the order of $100\,\mu m$).
|
||
|
||
An other strategy, illustrated in Figure ref:fig:introduction_two_stage_schematic, is to use two stacked stages for a single DoF:
|
||
- A long stroke, with limited accuracy is combined with short stroke stage with good dynamical properties.
|
||
The short stroke stage is used to position the sample based on the metrology measurement, while the long stroke is performing large motion.
|
||
|
||
Such strategy is typically limited to few degrees of freedom:
|
||
- 1DoF as shown in Figure ref:fig:introduction_two_stage_control_example
|
||
- 3DoF as shown in Figure ref:fig:introduction_two_stage_control_h_bridge
|
||
|
||
With such strategy, it is possible to obtain an overall stage with long stroke capability and with good accuracy and dynamical properties (brought by the short stroke stage).
|
||
|
||
#+name: fig:introduction_two_stage_schematic
|
||
#+caption: Typical Long Stroke - Short Stroke architecture. The long stroke stage is ...
|
||
[[file:figs/introduction_two_stage_schematic.png]]
|
||
|
||
#+name: fig:introduction_two_stage_example
|
||
#+caption: (\subref{fig:introduction_two_stage_control_example}) [[cite:&shinno11_newly_devel_long_range_posit]], (\subref{fig:introduction_two_stage_control_h_bridge}) [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition]]
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_two_stage_control_example} Two stage control with classical stage and voice coil}
|
||
#+attr_latex: :options {0.59\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_two_stage_control_example.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_two_stage_control_h_bridge} H-bridge. $y_1$, $y_2$ and $x$ are 3-phase linear motors. Short stroke actuators are voice coils.}
|
||
#+attr_latex: :options {0.39\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_two_stage_control_h_bridge.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
* Challenge definition
|
||
**** Introduction :ignore:
|
||
|
||
Based on the positioning requirements brought by the 4th light sources, improved focusing optics and development in detector technology, there are several challenges that need to be addressed.
|
||
|
||
|
||
Smallest beam-size foreseen to be used on ID31 is around 200nm x 100nm
|
||
- During the experiments, the goal is therefore to keep to point of interest of the sample on the beam
|
||
- Therefore, the peak to peak positioning errors should be below 200nm in Dy and 100nm in Dz
|
||
- RMS errors (/ by 6.6) gives 30nmRMS in Dy and 15nmRMS in Dz.
|
||
- Also the tilt angle Ry error should be below <1.7urad, 250nrad RMS
|
||
|
||
|
||
As high frame rate detectors can be used, the specified position errors of the sample should hold even when taking into account high frequency vibrations.
|
||
|
||
|
||
Combined with the specificity of ID31:
|
||
- Build on top of the existing micro-station
|
||
- High required mobility to be able to perform many different experiments
|
||
- Handle large payloads (up to 50kg)
|
||
|
||
|
||
The current micro-station, while being composed of high performance positioning stages, the positioning accuracy is still limited by several effects:
|
||
- Backlash, play, thermal expansion, guiding imperfections, ...
|
||
- Give some numbers: straightness of the Ty stage for instance, change of $0.1^oC$ with steel gives x nm of motion
|
||
- Vibrations
|
||
- Possibility to have linear/rotary encoders that correct the motion in the considered DoF, but does not change anything to the other 5DoF
|
||
|
||
Typically, the final position accuracy is around 10um and 10urad.
|
||
|
||
The goal of this project is therefore to increase the positioning accuracy of the micro-station to fully exploit the new beam and detectors.
|
||
|
||
**** The Nano Active Stabilization System Concept
|
||
|
||
In order to address the new positioning requirements, the concept of the Nano Active Stabilization System (further referred to as the "NASS") is proposed.
|
||
|
||
It is composed of mainly four elements (Figure ref:fig:introduction_nass_concept_schematic):
|
||
- The micro station (in yellow)
|
||
- A 5 degrees of freedom metrology system (in red)
|
||
- A 5 or 6 degrees of freedom stabilization platform (in blue)
|
||
- Control system and associated instrumentation (in purple)
|
||
|
||
It therefore corresponds to a 5 DoF vibration control platform on top of a complex positioning platform that correct positioning errors based on an external metrology.
|
||
That way, the goal is to improve the positioning accuracy of the micro-station from ~10um to less than 100nm, while keeping the same mobility and payload capabilities.
|
||
|
||
#+name: fig:introduction_nass_concept_schematic
|
||
#+caption: The Nano Active Stabilization System concept
|
||
[[file:figs/introduction_nass_concept_schematic.png]]
|
||
|
||
**** Online Metrology system
|
||
|
||
As the position of the sample is actively controlled based on the measured position, the accuracy of the NASS depends on the accuracy of the metrology system.
|
||
|
||
Such metrology system should:
|
||
- Measure the sample's position along 5 DoF (only the rotation along the vertical axis is not measured)
|
||
- Ideally measure the position with respect to the focusing optics
|
||
- Long stroke, as the micro-station as high mobility, compatible with the spindle continuous rotation
|
||
- Have an accuracy compatible with the positioning requirements
|
||
- High bandwidth
|
||
|
||
Initial Concept:
|
||
- A spherical reflector with flat bottom is fixed just under the sample
|
||
- The center of the sphere coincide with the focused point of the X-ray
|
||
- Fiber interferometers are pointed both on spherical surface and on the bottom flat surface.
|
||
- A tracking system (tip-tilt mechanism) is used to keep the beam perpendicular to the mirror surface: Spherical mirror with center at the point of interest => No Abbe errors
|
||
|
||
In that case:
|
||
- XYZ positions can be measured from at least 3 interferometers pointing at the spherical surface
|
||
- Rx/Ry angles are measured from at least 3 interferometers pointing at the bottom flat surface
|
||
|
||
Such metrology system is a complex mechatronics system on its own.
|
||
This metrology system is not further discussed in this thesis as it is still under active development.
|
||
In the following of this thesis, it is supposed that the metrology system is accurate, and high bandwidth.
|
||
|
||
#+name: fig:introduction_nass_metrology
|
||
#+caption: 2D representation of the NASS metrology system.
|
||
[[file:figs/introduction_nass_metrology.png]]
|
||
|
||
**** Active Stabilization Platform
|
||
|
||
The Active stabilization platform, located in between the sample and the micro-station should:
|
||
- Be able to move the sample in 5 DoF (the vertical rotation is not controlled)
|
||
- Have good dynamical properties such that the sample's position can be controlled up to high frequency
|
||
- Be capable to control the position down to nanometers.
|
||
It should therefore be free of play, backlash.
|
||
Low level of vibration should be induced by the active parts of the platform (such as actuator noise).
|
||
- It should accept payloads up to 50kg.
|
||
|
||
A good candidate for the active platform is the Stewart platform:
|
||
- Parallel architecture, capable of controlling the motion in 6DoF
|
||
- Very popular for positioning and vibration control applications
|
||
- Many different designs, in terms of geometry, actuators, sensors and control strategies
|
||
Figure ref:fig:introduction_stewart_platform_piezo
|
||
# TODO - Review of Stewart platform ref:sec:detail_kinematics_stewart_review
|
||
|
||
*Challenge*: Optimally designing such active platform
|
||
|
||
#+name: fig:introduction_stewart_platform_piezo
|
||
#+caption: Example of Stewart platforms. (\subref{fig:introduction_stewart_du14}) [[cite:&du14_piezo_actuat_high_precis_flexib]] and (\subref{fig:introduction_stewart_hauge04}) [[cite:&hauge04_sensor_contr_space_based_six]]
|
||
#+attr_latex: :options [htbp]
|
||
#+begin_figure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_du14}PZT based, for positioning purposes}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_stewart_du14.png]]
|
||
#+end_subfigure
|
||
#+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_hauge04}Voice coil based, Cubic architecture, for vibration isolation}
|
||
#+attr_latex: :options {0.49\textwidth}
|
||
#+begin_subfigure
|
||
#+attr_latex: :width 0.95\linewidth
|
||
[[file:figs/introduction_stewart_hauge04.png]]
|
||
#+end_subfigure
|
||
#+end_figure
|
||
|
||
**** MIMO robust control strategies
|
||
|
||
The NASS also includes feedback control:
|
||
- from the measured position of the sample using the online metrology
|
||
- from the wanted position of the sample (based on the wanted motion of each of the micro-station stages)
|
||
- the active platform is controlled in real time to stabilize the sample's position, compensating for all the errors of the micro-station stages, thermal drifts, etc.
|
||
|
||
When feedback control is being used, attention should be made on the stability of the feedback loop.
|
||
This is especially important in the context of a beamline application, as the instrument should be able to 24/7 with minimum intervention.
|
||
That is why most of end-stations are based on well-proven design (stepper motors, linear guides, ball bearing, ...).
|
||
|
||
This need for robust feedback control is there made difficult due to:
|
||
- Many different configurations (tomography, Ty scans, slow fast, ...)
|
||
- Rotation aspect, gyroscopic effects, actuators are rotating with respect to the sensors
|
||
- The variety of payloads that will be used, with masses ranging from 1kg to 50kg.
|
||
Typically, high performance position feedback controllers are working with calibrated payloads (lithography machines, AFM, ...)
|
||
Being robust to change of payload inertia means larger stability margins and therefore less performance.
|
||
- For most of end-stations, the top stages (for small stroke scans) as well as the sample are quite light compared to the long stroke stages.
|
||
This way, the short stroke stage dynamics is not coupled to the dynamics of the stages bellow.
|
||
In the NASS case, the payload's mass may be one order of magnitude heavier than the mass of the long stroke top platform.
|
||
This induce a high coupling between the active platform and the micro-station.
|
||
This there may lead to a MIMO system with more complex dynamics and more coupling.
|
||
- This translates in change on the plant dynamics.
|
||
The feedback controller therefore need to be robust against plant uncertainty, while providing the wanted level of performance.
|
||
|
||
**** Predictive Design / Mechatronics approach
|
||
|
||
- The performances of the system will depend on many factors:
|
||
- sensors
|
||
- actuators
|
||
- mechanical design
|
||
- achievable bandwidth
|
||
- Need to evaluate the different concepts, and predict the performances to guide the design
|
||
- The goal is to design, built and test this system such that it work as expected the first time.
|
||
Very costly system, so must be correct.
|
||
- *Challenge*:
|
||
- Proper design methodology
|
||
- Have accurate models to be able to compare different concepts
|
||
- Converge to a solution that gives the wanted level of performance
|
||
|
||
* Original Contributions
|
||
**** Introduction :ignore:
|
||
|
||
# TODO - All the papers should be cited
|
||
|
||
In order to address the challenges associated with the development of the Nano Active Stabilization Systems, this thesis proposes several original contributions in the fields of Control, Mechatronics Design and Experimental validation.
|
||
|
||
**** 6DoF vibration control of a rotating platform
|
||
|
||
Long stroke / short stroke architectures are usually limited to 1DoF or 2DoF.
|
||
It is here extended to 6DoF.
|
||
|
||
The active platform will not only compensate for errors of the rotation stage, but also of all other stages.
|
||
|
||
To the author's knowledge, the use of a continuously rotating stewart platform for vibration control has not been proved in the literature.
|
||
|
||
**** Mechatronics design approach
|
||
|
||
For the design of the NASS, a rigorous mechatronics design approach was conducted.
|
||
|
||
[[cite:&dehaeze18_sampl_stabil_for_tomog_exper;&dehaeze21_mechat_approac_devel_nano_activ_stabil_system]]
|
||
|
||
While not new, this approach is here applied from start to finish:
|
||
- From first concepts using basic models, to concept validation using mode accurate models
|
||
- Detailed design phase: models were used to optimize each individual components
|
||
- Experimental phase: models were still found to have great use.
|
||
For instance to better understand the observed behavior, and also to optimize the implemented control strategy.
|
||
|
||
The use of dynamical models were used all along the development.
|
||
|
||
This document, being written chronologically:
|
||
- Make clear how each models can be useful during different parts of the project
|
||
- Clearly show how each design decision are based on facts / clear conclusions extracted from the models
|
||
- While the developed system is quite specific for the presented application, it shows the effectiveness of this design approach
|
||
|
||
# TODO - Use passive voice
|
||
I hope this document can make a small contribution in the adoption of the mechatronics approach for the design of future end-station and synchrotron instrumentation.
|
||
|
||
**** Multi-body simulations with reduced order flexible bodies obtained by FEA
|
||
|
||
One of the key tool that were used
|
||
|
||
Combined multi-body / FEA techniques and experimental validation on a Stewart platform containing amplified piezoelectric actuators
|
||
Super-element of amplified piezoelectric actuator / combined multibody-FEA technique, experimental validation on an amplified piezoelectric actuator and further validated on a complete stewart platform
|
||
|
||
While not new:
|
||
- Experimentally validated with both an amplified piezoelectric actuator as well as a flexible joint
|
||
- It proved to be a very useful tool for the design/optimisation of components that have to be integrated in a larger system
|
||
- Believed to be quite useful for the development of future mechatronics instrumentation
|
||
|
||
Subject of one publication [[cite:&brumund21_multib_simul_reduc_order_flexib_bodies_fea]]
|
||
Further detailed in Section [...].
|
||
# TODO - Section ref:sec:detail_fem
|
||
|
||
**** Control Robustness by design
|
||
|
||
One of the main challenge is to design a system that is robust for all the experimental conditions:
|
||
- various rotational velocities used
|
||
- payload used can weight up to 50kg
|
||
|
||
Instead of relying on complex controller synthesis (such as $\mathcal{H}_\infty$ synthesis or $\mu\text{-synthesis}$) to guarantee the robustness and performance, the approach was to:
|
||
- Choose an adequate architecture (mechanics, sensors, actuators) such that controllers are robust by nature
|
||
- An example is the use of collocated actuator/sensor pairs, such that controller stability can be guaranteed using passivity principles
|
||
- To make informed choices on the chosen architecture:
|
||
- different ways to combine sensors (HAC-LAC, sensors fusion, two sensor control) were evaluated
|
||
- different decoupling strategy were compared
|
||
Such discussion, presented in Section [...] ,were found to be lacking in the literature.
|
||
# TODO - Section ref:sec:detail_control
|
||
|
||
**** Active Damping of rotating mechanical systems using Integral Force Feedback
|
||
|
||
During the conceptual design, it was found the guaranteed stability of the active damping technique called "Integral Force Feedback" (IFF), is lost for rotating platforms as is the case for the NASS.
|
||
|
||
To overcome this issue, two modifications of the classical IFF control scheme are proposed.
|
||
The first consists of slightly modifying the control law while the second consists of adding springs in parallel with the force sensors.
|
||
Conditions for stability and optimal parameters are derived.
|
||
|
||
[[cite:&dehaeze20_activ_dampin_rotat_platf_integ_force_feedb;&dehaeze21_activ_dampin_rotat_platf_using]]
|
||
|
||
# TODO - Section ref:sec:rotating
|
||
|
||
**** Design of complementary filters using $\mathcal{H}_\infty$ Synthesis
|
||
|
||
One way to combine sensors is to use "sensor fusion".
|
||
In such case, complementary filters are used to filter and combine the sensors.
|
||
|
||
A method for designing such filter is proposed [[cite:&dehaeze19_compl_filter_shapin_using_synth]], that allows to shape the complementary filters norm, which allows to guarantee the performance of the fusion.
|
||
This was latter applied for optimal sensor fusion in gravitational wave detectors [[cite:&tsang22_optim_sensor_fusion_method_activ]].
|
||
The design strategy is discussed in Section [...].
|
||
# TODO - Section ref:sec:detail_control_sensor
|
||
|
||
The use of such complementary filters for feedback control can also lead to interesting control architecture, as discussed in [[cite:&verma20_virtual_sensor_fusion_high_precis_contr]] and further developed in Section [...].
|
||
# TODO - Section ref:sec:detail_control_cf
|
||
|
||
**** Experimental validation of the Nano Active Stabilization System
|
||
|
||
The positioning performances of the Nano Active Stabilization System is experimentally evaluated/demonstrated on the ID31 beamline.
|
||
|
||
The positioning accuracy of the micro-station is effectively improved from the ~10um down to ~100nm while performing experiments.
|
||
Robustness to sample's mass, and different experimental conditions are also verified.
|
||
|
||
This therefore lead to a very versatile end-station, with high payload capabilities and nano-meter accuracy, allowing for full exploitation of the x-ray beam and associated instrumentation.
|
||
|
||
To the author's knowledge, this is the first time such active platform is used to improve the accuracy of a positioning stage in 5DoF.
|
||
# TODO - Section ref:sec:test_id31
|
||
|
||
* Thesis Outline - Mechatronics Design Approach
|
||
**** Introduction :ignore:
|
||
|
||
This thesis is organized:
|
||
- to follow the mechatronics development approach, i.e. it is chronologically written.
|
||
|
||
The three chapters corresponds to the three mains parts of the proposed mechatronics approach.
|
||
A brief overview of these three chapters is given bellow.
|
||
|
||
**** Conceptual design development
|
||
|
||
- Talk about dynamic error budgeting
|
||
- Talk about used model
|
||
|
||
The goal of this first chapter is to find a concept:
|
||
- that will provide the wanted performances with high level of confidence
|
||
- As such system is costly, a mechatronics design approach is used [[cite:&monkhorst04_dynam_error_budget]] to be able to design the system "right the first time":
|
||
- 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.
|
||
|
||
To do so:
|
||
- Dynamical models are used, with included disturbances, feedback architecture, etc..
|
||
These models can be used to perform simulations, evaluate performances
|
||
- General idea is to start with very simple models, that can easily be understood (mass-spring-damper uniaxial model)
|
||
- Increase the model complexity if important physical phenomenon are to be modelled (cf the rotating model)
|
||
- Only when better understanding of the physical effects in play, and only if required, go for higher model complexity (here multi-body model)
|
||
|
||
To better understand the performance limitations, for different models, /dynamic error budgeting/ [[cite:&monkhorst04_dynam_error_budget;&okyay16_mechat_desig_dynam_contr_metrol]] are performed.
|
||
It consists of:
|
||
- Disturbance and noise signals are modeled by their spectral content, i.e. by their power spectral density (PSD)
|
||
- The effect of each error sources on the final error, while the feedback control is active, can be easily estimated
|
||
- Therefore, the effect that have the greatest impact on the achievable performance can be easily spotted and improved
|
||
- Different concepts can be compared
|
||
- This tool is therefore key in better understanding the main limitations, and guide the determination of the best concept, early in the project.
|
||
|
||
This chapter concludes with accurate time domain simulations of a tomography experiment, validating the developed concept.
|
||
|
||
**** Detailed design
|
||
|
||
- In the second chapter, the chosen concept can be design in more details.
|
||
- First, the architecture and geometry of the active platform is optimized.
|
||
- Then, key components of the active platform, such as the flexible joints and the actuators, are optimized using the combined multi-body / FEA design approach.
|
||
- This allowed to optimize the components using very accurate models (thanks to FEA), while still being able to integrate these components in the complete multi-body model of the NASS for time domain simulations.
|
||
- Different aspects of the control of the NASS, such as the optimal use of multiple sensors integrated in the active platform, the best adapted decoupling strategy and the design of the robust controller, are then discussed.
|
||
- The requirements for all the associated instrumentation (digital to analog converters, analog to digital converters, voltage amplifiers, relative motion sensors) are chosen based on dynamic error budgeting.
|
||
Using such approach, it was made sure that none of these instrumentation will limit the overall performance of the system.
|
||
- This chapter concludes with a presentation of the final design of the active platform.
|
||
|
||
**** Experimental validation
|
||
|
||
After converging to a detailed design that give acceptable performance based on the models, the different parts were ordered and the experimental phase began.
|
||
|
||
Instead of directly assembling the active platform and testing it on the ID31 micro-station, a systematic approach was followed to characterize individual components.
|
||
- Therefore, actuators and flexible joints were individual characterized.
|
||
This allowed to update the model of these components, and obtained a more accurate model of the active platform
|
||
Systematic validation/refinement of models with experimental measurements
|
||
- Actuators and flexible joints were combined to form the active "struts" of the active platform.
|
||
These struts are also characterized
|
||
- Once the active platform were assembled, its dynamical model were found to over a very good match with the measured dynamics.
|
||
- This chapter conclude with the experimental tests on the ID31 micro-station of the complete NASS.
|
||
- Various scientific experiments are performed, such as tomography, and with various payload masses, to access the performances of the final system.
|
||
|
||
* Bibliography :ignore:
|
||
#+latex: \printbibliography[heading=bibintoc,title={Bibliography}]
|
||
|