#+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]] ** 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]] | ** 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? ** TODO [#B] Talk about performance specifications 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? ** TODO [#B] Add table to compare Stewart platforms [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org]] ** TODO [#C] Review of two stage control *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 #+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 | ** TODO [#A] Modifications based on discussion with Christophe - [ ] Evolution of precision of instrument over time? - [ ] 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 ** TODO [#A] Important point of payload mass Because the payload's mass can be higher than the mass of the micro-hexapod mass, the coupling becomes very high. For most of end-stations, the top stages (for small stroke scans) is quite light, and the sample as well. This way, the short stroke stage dynamics is not coupled to the dynamics of the stages bellow. In the NASS case, the payload's mass may be one order of magnitude heavier than the mass of the long stroke top platform. This induce large coupling between stages and is a challenge. * Context of this thesis ** Synchrotron Radiation Facilities **** Accelerating electrons to produce intense X-ray - Explain what is a Synchrotron: light source - Say how many there are in the world (~50). The main ones are shown in Figure ref:fig:introduction_synchrotrons. #+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]] - Electron part: LINAC, Booster, Storage Ring ref:fig:introduction_esrf_schematic - Synchrotron radiation: Insertion device / Bending magnet - Many beamlines (large diversity in terms of instrumentation and science) - Science that can be performed: - structural biology, structure of materials, matter at extreme, ... **** The European Synchrotron Radiation Facility #+name: fig:instroduction_esrf #+caption: Schematic (\subref{fig:introduction_esrf_schematic}) and picture (\subref{fig:introduction_esrf_picture}) of the European Synchrotron Radiation Facility #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_esrf_schematic} Schematic of the ESRF. The linear accelerator is shown in blue, the booster synchrotron in purple and the storage ring in green. There are over 40 beamlines, the ID31 beamline is highlighted in red} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_esrf_schematic.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_esrf_picture} European Synchrotron Radiation Facility} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_esrf_picture.jpg]] #+end_subfigure #+end_figure **** 3rd and 4th generation Synchrotrons Brilliance: figure of merit for synchrotron - 4th generation light sources [[cite:&raimondi21_commis_hybrid_multib_achrom_lattic]] #+name: fig:introduction_moore_law_brillance #+caption: Evolution of the peak brilliance (expressed in $\text{photons}/s/mm^2/mrad^2/0.1\%BW$) of synchrotron radiation facilities. Note the vertical logarithmic scale. [[file:figs/introduction_moore_law_brillance.png]] ** The ID31 ESRF Beamline **** Beamline Layout - General layout: source (insertion device), optical hutches (OH1, OH2), experimental hutch (EH) - Beamline layout (OH Figure ref:fig:introduction_id31_oh, EH ref:fig:introduction_id31_cad) All these optical instruments are used to "shape" the x-ray beam as wanted (monochromatic, wanted size, focused, etc...) - ID31 and Micro Station (Figure ref:fig:introduction_id31_cad) Check https://www.esrf.fr/UsersAndScience/Experiments/StructMaterials/ID31 https://www.wayforlight.eu/beamline/23244 - X-ray beam + detectors + sample stage - Focusing optics - Optical schematic with: source, lens, sample and detector. Explain that what is the most important is the relative position between the sample and the lens. - Explain the XYZ frame for all the thesis (ESRF convention: X: x-ray, Z gravity up) #+name: fig:introduction_id31_oh #+caption: Schematic of the two ID31 optical hutches: OH1 (\subref{fig:introduction_id31_oh1}) and OH2 (\subref{fig:introduction_id31_oh2}). Distance from the source (the insertion device) is indicated in meters. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_id31_oh1}OH1} #+attr_latex: :options {\textwidth} #+begin_subfigure #+attr_latex: :scale 0.9 [[file:figs/introduction_id31_oh1.png]] #+end_subfigure \bigskip #+attr_latex: :caption \subcaption{\label{fig:introduction_id31_oh2}OH2} #+attr_latex: :options {\textwidth} #+begin_subfigure #+attr_latex: :scale 0.9 [[file:figs/introduction_id31_oh2.png]] #+end_subfigure #+end_figure #+begin_src latex :file id31_microstation_picture.pdf \begin{tikzpicture} \node[inner sep=0pt, anchor=south west] (photo) at (0,0) {\includegraphics[width=0.39\textwidth]{/home/thomas/Cloud/documents/reports/phd-thesis/figs/exp_setup_photo.png}}; \coordinate[] (aheight) at (photo.north west); \coordinate[] (awidth) at (photo.south east); \coordinate[] (granite) at ($0.1*(aheight)+0.1*(awidth)$); \coordinate[] (trans) at ($0.5*(aheight)+0.4*(awidth)$); \coordinate[] (tilt) at ($0.65*(aheight)+0.75*(awidth)$); \coordinate[] (hexapod) at ($0.7*(aheight)+0.5*(awidth)$); \coordinate[] (sample) at ($0.9*(aheight)+0.55*(awidth)$); % Granite \node[labelc] at (granite) {1}; % Translation stage \node[labelc] at (trans) {2}; % Tilt Stage \node[labelc] at (tilt) {3}; % Micro-Hexapod \node[labelc] at (hexapod) {4}; % Sample \node[labelc] at (sample) {5}; % Axis \begin{scope}[shift={($0.07*(aheight)+0.87*(awidth)$)}] \draw[->] (0, 0) -- ++(55:0.7) node[above] {$y$}; \draw[->] (0, 0) -- ++(90:0.9) node[left] {$z$}; \draw[->] (0, 0) -- ++(-20:0.7) node[above] {$x$}; \end{scope} \end{tikzpicture} #+end_src #+name: fig:introduction_id31_cad #+caption: CAD view of the ID31 Experimal Hutch (EH). 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. #+attr_latex: :width 0.8\linewidth [[file:figs/introduction_id31_station_detector.png]] **** Positioning End Station: The Micro-Station Micro-Station: - DoF with strokes: Ty, Ry, Rz, Hexapod - Experiments: tomography, reflectivity, truncation rod, ... Make a table to explain the different "experiments" - Explain how it is used (positioning, scans), what it does. But not about the performances - Different sample environments #+name: fig:introduction_micro_station #+caption: The micro-station. CAD view is shown in (\subref{fig:introduction_micro_station_dof}) with the associated degrees of freedom. A picture of the micro-station is shown in (\subref{fig:introduction_micro_station_picture}) during the assembly process. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_micro_station_dof} CAD view} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_micro_station_dof.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_micro_station_picture} Picture} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_micro_station_picture.png]] #+end_subfigure #+end_figure **** Scientific experiments performed on ID31 - Few words about science made on ID31 and why nano-meter accuracy is required - Typical experiments (tomography, ...), various samples (up to 50kg), sample environments (high temp, cryo, etc..) - Alignment of the sample, then - Reflectivity - Tomography - Diffraction tomography: most critical - Two example: - Tomography: compute image as a function of the angle. To reconstruct 3D image, the position has to be known with good accuracy [[cite:&schoeppler17_shapin_highl_regul_glass_archit]] - Mapping: focused beam on the sample, 20nm step size, accuracy of the obtained image is directly linked to the beam size and the position accuracy/vibrations [[cite:&sanchez-cano17_synch_x_ray_fluor_nanop]] # From [[cite:&schropp20_ptynam;&schroer17_ptynam;&schroeck01_compen_desig_linear_time_invar]] # 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. #+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: :width 0.95\linewidth [[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: :width 0.95\linewidth [[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: :width 0.95\linewidth [[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: :width 0.95\linewidth [[file:figs/introduction_scanning_picture.png]] #+end_subfigure #+end_figure ** Need of Accurate Positioning End-Stations with High Dynamics **** A push towards brighter and smaller beams Improvement of both the light source and the instrumentation: - EBS: smaller source + higher flux 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 - ESRF Red Book (1987): very few beamline projects aiming even for 10 micron sized beams Now optics exist for 10nm beams - Better focusing optic (add some links): beam size in the order of 10 to 20nm FWHM (reference) ref:fig:introduction_moore_law_focus crossed silicon compound refractive lenses, KB mirrors [17], zone plates [18], or multilayer Laue lenses [19] [[cite:&barrett16_reflec_optic_hard_x_ray]] #+name: fig:introduction_moore_law_focus #+caption: Evolution of the measured spot size for different hard x-ray focusing elements. CRL, KB, FZP, MLL [[file:figs/introduction_moore_law_focus.png]] Higher flux density (+high energy of the ID31 beamline) => Radiation damage: needs to scan the sample quite fast with respect to the focused beam - Allowed by better detectors: higher sampling rates and lower noise => possible to scan fast [[cite:&hatsui15_x_ray_imagin_detec_synch_xfel_sourc]] **** New dynamical positioning needs "from traditional step by step scans to /fly-scan/" Fast scans + needs of high accuracy and stability => need mechatronics system with: - accurate metrology - multi degree of freedom positioning systems - fast feedback loops Shift from step by step scan to /fly-scan/ cite:huang15_fly_scan_ptych - Much lower pixel size + large image => takes of lot of time if captured step by step. Explain what is step by step scanning: move motors from point A to point B, stops, start detector acquisition, open shutter , close the shutter, move to point C, ... [[cite:&xu23_high_nsls_ii]] #+begin_quote In traditional step scan mode, each exposure position requires the system to stop prior to data acquisition, which may become a limiting factor when fast data collection is required. Fly-scanning is chosen as a preferred solution that helps overcome such speed limitations [5, 6]. In fly-scan mode, the sample keeps moving and a triggering system generates trigger signals based on the position of the sample or the time elapsed. The trigger signals are used to control detector exposure. #+end_quote #+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 during all the motion, and the detector is acquired only at the wanted positions, on the /fly/. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_scan_step} Step by step scan} #+attr_latex: :options {0.55\textwidth} #+begin_subfigure #+attr_latex: :height 6cm [[file:figs/introduction_scan_step.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_scan_fly} Fly scan} #+attr_latex: :options {0.44\textwidth} #+begin_subfigure #+attr_latex: :height 6cm [[file:figs/introduction_scan_fly.png]] #+end_subfigure #+end_figure Subject of this thesis: design of high performance positioning station with high dynamics and nanometer accuracy ** Nano Positioning End-Stations **** End-Station with Stacked Stages Stacked stages: - errors are combined To have acceptable performances / stability: - limited number of stages - high performances stages (air bearing etc...) Examples: - ID01 [[cite:&leake19_nanod_beaml_id01]] - ID11 [[cite:&wright20_new_oppor_at_mater_scien]] - ID13 [[cite:&riekel10_progr_micro_nano_diffr_at]] #+name: fig:introduction_passive_stations #+caption: Example of two nano end-stations without online metrology: (\subref{fig:introduction_endstation_id16b}) cite:&martinez-criado16_id16b and (\subref{fig:introduction_endstation_id11}) cite:wright20_new_oppor_at_mater_scien #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_endstation_id16b}ID16b} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/introduction_endstation_id16b.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_endstation_id11}ID11} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/introduction_endstation_id11.png]] #+end_subfigure #+end_figure Explain limitations => Thermal drifts, run-out errors of spindles (improved by using air bearing), straightness of translation stages, ... **** Online Metrology The idea of having an external metrology to correct for errors is not new. Several strategies: - only used for measurements (post processing) - for calibration - for triggering detectors - for real time positioning control (Figure ref:fig:introduction_active_stations) 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]] #+name: fig:introduction_metrology_stations #+caption: Two examples of end-station with integrated online metrology. (\subref{fig:introduction_stages_wang}) [[cite:&wang12_autom_marker_full_field_hard]] and (\subref{fig:introduction_stages_schroer}) [[cite:&schroer17_ptynam]] #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_stages_wang} Wang} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/introduction_stages_wang.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_stages_schroer} Schroer} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/introduction_stages_schroer.png]] #+end_subfigure #+end_figure #+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 | | | | | **** Active Control of Positioning Errors For some applications (especially when using a nano-beam), the position has not only to be measured, but to be controlled. *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]]. Full rotation for tomography: - Spindle above XYZ 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]] - Spindle bellow XYZ stage: [[cite:&wang12_autom_marker_full_field_hard;&schroer17_ptynam;&schropp20_ptynam;&geraldes23_sapot_carnaub_sirius_lnls]] Only for mapping: [[cite:&nazaretski15_pushin_limit;&kelly22_delta_robot_long_travel_nano]] #+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} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_stages_villar.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_stages_nazaretski} 1 and 2 are stage to position the focusing optics. 3 is the sample location, 4 the sample stage and 5 the interferometers} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/introduction_stages_nazaretski.png]] #+end_subfigure #+end_figure Payload capabilities: - All are only supported calibrated, micron scale samples - Higher sample masses to up to 500g have been reported in [[cite:&nazaretski22_new_kirkp_baez_based_scann;&kelly22_delta_robot_long_travel_nano]] 100 times heavier payload capabilities than previous stations with similar performances. # #+attr_latex: :environment tabularx :width \linewidth :align lllll # #+attr_latex: :center t :booktabs t :font \scriptsize #+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}$ | | | | **** Long Stroke - Short Stroke architecture Speak about two stage control? - Long stroke + short stroke - Usually applied to 1dof, 3dof (show some examples: disk drive, wafer scanner) - Any application in 6DoF? Maybe new! - In the table, say which ones are long stroke / short stroke. Some new stages are just long stroke (voice coil) #+name: fig:introduction_two_stage_schematic #+caption: Typical Long Stroke - Short Stroke architecture. The long stroke stage is ... [[file:figs/introduction_two_stage_schematic.png]] #+name: fig:introduction_two_stage_example #+caption: (\subref{fig:introduction_two_stage_control_example}) [[cite:&shinno11_newly_devel_long_range_posit]], (\subref{fig:introduction_two_stage_control_h_bridge}) [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition]] #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_two_stage_control_example} Two stage control with classical stage and voice coil} #+attr_latex: :options {0.59\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_two_stage_control_example.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_two_stage_control_h_bridge} H-bridge. $y_1$, $y_2$ and $x$ are 3-phase linear motors. Short stroke actuators are voice coils.} #+attr_latex: :options {0.39\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_two_stage_control_h_bridge.png]] #+end_subfigure #+end_figure * Challenge definition ** Multi degrees of freedom, long stroke and highly accurate positioning end station **** Performance limitation of "stacked-stages" end-stations Typical positioning end station (Figure ref:fig:introduction_translation_stage): - stacked stages - Ball-screw, linear guides, rotary motor Explain the limitation of performances: - Backlash, play, thermal expansion, guiding imperfections, ... - Give some numbers: straightness of the Ty stage for instance, change of $0.1^oC$ with steel gives x nm of motion - Vibrations - Possibility to have linear/rotary encoders that correct the motion in the considered DoF, but does not change anything to the other 5DoF #+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]] Flexure based positioning stations may give better positioning requirements, but are limited to short stroke. Advantages: no backlash, etc... But: limited to short stroke Picture of schematic of one positioning station based on flexure Explain example of Figure ref:fig:introduction_flexure_stage. #+name: fig:introduction_flexure_stage #+caption: A simple flexure stage [[file:figs/introduction_flexure_stage.png]] Combining, long stroke and accuracy in multi-DoF is challenging. **** Positioning accuracy of the ID31 Micro-Station Presentation of the Micro-Station in details ref:fig:introduction_micro_station: - Goal of each stage (e.g. micro-hexapod: static positioning, Ty and Rz: scans, ...) - Stroke - Initial design objectives: as stiff as possible, smallest errors as possible Explain that this micro-station can only have ~10um / 10urad of accuracy due to physical limitation. **** New positioning requirements - To benefits from nano-focusing optics, new source, etc... new positioning requirements - Positioning requirements on ID31: - Maybe make a table with the requirements and the associated performances of the micro-station - Make tables with the wanted motion, stroke, accuracy in different DoF, etc.. - Sample masses The goal in this thesis is to increase the positioning accuracy of the micro-station to fulfil the initial positioning requirements. *Goal*: Improve accuracy of 6DoF long stroke position platform ** The Nano Active Stabilization System **** NASS Concept In order to address the new positioning requirements, the concept of... Briefly describe the NASS concept. 6DoF vibration control platform on top of a complex positioning platform that correct positioning errors based on an external metrology It is composed of mainly four elements: - The micro station - A 5 degrees of freedom metrology system - A 5 or 6 degrees of freedom stabilization platform - Control system and associated instrumentation #+name: fig:introduction_nass_concept_schematic #+caption: The Nano Active Stabilization System concept [[file:figs/introduction_nass_concept_schematic.png]] **** Online Metrology system The accuracy of the NASS will only depend on the accuracy of the metrology system. Requirements: - 5 DoF - long stroke - nano-meter accurate - high bandwidth Concept: - Fiber interferometers - Spherical reflector with flat bottom - Tracking system (tip-tilt mechanism) to keep the beam perpendicular to the mirror surface: Spherical mirror with center at the point of interest => No Abbe errors - XYZ positions from at least 3 interferometers pointing at the spherical surface - Rx/Ry angles from at least 3 interferometers pointing at the bottom flat surface #+name: fig:introduction_nass_metrology #+caption: 2D representation of the NASS metrology system. [[file:figs/introduction_nass_metrology.png]] Complex mechatronics system on its own. This metrology system is not further discussed in this thesis as it is still under active development. In the following of this thesis, it is supposed that the metrology system is accurate, etc.. **** Active Stabilization Platform - 5 DoF - High dynamics - Nano-meter capable (no backlash) - Accept payloads up to 50kg **** MIMO robust control strategies Explain the robustness need? - 24 7/7 ... - That is why most of end-stations are based on well-proven design (stepper motors, linear guides, ball bearing, ...) - Plant uncertainty: many different samples, use cases, rotating velocities, etc... Trade-off between robustness and performance in the design of feedback system. ** Predictive Design - The performances of the system will depend on many factors: - sensors - actuators - mechanical design - achievable bandwidth - Need to evaluate the different concepts, and predict the performances to guide the design - The goal is to design, built and test this system such that it work as expected the first time. Very costly system, so must be correct. - Challenge: - proper design methodology - accurate models ** Control Challenge High bandwidth, 6 DoF system for vibration control, fixed on top of a complex multi DoF positioning station, robust, ... - Many different configurations (tomography, Ty scans, slow fast, ...) - Complex MIMO system. Dynamics of the system could be coupled to the complex dynamics of the micro station - Rotation aspect, gyroscopic effects, actuators are rotating with respect to the sensors - Robustness to payload change: very critical. Say that high performance systems (lithography machines, etc...) works with calibrated payloads. Being robust to change of payload inertia means large stability margins and therefore less performance. * [#A] Literature Review *Maybe remove this section has it seems it is discussed elsewhere?* ** Multi-DoF dynamical positioning stations **** Serial and Parallel Kinematics Example of several dynamical stations: - XYZ piezo stages - Delta robot? Octoglide? - Stewart platform Serial vs parallel kinematics (table?) #+name: fig:introduction_kinematics #+caption: Two positioning platforms with $D_x/D_y/R_z$ degrees of freedom. One is using serial kinematics (\subref{fig:introduction_serial_kinematics}), while the other uses parallel kinematics (\subref{fig:introduction_parallel_kinematics}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_serial_kinematics} Serial Kinematics} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/introduction_serial_kinematics.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_parallel_kinematics} Parallel Kinematics} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/introduction_parallel_kinematics.png]] #+end_subfigure #+end_figure **** Stewart platforms - [ ] Explain the normal stewart platform architecture - [ ] Make a table that compares the different stewart platforms for vibration control. Geometry (cubic), Actuator (soft, stiff), Sensor, Flexible joints, etc. #+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 #+name: fig:introduction_stewart_platform_piezo #+caption: Example of Stewart platforms. (\subref{fig:introduction_stewart_du14}) [[cite:&du14_piezo_actuat_high_precis_flexib]] and (\subref{fig:introduction_stewart_hauge04}) [[cite:&hauge04_sensor_contr_space_based_six]] #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_du14}PZT based, for positioning purposes} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_stewart_du14.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:introduction_stewart_hauge04}Voice coil based, Cubic architecture, for vibration isolation} #+attr_latex: :options {0.49\textwidth} #+begin_subfigure #+attr_latex: :width 0.95\linewidth [[file:figs/introduction_stewart_hauge04.png]] #+end_subfigure #+end_figure ** Mechatronics approach **** Predicting performances using models [[cite:&monkhorst04_dynam_error_budget]] # high costs of the design process: the designed system must be *first time right*. # When the system is finally build, its performance level should satisfy the specifications. # No significant changes are allowed in the post design phase. # Because of this, the designer wants to be able to predict the performance of the system a-priori and gain insight in the performance limiting factors of the system. Can use several models: - Lumped mass-spring-damper models :: usually uniaxial, easily put into equations, 1dof per considered mass cite:rankers98_machin - Multi-Body Models :: usually 6dof per considered solid body, some may be constrained using joints - Finite element models :: Can include FEM into multi-body models: Sub structuring ([[cite:&brumund21_multib_simul_reduc_order_flexib_bodies_fea]]) #+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 Simulations [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition]] Once a model of the system is obtained: develop controller based on linearized model. #+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]] Say what can limit the performances for a complex mechatronics systems as this one: - Disturbances affecting the plant output $d_y$ - Measurement noise $n$ - DAC / amplifier noise (actuator) $d_u$ - Feedback system / bandwidth - $r$, $y_m$ Simulations can help evaluate the behavior of the system. **** Dynamic Error Budgeting [[cite:&monkhorst04_dynam_error_budget]] # high costs of the design process: the designed system must be *first time right*. # When the system is finally build, its performance level should satisfy the specifications. # No significant changes are allowed in the post design phase. # Because of this, the designer wants to be able to predict the performance of the system a-priori and gain insight in the performance limiting factors of the system. cite:jabben07_mechat [[cite:&okyay16_mechat_desig_dynam_contr_metrol]] # *Classical error budgets*: # Error budgets [23] are frequently used in the design of precision machines, in order to assess the contributions of different factors such as parasitic motions, thermal expansion, and servo accuracy, on the positioning accuracy of a machine. # *Dynamic Error Budgeting*: # Dynamic Error Budgeting (DEB) or ‘Spectral Analysis’ extends this concept to the realm of feedback control. # Recognizing that the controller can provide only a finite attenuation of disturbance signals interfering with the servo, DEB provides a methodology for predicting the cumulative effect of such signals on the control error as a function of # their spectral (frequency) content. # The method can be used to predict the control accuracy of a system implemented using a set of certain devices under certain conditions before it is realized. # Furthermore, as it is formulated in the frequency domain, it can be used to optimize the controller design as well, typically leading to an H2 - optimal control framework. # In DEB, the disturbance signals are modeled with their power spectral density (PSD), assuming that they are stationary stochastic processes which are not correlated with each other. # Then, these PSD’s are transmitted to the performance goal, most often the positioning error, using linear time invariant (LTI) system theory. # The transmitted PSD’s are summed up into the variance of the performance goal, which constitutes a comparative measure of performance. # Most importantly, the influence of different dynamic factors and disturbance sources, which have the greatest impact on the achievable performance (e.g., accuracy) can be easily spotted and improved, through this kind of analysis. # *Applications*: # An approach similar to DEB was followed to decompose the contribution of different noise sources on the hard disk position error in [1], [2], [45]. # DEB has been used to assess the performance of a geophone and a vibration isolation system in [75]. # Jabben[49] has used DEB in the mechatronic design of a magnetically suspended rotating platform. # Aguirre et al. [3] have analyzed the performance of active aerostatic thrust bearings using DEB. - "the disturbance signals are modeled with their power spectral density (PSD), assuming that they are stationary stochastic processes which are not correlated with each other" - Effects of $d_u$, $d_y$ and $n$ on $y$ can be estimated from their PSD and the closed-loop transfer functions This gives a first idea of the limiting factor as a function of frequency. In order to determine whether each disturbance/noise impact the performances, cumulative power spectrum can be used: this gives the RMS value Then, this help to know the different actions to improve the performances: reduce sensor noise or driver electrical noise, work on reducing disturbances like damping resonances, increase feedback bandwidth, ...) #+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 ** Stewart platforms: Control architecture **** Introduction :ignore: 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 **** Active Damping and Vibration Control Two main active vibration isolation strategies [[cite:&collette11_review_activ_vibrat_isolat_strat]]: - IFF using collocated force sensors / load cell [[cite:&chesne16_enhan_dampin_flexib_struc_using_force_feedb]] - Skyhook damping using inertial sensors (accelerometers, geophones), usually in the frame of the struts Usually, "decentralized", in the frame of the struts (Figure ref:fig:introduction_control_decentralized). Optimization based on one "strut", and then applied to all the struts simultaneously to obtained a 6-DoF active damping / vibration control system. If narrow band disturbances: Adaptive feedforward control. #+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 #+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 **** Position and Pointing Control Control based on position sensors. Wanted position is generally expressed in the cartesian frame. Sensors can be: - In the frame of the struts (LVDT, Encoder, Strain gauges): usually decentralized control (Figure ref:fig:introduction_control_decentralized_diagram) - External sensors: centralized When using external sensors, a decoupling strategy is usually employed (Figure ref:fig:introduction_control_decoupling): - Jacobian matrices: frame of the struts or cartesian frame - Modal control - Singular Value Decomposition - Multivariable control: LQG, H-Infinity (Figure ref:fig:introduction_control_mimo) From [[cite:&thayer02_six_axis_vibrat_isolat_system]]: #+begin_quote Experimental closed-loop control results using the hexapod have shown that controllers designed using a decentralized single-strut design work well when compared to full multivariable methodologies. #+end_quote #+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 - Explain the Jacobian matrix When decoupling using the Jacobian matrix, the control can be performed in the frame of the struts (Figure ref:fig:introduction_control_centralized_struts) or in the cartesian frame (Figure ref:fig:introduction_control_centralized_cartesian). #+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 **** Use of Multiple Sensors Often, both vibration control and position control is wanted. In that case, the use of multiple sensors can lead to improved performances. Sensors: - collocated force (load cell) sensors - collocated accelerometer - displacement (eddy current) Several strategies can be employed: - HAC-LAC cite:geng95_intel_contr_system_multip_degree,wang16_inves_activ_vibrat_isolat_stewar,li01_simul_vibrat_isolat_point_contr,pu11_six_degree_of_freed_activ,xie17_model_contr_hybrid_passiv_activ - Sensor Fusion cite:tjepkema12_activ_ph,tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip,hauge04_sensor_contr_space_based_six - Two Sensor control: cite:hauge04_sensor_contr_space_based_six,tjepkema12_activ_ph Comparison between "two sensor control" and "sensor fusion" is given in [[cite:&beijen14_two_sensor_contr_activ_vibrat]]. #+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 * Original Contributions **** Introduction :ignore: This thesis proposes several contributions in the fields of Control, Mechatronics Design and Experimental validation. **** Active Damping of rotating mechanical systems using Integral Force Feedback [[cite:&dehaeze20_activ_dampin_rotat_platf_integ_force_feedb;&dehaeze21_activ_dampin_rotat_platf_using]] #+begin_quote This paper investigates the use of Integral Force Feedback (IFF) for the active damping of rotating mechanical systems. Guaranteed stability, typical benefit of IFF, is lost as soon as the system is rotating due to gyroscopic effects. To overcome this issue, two modifications of the classical IFF control scheme are proposed. The first consists of slightly modifying the control law while the second consists of adding springs in parallel with the force sensors. Conditions for stability and optimal parameters are derived. The results reveal that, despite their different implementations, both modified IFF control scheme have almost identical damping authority on the suspension modes. #+end_quote **** Design of complementary filters using $\mathcal{H}_\infty$ Synthesis and sensor fusion [[cite:&dehaeze19_compl_filter_shapin_using_synth]] [[cite:&verma20_virtual_sensor_fusion_high_precis_contr]] [[cite:&tsang22_optim_sensor_fusion_method_activ]] - Several uses (link to some papers). - For the NASS, they could be use to further improve the robustness of the system. **** [#A] Multi-body simulations with reduced order flexible bodies obtained by FEA [[cite:&brumund21_multib_simul_reduc_order_flexib_bodies_fea]] Combined multi-body / FEA techniques and experimental validation on a Stewart platform containing amplified piezoelectric actuators Super-element of amplified piezoelectric actuator / combined multibody-FEA technique, experimental validation on an amplified piezoelectric actuator and further validated on a complete stewart platform #+begin_quote We considered sub-components in the multi-body model as /reduced order flexible bodies/ representing the component’s modal behaviour with reduced mass and stiffness matrices obtained from finite element analysis (FEA) models. These matrices were created from FEA models via modal reduction techniques, more specifically the /component mode synthesis/ (CMS). This makes this design approach a combined multibody-FEA technique. We validated the technique with a test bench that confirmed the good modelling capabilities using reduced order flexible body models obtained from FEA for an amplified piezoelectric actuator (APA). #+end_quote **** Robustness by design - Design of a Stewart platform and associated control architecture that is robust to large plant uncertainties due to large variety of payload and experimental conditions. - Instead of relying on complex controller synthesis (such as $\mathcal{H}_\infty$ synthesis or $\mu\text{-synthesis}$) to guarantee the robustness and performance. - The approach here is to choose an adequate architecture (mechanics, sensors, actuators) such that controllers are robust by nature. - Example: collocated actuator/sensor pair => controller can easily be made robust - This is done by using models and using HAC-LAC architecture **** [#A] Mechatronics design Conduct a rigorous mechatronics design approach for a nano active stabilization system [[cite:&dehaeze18_sampl_stabil_for_tomog_exper;&dehaeze21_mechat_approac_devel_nano_activ_stabil_system]] Approach from start to finish: - From first concepts using basic models, to concept validation - Detailed design phase - Experimental phase Complete design with clear choices based on models. Such approach, while not new, is here applied This can be used for the design of future end-stations. #+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]] **** 6DoF vibration control of a rotating platform Vibration control in 5DoF of a rotating stage To the author's knowledge, the use of a continuously rotating stewart platform for vibration control has not been proved in the literature. **** Experimental validation of the Nano Active Stabilization System Demonstration of the improvement of the the positioning accuracy of a complex multi DoF (the micro-station) by several orders of magnitude (Section ...) using ... * Thesis Outline - Mechatronics Design Approach **** Introduction :ignore: #+name: fig:introduction_overview_chapters #+caption: Overview of the sections #+attr_latex: :width \linewidth [[file:figs/introduction_overview_chapters.png]] This thesis - has a structure that follows the mechatronics design approach Is structured in three chapters that corresponds to the three mains parts of the proposed mechatronics approach. A brief overview of these three chapters is given bellow. **** Conceptual design development - Start with simple models for witch trade offs can be easily understood (uniaxial) - 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) - The system concept and main characteristics should be extracted from the different models and validated with closed-loop simulations with the most accurate model - Once the concept is validated, the chosen concept can be design in mode details **** Detailed design - During this detailed design phase, models are refined from the obtained CAD and using FEM - The models are used to assists the design and to optimize each element based on dynamical analysis and closed-loop simulations - The requirements for all the associated instrumentation can be determined from a dynamical noise budgeting - After converging to a detailed design that give acceptable performance based on the models, the different parts can be ordered and the experimental phase begins **** Experimental validation - It is advised that the important characteristics of the different elements are evaluated individually Systematic validation/refinement of models with experimental measurements - The obtained characteristics can be used to refine the models - Then, an accurate model of the system is obtained which can be used during experimental tests (for control synthesis for instance) * Bibliography :ignore: #+latex: \printbibliography[heading=bibintoc,title={Bibliography}] * Footnotes [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