#+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) <> #+end_src #+begin_src matlab :exports none :results silent :noweb yes <> #+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: Synchrotron radiation facilities, are particle accelerators where electrons are accelerated to near the speed of light. As these electrons traverse magnetic fields, typically generated by insertion devices or bending magnets, they produce exceptionally bright light known as synchrotron light. This intense electromagnetic radiation, particularly in the X-ray spectrum, is subsequently utilized for the detailed study of matter. Approximately 70 synchrotron light sources are operational worldwide, some of which are indicated in Figure ref:fig:introduction_synchrotrons. This global distribution of such facilities underscores the significant utility of synchrotron light 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]] These facilities fundamentally comprise two main parts: the accelerator complex, where electron acceleration and light generation occur, and the beamlines, where the intense X-ray beams are conditioned and directed for experimental use. The European Synchrotron Radiation Facility (ESRF), shown in Figure ref:fig:introduction_esrf_picture, is a joint research institution supported by 19 member countries. The ESRF commenced user operations in 1994 as the world's first third-generation synchrotron. Its accelerator complex, schematically depicted in Figure ref:fig:introduction_esrf_schematic, includes a linear accelerator where electrons are initially generated and accelerated, a booster synchrotron to further accelerate the electrons, and an 844-meter circumference storage ring where electrons are maintained in a stable orbit. Synchrotron light are emitted in more than 40 beamlines surrounding the storage ring, each having specialized experimental stations. These beamlines host diverse instrumentation that enables a wide spectrum of scientific investigations, including structural biology, materials science, and study of matter under extreme conditions. #+name: fig:instroduction_esrf #+caption: Schematic (\subref{fig:introduction_esrf_schematic}) and picture (\subref{fig:introduction_esrf_picture}) of the European Synchrotron Radiation Facility, situated in Grenoble, France #+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 In August 2020, following an extensive 20-month upgrade period, the ESRF inaugurated its Extremely Brilliant Source (EBS), establishing it as the world's premier fourth-generation synchrotron [[cite:&raimondi21_commis_hybrid_multib_achrom_lattic]]. This upgrade implemented a novel storage ring concept that substantially increases the brilliance and coherence of the X-ray beams. Brilliance, a measure of the photon flux, is a key figure of merit for synchrotron facilities. It experienced an approximate 100-fold increase with the implementation of EBS, as shown in the historical evolution depicted in Figure ref:fig:introduction_moore_law_brillance. While this enhanced beam quality presents unprecedented scientific opportunities, it concurrently introduces considerable engineering challenges, particularly regarding experimental instrumentation and sample positioning systems. #+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. #+attr_latex: :scale 0.9 [[file:figs/introduction_moore_law_brillance.png]] ** The ID31 ESRF Beamline :PROPERTIES: :UNNUMBERED: t :END: # TODO - Make a short introduction to the beamline goal Each beamline begins with a "white" beam generated by the insertion device. This beam carries substantial power, typically exceeding kilowatts, and is generally unsuitable for direct application to samples. Instead, the beam passes through a series of optical elements—including absorbers, mirrors, slits, and monochromators—that filter and shape the X-rays to the desired specifications. These components are housed in multiple Optical Hutches, as depicted in Figure ref:fig:introduction_id31_oh. #+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 Following the optical hutches, the conditioned beam enters the Experimental Hutch (Figure ref:fig:introduction_id31_cad), where, for experiments pertinent to this work, focusing optics are utilized. The sample is mounted on a positioning stage, referred to as the "end-station", that enables precise alignment relative to the X-ray beam. Detectors are used to capture the X-rays transmitted through or scattered by the sample. Throughout this thesis, the standard ESRF coordinate system is adopted, wherein the X-axis aligns with the beam direction, Y is transverse horizontal, and Z is vertical upwards against gravity. The specific end-station employed on the ID31 beamline is designated the "micro-station". As depicted in Figure ref:fig:introduction_micro_station_dof, it comprises a stack of positioning stages: a translation stage (in blue), a tilt stage (in red), a spindle for continuous rotation (in yellow), and a micro-hexapod (in purple). The sample itself (cyan), potentially housed within complex sample environments (e.g., for high pressure or extreme temperatures), is mounted on top of this assembly. Each stage serves distinct positioning functions; for example, the micro-hexapod enables fine static adjustments, while the $T_y$ translation and $R_z$ rotation stages are utilized for specific scanning applications. #+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: :height 5cm [[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: :height 5cm [[file:figs/introduction_micro_station_dof.png]] #+end_subfigure #+end_figure The "stacked-stages" configuration of the micro-station provides high mobility, enabling diverse scientific experiments and imaging techniques. Two illustrative examples are provided. Tomography experiments, schematically represented in Figure ref:fig:introduction_tomography_schematic, involve placing a sample in the X-ray beam path while controlling its vertical rotation angle using a dedicated stage. Detector images are captured at numerous rotation angles, allowing the reconstruction of three-dimensional sample structure (Figure ref:fig:introduction_tomography_results) [[cite:&schoeppler17_shapin_highl_regul_glass_archit]]. This reconstruction depends critically on maintaining the sample's point of interest within the beam throughout the rotation process. Mapping or scanning experiments, depicted in Figure ref:fig:introduction_scanning_schematic, typically utilize focusing optics to have a small beam size at the sample's location. The sample is then translated perpendicular to the beam (along Y and Z axes), while data is collected at each position. An example [[cite:&sanchez-cano17_synch_x_ray_fluor_nanop]] of a resulting two-dimensional map, acquired with 20nm step increments, is shown in Figure ref:fig:introduction_scanning_results. The fidelity and resolution of such images are intrinsically linked to the focused beam size and the positioning precision of the sample relative to the focused beam. Positional instabilities, such as vibrations and thermal drifts, inevitably lead to blurring and distortion in the obtained image. Other advanced imaging modalities practiced on ID31 include reflectivity, diffraction tomography, and small/wide-angle X-ray scattering (SAXS/WAXS). #+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: Continuous advancements in both synchrotron source technology and X-ray optics have led to the availability of smaller, more intense, and more stable X-ray beams. The ESRF-EBS upgrade, for instance, resulted in a significantly reduced source size, particularly in the horizontal dimension, coupled with increased brilliance, 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 Concurrently, substantial progress has been made in micro- and nano-focusing optics since the early days of ESRF, where typical spot sizes were on the order of $10\,\mu m$ [[cite:&riekel89_microf_works_at_esrf]]. Various technologies, including zone plates, Kirkpatrick-Baez mirrors, and compound refractive lenses, have been developed and refined, each presenting unique advantages and limitations [[cite:&barrett16_reflec_optic_hard_x_ray]]. The historical reduction in achievable spot sizes is represented in Figure ref:fig:introduction_moore_law_focus. Presently, focused beam dimensions in the range of 10 to 20 nm (Full Width at Half Maximum, FWHM) are routinely achieved on specialized nano-focusing beamlines. #+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]] #+attr_latex: :scale 0.9 [[file:figs/introduction_moore_law_focus.png]] The increased brilliance introduces challenges related to radiation damage, particularly at high-energy beamlines like ID31. Consequently, prolonged exposure of a single sample area to the focused beam must be avoided. Traditionally, experiments were conducted in a "step-scan" mode, illustrated in Figure ref:fig:introduction_scan_step. In this mode, the sample is moved to the desired position, the detector acquisition is initiated, and a beam shutter is opened for a brief, controlled duration to limit radiation damage before closing; this cycle is repeated for each measurement point. While effective for mitigating radiation damage, this sequential process can be time-consuming, especially for high-resolution maps requiring numerous points. #+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 5.5cm [[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 5.5cm [[file:figs/introduction_scan_fly.png]] #+end_subfigure #+end_figure An alternative, more efficient approach is the "fly-scan" or "continuous-scan" methodology [[cite:&xu23_high_nsls_ii]], depicted in Figure ref:fig:introduction_scan_fly. Here, the sample is moved continuously while the detector is triggered to acquire data "on the fly" at predefined positions or time intervals. This technique significantly accelerates data acquisition, enabling better utilization of valuable beamtime while potentially enabling finer spatial resolution [[cite:&huang15_fly_scan_ptych]]. Recent developments in detector technology have yielded sensors with improved spatial resolution, lower noise characteristics, and substantially higher frame rates [[cite:&hatsui15_x_ray_imagin_detec_synch_xfel_sourc]]. Historically, detector integration times for scanning and tomography experiments were in the range of 0.1 to 1 second. This extended integration effectively filtered high-frequency vibrations in beam or sample position, resulting in apparently stable but larger beam. With higher X-ray flux and reduced detector noise, integration times can now be shortened to approximately 1 millisecond, with frame rates exceeding 100 Hz. This reduction in integration time has two major implications for positioning requirements. Firstly, for a given spatial sampling ("pixel size"), faster integration necessitates proportionally higher scanning velocities. Secondly, the shorter integration times make the measurements more susceptible to high-frequency vibrations. Therefore, not only must the sample position be stable against long-term drifts, but it must also be actively controlled to minimize vibrations, especially during dynamic fly-scan acquisitions. ** Existing Nano Positioning End-Stations :PROPERTIES: :UNNUMBERED: t :END: To contextualize the system developed within this thesis, a brief overview of existing strategies and technologies for high-accuracy, high-dynamics end-stations is provided. The aim is to identify the specific characteristics that distinguish the proposed system from current state-of-the-art implementations. Positioning systems can be broadly categorized based on their kinematic architecture, typically serial or parallel, as exemplified by the 3-Degree-of-Freedom (DoF) platforms in Figure ref:fig:introduction_kinematics. Serial kinematics (Figure ref:fig:introduction_serial_kinematics) utilizes stacked stages where each degree of freedom is controlled by a dedicated actuator. This configuration offers great mobility, but positioning errors (e.g., guiding inaccuracies, thermal expansion) accumulate through the stack, compromising overall accuracy. Similarly, the overall dynamic performance (stiffness, resonant frequencies) is limited by the softest component in the stack, often resulting in poor dynamic behavior when many stages are combined. #+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 0.9 [[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 0.9 [[file:figs/introduction_parallel_kinematics.png]] #+end_subfigure #+end_figure Conversely, parallel kinematic architectures (Figure ref:fig:introduction_parallel_kinematics) involve the coordinated motion of multiple actuators to achieve the desired end-effector motion. While theoretically offering the same controlled degrees of freedom as stacked stages, parallel systems generally provide limited stroke but significantly enhanced stiffness and superior dynamic performance. Most end stations, particularly those requiring extensive mobility, employ stacked stages. Their positioning performance consequently depends entirely on the accuracy of individual components. Strategies include employing a limited number of high-performance stages, such as air-bearing spindles [[cite:&riekel10_progr_micro_nano_diffr_at]], and maintaining extremely stable thermal environments within the experimental hutch, often requiring extended stabilization times [[cite:&leake19_nanod_beaml_id01]]. Examples of such end-stations, including those at beamlines ID16B [[cite:&martinez-criado16_id16b]] and ID11 [[cite:&wright20_new_oppor_at_mater_scien]], are shown in Figure ref:fig:introduction_passive_stations. However, when a large number of DoFs are required, the cumulative errors and limited dynamic stiffness of stacked configurations can make experiments with nano-focused beams extremely challenging or infeasible. #+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 end-station} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 0.9 [[file:figs/introduction_endstation_id16b.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_endstation_id11}ID11 end-station} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 0.9 [[file:figs/introduction_endstation_id11.png]] #+end_subfigure #+end_figure The concept of using an external metrology to measure and potentially correct for positioning errors is increasing used for nano-positioning end-stations. Ideally, the relative position between the sample's point of interest and the X-ray beam focus would be measured directly. In practice, direct measurement is often impossible; instead, the sample position is typically measured relative to a reference frame associated with the focusing optics, providing an indirect measurement. This measured position can be utilized in several ways: for post-processing correction of acquired data; for calibration routines to compensate for repeatable errors; or, most relevantly here, for real-time feedback control. Various sensor technologies have been employed, with capacitive sensors [[cite:&schroer17_ptynam;&villar18_nanop_esrf_id16a_nano_imagin_beaml;&schropp20_ptynam]] and, increasingly, fiber-based interferometers [[cite:&nazaretski15_pushin_limit;&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&holler17_omny_pin_versat_sampl_holder;&holler18_omny_tomog_nano_cryo_stage;&engblom18_nanop_resul;&schropp20_ptynam;&nazaretski22_new_kirkp_baez_based_scann;&kelly22_delta_robot_long_travel_nano;&xu23_high_nsls_ii;&geraldes23_sapot_carnaub_sirius_lnls]] being prominent choices. Two examples illustrating the integration of online metrology are presented in Figure ref:fig:introduction_metrology_stations. The system at NSLS X8C (Figure ref:fig:introduction_stages_wang) utilized capacitive sensors for rotation stage calibration and image alignment during tomography post-processing [[cite:&wang12_autom_marker_full_field_hard]]. The PtiNAMi microscope at DESY P06 (Figure ref:fig:introduction_stages_schroer) employs interferometers directed at a spherical target below the sample for position monitoring during tomography, with plans for future feedback loop implementation [[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.48\textwidth} #+begin_subfigure #+attr_latex: :scale 0.9 [[file:figs/introduction_stages_wang.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_stages_schroer} Schroer} #+attr_latex: :options {0.48\textwidth} #+begin_subfigure #+attr_latex: :scale 0.9 [[file:figs/introduction_stages_schroer.png]] #+end_subfigure #+end_figure For applications requiring active compensation of measured errors, particularly with nano-beams, feedback control loops are implemented. Actuation is typically achieved using piezoelectric actuators [[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 motors [[cite:&stankevic17_inter_charac_rotat_stages_x_ray_nanot;&engblom18_nanop_resul]], or voice coil actuators [[cite:&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]]. While often omitted, feedback bandwidth for such stages are relatively low (around 1 Hz), primarily targeting the compensation of slow thermal drifts. More recently, higher bandwidths (up to 100 Hz) have been demonstrated, particularly with the use of voice coil actuators [[cite:&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]]. Figure ref:fig:introduction_active_stations showcases two end-stations incorporating online metrology and active feedback control. The ID16A system at ESRF (Figure ref:fig:introduction_stages_villar) uses capacitive sensors and a piezoelectric hexapod to compensate for rotation stage errors and to perform accurate scans [[cite:&villar18_nanop_esrf_id16a_nano_imagin_beaml]]. Another example, shown in Figure ref:fig:introduction_stages_nazaretski, employs interferometers and piezoelectric stages to compensate for thermal drifts [[cite:&nazaretski15_pushin_limit;&nazaretski17_desig_perfor_x_ray_scann]]. A more comprehensive review of actively controlled end-stations is provided in Section [...]. #+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.48\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.48\textwidth} #+begin_subfigure #+attr_latex: :scale 0.9 [[file:figs/introduction_stages_nazaretski.png]] #+end_subfigure #+end_figure For tomography experiments, correcting spindle guiding errors is critical. Correction stages are typically placed either 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]] or above it [[cite:&wang12_autom_marker_full_field_hard;&schroer17_ptynam;&schropp20_ptynam;&geraldes23_sapot_carnaub_sirius_lnls]]. In most reported cases, only translation errors are actively corrected. Payload capacities for these high-precision systems are usually limited, typically handling calibrated samples on the micron scale, although capacities up to 500g have been reported [[cite:&nazaretski22_new_kirkp_baez_based_scann;&kelly22_delta_robot_long_travel_nano]]. The system developed in this thesis aims for payload capabilities approximately 100 times heavier (up to 50 kg) than previous stations with similar positioning requirements. End-stations integrating online metrology for active nano-positioning often exhibit limited operational ranges, typically constrained to a few degrees of freedom with strokes around $100\,\mu m$. Recently, voice coil actuators were used to increase the stroke up to $3\,\text{mm}$ [[cite:&kelly22_delta_robot_long_travel_nano;&geraldes23_sapot_carnaub_sirius_lnls]] An alternative strategy involves a "long stroke-short stroke" architecture, illustrated conceptually in Figure ref:fig:introduction_two_stage_schematic. In this configuration, a high-accuracy, high-bandwidth short-stroke stage is mounted on top of a less precise long-stroke stage. The short-stroke stage actively compensates for errors based on metrology feedback, while the long-stroke stage performs the larger movements. This approach allows combining extended travel with high precision and good dynamical response, but is often implemented for only one or a few DoFs, as seen in Figures ref:fig:introduction_two_stage_schematic and ref:fig:introduction_two_stage_control_h_bridge. #+name: fig:introduction_two_stage_example #+caption: (\subref{fig:introduction_two_stage_schematic}), (\subref{fig:introduction_two_stage_control_h_bridge}) [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition]] $y_1$, $y_2$ and $x$ are 3-phase linear motors. Short stroke actuators are voice coils. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_two_stage_schematic} Typical Long Stroke - Short Stroke control architecture} #+attr_latex: :options {0.64\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_two_stage_schematic.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_two_stage_control_h_bridge} H-bridge} #+attr_latex: :options {0.32\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: The advent of fourth-generation light sources, coupled with advancements in focusing optics and detector technology, imposes stringent new requirements on sample positioning systems. With ID31's anticipated minimum beam dimensions of approximately $200\,\text{nm}\times 100\,\text{nm}$, the primary experimental objective is maintaining the sample's point of interest within this beam. This necessitates peak-to-peak positioning errors below $200\,\text{nm}$ in $D_y$ and $200\,\text{nm}$ in $D_z$, corresponding to RMS errors of $30\,\text{nm}$ and $15\,\text{nm}$, respectively. Additionally, the $R_y$ tilt angle error must remain below $0.1\,\text{mdeg}$ ($250\,\text{nrad RMS}$). Given the high frame rates of modern detectors, these specified positioning errors must be maintained even when considering high-frequency vibrations. These demanding stability requirements must be achieved within the specific context of the ID31 beamline, which necessitates the integration with the existing micro-station, accommodating a wide range of experimental configurations requiring high mobility, and handling substantial payloads up to 50 kg. The existing micro-station, despite being composed of high-performance stages, exhibits positioning accuracy limited to approximately $10\,\mu m$ and $10\,\mu\text{rad}$ due to inherent factors such as backlash, mechanical play, thermal expansion, imperfect guiding, and vibrations. The primary objective of this project is therefore defined as enhancing the positioning accuracy and stability of the ID31 micro-station by roughly two orders of magnitude, to fully leverage the capabilities offered by the ESRF-EBS source and modern detectors, without compromising its existing mobility and payload capacity. **** The Nano Active Stabilization System Concept To address these challenges, the concept of a Nano Active Stabilization System (NASS) is proposed. As schematically illustrated in Figure ref:fig:introduction_nass_concept_schematic, the NASS comprises four principal components integrated with the existing micro-station (yellow): a 5-DoF online metrology system (red), an active stabilization platform (blue), and the associated control system and instrumentation (purple). This system essentially functions as a high-performance, multi-axis vibration isolation and error correction platform situated between the micro-station and the sample. It actively compensates for positioning errors measured by the external metrology system. #+name: fig:introduction_nass_concept_schematic #+caption: The Nano Active Stabilization System concept [[file:figs/introduction_nass_concept_schematic.png]] **** Online Metrology system The performance of the NASS is fundamentally reliant on the accuracy and bandwidth of its online metrology system, as the active control is based directly on these measurements. This metrology system must fulfill several criteria: measure the sample position in 5 DoF (excluding rotation about the vertical Z-axis); possess a measurement range compatible with the micro-station's extensive mobility and continuous spindle rotation; achieve an accuracy compatible with the sub-100 nm positioning target; and offer high bandwidth for real-time control. #+name: fig:introduction_nass_metrology #+caption: 2D representation of the NASS metrology system. [[file:figs/introduction_nass_metrology.png]] A proposed concept (illustrated in Figure ref:fig:introduction_nass_metrology) features a spherical reflector with a flat bottom attached below the sample, with its center aligned to the X-ray focus. Fiber interferometers target both surfaces. A tracking system maintains perpendicularity between the interferometer beams and the mirror, such that Abbe errors are eliminated. Interferometers pointing at the spherical surface provides translation measurement, while the ones pointing at the flat bottom surface yield tilt angles. The development of this complex metrology system constitutes a significant mechatronic project in itself and is currently ongoing; it is not further detailed within this thesis. For the work presented herein, the metrology system is assumed to provide accurate, high-bandwidth 5-DoF position measurements. **** Active Stabilization Platform Design The active stabilization platform, positioned between the micro-station top plate and the sample, must satisfy several demanding requirements. It needs to provide active motion compensation in 5 degrees of freedom ($D_x$, $D_y$, $D_z$, $R_x$ and $R_y$). It must possess excellent dynamic properties to enable high-bandwidth control capable of suppressing vibrations and tracking desired trajectories with nanometer-level precision. Consequently, it must be free from backlash and play, and its active components (e.g., actuators) should introduce minimal vibrations. Critically, it must accommodate payloads up to 50 kg. A suitable candidate architecture for this platform is the Stewart platform (also known as "hexapod"), a parallel kinematic mechanism capable of 6-DoF motion. Stewart platforms are widely employed in positioning and vibration isolation applications due to their inherent stiffness and potential for high precision. Various designs exist, differing in geometry, actuation technology, sensing methods, and control strategies, as exemplified in Figure ref:fig:introduction_stewart_platform_piezo. A central challenge addressed in this thesis is the optimal mechatronic design of such an active platform tailored to the specific requirements of the NASS. A more detailed review of Stewart platform and its main components will be given in Section [...]. # TODO - Review of Stewart platform ref:sec:detail_kinematics_stewart_review #+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}Piezo 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, 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 **** Robust Control The control system must compute the position measurements from the online metrology system and computes the reference positions derived from each micro-station desired movement. It then commands the active platform in real time to stabilize the sample and compensate for all error sources, including stage imperfections, thermal drifts, and vibrations. Ensuring the stability and robustness of these feedback loops is crucial, especially within the demanding operational context of a synchrotron beamline, which requires reliable 24/7 operation with minimal intervention. Several factors complicate the design of robust feedback control for the NASS. First, the system must operate under across diverse experimental conditions, including different scan types (tomography, linear scans) and payloads' inertia. The continuous rotation of the spindle introduces gyroscopic effects that can affect the system dynamics. As actuators of the active platforms rotate relative to stationary sensors, the control kinematics to map the errors in the frame of the active platform is complex. But perhaps the most significant challenge is the wide variation in payload mass (1 kg up to 50 kg) that the system must accommodate. Designing for robustness against large payload variations typically necessitates larger stability margins, which can compromise achievable performance. Consequently, high-performance positioning stages often work with well-characterized payload, as seen in systems like wafer-scanners or atomic force microscopes. Furthermore, unlike many systems where the active stage and sample are significantly lighter than the underlying coarse stages, the NASS payload mass can be substantially greater than the mass of the micro-station's top stage. This leads to strong dynamic coupling between the active platform and the micro-station structure, resulting in a more complex multi-inputs multi-outputs (MIMO) system with significant cross-talk between axes. These variations in operating conditions and payload translate into significant uncertainty or changes in the plant dynamics that the controller must handle. Therefore, the feedback controller must be designed to be robust against this plant uncertainty while still delivering the required nanometer-level performance. **** Predictive Design / Mechatronics approach The overall performance achieved by the NASS is determined by numerous factors, such as external disturbances, the noise characteristics of the instrumentation, the dynamics resulting from the chosen mechanical architecture, and the achievable bandwidth dictated by the control architecture. Ensuring the final system met its stringent specifications requires the implementation of a predictive design methodology, also known as a mechatronics design approach. The goal is to rigorously evaluate different concepts, predict performance limitations, and guide the design process. Key challenges within this approach include developing appropriate design methodologies, creating accurate models capable of comparing different concepts quantitatively, and converging on a final design that achieves the target performance levels. * Original Contributions **** Introduction :ignore: This thesis presents several original contributions aimed at addressing the challenges inherent in the design, control, and implementation of the Nano Active Stabilization System, primarily within the fields of Control Theory, Mechatronics Design, and Experimental Validation. **** 6DoF vibration control of a rotating platform While long stroke-short stroke architectures have been implemented for 1-DoF or 2-DoF systems, this work extends the concept to a fully coupled 6-DoF system operating on a continuously rotating base. The active platform is designed not merely to correct rotational errors but to simultaneously compensate for errors originating from all underlying micro-station stages. The application of a continuously rotating Stewart platform for active vibration control and error compensation in this manner is believed to be novel in the reviewed literature. **** Mechatronics design approach A rigorous mechatronics design methodology was applied consistently throughout the NASS development lifecycle [[cite:&dehaeze18_sampl_stabil_for_tomog_exper;&dehaeze21_mechat_approac_devel_nano_activ_stabil_system]]. Although the mechatronics approach itself is not new, its comprehensive application here, from initial concept evaluation using simplified models to detailed design optimization and experimental validation informed by increasingly sophisticated models, is noteworthy. Dynamical models were employed at every stage: for initial concept selection, detailed component optimization, understanding experimental observations, and optimizing control strategies. This thesis documents this process chronologically, illustrating how models of varying complexity can be effectively utilized at different project phases and how design decisions were systematically based on quantitative model predictions and analyses. While the resulting system is highly specific, the documented effectiveness of this integrated design approach may contribute to the broader adoption of mechatronics methodologies in the design of future synchrotron instrumentation. **** Multi-body simulations with reduced order flexible bodies obtained by FEA A key enabling tool employed extensively in this work was a combined multi-body simulation and Finite Element Analysis technique, specifically utilizing Component Mode Synthesis (CMS) to represent flexible bodies within the multi-body framework [[cite:&brumund21_multib_simul_reduc_order_flexib_bodies_fea]]. This hybrid approach, while established, was experimentally validated in this work for components critical to the NASS, namely amplified piezoelectric actuators and flexible joints. It proved invaluable for designing and optimizing components intended for integration into a larger, complex dynamic system. This methodology, detailed in Section [...], is presented as a potentially useful tool for future mechatronic instrument development. # TODO - Section ref:sec:detail_fem **** Control Robustness by design Addressing the critical challenge of robustness across varying experimental conditions (rotation speeds, payloads up to 50 kg) was approached through "robustness by design" rather than relying solely on complex robust control synthesis techniques (like $\mathcal{H}_\infty$ or $\mu\text{-synthesis}$). The strategy involved selecting a system architecture (mechanics, sensors, actuators) inherently conducive to robust control. An example is the deliberate use of collocated actuator/sensor pairs, enabling the potential application of passivity-based control principles to guarantee stability. Informed architectural choices were made by systematically evaluating different sensor combination strategies (e.g., HAC/LAC, sensor fusion, two-sensor control) and comparing various MIMO decoupling approaches. This comparative analysis of control architectures, presented in Section [...], was identified as somewhat lacking in existing literature. **** Active Damping of rotating mechanical systems using Integral Force Feedback During conceptual design, it was found that the guaranteed stability properties of the established active damping technique known as Integral Force Feedback (IFF) are compromised when applied to rotating platforms like the NASS. To address this instability issue, two modifications to the classical IFF control scheme were proposed and analyzed. The first involves a minor adjustment to the control law itself, while the second incorporates physical springs in parallel with the force sensors. Stability conditions and optimal parameter tuning guidelines were derived for both modified schemes. This is further discussed in Section [...] and was the subject of publications [[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 For implementing sensor fusion, where signals from multiple sensors are combined, complementary filters are often employed. A novel method for designing these filters using $\mathcal{H}_\infty$ synthesis techniques was developed [[cite:&dehaeze19_compl_filter_shapin_using_synth]]. This method allows explicit shaping of the filter norms, providing guarantees on the performance of the sensor fusion process. This design strategy, discussed further in Section [...], has subsequently found application in optimizing sensor fusion for gravitational wave detectors [[cite:&tsang22_optim_sensor_fusion_method_activ]]. The integration of such filters into feedback control architectures can also lead to advantageous control structures, as proposed in [[cite:&verma20_virtual_sensor_fusion_high_precis_contr]] and further studied in Section [...]. # TODO - Section ref:sec:detail_control_cf **** Experimental validation of the Nano Active Stabilization System The conclusion of this work involved the experimental implementation and validation of the complete NASS on the ID31 beamline. Experimental results demonstrate that the system successfully improves the effective positioning accuracy of the micro-station from its native ~10 µm level down to the target ~100 nm range during representative scientific experiments. Crucially, robustness to variations in sample mass (up to 39 kg tested) and diverse experimental conditions (e.g., tomography scans) was verified. The NASS thus provides a versatile end-station solution, uniquely combining high payload capacity with nanometer-level accuracy and stability, enabling optimal utilization of the advanced capabilities of the ESRF-EBS beam and associated detectors. To the author's knowledge, this represents the first demonstration of such a 5-DoF active stabilization platform being used to enhance the accuracy of a complex positioning system to this level. # TODO - Section ref:sec:test_id31 * Thesis Outline - Mechatronics Design Approach **** Introduction :ignore: This thesis is structured chronologically, mirroring the phases of the mechatronics development approach employed for the NASS project. It is divided into three chapters, each corresponding to a distinct phase of this methodology: Conceptual Design, Detailed Design, and Experimental Validation. A brief overview of each chapter's content, is provided below. **** 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}]