From c4c200724b6be31be7a201de06d556df20162dbc Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Thu, 20 Feb 2025 11:00:10 +0100 Subject: [PATCH] Include Christophe's comment on ID31 chapter --- figs/test_id31_metrology_kinematics.pdf | Bin 13348 -> 15945 bytes figs/test_id31_metrology_kinematics.png | Bin 25431 -> 26317 bytes figs/test_id31_metrology_kinematics.svg | 368 ++++++++++--- phd-thesis.org | 685 ++++++++++++++---------- 4 files changed, 719 insertions(+), 334 deletions(-) diff --git a/figs/test_id31_metrology_kinematics.pdf b/figs/test_id31_metrology_kinematics.pdf index a369e249f7983c90207a38398f541b9a35dfc826..22eb39b34437aae699b19ed8107f4bdd74a42fda 100644 GIT binary patch delta 9552 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transform="translate(-25.3161, -11.885)"> - 1 - 2 - 3 - 4 - 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phd-thesis.org b/phd-thesis.org index cf305fa..d82af98 100644 --- a/phd-thesis.org +++ b/phd-thesis.org @@ -167,7 +167,6 @@ :UNNUMBERED: notoc :END: - * Résumé :PROPERTIES: :UNNUMBERED: notoc @@ -189,9 +188,11 @@ #+end_export * Introduction +<> # [[file:/home/thomas/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A0-nass-introduction/nass-introduction.org][NASS - Introduction]] * Conceptual Design Development +<> \minitoc **** Abstract :PROPERTIES: @@ -205,6 +206,7 @@ [[file:figs/chapter1_overview.png]] ** Uni-axial Model +<> *** Introduction :ignore: In this report, a uniaxial model of the acrfull:nass is developed and used to obtain a first idea of the challenges involved in this complex system. @@ -1466,7 +1468,8 @@ Having a soft nano-hexapod makes the plant dynamics easier to control (because i The moderately stiff nano-hexapod ($k_n = 1\,N/\mu m$) is requiring a higher feedback bandwidth, but still gives acceptable results. However, the stiff nano-hexapod is the most complex to control and gives the worst positioning performance. -** Effect of rotation +** Effect of Rotation +<> *** Introduction :ignore: An important aspect of the acrfull:nass is that the nano-hexapod continuously rotates around a vertical axis, whereas the external metrology is not. @@ -1640,7 +1643,7 @@ For $\Omega > \omega_0$, the low-frequency pair of complex conjugate poles $p_{- #+end_subfigure #+end_figure -*** Integral Force Feedback +*** Integral Force Feedback (IFF) :PROPERTIES: :header-args:matlab+: :tangle matlab/rotating_2_iff_pure_int.m :END: @@ -1782,7 +1785,7 @@ This can be seen in the Root Locus plot (Figure ref:fig:rotating_root_locus_iff_ Physically, this can be explained as follows: at low frequencies, the loop gain is huge due to the pure integrator in $K_{F}$ and the finite gain of the plant (Figure ref:fig:rotating_iff_bode_plot_effect_rot). The control system is thus cancels the spring forces, which makes the suspended platform not capable to hold the payload against centrifugal forces, hence the instability. -*** Integral Force Feedback with a High-Pass Filter +*** IFF with a High-Pass Filter :PROPERTIES: :header-args:matlab+: :tangle matlab/rotating_3_iff_hpf.m :END: @@ -2531,6 +2534,7 @@ Results are similar to those of the uniaxial model except that come complexity i For the moderately stiff nano-hexapod ($k_n = 1\,N/\mu m$), the gyroscopic effects only slightly affect the system dynamics, and therefore could represent a good alternative to the soft nano-hexapod that showed better results with the uniaxial model. ** Micro Station - Modal Analysis +<> *** Introduction :ignore: To further improve the accuracy of the performance predictions, a model that better represents the micro-station dynamics is required. @@ -3152,6 +3156,7 @@ Although a lot of effort was put into this experimental modal analysis of the mi However, the measurements are useful for tuning the parameters of the micro-station multi-body model. ** Micro Station - Multi Body Model +<> *** Introduction :ignore: From the start of this work, it became increasingly clear that an accurate micro-station model was necessary. @@ -4010,19 +4015,23 @@ The disturbances affecting the sample position should also be well modeled. After experimentally estimating the disturbances (Section ref:sec:ustation_disturbances), the multi-body model was finally validated by performing a tomography simulation (Figure ref:fig:ustation_errors_model_spindle) as well as a simulation in which the translation stage was scanned (Figure ref:fig:ustation_errors_model_dy_vertical). ** TODO Nano Hexapod - Multi Body Model +<> # [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A5-simscape-nano-hexapod/simscape-nano-hexapod.org][Simscape - Nano-Hexapod]] ** TODO Validation of the Concept +<> # [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A6-simscape-nass/simscape-nass.org][Simscape - NASS]] ** Conceptual Design - Conclusion :PROPERTIES: :UNNUMBERED: notoc :END: +<> - [ ] schema avec chaque modèle et les conclusions pour chaque modèle * Detailed Design +<> \minitoc **** Abstract :PROPERTIES: @@ -4036,15 +4045,23 @@ After experimentally estimating the disturbances (Section ref:sec:ustation_distu [[file:figs/chapter2_overview.png]] ** TODO Nano-Hexapod Kinematics - Optimal Geometry? +<> # [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/B1-nass-geometry/nass-geometry.org][NASS - Geometry]] ** TODO Optimization using Finite Element Models +<> # [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/B2-nass-fem/nass-fem.org][NASS - FEM]] +** TODO Control Optimization +<> +# [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/B3-control/nass-control.org][NASS - Control]] + ** TODO Choice of Instrumentation +<> # [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/B4-nass-instrumentation/nass-instrumentation.org][NASS - Instrumentation]] ** TODO Obtained Design +<> # [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/B5-nass-design/nass-design.org][NASS - Design]] - Explain again the different specifications in terms of space, payload, etc.. @@ -4056,8 +4073,10 @@ After experimentally estimating the disturbances (Section ref:sec:ustation_distu :PROPERTIES: :UNNUMBERED: notoc :END: +<> * Experimental Validation +<> \minitoc **** Abstract :PROPERTIES: @@ -4071,6 +4090,7 @@ After experimentally estimating the disturbances (Section ref:sec:ustation_distu [[file:figs/chapter3_overview.png]] ** Amplified Piezoelectric Actuator +<> *** Introduction :ignore: In this chapter, the goal is to ensure that the received APA300ML (shown in Figure ref:fig:test_apa_received) are complying with the requirements and that the dynamical models of the actuator accurately represent its dynamics. @@ -4563,8 +4583,8 @@ The model of the amplified piezoelectric actuator is shown in Figure ref:fig:tes It can be decomposed into three components: - the shell whose axial properties are represented by $k_1$ and $c_1$ - the actuator stacks whose contribution to the axial stiffness is represented by $k_a$ and $c_a$. - The force source $\tau$ represents the axial force induced by the force sensor stacks. - The sensitivity $g_a$ (in $N/m$) is used to convert the applied voltage $V_a$ to the axial force $\tau$ + The force source $f$ represents the axial force induced by the force sensor stacks. + The sensitivity $g_a$ (in $N/m$) is used to convert the applied voltage $V_a$ to the axial force $f$ - the sensor stack whose contribution to the axial stiffness is represented by $k_e$ and $c_e$. A sensor measures the stack strain $d_e$ which is then converted to a voltage $V_s$ using a sensitivity $g_s$ (in $V/m$) @@ -4762,6 +4782,7 @@ The benefit of employing this model over the two degrees-of-freedom model is not Nonetheless, the /super element/ model's value will become clear in subsequent sections, when its capacity to accurately model the APA300ML's flexibility across various directions will be important. ** Flexible Joints +<> *** Introduction :ignore: At both ends of the nano-hexapod struts, a flexible joint is used. @@ -5261,6 +5282,7 @@ These measurements are helpful for refining the model of the flexible joints, th Furthermore, the data obtained from these measurements have provided the necessary information to select the most suitable flexible joints for the nano-hexapod, ensuring optimal performance. ** Struts +<> *** Introduction :ignore: The Nano-Hexapod struts (shown in Figure ref:fig:test_struts_picture_strut) are composed of two flexible joints that are fixed at the two ends of the strut, one acrfull:apa[fn:test_struts_5] and one optical encoder[fn:test_struts_6]. @@ -5848,6 +5870,7 @@ Even with better alignment using dowel pins, the observed dynamics by the encode Therefore, the encoders will be fixed directly to the nano-hexapod plates rather than being fixed to the struts. ** Nano-Hexapod +<> *** Introduction :ignore: Prior to the nano-hexapod assembly, all the struts were mounted and individually characterized. @@ -6376,29 +6399,33 @@ This approach involved tuning and validating models of individual components (su The different models could then be combined to form the Nano-Hexapod dynamical model. If a model of the nano-hexapod was developed in one time, it would be difficult to tune all the model parameters to match the measured dynamics, or even to know if the model "structure" would be adequate to represent the system dynamics. -** Nano Active Stabilization System - ID31 +** Experimental Validation - Conclusion +:PROPERTIES: +:UNNUMBERED: notoc +:END: +<> *** Introduction :ignore: -The nano-hexapod's mounting and validation through dynamics measurements marks a crucial milestone in the development of the Nano Active Stabilization System (NASS). -This chapter presents a comprehensive experimental evaluation of the complete system's performance on the ID31 beamline, focusing on its ability to maintain precise sample positioning during various experimental conditions. +To proceed with the full validation of the Nano Active Stabilization System (NASS), the nano-hexapod was mounted on top of the micro-station on ID31, as illustrated in figure ref:fig:test_id31_micro_station_nano_hexapod. +This section presents a comprehensive experimental evaluation of the complete system's performance on the ID31 beamline, focusing on its ability to maintain precise sample positioning under various experimental conditions. -Initially, the project planned to develop a long-stroke ($\approx 1 \, cm^3$) 5-DoF metrology system to measure sample position relative to the granite base. +Initially, the project planned to develop a long-stroke ($\approx 1 \, cm^3$) 5-DoF metrology system to measure the sample position relative to the granite base. However, the complexity of this development prevented its completion before the experimental testing phase on ID31. -To proceed with validation of the nano active platform and its associated control architecture, an alternative short-stroke ($> 100\,\mu m^3$) metrology system was developed, which is presented in Section ref:sec:test_id31_metrology. +To validate the nano-hexapod and its associated control architecture, an alternative short-stroke ($\approx 100\,\mu m^3$) metrology system was developed, which is presented in Section ref:sec:test_id31_metrology. Then, several key aspects of the system validation are examined. Section ref:sec:test_id31_open_loop_plant analyzes the identified dynamics of the nano-hexapod mounted on the micro-station under various experimental conditions, including different payload masses and rotational velocities. -These measurements are compared with predictions from the multi-body model to verify its accuracy and applicability for control design. +These measurements were compared with predictions from the multi-body model to verify its accuracy and applicability to control design. Sections ref:sec:test_id31_iff and ref:sec:test_id31_hac focus on the implementation and validation of the HAC-LAC control architecture. -First, Section ref:sec:test_id31_iff demonstrates the application of decentralized Integral Force Feedback for robust active damping of the nano-hexapod's suspension modes. +First, Section ref:sec:test_id31_iff demonstrates the application of decentralized Integral Force Feedback for robust active damping of the nano-hexapod suspension modes. This is followed in Section ref:sec:test_id31_hac by the implementation of the high authority controller, which addresses low-frequency disturbances and completes the control system design. Finally, Section ref:sec:test_id31_experiments evaluates the NASS's positioning performances through a comprehensive series of experiments that mirror typical scientific applications. These include tomography scans at various speeds and with different payload masses, reflectivity measurements, and combined motion sequences that test the system's full capabilities. #+name: fig:test_id31_micro_station_nano_hexapod -#+caption: Picture of the micro-station without the nano-hexapod \subref{fig:test_id31_micro_station_cables} and with the nano-hexapod \subref{fig:test_id31_fixed_nano_hexapod} +#+caption: Picture of the micro-station without the nano-hexapod (\subref{fig:test_id31_micro_station_cables}) and with the nano-hexapod (\subref{fig:test_id31_fixed_nano_hexapod}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_micro_station_cables}Micro-station and nano-hexapod cables} @@ -6419,66 +6446,66 @@ These include tomography scans at various speeds and with different payload mass <> **** Introduction :ignore: -The control of the nano-hexapod requires an external metrology system measuring the relative position of the nano-hexapod top platform with respect to the granite. -As the long-stroke ($\approx 1 \,cm^3$) metrology system was not developed yet, a stroke stroke ($> 100\,\mu m^3$) was used instead to validate the nano-hexapod control. +The control of the nano-hexapod requires an external metrology system that measures the relative position of the nano-hexapod top platform with respect to the granite. +As a long-stroke ($\approx 1 \,cm^3$) metrology system was not yet developed, a stroke stroke ($\approx 100\,\mu m^3$) was used instead to validate the nano-hexapod control. -A first considered option was to use the "Spindle error analyzer" shown in Figure ref:fig:test_id31_lion. -This system comprises 5 capacitive sensors which are facing two reference spheres. -But as the gap between the capacitive sensors and the spheres is very small[fn:test_id31_1], the risk of damaging the spheres and the capacitive sensors is too high. +The first considered option was to use the "Spindle error analyzer" shown in Figure ref:fig:test_id31_lion. +This system comprises 5 capacitive sensors facing two reference spheres. +However, as the gap between the capacitive sensors and the spheres is very small[fn:test_id31_1], the risk of damaging the spheres and the capacitive sensors is too high. #+name: fig:test_id31_short_stroke_metrology -#+caption: Short stroke metrology system used to measure the sample position with respect to the granite in 5DoF. The system is based on a "Spindle error analyzer" \subref{fig:test_id31_lion}, but the capacitive sensors are replaced with fibered interferometers \subref{fig:test_id31_interf}. Interferometer heads are shown in \subref{fig:test_id31_interf_head} +#+caption: Short stroke metrology system used to measure the sample position with respect to the granite in 5DoF. The system is based on a "Spindle error analyzer" (\subref{fig:test_id31_lion}), but the capacitive sensors are replaced with fibered interferometers (\subref{fig:test_id31_interf}). The interferometer heads are shown in (\subref{fig:test_id31_interf_head}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_lion}Capacitive Sensors} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :width 0.9\linewidth [[file:figs/test_id31_lion.jpg]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_interf}Short-Stroke metrology} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :width 0.9\linewidth [[file:figs/test_id31_interf.jpg]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_interf_head}Interferometer head} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :width 0.9\linewidth [[file:figs/test_id31_interf_head.jpg]] #+end_subfigure #+end_figure -Instead of using capacitive sensors, 5 fibered interferometers were used in a similar way (Figure ref:fig:test_id31_interf). +Instead of using capacitive sensors, 5 fibered interferometers were used in a similar manner (Figure ref:fig:test_id31_interf). At the end of each fiber, a sensor head[fn:test_id31_2] (Figure ref:fig:test_id31_interf_head) is used, which consists of a lens precisely positioned with respect to the fiber's end. -The lens is focusing the light on the surface of the sphere, such that the reflected light comes back into the fiber and produces an interference. -This way, the gap between the head and the reference sphere is much larger (here around $40\,mm$), removing the risk of collision. +The lens focuses the light on the surface of the sphere, such that the reflected light comes back into the fiber and produces an interference. +In this way, the gap between the head and the reference sphere is much larger (here around $40\,mm$), thereby removing the risk of collision. -Nevertheless, the metrology system still has limited measurement range due to limited angular acceptance of the fibered interferometers. -Indeed, when the spheres are moving perpendicularly to the beam axis, the reflected light does not coincide with the incident light, and above some perpendicular displacement, the reflected light does not comes back into the fiber, and no interference is produced. +Nevertheless, the metrology system still has a limited measurement range because of the limited angular acceptance of the fibered interferometers. +Indeed, when the spheres are moving perpendicularly to the beam axis, the reflected light does not coincide with the incident light, and above some perpendicular displacement, the reflected light does not come back into the fiber, and no interference is produced. **** Metrology Kinematics <> -The developed short-stroke metrology system is schematically shown in Figure ref:fig:test_id31_metrology_kinematics. +The proposed short-stroke metrology system is schematized in Figure ref:fig:test_id31_metrology_kinematics. The point of interest is indicated by the blue frame $\{B\}$, which is located $H = 150\,mm$ above the nano-hexapod's top platform. -The spheres have a diameter $d = 25.4\,mm$, and indicated dimensions are $l_1 = 60\,mm$ and $l_2 = 16.2\,mm$. -In order to compute the pose of the $\{B\}$ frame with respect to the granite (i.e. with respect to the fixed interferometer heads), the measured (small) displacements $[d_1,\ d_2,\ d_3,\ d_4,\ d_5]$ by the interferometers are first written as a function of the (small) linear and angular motion of the $\{B\}$ frame $[D_x,\ D_y,\ D_z,\ R_x,\ R_y]$ eqref:eq:test_id31_metrology_kinematics. +The spheres have a diameter $d = 25.4\,mm$, and the indicated dimensions are $l_1 = 60\,mm$ and $l_2 = 16.2\,mm$. +To compute the pose of $\{B\}$ with respect to the granite (i.e. with respect to the fixed interferometer heads), the measured (small) displacements $[d_1,\ d_2,\ d_3,\ d_4,\ d_5]$ by the interferometers are first written as a function of the (small) linear and angular motion of the $\{B\}$ frame $[D_x,\ D_y,\ D_z,\ R_x,\ R_y]$ eqref:eq:test_id31_metrology_kinematics. \begin{equation}\label{eq:test_id31_metrology_kinematics} d_1 = D_y - l_2 R_x, \quad d_2 = D_y + l_1 R_x, \quad d_3 = -D_x - l_2 R_y, \quad d_4 = -D_x + l_1 R_y, \quad d_5 = -D_z \end{equation} -#+attr_latex: :options [b]{0.48\textwidth} +#+attr_latex: :options [b]{0.48\linewidth} #+begin_minipage #+name: fig:test_id31_metrology_kinematics -#+caption: Schematic of the measurement system. Measured distances are indicated by red arrows. +#+caption: Schematic of the measurement system. The measured distances are indicated by red arrows. #+attr_latex: :scale 1 :float nil [[file:figs/test_id31_metrology_kinematics.png]] #+end_minipage \hfill -#+attr_latex: :options [b]{0.48\textwidth} +#+attr_latex: :options [b]{0.48\linewidth} #+begin_minipage #+name: fig:test_id31_align_top_sphere_comparators #+attr_latex: :width \linewidth :float nil @@ -6486,7 +6513,7 @@ d_1 = D_y - l_2 R_x, \quad d_2 = D_y + l_1 R_x, \quad d_3 = -D_x - l_2 R_y, \qua [[file:figs/test_id31_align_top_sphere_comparators.jpg]] #+end_minipage -The five equations eqref:eq:test_id31_metrology_kinematics can be written in a matrix form, and then inverted to have the pose of the $\{B\}$ frame as a linear combination of the measured five distances by the interferometers eqref:eq:test_id31_metrology_kinematics_inverse. +The five equations eqref:eq:test_id31_metrology_kinematics can be written in matrix form, and then inverted to have the pose of the $\{B\}$ frame as a linear combination of the measured five distances by the interferometers eqref:eq:test_id31_metrology_kinematics_inverse. \begin{equation}\label{eq:test_id31_metrology_kinematics_inverse} \begin{bmatrix} @@ -6505,56 +6532,56 @@ The five equations eqref:eq:test_id31_metrology_kinematics can be written in a m **** Rough alignment of the reference spheres <> -The two reference spheres are aligned with the rotation axis of the spindle. -To do so, two measuring probes are used as shown in Figure ref:fig:test_id31_align_top_sphere_comparators. +The two reference spheres must be well aligned with the rotation axis of the spindle. +To achieve this, two measuring probes were used as shown in Figure ref:fig:test_id31_align_top_sphere_comparators. To not damage the sensitive sphere surface, the probes are instead positioned on the cylinder on which the sphere is mounted. -First, the probes are fixed to the bottom (fixed) cylinder to align the first sphere with the spindle axis. -Then, the probes are fixed to the top (adjustable) cylinder, and the same alignment is performed. +The probes are first fixed to the bottom (fixed) cylinder to align the first sphere with the spindle axis. +The probes are then fixed to the top (adjustable) cylinder, and the same alignment is performed. -With this setup, the alignment accuracy of both spheres with the spindle axis is expected to around $10\,\mu m$. -The accuracy is probably limited due to the poor coaxiality between the cylinders and the spheres. -However, this first alignment should permit to position the two sphere within the acceptance of the interferometers. +With this setup, the alignment accuracy of both spheres with the spindle axis was expected to around $10\,\mu m$. +The accuracy was probably limited by the poor coaxiality between the cylinders and the spheres. +However, this first alignment should be sufficient to position the two sphere within the acceptance range of the interferometers. **** Tip-Tilt adjustment of the interferometers <> -The short-stroke metrology system is placed on top of the main granite using a gantry made of granite blocs (Figure ref:fig:test_id31_short_stroke_metrology_overview). -Granite is used to have good vibration and thermal stability. +The short-stroke metrology system was placed on top of the main granite using granite blocs (Figure ref:fig:test_id31_short_stroke_metrology_overview). +Granite is used for its good mechanical and thermal stability. #+name: fig:test_id31_short_stroke_metrology_overview #+caption: Granite gantry used to fix the short-stroke metrology system #+attr_latex: :width 0.8\linewidth [[file:figs/test_id31_short_stroke_metrology_overview.jpg]] -The interferometer beams need to be position with respect to the two reference spheres as close as possible to the ideal case shown in Figure ref:fig:test_id31_metrology_kinematics. -This means that their positions and angles needs to be well adjusted with respect to the two spheres. -First, the vertical position of the spheres is adjusted using the micro-hexapod to match the height of the interferometers. -Then, the horizontal position of the gantry is adjusted such that the coupling efficiency (i.e. the intensity of the light reflected back in the fiber) of the top interferometer is maximized. +The interferometer beams must be placed with respect to the two reference spheres as close as possible to the ideal case shown in Figure ref:fig:test_id31_metrology_kinematics. +Therefore, their positions and angles must be well adjusted with respect to the two spheres. +First, the vertical positions of the spheres is adjusted using the micro-hexapod to match the heights of the interferometers. +Then, the horizontal position of the gantry is adjusted such that the intensity of the light reflected back in the fiber of the top interferometer is maximized. This is equivalent as to optimize the perpendicularity between the interferometer beam and the sphere surface (i.e. the concentricity between the top beam and the sphere center). -The lateral sensor heads (i.e. all except the top one) are each fixed to a custom tip-tilt adjustment mechanism. -This allow to individually orient them such that they all point to the spheres' center (i.e. perpendicular to the sphere surface). -This is done by maximizing the coupling efficiency of each interferometer. +The lateral sensor heads (i.e. all except the top one) were each fixed to a custom tip-tilt adjustment mechanism. +This allows them to be individually oriented so that they all point to the spheres' center (i.e. perpendicular to the sphere surface). +This is achieved by maximizing the intensity of the reflected light of each interferometer. -After the alignment procedure, the top interferometer should coincide with with spindle axis, and the lateral interferometers should all be in the horizontal plane and intersect the spheres' center. +After the alignment procedure, the top interferometer should coincide with the spindle axis, and the lateral interferometers should all be in the horizontal plane and intersect the centers of the spheres. **** Fine Alignment of reference spheres using interferometers <> -Thanks to the first alignment of the two reference spheres with the spindle axis (Section ref:ssec:test_id31_metrology_sphere_rought_alignment) and to the fine adjustment of the interferometers orientations (Section ref:ssec:test_id31_metrology_alignment), the spindle can perform complete rotations while still having interference for all five interferometers. -This metrology can therefore be used to better align the axis defined by the two spheres' center with the spindle axis. +Thanks to the first alignment of the two reference spheres with the spindle axis (Section ref:ssec:test_id31_metrology_sphere_rought_alignment) and to the fine adjustment of the interferometer orientations (Section ref:ssec:test_id31_metrology_alignment), the spindle can perform complete rotations while still having interference for all five interferometers. +Therefore, this metrology can be used to better align the axis defined by the centers of the two spheres with the spindle axis. -The alignment process is made by few iterations. -First, the spindle is scanned and the alignment errors are recorded. +The alignment process requires few iterations. +First, the spindle is scanned, and alignment errors are recorded. From the errors, the motion of the micro-hexapod to better align the spheres with the spindle axis is computed and the micro-hexapod is positioned accordingly. -Then, the spindle is scanned again, and the new alignment errors are recorded. +Then, the spindle is scanned again, and new alignment errors are recorded. This iterative process is first performed for angular errors (Figure ref:fig:test_id31_metrology_align_rx_ry) and then for lateral errors (Figure ref:fig:test_id31_metrology_align_dx_dy). -The remaining errors after alignment is in the order of $\pm5\,\mu\text{rad}$ in $R_x$ and $R_y$ orientations, $\pm 1\,\mu m$ in $D_x$ and $D_y$ directions and less than $0.1\,\mu m$ vertically. +The remaining errors after alignment are in the order of $\pm5\,\mu\text{rad}$ in $R_x$ and $R_y$ orientations, $\pm 1\,\mu m$ in $D_x$ and $D_y$ directions, and less than $0.1\,\mu m$ vertically. #+name: fig:test_id31_metrology_align -#+caption: Measured angular \subref{fig:test_id31_metrology_align_rx_ry} and lateral \subref{fig:test_id31_metrology_align_dx_dy} errors during a full spindle rotation. Between two rotations, the micro-hexapod is adjusted to better align the two spheres with the rotation axis. +#+caption: Measured angular (\subref{fig:test_id31_metrology_align_rx_ry}) and lateral (\subref{fig:test_id31_metrology_align_dx_dy}) errors during full spindle rotation. Between two rotations, the micro-hexapod is adjusted to better align the two spheres with the rotation axis. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_metrology_align_rx_ry}Angular alignment} @@ -6574,9 +6601,9 @@ The remaining errors after alignment is in the order of $\pm5\,\mu\text{rad}$ in **** Estimated measurement volume <> -Because the interferometers are pointing to spheres and not flat surfaces, the lateral acceptance is limited. -In order to estimate the metrology acceptance, the micro-hexapod is used to perform three accurate scans of $\pm 1\,mm$, respectively along the $x$, $y$ and $z$ axes. -During these scans, the 5 interferometers are recorded individually, and the ranges in which each interferometer has enough coupling efficiency to be able to measure the displacement are estimated. +Because the interferometers point to spheres and not flat surfaces, the lateral acceptance is limited. +To estimate the metrology acceptance, the micro-hexapod was used to perform three accurate scans of $\pm 1\,mm$, respectively along the $x$, $y$ and $z$ axes. +During these scans, the 5 interferometers are recorded individually, and the ranges in which each interferometer had enough coupling efficiency to be able to measure the displacement were estimated. Results are summarized in Table ref:tab:test_id31_metrology_acceptance. The obtained lateral acceptance for pure displacements in any direction is estimated to be around $+/-0.5\,mm$, which is enough for the current application as it is well above the micro-station errors to be actively corrected by the NASS. @@ -6596,28 +6623,28 @@ The obtained lateral acceptance for pure displacements in any direction is estim **** Estimated measurement errors <> -When using the NASS, the accuracy of the sample's positioning is determined by the accuracy of the external metrology. -However, the validation of the nano-hexapod, the associated instrumentation and the control architecture is independent of the accuracy of the metrology system. +When using the NASS, the accuracy of the sample positioning is determined by the accuracy of the external metrology. +However, the validation of the nano-hexapod, the associated instrumentation, and the control architecture is independent of the accuracy of the metrology system. Only the bandwidth and noise characteristics of the external metrology are important. -Yet, some elements effecting the accuracy of the metrology are discussed here. +However, some elements that affect the accuracy of the metrology system are discussed here. -First, the "metrology kinematics" (discussed in Section ref:ssec:test_id31_metrology_kinematics) is only approximate (i.e. valid for very small displacements). +First, the "metrology kinematics" (discussed in Section ref:ssec:test_id31_metrology_kinematics) is only approximate (i.e. valid for small displacements). This can be easily seen when performing lateral $[D_x,\,D_y]$ scans using the micro-hexapod while recording the vertical interferometer (Figure ref:fig:test_id31_xy_map_sphere). -As the interferometer is pointing to a sphere and not to a plane, lateral motion of the sphere is seen as a vertical motion by the top interferometer. +As the top interferometer points to a sphere and not to a plane, lateral motion of the sphere is seen as a vertical motion by the top interferometer. -Then, the reference spheres have some deviations with respect to an ideal sphere [fn:test_id31_6]. -They are initially meant to be used with capacitive sensors which are integrating the shape errors over large surfaces. +Then, the reference spheres have some deviations relative to an ideal sphere [fn:test_id31_6]. +These sphere are originally intended for use with capacitive sensors that integrate shape errors over large surfaces. When using interferometers, the size of the "light spot" on the sphere surface is a circle with a diameter approximately equal to $50\,\mu m$, and therefore the measurement is more sensitive to shape errors with small features. -As the light from the interferometer is travelling through air (as opposed to being in vacuum), the measured distance is sensitive to any variation in the refractive index of the air. -Therefore, any variation of air temperature, pressure or humidity will induce measurement errors. -For instance, for a measurement length of $40\,mm$, a temperature variation of $0.1\,{}^oC$ (which is typical for the ID31 experimental hutch) induces an errors in the distance measurement of $\approx 4\,nm$. +As the light from the interferometer travels through air (as opposed to being in vacuum), the measured distance is sensitive to any variation in the refractive index of the air. +Therefore, any variation in air temperature, pressure or humidity will induce measurement errors. +For instance, for a measurement length of $40\,mm$, a temperature variation of $0.1\,{}^oC$ (which is typical for the ID31 experimental hutch) induces errors in the distance measurement of $\approx 4\,nm$. Interferometers are also affected by noise [[cite:&watchi18_review_compac_inter]]. -The effect of the noise on the translation and rotation measurements is estimated in Figure ref:fig:test_id31_interf_noise. +The effect of noise on the translation and rotation measurements is estimated in Figure ref:fig:test_id31_interf_noise. #+name: fig:test_id31_metrology_errors -#+caption: Estimated measurement errors of the metrology. Cross-coupling between lateral motion and vertical measurement is shown in \subref{fig:test_id31_xy_map_sphere}. Effect of interferometer noise on the measured translations and rotations is shown in \subref{fig:test_id31_interf_noise}. +#+caption: Estimated measurement errors of the metrology. Cross-coupling between lateral motion and vertical measurement is shown in (\subref{fig:test_id31_xy_map_sphere}). The effect of interferometer noise on the measured translations and rotations is shown in (\subref{fig:test_id31_interf_noise}). #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_xy_map_sphere}Z measurement during an XY mapping} @@ -6638,8 +6665,8 @@ The effect of the noise on the translation and rotation measurements is estimate <> **** Introduction :ignore: -The NASS plant is schematically shown in Figure ref:fig:test_id31_block_schematic_plant. -The input $\bm{u} = [u_1,\ u_2,\ u_3,\ u_4,\ u_5,\ u_6]$ is the command signal and corresponds to the voltages generated for each piezoelectric actuator. +The NASS plant is schematically illustrated in Figure ref:fig:test_id31_block_schematic_plant. +The input $\bm{u} = [u_1,\ u_2,\ u_3,\ u_4,\ u_5,\ u_6]$ is the command signal, which corresponds to the voltages generated for each piezoelectric actuator. After amplification, the voltages across the piezoelectric stack actuators are $\bm{V}_a = [V_{a1},\ V_{a2},\ V_{a3},\ V_{a4},\ V_{a5},\ V_{a6}]$. From the setpoint of micro-station stages ($r_{D_y}$ for the translation stage, $r_{R_y}$ for the tilt stage and $r_{R_z}$ for the spindle), the reference pose of the sample $\bm{r}_{\mathcal{X}}$ is computed using the micro-station's kinematics. @@ -6652,6 +6679,64 @@ Finally, the Jacobian matrix $\bm{J}$ of the nano-hexapod is used to map $\bm{\e Voltages generated by the force sensor piezoelectric stacks $\bm{V}_s = [V_{s1},\ V_{s2},\ V_{s3},\ V_{s4},\ V_{s5},\ V_{s6}]$ will be used for active damping. +#+begin_src latex :file test_id31_block_schematic_plant.pdf +\begin{tikzpicture} + % Blocs + \node[block={2.0cm}{1.0cm}] (metrology) {Metrology}; + \node[block={2.0cm}{2.0cm}, below=0.1 of metrology, align=center] (nhexa) {Nano\\Hexapod}; + \node[block={4.0cm}{1.5cm}, below=0.1 of nhexa, align=center] (ustation) {Micro\\Station}; + + \coordinate[] (inputVa) at ($(nhexa.south west)!0.5!(nhexa.north west)$); + \coordinate[] (outputVs) at ($(nhexa.south east)!0.3!(nhexa.north east)$); + \coordinate[] (outputde) at ($(nhexa.south east)!0.7!(nhexa.north east)$); + + \coordinate[] (outputDy) at ($(ustation.south east)!0.1!(ustation.north east)$); + \coordinate[] (outputRy) at ($(ustation.south east)!0.5!(ustation.north east)$); + \coordinate[] (outputRz) at ($(ustation.south east)!0.9!(ustation.north east)$); + + \node[block={1.0cm}{1.0cm}, left=0.8 of inputVa] (pd200) {PD200}; + \node[block={1.0cm}{1.0cm}, right=0.8 of outputde] (Rz_kinematics) {$\bm{J}_{R_z}^{-1}$}; + \node[block={2.0cm}{2.0cm}, right=2.2 of ustation, align=center] (ustation_kinematics) {Compute\\Reference\\Position}; + \node[block={2.0cm}{2.0cm}, right=0.8 of ustation_kinematics, align=center] (compute_error) {Compute\\Error\\Position}; + \node[block={2.0cm}{2.0cm}, above=0.8 of compute_error, align=center] (compute_pos) {Compute\\Sample\\Position}; + \node[block={1.0cm}{1.0cm}, right=0.8 of compute_error] (hexa_jacobian) {$\bm{J}$}; + \node[block={1.0cm}{1.0cm}, right=0.8 of metrology] (metrology_kinematics) {$\bm{J}_d^{-1}$}; + + \coordinate[] (inputMetrology) at ($(compute_error.north east)!0.3!(compute_error.north west)$); + \coordinate[] (inputRz) at ($(compute_error.north east)!0.7!(compute_error.north west)$); + + \node[addb={+}{}{}{}{}, right=0.4 of Rz_kinematics] (addRz) {}; + \draw[->] (Rz_kinematics.east) -- (addRz.west); + \draw[->] (outputRz-|addRz)node[branch]{} -- (addRz.south); + + \draw[->] (outputDy) node[above right]{$r_{D_y}$} -- (outputDy-|ustation_kinematics.west); + \draw[->] (outputRy) node[above right]{$r_{R_y}$} -- (outputRy-|ustation_kinematics.west); + \draw[->] (outputRz) node[above right]{$r_{R_z}$} -- (outputRz-|ustation_kinematics.west); + + % \draw[->] (outputVs) -- ++(0.8, 0) node[above left]{$\bm{V}_s$}; + + \draw[->] (metrology.east) -- (metrology_kinematics.west) node[above left]{$\bm{d}$}; + + \draw[->] (metrology_kinematics.east)node[above right]{$[D_x,\,D_y,\,D_z,\,R_x,\,R_y]$} -- (compute_pos.west|-metrology_kinematics); + \draw[->] (addRz.east)node[above right]{$R_z$} -- (compute_pos.west|-addRz); + \draw[->] (compute_pos.south)node -- (compute_error.north)node[above right]{$\bm{y}_{\mathcal{X}}$}; + + \draw[->] (outputde) -- (Rz_kinematics.west) node[above left]{$\bm{d}_{e}$}; + \draw[->] (ustation_kinematics.east) -- (compute_error.west) node[above left]{$\bm{r}_{\mathcal{X}}$}; + \draw[->] (compute_error.east) -- (hexa_jacobian.west) node[above left]{$\bm{\epsilon\mathcal{X}}$}; + \draw[->] (hexa_jacobian.east) -- ++(0.8, 0)coordinate(eL) node[above left]{$\bm{\epsilon\mathcal{L}}$}; + \draw[->] (pd200.east) -- (inputVa) node[above left]{$\bm{V}_a$}; + \draw[<-] (pd200.west) -- ++(-0.8, 0) node[above right]{$\bm{u}$}; + + \draw[->] (outputVs) -- (outputVs-|eL) node[above left]{$\bm{V}_s$}; + + \begin{scope}[on background layer] + \node[fit={(metrology.north-|pd200.west) (hexa_jacobian.east|-compute_error.south)}, fill=black!20!white, draw, dashed, inner sep=4pt] (plant) {}; + \node[anchor={north west}] at (plant.north west){$\text{Plant}$}; + \end{scope} +\end{tikzpicture} +#+end_src + #+name: fig:test_id31_block_schematic_plant #+caption: Schematic of the NASS plant #+RESULTS: @@ -6660,19 +6745,19 @@ Voltages generated by the force sensor piezoelectric stacks $\bm{V}_s = [V_{s1}, **** Open-Loop Plant Identification <> -The plant dynamics is first identified for a fixed spindle angle (at $0\,\text{deg}$) and without any payload. -The model dynamics is also identified in the same conditions. +The dynamics of the plant is first identified for a fixed spindle angle (at $0\,\text{deg}$) and without any payload. +The model dynamics is also identified under the same conditions. -A first comparison between the model and the measured dynamics is done in Figure ref:fig:test_id31_first_id. +A comparison between the model and the measured dynamics is presented in Figure ref:fig:test_id31_first_id. A good match can be observed for the diagonal dynamics (except the high frequency modes which are not modeled). -However, the coupling for the transfer function from command signals $\bm{u}$ to the estimated strut motion from the external metrology $\bm{\epsilon\mathcal{L}}$ is larger than expected (Figure ref:fig:test_id31_first_id_int). +However, the coupling of the transfer function from command signals $\bm{u}$ to the estimated strut motion from the external metrology $\bm{\epsilon\mathcal{L}}$ is larger than expected (Figure ref:fig:test_id31_first_id_int). The experimental time delay estimated from the FRF (Figure ref:fig:test_id31_first_id_int) is larger than expected. After investigation, it was found that the additional delay was due to a digital processing unit[fn:test_id31_3] that was used to get the interferometers' signals in the Speedgoat. This issue was later solved. #+name: fig:test_id31_first_id -#+caption: Comparison between the measured dynamics and the multi-body model dynamics. Both for the external metrology \subref{fig:test_id31_first_id_int} and force sensors \subref{fig:test_id31_first_id_iff}. Direct terms are displayed with solid lines while off-diagonal (i.e. coupling) terms are shown with shaded lines. +#+caption: Comparison between the measured dynamics and the multi-body model dynamics. Both for the external metrology (\subref{fig:test_id31_first_id_int}) and force sensors (\subref{fig:test_id31_first_id_iff}). Direct terms are displayed with solid lines while off-diagonal (i.e. coupling) terms are displayed with shaded lines. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_first_id_int}External Metrology} @@ -6694,15 +6779,15 @@ This issue was later solved. One possible explanation of the increased coupling observed in Figure ref:fig:test_id31_first_id_int is the poor alignment between the external metrology axes (i.e. the interferometer supports) and the nano-hexapod axes. To estimate this alignment, a decentralized low-bandwidth feedback controller based on the nano-hexapod encoders was implemented. -This allowed to perform two straight movements of the nano-hexapod along its $x$ and $y$ axes. -During these two movements, the external metrology measurement was recorded and are shown in Figure ref:fig:test_id31_Rz_align_error_and_correct. -It was found that there is a misalignment of 2.7 degrees (rotation along the vertical axis) between the interferometer axes and nano-hexapod axes. +This allowed to perform two straight motions of the nano-hexapod along its $x$ and $y$ axes. +During these two motions, external metrology measurements were recorded and the results are shown in Figure ref:fig:test_id31_Rz_align_error_and_correct. +It was found that there was a misalignment of 2.7 degrees (rotation along the vertical axis) between the interferometer axes and nano-hexapod axes. This was corrected by adding an offset to the spindle angle. -After alignment, the same movement was performed using the nano-hexapod while recording the signal of the external metrology. +After alignment, the same motion was performed using the nano-hexapod while recording the signal of the external metrology. Results shown in Figure ref:fig:test_id31_Rz_align_correct are indeed indicating much better alignment. #+name: fig:test_id31_Rz_align_error_and_correct -#+caption: Measurement of the Nano-Hexapod axes in the frame of the external metrology. Before alignment \subref{fig:test_id31_Rz_align_error} and after alignment \subref{fig:test_id31_Rz_align_correct}. +#+caption: Measurement of the Nano-Hexapod axes in the frame of the external metrology. Before alignment (\subref{fig:test_id31_Rz_align_error}) and after alignment (\subref{fig:test_id31_Rz_align_correct}). #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_Rz_align_error}Before alignment} @@ -6719,11 +6804,11 @@ Results shown in Figure ref:fig:test_id31_Rz_align_correct are indeed indicating #+end_subfigure #+end_figure -The plant dynamics was identified again after the fine alignment and is compared with the model dynamics in Figure ref:fig:test_id31_first_id_int_better_rz_align. -Compared to the initial identification shown in Figure ref:fig:test_id31_first_id_int, the obtained coupling has decreased and is now close to the coupling obtained with the multi-body model. -At low frequency (below $10\,\text{Hz}$) all the off-diagonal elements have an amplitude $\approx 100$ times lower compared to the diagonal elements, indicating that a low bandwidth feedback controller can be implemented in a decentralized way (i.e. $6$ SISO controllers). -Between $650\,\text{Hz}$ and $1000\,\text{Hz}$, several modes can be observed that are due to flexible modes of the top platform and modes of the two spheres adjustment mechanism. -The flexible modes of the top platform can be passively damped while the modes of the two reference spheres should not be present in the final application. +The dynamics of the plant was identified again after fine alignment and compared with the model dynamics in Figure ref:fig:test_id31_first_id_int_better_rz_align. +Compared to the initial identification shown in Figure ref:fig:test_id31_first_id_int, the obtained coupling was decreased and was close to the coupling obtained with the multi-body model. +At low frequency (below $10\,\text{Hz}$), all off-diagonal elements have an amplitude $\approx 100$ times lower than the diagonal elements, indicating that a low bandwidth feedback controller can be implemented in a decentralized manner (i.e. $6$ SISO controllers). +Between $650\,\text{Hz}$ and $1000\,\text{Hz}$, several modes can be observed, which are due to flexible modes of the top platform and the modes of the two spheres adjustment mechanism. +The flexible modes of the top platform can be passively damped, whereas the modes of the two reference spheres should not be present in the final application. #+name: fig:test_id31_first_id_int_better_rz_align #+caption: Decrease of the coupling with better Rz alignment @@ -6733,15 +6818,15 @@ The flexible modes of the top platform can be passively damped while the modes o **** Effect of Payload Mass <> -In order to see how the system dynamics changes with the payload, open-loop identification was performed for four payload conditions that are shown in Figure ref:fig:test_id31_picture_masses. -The obtained direct terms are compared with the model dynamics in Figure ref:fig:test_nhexa_comp_simscape_diag_masses. -It is shown that the model dynamics well predicts the measured dynamics for all payload conditions. -Therefore the model can be used for model-based control is necessary. +To determine how the system dynamics changes with the payload, open-loop identification was performed for four payload conditions shown in Figure ref:fig:test_id31_picture_masses. +The obtained direct terms are compared with the model dynamics in Figure ref:fig:test_id31_comp_simscape_diag_masses. +It was found that the model well predicts the measured dynamics under all payload conditions. +Therefore, the model can be used for model-based control if necessary. -It is interesting to note that the anti-resonances in the force sensor plant are now appearing as minimum-phase, as the model predicts (Figure ref:fig:test_id31_comp_simscape_iff_diag_masses). +It is interesting to note that the anti-resonances in the force sensor plant now appear as minimum-phase, as the model predicts (Figure ref:fig:test_id31_comp_simscape_iff_diag_masses). #+name: fig:test_id31_picture_masses -#+caption: The four tested payload conditions. \subref{fig:test_id31_picture_mass_m0} without payload. \subref{fig:test_id31_picture_mass_m1} with $13\,\text{kg}$ payload. \subref{fig:test_id31_picture_mass_m2} with $26\,\text{kg}$ payload. \subref{fig:test_id31_picture_mass_m3} with $39\,\text{kg}$ payload. +#+caption: The four tested payload conditions. (\subref{fig:test_id31_picture_mass_m0}) without payload. (\subref{fig:test_id31_picture_mass_m1}) with $13\,\text{kg}$ payload. (\subref{fig:test_id31_picture_mass_m2}) with $26\,\text{kg}$ payload. (\subref{fig:test_id31_picture_mass_m3}) with $39\,\text{kg}$ payload. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_picture_mass_m0}$m=0\,\text{kg}$} @@ -6771,7 +6856,7 @@ It is interesting to note that the anti-resonances in the force sensor plant are #+end_figure #+name: fig:test_id31_comp_simscape_diag_masses -#+caption: Comparison of the diagonal elements (i.e. "direct" terms) of the measured FRF matrix and the dynamics identified from the multi-body model. Both for the dynamics from $u$ to $\epsilon\mathcal{L}$ \subref{fig:test_id31_comp_simscape_int_diag_masses} and from $u$ to $V_s$ \subref{fig:test_id31_comp_simscape_iff_diag_masses} +#+caption: Comparison of the diagonal elements (i.e. "direct" terms) of the measured FRF matrix and the dynamics identified from the multi-body model. Both for the dynamics from $u$ to $\epsilon\mathcal{L}$ (\subref{fig:test_id31_comp_simscape_int_diag_masses}) and from $u$ to $V_s$ (\subref{fig:test_id31_comp_simscape_iff_diag_masses}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_comp_simscape_int_diag_masses}from $u$ to $\epsilon\mathcal{L}$} @@ -6793,14 +6878,14 @@ It is interesting to note that the anti-resonances in the force sensor plant are To verify that all the kinematics in Figure ref:fig:test_id31_block_schematic_plant are correct and to check whether the system dynamics is affected by Spindle rotation of not, three identification experiments were performed: no spindle rotation, spindle rotation at $36\,\text{deg}/s$ and at $180\,\text{deg}/s$. -The comparison of the obtained dynamics from command signal $u$ to estimated strut error $\epsilon\mathcal{L}$ is done in Figure ref:fig:test_id31_effect_rotation. +The obtained dynamics from command signal $u$ to estimated strut error $\epsilon\mathcal{L}$ are displayed in Figure ref:fig:test_id31_effect_rotation. Both direct terms (Figure ref:fig:test_id31_effect_rotation_direct) and coupling terms (Figure ref:fig:test_id31_effect_rotation_coupling) are unaffected by the rotation. -The same can be observed for the dynamics from the command signal to the encoders and to the force sensors. -This confirms that the rotation has no significant effect on the plant dynamics. +The same can be observed for the dynamics from command signal to encoders and to force sensors. +This confirms that spindle's rotation has no significant effect on plant dynamics. This also indicates that the metrology kinematics is correct and is working in real time. #+name: fig:test_id31_effect_rotation -#+caption: Effect of the spindle rotation on the plant dynamics from $u$ to $\epsilon\mathcal{L}$. Three rotational velocities are tested ($0\,\text{deg}/s$, $36\,\text{deg}/s$ and $180\,\text{deg}/s$). Both direct terms \subref{fig:test_id31_effect_rotation_direct} and coupling terms \subref{fig:test_id31_effect_rotation_coupling} are displayed. +#+caption: Effect of the spindle rotation on the plant dynamics from $u$ to $\epsilon\mathcal{L}$. Three rotational velocities are tested ($0\,\text{deg}/s$, $36\,\text{deg}/s$ and $180\,\text{deg}/s$). Both direct terms (\subref{fig:test_id31_effect_rotation_direct}) and coupling terms (\subref{fig:test_id31_effect_rotation_coupling}) are displayed. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_effect_rotation_direct}Direct terms} @@ -6822,18 +6907,16 @@ This also indicates that the metrology kinematics is correct and is working in r :UNNUMBERED: t :END: -The identified frequency response functions from command signals $\bm{u}$ to the force sensors $\bm{V}_s$ and to the estimated strut errors $\bm{\epsilon\mathcal{L}}$ are well matching the developed multi-body model. -Effect of payload mass is shown to be well predicted by the model, which can be useful if robust model based control is to be used. -The spindle rotation has no visible effect on the measured dynamics, indicating that controllers should be robust to the spindle rotation. +The identified frequency response functions from command signals $\bm{u}$ to the force sensors $\bm{V}_s$ and to the estimated strut errors $\bm{\epsilon\mathcal{L}}$ are well matching the dynamics of the developed multi-body model. +The effect of payload mass is shown to be well predicted by the model, which can be useful if robust model based control is to be used. +The spindle rotation had no visible effect on the measured dynamics, indicating that controllers should be robust against spindle rotation. *** Decentralized Integral Force Feedback <> **** Introduction :ignore: -The HAC-LAC strategy that was previously developed and validated using the multi-body model is now experimentally implemented. - In this section, the low authority control part is first validated. -It consisted of a decentralized Integral Force Feedback controller $\bm{K}_{\text{IFF}}$, with all the diagonal terms being equal eqref:eq:test_id31_Kiff. +It consists of a decentralized Integral Force Feedback controller $\bm{K}_{\text{IFF}}$, with all the diagonal terms being equal eqref:eq:test_id31_Kiff. \begin{equation}\label{eq:test_id31_iff_diagonal} \bm{K}_{\text{IFF}} = K_{\text{IFF}} \cdot \bm{I}_6 = \begin{bmatrix} @@ -6843,22 +6926,49 @@ K_{\text{IFF}} & & 0 \\ \end{bmatrix} \end{equation} -And it is implemented as shown in the block diagram of Figure ref:fig:test_id31_iff_block_diagram. +The decentralized Integral Force Feedback is implemented as shown in the block diagram of Figure ref:fig:test_id31_iff_block_diagram. + +#+begin_src latex :file test_id31_iff_schematic.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.6 of P] (Klac) {$\bm{K}_\text{IFF}$}; + \node[addb, left= of input] (addF) {}; + + % Connections and labels + \draw[->] (outputL) -- ++(0.6, 0) coordinate(eastlac) |- (Klac.east); + \node[above right] at (outputL){$\bm{V}_s$}; + \draw[->] (Klac.west) -| (addF.north); + \draw[->] (addF.east) -- (input) node[above left]{$\bm{u}$}; + + \draw[->] (outputH) -- ++(1.6, 0) node[above left]{$\bm{\epsilon\mathcal{L}}$}; + \draw[<-] (addF.west) -- ++(-1.0, 0) node[above right]{$\bm{u^{\prime}}$}; + + \begin{scope}[on background layer] + \node[fit={(Klac.north-|eastlac) (addF.west|-P.south)}, fill=black!20!white, draw, dashed, inner sep=10pt] (Pi) {}; + \node[anchor={north west}] at (Pi.north west){$\text{Damped Plant}$}; + \end{scope} +\end{tikzpicture} +#+end_src #+name: fig:test_id31_iff_block_diagram -#+caption: Block diagram of the implemented decentralized IFF controller. The controller $\bm{K}_{\text{IFF}}$ is a diagonal controller with the same elements on every diagonal term $K_{\text{IFF}}$. +#+caption: Block diagram of the implemented decentralized IFF controller. The controller $\bm{K}_{\text{IFF}}$ is a diagonal controller with the same elements for every diagonal term $K_{\text{IFF}}$. #+RESULTS: [[file:figs/test_id31_iff_schematic.png]] **** IFF Plant <> -As the multi-body model is going to be used to evaluate the stability of the IFF controller and to optimize the achievable damping, it is first checked whether this model accurately represents the system dynamics. +As the multi-body model is used to evaluate the stability of the IFF controller and to optimize the achievable damping, it is first checked whether this model accurately represents the system dynamics. In the previous section (Figure ref:fig:test_id31_comp_simscape_iff_diag_masses), it was shown that the model well captures the dynamics from each actuator to its collocated force sensor, and that for all considered payloads. -Nevertheless, it is also important to well model the coupling in the system. -To very that, instead of comparing the 36 elements of the $6 \times 6$ frequency response matrix from $\bm{u}$ to $\bm{V_s}$, only 6 elements are compared in Figure ref:fig:test_id31_comp_simscape_Vs. -Similar results are obtained for all other 30 elements and for the different tested payload conditions. +Nevertheless, it is also important to model accurately the coupling in the system. +To verify that, instead of comparing the 36 elements of the $6 \times 6$ frequency response matrix from $\bm{u}$ to $\bm{V_s}$, only 6 elements are compared in Figure ref:fig:test_id31_comp_simscape_Vs. +Similar results were obtained for all other 30 elements and for the different payload conditions. This confirms that the multi-body model can be used to tune the IFF controller. #+name: fig:test_id31_comp_simscape_Vs @@ -6869,19 +6979,19 @@ This confirms that the multi-body model can be used to tune the IFF controller. **** IFF Controller <> -A decentralized IFF controller was designed such that it adds damping to the suspension modes of the nano-hexapod for all considered payloads. -The frequency of the suspension modes are ranging from $\approx 30\,\text{Hz}$ to $\approx 250\,\text{Hz}$ (Figure ref:fig:test_id31_comp_simscape_iff_diag_masses), and therefore the IFF controller should provide integral action in this frequency range. -A second order high pass filter (cut-off frequency of $10\,\text{Hz}$) was added to limit the low frequency gain eqref:eq:test_id31_Kiff. +A decentralized IFF controller was designed to add damping to the suspension modes of the nano-hexapod for all considered payloads. +The frequency of the suspension modes are ranging from $\approx 30\,\text{Hz}$ to $\approx 250\,\text{Hz}$ (Figure ref:fig:test_id31_comp_simscape_iff_diag_masses), and therefore, the IFF controller should provide integral action in this frequency range. +A second-order high-pass filter (cut-off frequency of $10\,\text{Hz}$) was added to limit the low frequency gain eqref:eq:test_id31_Kiff. \begin{equation}\label{eq:test_id31_Kiff} K_{\text{IFF}} = g_0 \cdot \underbrace{\frac{1}{s}}_{\text{int}} \cdot \underbrace{\frac{s^2/\omega_z^2}{s^2/\omega_z^2 + 2\xi_z s /\omega_z + 1}}_{\text{2nd order LPF}},\quad \left(g_0 = -100,\ \omega_z = 2\pi10\,\text{rad/s},\ \xi_z = 0.7\right) \end{equation} The bode plot of the decentralized IFF controller is shown in Figure ref:fig:test_id31_Kiff_bode_plot and the "decentralized loop-gains" for all considered payload masses are shown in Figure ref:fig:test_id31_Kiff_loop_gain. -It can be seen that the loop-gain is larger than $1$ around suspension modes indicating that some damping should be added to the suspension modes. +It can be seen that the loop-gain is larger than $1$ around the suspension modes, which indicates that some damping should be added to the suspension modes. #+name: fig:test_id31_Kiff -#+caption: Bode plot of the decentralized IFF controller \subref{fig:test_id31_Kiff_bode_plot}. The decentralized controller $K_{\text{IFF}}$ multiplied by the identified dynamics from $u_1$ to $V_{s1}$ for all payloads are shown in \subref{fig:test_id31_Kiff_loop_gain} +#+caption: Bode plot of the decentralized IFF controller (\subref{fig:test_id31_Kiff_bode_plot}). The decentralized controller $K_{\text{IFF}}$ multiplied by the identified dynamics from $u_1$ to $V_{s1}$ for all payloads are shown in (\subref{fig:test_id31_Kiff_loop_gain}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_Kiff_bode_plot}Bode plot of $K_{\text{IFF}}$} @@ -6898,15 +7008,15 @@ It can be seen that the loop-gain is larger than $1$ around suspension modes ind #+end_subfigure #+end_figure -To estimate the added damping, a root-locus plot is computed using the multi-body model (Figure ref:fig:test_id31_iff_root_locus). +To estimate the added damping, a root-locus plot was computed using the multi-body model (Figure ref:fig:test_id31_iff_root_locus). It can be seen that for all considered payloads, the poles are bounded to the "left-half plane" indicating that the decentralized IFF is robust. -The closed-loop poles for the chosen value of the gain are displayed by black crosses. +The closed-loop poles for the chosen gain value are represented by black crosses. It can be seen that while damping can be added for all payloads (as compared to the open-loop case), the optimal value of the gain is different for each payload. -For low payload masses, a higher value of the IFF controller gain could lead to better damping. -However, in this study, it was chosen to implement a fix (i.e. non-adaptive) decentralized IFF controller. +For low payload masses, a higher IFF controller gain can lead to better damping. +However, in this study, it was chosen to implement a "fixed" (i.e. non-adaptive) decentralized IFF controller. #+name: fig:test_id31_iff_root_locus -#+caption: Root Locus plots for the designed decentralized IFF controller and using the multy-body model. Black crosses indicate the closed-loop poles for the choosen value of the gain. +#+caption: Root Locus plots for the designed decentralized IFF controller, computed using the multy-body model. Black crosses indicate the closed-loop poles for the choosen value of the gain. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_iff_root_locus_m0}$m = 0\,\text{kg}$} @@ -6938,15 +7048,15 @@ However, in this study, it was chosen to implement a fix (i.e. non-adaptive) dec **** Damped Plant <> -As the model is accurately modelling the system dynamics, it can be used to estimate the damped plant, i.e. the transfer functions from $\bm{u}^\prime$ to $\bm{\mathcal{L}}$. +As the model accurately represents the system dynamics, it can be used to estimate the damped plant, i.e. the transfer functions from $\bm{u}^\prime$ to $\bm{\mathcal{L}}$. The obtained damped plants are compared to the open-loop plants in Figure ref:fig:test_id31_comp_ol_iff_plant_model. -The peak amplitudes corresponding to the suspension modes are approximately reduced by a factor $10$ for all considered payloads, showing the effectiveness of the decentralized IFF control strategy. +The peak amplitudes corresponding to the suspension modes were approximately reduced by a factor $10$ for all considered payloads, indicating the effectiveness of the decentralized IFF control strategy. -In order to experimentally validate the Decentralized IFF controller, it was implemented and the damped plants (i.e. the transfer function from $\bm{u}^\prime$ to $\bm{\epsilon\mathcal{L}}$) were identified for all payload conditions. +To experimentally validate the Decentralized IFF controller, it was implemented and the damped plants (i.e. the transfer function from $\bm{u}^\prime$ to $\bm{\epsilon\mathcal{L}}$) were identified for all payload conditions. The obtained frequency response functions are compared with the model in Figure ref:fig:test_id31_hac_plant_effect_mass verifying the good correlation between the predicted damped plant using the multi-body model and the experimental results. #+name: fig:test_id31_hac_plant_effect_mass_comp_model -#+caption: Comparison of the open-loop plants and the damped plant with Decentralized IFF, estimated from the multi-body model \subref{fig:test_id31_comp_ol_iff_plant_model}. Comparison of the measured damped plants and modeled plants for all considered payloads \subref{fig:test_id31_hac_plant_effect_mass}. Only "direct" terms ($\epsilon\mathcal{L}_i/u_i^\prime$) are displayed for simplificty +#+caption: Comparison of the open-loop plants and the damped plant with Decentralized IFF, estimated from the multi-body model (\subref{fig:test_id31_comp_ol_iff_plant_model}). Comparison of measured damped and modeled plants for all considered payloads (\subref{fig:test_id31_hac_plant_effect_mass}). Only "direct" terms ($\epsilon\mathcal{L}_i/u_i^\prime$) are displayed for simplificty #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_comp_ol_iff_plant_model}Effect of IFF on the plant} @@ -6968,17 +7078,17 @@ The obtained frequency response functions are compared with the model in Figure :UNNUMBERED: t :END: -The implementation of a decentralized Integral Force Feedback controller has been successfully demonstrated. +The implementation of a decentralized Integral Force Feedback controller was successfully demonstrated. Using the multi-body model, the controller was designed and optimized to ensure stability across all payload conditions while providing significant damping of suspension modes. -The experimental results validated the model predictions, showing a reduction of peak amplitudes by approximately a factor of 10 across the full payload range (0-39 kg). -While higher gains could potentially achieve better damping performance for lighter payloads, the chosen fixed-gain configuration represents a robust compromise that maintains stability and performance across all operating conditions. +The experimental results validated the model predictions, showing a reduction in peak amplitudes by approximately a factor of 10 across the full payload range (0-39 kg). +Although higher gains could achieve better damping performance for lighter payloads, the chosen fixed-gain configuration represents a robust compromise that maintains stability and performance under all operating conditions. The good correlation between the modeled and measured damped plants confirms the effectiveness of using the multi-body model for both controller design and performance prediction. *** High Authority Control in the frame of the struts <> **** Introduction :ignore: -In this section, a High-Authority-Controller is developed to actively stabilize the sample's position. +In this section, a High-Authority-Controller is developed to actively stabilize the sample position. The corresponding control architecture is shown in Figure ref:fig:test_id31_iff_hac_schematic. As the diagonal terms of the damped plants were found to be all equal (thanks to the system's symmetry and manufacturing and mounting uniformity, see Figure ref:fig:test_id31_hac_plant_effect_mass), a diagonal high authority controller $\bm{K}_{\text{HAC}}$ is implemented with all diagonal terms being equal eqref:eq:eq:test_id31_hac_diagonal. @@ -6991,6 +7101,37 @@ K_{\text{HAC}} & & 0 \\ \end{bmatrix} \end{equation} +#+begin_src latex :file test_id31_iff_hac_schematic.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.6 of P] (Klac) {$\bm{K}_\text{IFF}$}; + \node[addb, left= of input] (addF) {}; + + \node[block, left= of addF] (Khac) {$\bm{K}_\text{HAC}$}; + + % Connections and labels + \draw[->] (outputL) -- ++(0.6, 0) coordinate(eastlac) |- (Klac.east); + \node[above right] at (outputL){$\bm{V}_s$}; + \draw[->] (Klac.west) -| (addF.north); + \draw[->] (addF.east) -- (input) node[above left]{$\bm{u}$}; + + \draw[->] (outputH) -- ++(1.6, 0) node[above left]{$\bm{\epsilon\mathcal{L}}$}; + \draw[->] (Khac.east) node[above right]{$\bm{u}^{\prime}$} -- (addF.west); + + \draw[->] ($(outputH) + (1.2, 0)$)node[branch]{} |- ($(Khac.west)+(-0.6, -1.6)$) |- (Khac.west); + + \begin{scope}[on background layer] + \node[fit={(Klac.north-|eastlac) (addF.west|-P.south)}, fill=black!20!white, draw, dashed, inner sep=10pt] (Pi) {}; + \node[anchor={north west}] at (Pi.north west){$\text{Damped Plant}$}; + \end{scope} +\end{tikzpicture} +#+end_src + #+name: fig:test_id31_iff_hac_schematic #+caption: Block diagram of the implemented HAC-IFF controllers. The controller $\bm{K}_{\text{HAC}}$ is a diagonal controller with the same elements on every diagonal term $K_{\text{HAC}}$. #+RESULTS: @@ -6999,18 +7140,18 @@ K_{\text{HAC}} & & 0 \\ **** Damped Plant <> -To verify whether the multi body model accurately represents the measured damped dynamics, both direct terms and coupling terms corresponding to the first actuator are compared in Figure ref:fig:test_id31_comp_simscape_hac. -Considering the complexity of the system's dynamics, the model can be considered to well represent the system's dynamics, and can therefore be used to tune the feedback controller and evaluate its performances. +To verify whether the multi-body model accurately represents the measured damped dynamics, both the direct terms and coupling terms corresponding to the first actuator are compared in Figure ref:fig:test_id31_comp_simscape_hac. +Considering the complexity of the system's dynamics, the model can be considered to represent the system's dynamics with good accuracy, and can therefore be used to tune the feedback controller and evaluate its performance. #+name: fig:test_id31_comp_simscape_hac #+caption: Comparison of the measured (in blue) and modeled (in red) frequency transfer functions from the first control signal ($u_1^\prime$) of the damped plant to the estimated errors ($\epsilon_{\mathcal{L}_i}$) in the frame of the six struts by the external metrology #+RESULTS: [[file:figs/test_id31_comp_simscape_hac.png]] -The challenge here is to tune an high authority controller such that it is robust to the change of dynamics due to different payloads being used. -Doing that without using the HAC-LAC strategy would require to design a controller which gives good performances for all the undamped dynamics (blue curves in Figure ref:fig:test_id31_comp_all_undamped_damped_plants), which is a very complex control problem. -With the HAC-LAC strategy, the designed controller instead has to be be robust to all the damped dynamics (red curves in Figure ref:fig:test_id31_comp_all_undamped_damped_plants), which is easier from a control perspective. -This is one of the key benefit of using the HAC-LAC strategy. +The challenge here is to tune a high authority controller such that it is robust to the change in dynamics due to different payloads being used. +Without using the HAC-LAC strategy, it would be necessary to design a controller that provides good performance for all undamped dynamics (blue curves in Figure ref:fig:test_id31_comp_all_undamped_damped_plants), which is a very complex control problem. +With the HAC-LAC strategy, the designed controller must be robust to all the damped dynamics (red curves in Figure ref:fig:test_id31_comp_all_undamped_damped_plants), which is easier from a control perspective. +This is one of the key benefits of using the HAC-LAC strategy. #+name: fig:test_id31_comp_all_undamped_damped_plants #+caption: Comparison of the (six) direct terms for all (four) payload conditions in the undamped case (in blue) and the damped case (i.e. with the decentralized IFF being implemented, in red). @@ -7020,7 +7161,7 @@ This is one of the key benefit of using the HAC-LAC strategy. **** Interaction Analysis <> -As the control strategy here is to apply a diagonal control in the frame of the struts, it is important to determine the frequency at which multivariable effects become significant, as this represents a critical limitation of the control approach. +The control strategy here is to apply a diagonal control in the frame of the struts; thus, it is important to determine the frequency at which the multivariable effects become significant, as this represents a critical limitation of the control approach. To conduct this interaction analysis, the acrfull:rga $\bm{\Lambda_G}$ is first computed using eqref:eq:test_id31_rga for the plant dynamics identified with the multiple payload masses. \begin{equation}\label{eq:test_id31_rga} @@ -7034,10 +7175,10 @@ Then, acrshort:rga numbers are computed using eqref:eq:test_id31_rga_number and \end{equation} The obtained acrshort:rga numbers are compared in Figure ref:fig:test_id31_hac_rga_number. -The results indicates that higher payload masses increase the coupling when implementing control in the strut reference frame (i.e., decentralized approach). -This indicates that it is progressively more challenging to achieve high bandwidth performance as the payload mass increases. +The results indicate that higher payload masses increase the coupling when implementing control in the strut reference frame (i.e., decentralized approach). +This indicates that achieving high bandwidth feedback control is increasingly challenging as the payload mass increases. This behavior can be attributed to the fundamental approach of implementing control in the frame of the struts. -Indeed, above the suspension modes of the nano-hexapod, the induced motion by the piezoelectric actuators is no longer dictated by the kinematics but rather by the inertia of the different parts. +Above the suspension modes of the nano-hexapod, the motion induced by the piezoelectric actuators is no longer dictated by kinematics but rather by the inertia of the different parts. This design choice, while beneficial for system simplicity, introduces inherent limitations in the system's ability to handle larger masses at high frequency. #+name: fig:test_id31_hac_rga_number @@ -7048,9 +7189,9 @@ This design choice, while beneficial for system simplicity, introduces inherent **** Robust Controller Design <> -A diagonal controller was designed to be robust to change of payloads, which means that every damped plants shown in Figure ref:fig:test_id31_comp_all_undamped_damped_plants should be considered during the controller design. -For this controller design, a crossover frequency of $5\,\text{Hz}$ was chosen to limit multivariable effects as explain in Section ref:sec:test_id31_hac_interaction_analysis. -One integrator is added to increase the low frequency gain, a lead is added around $5\,\text{Hz}$ to increase the stability margins and a first order low pass filter with a cut-off frequency of $30\,\text{Hz}$ is added to improve the robustness to dynamical uncertainty at high frequency. +A diagonal controller was designed to be robust against changes in payload mass, which means that every damped plant shown in Figure ref:fig:test_id31_comp_all_undamped_damped_plants must be considered during the controller design. +For this controller design, a crossover frequency of $5\,\text{Hz}$ was chosen to limit the multivariable effects, as explain in Section ref:sec:test_id31_hac_interaction_analysis. +One integrator is added to increase the low-frequency gain, a lead is added around $5\,\text{Hz}$ to increase the stability margins and a first-order low-pass filter with a cut-off frequency of $30\,\text{Hz}$ is added to improve the robustness to dynamical uncertainty at high frequency. The controller transfer function is shown in eqref:eq:test_id31_robust_hac. \begin{equation}\label{eq:test_id31_robust_hac} @@ -7058,11 +7199,11 @@ K_{\text{HAC}}(s) = g_0 \cdot \underbrace{\frac{\omega_c}{s}}_{\text{int}} \cdot \end{equation} The obtained "decentralized" loop-gains (i.e. the diagonal element of the controller times the diagonal terms of the plant) are shown in Figure ref:fig:test_id31_hac_loop_gain. -Closed-loop stability is verified by computing the characteristic Loci (Figure ref:fig:test_id31_hac_characteristic_loci). -However, small stability margins are observed for the highest mass, indicating that some multivariable effects are in play. +The closed-loop stability was verified by computing the characteristic Loci (Figure ref:fig:test_id31_hac_characteristic_loci). +However, small stability margins were observed for the highest mass, indicating that some multivariable effects are in play. #+name: fig:test_id31_hac_loop_gain_loci -#+caption: Robust High Authority Controller. "Decentralized loop-gains" are shown in \subref{fig:test_id31_hac_loop_gain} and characteristic loci are shown in \subref{fig:test_id31_hac_characteristic_loci} +#+caption: Robust High Authority Controller. "Decentralized loop-gains" are shown in (\subref{fig:test_id31_hac_loop_gain}) and characteristic loci are shown in (\subref{fig:test_id31_hac_characteristic_loci}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_hac_loop_gain}Loop Gains} @@ -7088,7 +7229,7 @@ An open-loop simulation and a closed-loop simulation were performed and compared The obtained closed-loop positioning accuracy was found to comply with the requirements as it succeeded to keep the point of interest on the beam (Figure ref:fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim_yz). #+name: fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim -#+caption: Position error of the sample in the XY \subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim_xy} and YZ \subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim_yz} planes during a simulation of a tomography experiment at $180\,\text{deg/s}$. No payload is placed on top of the nano-hexapod. +#+caption: Position error of the sample in the XY (\subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim_xy}) and YZ (\subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim_yz}) planes during a simulation of a tomography experiment at $180\,\text{deg/s}$. No payload is placed on top of the nano-hexapod. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim_xy}XY plane} @@ -7108,12 +7249,12 @@ The obtained closed-loop positioning accuracy was found to comply with the requi **** Robustness estimation with simulation of Tomography scans <> -To verify the robustness to the change of payload mass, four simulations of tomography experiments were performed with payloads as shown Figure ref:fig:test_id31_picture_masses (i.e. $0\,kg$, $13\,kg$, $26\,kg$ and $39\,kg$). -This time, the rotational velocity was set at $6\,\text{deg/s}$, as it is the typical rotational velocity for heavy samples. +To verify the robustness against payload mass variations, four simulations of tomography experiments were performed with payloads as shown Figure ref:fig:test_id31_picture_masses (i.e. $0\,kg$, $13\,kg$, $26\,kg$ and $39\,kg$). +The rotational velocity was set at $6\,\text{deg/s}$, which is the typical rotational velocity for heavy samples. -The closed-loop systems were stable for all payload conditions, indicating good control robustness. -However, the positioning errors are getting worse as the payload mass increases, especially in the lateral $D_y$ direction, as shown in Figure ref:fig:test_id31_hac_tomography_Wz36_simulation. -Yet it was decided that this controller will be tested experimentally, and improved if necessary. +The closed-loop systems were stable under all payload conditions, indicating good control robustness. +However, the positioning errors worsen as the payload mass increases, especially in the lateral $D_y$ direction, as shown in Figure ref:fig:test_id31_hac_tomography_Wz36_simulation. +However, it was decided that this controller should be tested experimentally and improved only if necessary. #+name: fig:test_id31_hac_tomography_Wz36_simulation #+caption: Positioning errors in the Y-Z plane during tomography experiments simulated using the multi-body model (in closed-loop) @@ -7125,43 +7266,42 @@ Yet it was decided that this controller will be tested experimentally, and impro :UNNUMBERED: t :END: -In this section, a High-Authority-Controller was developed to actively stabilize the sample's position. -The multi-body model was first validated by comparing it with measured frequency responses of the damped plant, showing good agreement for both direct terms and coupling terms. -This validation confirmed that the model could be reliably used to tune the feedback controller and evaluate its performances. +In this section, a High-Authority-Controller was developed to actively stabilize the sample position. +The multi-body model was first validated by comparing it with the measured frequency responses of the damped plant, which showed good agreement for both direct terms and coupling terms. +This validation confirmed that the model can be reliably used to tune the feedback controller and evaluate its performance. -An interaction analysis using the RGA-number was then performed, revealing that higher payload masses lead to increased coupling when implementing control in the strut reference frame. -Based on this analysis, a diagonal controller with a crossover frequency of 5 Hz was designed, incorporating an integrator, a lead compensator, and a first order low-pass filter. +An interaction analysis using the RGA-number was then performed, which revealed that higher payload masses lead to increased coupling when implementing control in the strut reference frame. +Based on this analysis, a diagonal controller with a crossover frequency of 5 Hz was designed, incorporating an integrator, a lead compensator, and a first-order low-pass filter. -Finally, simulations of tomography experiments were performed to validate the HAC-LAC architecture. -The closed-loop system remained stable for all tested payload conditions (0 to 39 kg). -With no payload at $180\,\text{deg/s}$, the NASS successfully kept the sample point of interested on the beam, which fulfills the specifications. -At $6\,\text{deg/s}$, while positioning errors increased with the payload mass (particularly in the lateral direction), the system maintained stable. +Finally, tomography experiments were simulated to validate the HAC-LAC architecture. +The closed-loop system remained stable under all tested payload conditions (0 to 39 kg). +With no payload at $180\,\text{deg/s}$, the NASS successfully maintained the sample point of interest in the beam, which fulfilled the specifications. +At $6\,\text{deg/s}$, although the positioning errors increased with the payload mass (particularly in the lateral direction), the system remained stable. These results demonstrate both the effectiveness and limitations of implementing control in the frame of the struts. *** Validation with Scientific experiments <> **** Introduction :ignore: -In this section, the goal is to evaluate the performances of the NASS and validate its use for typical scientific experiments. +In this section, the goal is to evaluate the performance of the NASS and validate its use to perform typical scientific experiments. However, the online metrology prototype (presented in Section ref:sec:test_id31_metrology) does not allow samples to be placed on top of the nano-hexapod while being illuminated by the x-ray beam. -Nevertheless, in order to fully validate the NASS, typical motion performed during scientific experiments can be mimicked, and the positioning performances can be evaluated. +Nevertheless, to fully validate the NASS, typical motions performed during scientific experiments can be mimicked, and the positioning performances can be evaluated. -Several scientific experiments are here replicated, such as: +Several scientific experiments were replicated, such as: - Tomography scans: continuous rotation of the Spindle along the vertical axis (Section ref:ssec:test_id31_scans_tomography) - Reflectivity scans: $R_y$ rotations using the tilt-stage (Section ref:ssec:test_id31_scans_reflectivity) - Vertical layer scans: $D_z$ step motion or ramp scans using the nano-hexapod (Section ref:ssec:test_id31_scans_dz) - Lateral scans: $D_y$ scans using the $T_y$ translation stage (Section ref:ssec:test_id31_scans_dy) -- Diffraction Tomography:continuous $R_z$ rotation using the Spindle and lateral $D_y$ scans performed at the same time using the translation stage. - This is the experiment with the most stringent requirements (Section ref:ssec:test_id31_scans_diffraction_tomo) +- Diffraction Tomography:continuous $R_z$ rotation using the Spindle and lateral $D_y$ scans performed at the same time using the translation stage (Section ref:ssec:test_id31_scans_diffraction_tomo) -Unless explicitly stated, all the closed-loop experiments are performed using the robust (i.e. conservative) high authority controller designed in Section ref:ssec:test_id31_iff_hac_controller. +Unless explicitly stated, all closed-loop experiments were performed using the robust (i.e. conservative) high authority controller designed in Section ref:ssec:test_id31_iff_hac_controller. -For each experiment, the obtained performances are compared to the specifications for the most depending case in which nano-focusing optics are used to focus the beam down to $200\,nm\times 100\,nm$. -In this case, the goal is to keep the sample's point of interested in the beam, and therefore the $D_y$ and $D_z$ positioning errors should be less than $200\,nm$ and $100\,nm$ peak-to-peak respectively. +For each experiment, the obtained performances are compared to the specifications for the most demanding case in which nano-focusing optics are used to focus the beam down to $200\,nm\times 100\,nm$. +In this case, the goal is to keep the sample's point of interest in the beam, and therefore the $D_y$ and $D_z$ positioning errors should be less than $200\,nm$ and $100\,nm$ peak-to-peak, respectively. The $R_y$ error should be less than $1.7\,\mu\text{rad}$ peak-to-peak. In terms of RMS errors, this corresponds to $30\,nm$ in $D_y$, $15\,nm$ in $D_z$ and $250\,\text{nrad}$ in $R_y$ (a summary of the specifications is given in Table ref:tab:test_id31_experiments_specifications). -Results obtained for all the experiments are summarized and compared to the specifications in Section ref:ssec:test_id31_scans_conclusion. +Results obtained for all experiments are summarized and compared to the specifications in Section ref:ssec:test_id31_scans_conclusion. #+name: tab:test_id31_experiments_specifications #+caption: Specifications for the Nano-Active-Stabilization-System @@ -7174,19 +7314,19 @@ Results obtained for all the experiments are summarized and compared to the spec **** Tomography Scans <> -***** Slow Tomography scans +****** Slow Tomography scans -First, tomography scans are performed with a rotational velocity of $6\,\text{deg/s}$ for all considered payload masses (shown in Figure ref:fig:test_id31_picture_masses). +First, tomography scans were performed with a rotational velocity of $6\,\text{deg/s}$ for all considered payload masses (shown in Figure ref:fig:test_id31_picture_masses). Each experimental sequence consisted of two complete spindle rotations: an initial open-loop rotation followed by a closed-loop rotation. The experimental results for the $26\,\text{kg}$ payload are presented in Figure ref:fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit. -Due to static deformation of the micro-station stages under payload loading, a significant eccentricity was observed between the point of interest and the spindle rotation axis. -To establish a theoretical lower bound for open-loop errors, an ideal scenario was assumed where the point of interest perfectly aligns with the spindle rotation axis. +Due to the static deformation of the micro-station stages under payload loading, a significant eccentricity was observed between the point of interest and the spindle rotation axis. +To establish a theoretical lower bound for open-loop errors, an ideal scenario was assumed, where the point of interest perfectly aligns with the spindle rotation axis. This idealized case was simulated by first calculating the eccentricity through circular fitting (represented by the dashed black circle in Figure ref:fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit), and then subtracting it from the measured data, as shown in Figure ref:fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit_removed. While this approach likely underestimates actual open-loop errors, as perfect alignment is practically unattainable, it enables a more balanced comparison with closed-loop performance. #+name: fig:test_id31_tomo_m2_1rpm_robust_hac_iff -#+caption: Tomography experiment with rotation velocity of $6\,\text{deg/s}$, and payload mass of 26kg. Errors in the $(x,y)$ plane are shown in \subref{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit}. The estimated eccentricity is displayed by the black dashed circle. Errors with subtracted eccentricity are shown in \subref{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit_removed}. +#+caption: Tomography experiment with a rotation velocity of $6\,\text{deg/s}$, and payload mass of 26kg. Errors in the $(x,y)$ plane are shown in (\subref{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit}). The estimated eccentricity is represented by the black dashed circle. The errors with subtracted eccentricity are shown in (\subref{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit_removed}). #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit}Errors in $(x,y)$ plane} @@ -7203,24 +7343,24 @@ While this approach likely underestimates actual open-loop errors, as perfect al #+end_subfigure #+end_figure -After eccentricity compensation for each experiment, the residual motion in the $Y-Z$ is compared against the minimum beam size, as illustrated in Figure ref:fig:test_id31_tomo_Wz36_results. -Results are indicating the NASS succeeds in keeping the sample's point of interests on the beam, except for the highest mass of $39\,\text{kg}$ for which the lateral motion is a bit too high. -These experimental findings align with the predictions from the tomography simulations presented in Section ref:ssec:test_id31_iff_hac_robustness. +The residual motion (i.e. after compensating for eccentricity) in the $Y-Z$ is compared against the minimum beam size, as illustrated in Figure ref:fig:test_id31_tomo_Wz36_results. +Results are indicating the NASS succeeds in keeping the sample's point of interest on the beam, except for the highest mass of $39\,\text{kg}$ for which the lateral motion is a bit too high. +These experimental findings are consistent with the predictions from the tomography simulations presented in Section ref:ssec:test_id31_iff_hac_robustness. #+name: fig:test_id31_tomo_Wz36_results #+caption: Measured errors in the $Y-Z$ plane during tomography experiments at $6\,\text{deg/s}$ for all considered payloads. In the open-loop case, the effect of eccentricity is removed from the data. #+RESULTS: [[file:figs/test_id31_tomo_Wz36_results.png]] -***** Fast Tomography scans +****** Fast Tomography scans A tomography experiment was then performed with the highest rotational velocity of the Spindle: $180\,\text{deg/s}$[fn:test_id31_7]. -The trajectory of the point of interest during this fast tomography scan is shown in Figure ref:fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp. -While the experimental results closely mirror the simulation results (Figure ref:fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim), the actual performance are slightly lower than predicted. -Nevertheless, even with this robust (conservative) HAC implementation, the system performance approaches the specified requirements. +The trajectory of the point of interest during the fast tomography scan is shown in Figure ref:fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp. +Although the experimental results closely match the simulation results (Figure ref:fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim), the actual performance was slightly lower than predicted. +Nevertheless, even with this robust (i.e. conservative) HAC implementation, the system performance was already close to the specified requirements. #+name: fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp -#+caption: Experimental results of a tomography experiment at 180 deg/s without payload. Position error of the sample is shown in the XY \subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp_xy} and YZ \subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp_yz} planes. +#+caption: Experimental results of tomography experiment at 180 deg/s without payload. The position error of the sample is shown in the XY (\subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp_xy}) and YZ (\subref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp_yz}) planes. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp_xy}XY plane} @@ -7237,36 +7377,36 @@ Nevertheless, even with this robust (conservative) HAC implementation, the syste #+end_subfigure #+end_figure -***** Cumulative Amplitude Spectra +****** Cumulative Amplitude Spectra -A comparative analysis was conducted using three tomography scans at $180,\text{deg/s}$ to evaluate the effectiveness of the HAC-LAC strategy in reducing positioning errors. +A comparative analysis was conducted using three tomography scans at $180\,\text{deg/s}$ to evaluate the effectiveness of the HAC-LAC strategy in reducing positioning errors. The scans were performed under three conditions: open-loop, with decentralized IFF control, and with the complete HAC-LAC strategy. -For these specific measurements, an enhanced high authority controller was optimized for low payload masses to meet performance requirements. +For these specific measurements, an enhanced high authority controller was optimized for low payload masses to meet the performance requirements. Figure ref:fig:test_id31_hac_cas_cl presents the cumulative amplitude spectra of the position errors for all three cases. The results reveal two distinct control contributions: the decentralized IFF effectively attenuates vibrations near the nano-hexapod suspension modes (an achievement not possible with HAC alone), while the high authority controller suppresses low-frequency vibrations primarily arising from Spindle guiding errors. Notably, the spectral patterns in Figure ref:fig:test_id31_hac_cas_cl closely resemble the cumulative amplitude spectra computed in the project's early stages. -This experiment also illustrates that when needed, performance can be enhanced by designing controllers for specific experimental conditions, rather than relying solely on robust controllers that accommodate all payload ranges. +This experiment also illustrates that when needed, performance can be enhanced by designing controllers for specific experimental conditions rather than relying solely on robust controllers that can accommodate all payload ranges. #+name: fig:test_id31_hac_cas_cl -#+caption: Cumulative Amplitude Spectrum for tomography experiments at $180\,\text{deg}/s$. Open-Loop case, IFF, and HAC-LAC are compared. Specifications are indicated by black dashed lines. RSM values are indicated in the legend. +#+caption: Cumulative Amplitude Spectrum for tomography experiments at $180\,\text{deg}/s$. Open-Loop case, IFF, and HAC-LAC are compared. Specifications are indicated by black dashed lines. The RMS values are indicated in the legend. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_hac_cas_cl_dy} $D_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_hac_cas_cl_dy.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_hac_cas_cl_dz} $D_z$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_hac_cas_cl_dz.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_hac_cas_cl_ry} $R_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_hac_cas_cl_ry.png]] @@ -7277,27 +7417,27 @@ This experiment also illustrates that when needed, performance can be enhanced b <> X-ray reflectivity measurements involve scanning thin structures, particularly solid/liquid interfaces, through the beam by varying the $R_y$ angle. -In this experiment, a $R_y$ scan was executed at a rotational velocity of $100,\mu rad/s$, and the closed-loop positioning errors were monitored (Figure ref:fig:test_id31_reflectivity). -The results confirm that the NASS successfully maintains the point of interest within the specified beam parameters throughout the scanning process. +In this experiment, a $R_y$ scan was executed at a rotational velocity of $100\,\mu rad/s$, and the closed-loop positioning errors were monitored (Figure ref:fig:test_id31_reflectivity). +The results confirmed that the NASS successfully maintained the point of interest within the specified beam parameters throughout the scanning process. #+name: fig:test_id31_reflectivity #+caption: Reflectivity scan ($R_y$) with a rotational velocity of $100\,\mu \text{rad}/s$. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_reflectivity_dy}$D_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_reflectivity_dy.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_reflectivity_dz}$D_z$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_reflectivity_dz.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_reflectivity_ry}$R_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_reflectivity_ry.png]] @@ -7306,97 +7446,99 @@ The results confirm that the NASS successfully maintains the point of interest w **** Dirty Layer Scans <> -***** Introduction :ignore: +****** Introduction :ignore: In some cases, samples are composed of several atomic "layers" that are first aligned in the horizontal plane through $R_x$ and $R_y$ positioning, followed by vertical scanning with precise $D_z$ motion. These vertical scans can be executed either continuously or in a step-by-step manner. -***** Step by Step $D_z$ motion +****** Step by Step $D_z$ motion -The vertical step motion is performed exclusively with the nano-hexapod. -Testing was conducted across step sizes ranging from $10,nm$ to $1,\mu m$, with results presented in Figure ref:fig:test_id31_dz_mim_steps. The system successfully resolves 10nm steps when detectors integrate over a 50ms period (illustrated by the red curve in Figure ref:fig:test_id31_dz_mim_10nm_steps), which is compatible with many experimental requirements. +The vertical step motion was performed exclusively with the nano-hexapod. +Testing was conducted across step sizes ranging from $10\,nm$ to $1\,\mu m$. +Results are presented in Figure ref:fig:test_id31_dz_mim_steps. +The system successfully resolved 10nm steps (red curve in Figure ref:fig:test_id31_dz_mim_10nm_steps) if a 50ms integration time is considered for the detectors, which is compatible with many experimental requirements. -In step-by-step scanning procedures, settling time is a critical parameter as it significantly impacts the total experiment duration. -The system achieves a response time of approximately $70,ms$ to reach the target position (within $\pm 20,nm$), as demonstrated by the $1,\mu m$ step response in Figure ref:fig:test_id31_dz_mim_1000nm_steps. -This settling duration typically decreases for smaller step sizes. +In step-by-step scanning procedures, the settling time is a critical parameter as it significantly affects the total experiment duration. +The system achieved a response time of approximately $70\,ms$ to reach the target position (within $\pm 20\,nm$), as demonstrated by the $1\,\mu m$ step response in Figure ref:fig:test_id31_dz_mim_1000nm_steps. +The settling duration typically decreases for smaller step sizes. #+name: fig:test_id31_dz_mim_steps -#+caption: Vertical steps performed with the nano-hexapod. 10nm steps are shown in \subref{fig:test_id31_dz_mim_10nm_steps} with the low pass filtered data corresponding to an integration time of $50\,ms$. 100nm steps are shown in \subref{fig:test_id31_dz_mim_100nm_steps}. The response time to reach a peak to peak error of $\pm 20\,nm$ is $\approx 70\,ms$ as shown in \subref{fig:test_id31_dz_mim_1000nm_steps} for a $1\,\mu m$ step. +#+caption: Vertical steps performed with the nano-hexapod. 10nm steps are shown in (\subref{fig:test_id31_dz_mim_10nm_steps}) with the low-pass filtered data corresponding to an integration time of $50\,ms$. 100nm steps are shown in (\subref{fig:test_id31_dz_mim_100nm_steps}). The response time to reach a peak-to-peak error of $\pm 20\,nm$ is $\approx 70\,ms$ as shown in (\subref{fig:test_id31_dz_mim_1000nm_steps}) for a $1\,\mu m$ step. #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_mim_10nm_steps}10nm steps} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_mim_10nm_steps.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_mim_100nm_steps}100nm steps} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_mim_100nm_steps.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_mim_1000nm_steps}$1\,\mu$m step} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_mim_1000nm_steps.png]] #+end_subfigure #+end_figure -***** Continuous $D_z$ motion: Dirty Layer Scans +****** Continuous $D_z$ motion: Dirty Layer Scans For these and subsequent experiments, the NASS performs "ramp scans" (constant velocity scans). To eliminate tracking errors, the feedback controller incorporates two integrators, compensating for the plant's lack of integral action at low frequencies. -Initial testing at $10,\mu m/s$ demonstrates positioning errors well within specifications (indicated by dashed lines in Figure ref:fig:test_id31_dz_scan_10ums). +Initial testing at $10\,\mu m/s$ demonstrated positioning errors well within specifications (indicated by dashed lines in Figure ref:fig:test_id31_dz_scan_10ums). #+name: fig:test_id31_dz_scan_10ums -#+caption: $D_z$ scan with a velocity of $10\,\mu m/s$. $D_z$ setpoint, measured position and error are shown in \subref{fig:test_id31_dz_scan_10ums_dz}. Errors in $D_y$ and $R_y$ are respectively shown in \subref{fig:test_id31_dz_scan_10ums_dy} and \subref{fig:test_id31_dz_scan_10ums_ry} +#+caption: $D_z$ scan at a velocity of $10\,\mu m/s$. $D_z$ setpoint, measured position and error are shown in (\subref{fig:test_id31_dz_scan_10ums_dz}). Errors in $D_y$ and $R_y$ are respectively shown in (\subref{fig:test_id31_dz_scan_10ums_dy}) and (\subref{fig:test_id31_dz_scan_10ums_ry}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_scan_10ums_dy}$D_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_scan_10ums_dy.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_scan_10ums_dz}$D_z$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_scan_10ums_dz.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_scan_10ums_ry}$R_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_scan_10ums_ry.png]] #+end_subfigure #+end_figure -A subsequent scan at $100,\mu m/s$ - the maximum velocity for high-precision $D_z$ scans[fn:test_id31_8] - maintains positioning errors within specifications during the constant velocity phase, with deviations occurring only during acceleration and deceleration phases (Figure ref:fig:test_id31_dz_scan_100ums). -Since detectors typically operate only during the constant velocity phase, these transient deviations do not compromise measurement quality. -Yet, performance during acceleration phases could potentially be enhanced through the implementation of feedforward control. +A subsequent scan at $100\,\mu m/s$ - the maximum velocity for high-precision $D_z$ scans[fn:test_id31_8] - maintains positioning errors within specifications during the constant velocity phase, with deviations occurring only during acceleration and deceleration phases (Figure ref:fig:test_id31_dz_scan_100ums). +Since detectors typically operate only during the constant velocity phase, these transient deviations do not compromise the measurement quality. +However, performance during acceleration phases could be enhanced through the implementation of feedforward control. #+name: fig:test_id31_dz_scan_100ums -#+caption: $D_z$ scan with a velocity of $100\,\mu m/s$. $D_z$ setpoint, measured position and error are shown in \subref{fig:test_id31_dz_scan_100ums_dz}. Errors in $D_y$ and $R_y$ are respectively shown in \subref{fig:test_id31_dz_scan_100ums_dy} and \subref{fig:test_id31_dz_scan_100ums_ry} +#+caption: $D_z$ scan at a velocity of $100\,\mu m/s$. $D_z$ setpoint, measured position and error are shown in (\subref{fig:test_id31_dz_scan_100ums_dz}). Errors in $D_y$ and $R_y$ are respectively shown in (\subref{fig:test_id31_dz_scan_100ums_dy}) and (\subref{fig:test_id31_dz_scan_100ums_ry}) #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_scan_100ums_dy}$D_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_scan_100ums_dy.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_scan_100ums_dz}$D_z$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_scan_100ums_dz.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dz_scan_100ums_ry}$R_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dz_scan_100ums_ry.png]] @@ -7405,78 +7547,78 @@ Yet, performance during acceleration phases could potentially be enhanced throug **** Lateral Scans <> -***** Introduction :ignore: +****** Introduction :ignore: Lateral scans are executed using the $T_y$ stage. The stepper motor controller[fn:test_id31_5] generates a setpoint that is transmitted to the Speedgoat. Within the Speedgoat, the system computes the positioning error by comparing the measured $D_y$ sample position against the received setpoint, and the Nano-Hexapod compensates for positioning errors introduced during $T_y$ stage scanning. The scanning range is constrained $\pm 100\,\mu m$ due to the limited acceptance of the metrology system. -***** Slow scan +****** Slow scan -Initial testing utilized a scanning velocity of $10,\mu m/s$, which is typical for these experiments. +Initial testing utilized a scanning velocity of $10\,\mu m/s$, which is typical for these experiments. Figure ref:fig:test_id31_dy_10ums compares the positioning errors between open-loop (without NASS) and closed-loop operation. In the scanning direction, open-loop measurements reveal periodic errors (Figure ref:fig:test_id31_dy_10ums_dy) attributable to the $T_y$ stage's stepper motor. -These micro-stepping errors, inherent to stepper motor operation, occur 200 times per motor rotation with approximately $1\,\text{mrad}$ angular error amplitude. +These micro-stepping errors, which are inherent to stepper motor operation, occur 200 times per motor rotation with approximately $1\,\text{mrad}$ angular error amplitude. Given the $T_y$ stage's lead screw pitch of $2\,mm$, these errors manifest as $10\,\mu m$ periodic oscillations with $\approx 300\,nm$ amplitude, which can indeed be seen in the open-loop measurements (Figure ref:fig:test_id31_dy_10ums_dy). -In the vertical direction (Figure ref:fig:test_id31_dy_10ums_dz), open-loop errors likely stem from metrology measurement error due to the fact that the top interferometer points at a spherical target surface (see Figure ref:fig:test_id31_xy_map_sphere). -Under closed-loop control, positioning errors remain within specifications across all directions. +In the vertical direction (Figure ref:fig:test_id31_dy_10ums_dz), open-loop errors likely stem from metrology measurement error because the top interferometer points at a spherical target surface (see Figure ref:fig:test_id31_xy_map_sphere). +Under closed-loop control, positioning errors remain within specifications in all directions. #+name: fig:test_id31_dy_10ums -#+caption: Open-Loop (in blue) and Closed-loop (i.e. using the NASS, in red) during a $10\,\mu m/s$ scan with the $T_y$ stage. Errors in $D_y$ is shown in \subref{fig:test_id31_dy_10ums_dy}. +#+caption: Open-Loop (in blue) and Closed-loop (i.e. using the NASS, in red) during a $10\,\mu m/s$ scan with the $T_y$ stage. Errors in $D_y$ is shown in (\subref{fig:test_id31_dy_10ums_dy}). #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dy_10ums_dy} $D_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dy_10ums_dy.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dy_10ums_dz} $D_z$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dy_10ums_dz.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dy_10ums_ry} $R_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dy_10ums_ry.png]] #+end_subfigure #+end_figure -***** Fast Scan +****** Fast Scan -System performance was evaluated at an increased scanning velocity of $100\,\mu m/s$, with results presented in Figure ref:fig:test_id31_dy_100ums. +The system performance was evaluated at an increased scanning velocity of $100\,\mu m/s$, and the results are presented in Figure ref:fig:test_id31_dy_100ums. At this velocity, the micro-stepping errors generate $10\,\text{Hz}$ vibrations, which are further amplified by micro-station resonances. -These vibrations exceed the NASS feedback controller bandwidth, resulting in limited attenuation under closed-loop control. +These vibrations exceeded the NASS feedback controller bandwidth, resulting in limited attenuation under closed-loop control. This limitation exemplifies why stepper motors are suboptimal for "long-stroke/short-stroke" systems requiring precise scanning performance [[cite:&dehaeze22_fastj_uhv]]. Two potential solutions exist for improving high-velocity scanning performance. -First, the $T_y$ stage's stepper motor could be replaced with a three-phase torque motor. +First, the $T_y$ stage's stepper motor could be replaced by a three-phase torque motor. Alternatively, since closed-loop errors in $D_z$ and $R_y$ directions remain within specifications (Figures ref:fig:test_id31_dy_100ums_dz and ref:fig:test_id31_dy_100ums_ry), detector triggering could be based on measured $D_y$ position rather than time or $T_y$ setpoint, reducing sensitivity to $D_y$ vibrations. -For applications requiring small $D_y$ scans, the nano-hexapod can be used exclusively, though with limited stroke capability. +For applications requiring small $D_y$ scans, the nano-hexapod can be used exclusively, although with limited stroke capability. #+name: fig:test_id31_dy_100ums -#+caption: Open-Loop (in blue) and Closed-loop (i.e. using the NASS, in red) during a $100\,\mu m/s$ scan with the $T_y$ stage. Errors in $D_y$ is shown in \subref{fig:test_id31_dy_100ums_dy}. +#+caption: Open-Loop (in blue) and Closed-loop (i.e. using the NASS, in red) during a $100\,\mu m/s$ scan with the $T_y$ stage. Errors in $D_y$ is shown in (\subref{fig:test_id31_dy_100ums_dy}). #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dy_100ums_dy} $D_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dy_100ums_dy.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dy_100ums_dz} $D_z$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dy_100ums_dz.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_dy_100ums_ry} $R_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_dy_100ums_ry.png]] @@ -7485,10 +7627,11 @@ For applications requiring small $D_y$ scans, the nano-hexapod can be used exclu **** Diffraction Tomography <> -In diffraction tomography experiments, the micro-station executes combined motions: continuous rotation around the $R_z$ axis while performing lateral scans along $D_y$. -For this validation, the spindle maintained a constant rotational velocity of $6\,\text{deg/s}$ while the nano-hexapod executed the lateral scanning motion. + +In diffraction tomography experiments, the micro-station performs combined motions: continuous rotation around the $R_z$ axis while performing lateral scans along $D_y$. +For this validation, the spindle maintained a constant rotational velocity of $6\,\text{deg/s}$ while the nano-hexapod performs the lateral scanning motion. To avoid high-frequency vibrations typically induced by the stepper motor, the $T_y$ stage was not utilized, which constrained the scanning range to approximately $\pm 100\,\mu m/s$. -The system's performance was evaluated at three lateral scanning velocities: $0.1\,mm/s$, $0.5\,mm/s$, and $1\,mm/s$. Figure ref:fig:test_id31_diffraction_tomo_setpoint presents both the $D_y$ position setpoints and the corresponding measured $D_y$ positions for all tested velocities. +The system performance was evaluated at three lateral scanning velocities: $0.1\,mm/s$, $0.5\,mm/s$, and $1\,mm/s$. Figure ref:fig:test_id31_diffraction_tomo_setpoint presents both the $D_y$ position setpoints and the corresponding measured $D_y$ positions for all tested velocities. #+name: fig:test_id31_diffraction_tomo_setpoint #+caption: Dy motion for several configured velocities @@ -7497,28 +7640,28 @@ The system's performance was evaluated at three lateral scanning velocities: $0. The positioning errors measured along $D_y$, $D_z$, and $R_y$ directions are displayed in Figure ref:fig:test_id31_diffraction_tomo. The system maintained positioning errors within specifications for both $D_z$ and $R_y$ (Figures ref:fig:test_id31_diffraction_tomo_dz and ref:fig:test_id31_diffraction_tomo_ry). -However, lateral positioning errors exceeded specifications during acceleration and deceleration phases (Figure ref:fig:test_id31_diffraction_tomo_dy). -Since these large errors occurred only during $\approx 20\,ms$ intervals, the issue could be addressed by implementing a corresponding delay in detector integration. -Alternatively, developing a feedforward controller could improve lateral positioning accuracy during these transient phases. +However, the lateral positioning errors exceeded specifications during the acceleration and deceleration phases (Figure ref:fig:test_id31_diffraction_tomo_dy). +These large errors occurred only during $\approx 20\,ms$ intervals; thus, a delay of $20\,ms$ could be implemented in the detector the avoid integrating the beam when these large errors are occurring. +Alternatively, a feedforward controller could improve the lateral positioning accuracy during these transient phases. #+name: fig:test_id31_diffraction_tomo #+caption: Diffraction tomography scans (combined $R_z$ and $D_y$ motions) at several $D_y$ velocities ($R_z$ rotational velocity is $6\,\text{deg/s}$). #+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_id31_diffraction_tomo_dy} $D_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_diffraction_tomo_dy.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_diffraction_tomo_dz} $D_z$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_diffraction_tomo_dz.png]] #+end_subfigure #+attr_latex: :caption \subcaption{\label{fig:test_id31_diffraction_tomo_ry} $R_y$} -#+attr_latex: :options {0.32\textwidth} +#+attr_latex: :options {0.33\textwidth} #+begin_subfigure #+attr_latex: :scale 1 [[file:figs/test_id31_diffraction_tomo_ry.png]] @@ -7526,27 +7669,30 @@ Alternatively, developing a feedforward controller could improve lateral positio #+end_figure **** Conclusion +:PROPERTIES: +:UNNUMBERED: t +:END: <> -A comprehensive series of experimental validations was conducted to evaluate the NASS performance across a wide range of typical scientific experiments. +A comprehensive series of experimental validations was conducted to evaluate the NASS performance over a wide range of typical scientific experiments. The system demonstrated robust performance in most scenarios, with positioning errors generally remaining within specified tolerances (30 nm RMS in $D_y$, 15 nm RMS in $D_z$, and 250 nrad RMS in $R_y$). -For tomography experiments, the NASS successfully maintained positioning accuracy at rotational velocities up to $180\,\text{deg/s}$ with light payloads, though performance degraded somewhat with heavier masses. -The HAC-LAC control architecture proved particularly effective, with the decentralized IFF providing damping of nano-hexapod suspension modes while the high authority controller addressed low-frequency disturbances. +For tomography experiments, the NASS successfully maintained good positioning accuracy at rotational velocities up to $180\,\text{deg/s}$ with light payloads, though performance degraded somewhat with heavier masses. +The HAC-LAC control architecture proved particularly effective, with the decentralized IFF providing damping of nano-hexapod suspension modes, while the high authority controller addressed low-frequency disturbances. -Vertical scanning capabilities were validated in both step-by-step and continuous motion modes. +The vertical scanning capabilities were validated in both step-by-step and continuous motion modes. The system successfully resolved 10 nm steps with 50 ms detector integration time, while maintaining positioning accuracy during continuous scans at speeds up to $100\,\mu m/s$. For lateral scanning, the system performed well at moderate speeds ($10\,\mu m/s$) but showed limitations at higher velocities ($100\,\mu m/s$) due to stepper motor-induced vibrations in the $T_y$ stage. The most challenging test case - diffraction tomography combining rotation and lateral scanning - demonstrated the system's ability to maintain vertical and angular stability while highlighting some limitations in lateral positioning during rapid accelerations. -These limitations could potentially be addressed through feedforward control or alternative detector triggering strategies. +These limitations could be addressed through feedforward control or alternative detector triggering strategies. Overall, the experimental results validate the effectiveness of the developed control architecture and demonstrate that the NASS meets most design specifications across a wide range of operating conditions (summarized in Table ref:tab:test_id31_experiments_results_summary). The identified limitations, primarily related to high-speed lateral scanning and heavy payload handling, provide clear directions for future improvements. #+name: tab:test_id31_experiments_results_summary -#+caption: Summary of the experimental results performed with the NASS on ID31. Open-loop errors are indicated at the left of the arrows. Closed-loop errors that are out of specifications are indicated by bold number. +#+caption: Summary of the experimental results performed using the NASS on ID31. Open-loop errors are indicated on the left of the arrows. Closed-loop errors that are outside the specifications are indicated by bold number. #+attr_latex: :environment tabularx :width \linewidth :align Xccc #+attr_latex: :center t :booktabs t | *Experiments* | $\bm{D_y}$ *[nmRMS]* | $\bm{D_z}$ *[nmRMS]* | $\bm{R_y}$ *[nradRMS]* | @@ -7580,29 +7726,28 @@ The identified limitations, primarily related to high-speed lateral scanning and <> This chapter presented a comprehensive experimental validation of the Nano Active Stabilization System (NASS) on the ID31 beamline, demonstrating its capability to maintain precise sample positioning during various experimental scenarios. -The implementation and testing followed a systematic approach, beginning with the development of a short-stroke metrology system to measure the sample's position, followed by the successful implementation of a HAC-LAC control architecture, and concluding in extensive performance validation across diverse experimental conditions. +The implementation and testing followed a systematic approach, beginning with the development of a short-stroke metrology system to measure the sample position, followed by the successful implementation of a HAC-LAC control architecture, and concluding in extensive performance validation across diverse experimental conditions. -The short-stroke metrology system, while designed as an temporary solution, proved effective in providing high bandwidth and low noise 5-DoF position measurements. -The careful alignment of the fibered interferometers targeting two reference spheres ensured reliable measurements throughout the testing campaign. +The short-stroke metrology system, while designed as a temporary solution, proved effective in providing high-bandwidth and low-noise 5-DoF position measurements. +The careful alignment of the fibered interferometers targeting the two reference spheres ensured reliable measurements throughout the testing campaign. -The implementation of the control architecture validated the theoretical framework developed earlier in the project. +The implementation of the control architecture validated the theoretical framework developed earlier in this project. The decentralized Integral Force Feedback (IFF) controller successfully provided robust damping of suspension modes across all payload conditions (0-39 kg), reducing peak amplitudes by approximately a factor of 10. -The High Authority Controller (HAC) effectively managed low-frequency disturbances, though its performance showed some dependency on payload mass, particularly for lateral motion control. +The High Authority Controller (HAC) effectively rejects low-frequency disturbances, although its performance showed some dependency on payload mass, particularly for lateral motion control. -The experimental validation encompassed a wide range of scientific scenarios. -The system demonstrated remarkable performance in most conditions, meeting the stringent positioning requirements (30 nm RMS in $D_y$, 15 nm RMS in $D_z$, and 250 nrad RMS in $R_y$) for the majority of test cases. +The experimental validation covered a wide range of scientific scenarios. +The system demonstrated remarkable performance under most conditions, meeting the stringent positioning requirements (30 nm RMS in $D_y$, 15 nm RMS in $D_z$, and 250 nrad RMS in $R_y$) for the majority of test cases. Some limitations were identified, particularly in handling heavy payloads during rapid motions and in managing high-speed lateral scanning with the existing stepper motor $T_y$ stage. -The successful validation of the NASS demonstrates that, once an accurate online metrology system is developed, it will be ready for integration into actual beamline operations. -The system's ability to maintain precise sample positioning across a wide range of experimental conditions, combined with its robust performance and adaptive capabilities, suggests it will significantly enhance the quality and efficiency of X-ray experiments at ID31. -Moreover, the systematic approach to system development and validation, along with the detailed understanding of performance limitations, provides valuable insights for future improvements and potential applications in similar high-precision positioning systems. +The successful validation of the NASS demonstrates that once an accurate online metrology system is developed, it will be ready for integration into actual beamline operations. +The system's ability to maintain precise sample positioning across a wide range of experimental conditions, combined with its robust performance and adaptive capabilities, suggests that it will significantly enhance the quality and efficiency of X-ray experiments at ID31. +Moreover, the systematic approach to system development and validation, along with a detailed understanding of performance limitations, provides valuable insights for future improvements and potential applications in similar high-precision positioning systems. -** Experimental Validation - Conclusion -:PROPERTIES: -:UNNUMBERED: notoc -:END: +* Bibliography :ignore: +#+latex: \printbibliography[heading=bibintoc,title={Bibliography}] * Conclusion and Future Work +<> ** Alternative Architecture [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/alternative-micro-station-architecture.org]]