Now that the nano-hexapod is mounted and that the the multi-body model of the nano-hexapod could be validated based on dynamics measurements, the complete NASS is mounted as shown in Figure \ref{fig:test_id31_micro_station_nano_hexapod} and the performances are evaluated on the ID31 beamline.
At the beginning of the project, it was planned to develop a long stroke 5-DoF metrology system to measure the pose of the sample with respect to the granite.
The development of such system was complex, and was not completed at the time of the experimental tests on ID31.
To still be able to validate the developed nano active platform and the associated instrumentation and control architecture, a 5-DoF short stroke metrology system is developed and presented in Section \ref{sec:test_id31_metrology}.
The identify dynamics of the nano-hexapod fixed on top of the micro-station is identified for different experimental conditions (payload masses, rotational velocities) and compared with the multi-body model in Section \ref{sec:test_id31_open_loop_plant}.
In order to apply the developed HAC-LAC architecture, decentralized Integral Force Feedback is first applied to actively damp the plant in a robust way (Section \ref{sec:test_id31_iff}), and the high authority controller is then implemented (Section \ref{sec:test_id31_hac}).
Finally, the positioning accuracy of the NASS is evaluated by performing scans corresponding to several scientific experiments (Section \ref{sec:test_id31_experiments})
\subcaption{\label{fig:test_id31_fixed_nano_hexapod}Nano-hexapod fixed on top of the micro-station}
\end{subfigure}
\caption{\label{fig:test_id31_micro_station_nano_hexapod}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})}
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 (\(\approx1\,cm^3\)) metrology system was not developed yet, a stroke stroke (\(> 100\,\mu m^3\)) was used instead to validate the nano-hexapod control.
But as the gap between the capacitive sensors and the spheres is very small\footnote{Depending on the measuring range, gap can range from \(\approx1\,\mu m\) to \(\approx100\,\mu m\)}, the risk of damaging the spheres and the capacitive sensors is too high.
\caption{\label{fig:test_id31_short_stroke_metrology}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})}
Instead of using capacitive sensors, 5 fibered interferometers were used in a similar way (Figure \ref{fig:test_id31_interf}).
At the end of each fiber, a sensor head\footnote{M12/F40 model from Attocube} (Figure \ref{fig:test_id31_interf_head}) is used, which consists of a lens precisely positioned with respect to the fiber's end.
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.
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 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 short-stroke metrology system is placed on top of the main granite using a gantry made of granite blocs (Figure \ref{fig:short_stroke_metrology_overview}).
Granite is used to have good vibration and thermal stability.
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.
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.
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.
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.
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.
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, \(\pm1\,\mu m\) in \(D_x\) and \(D_y\) directions and less than \(0.1\,\mu m\) vertically.
\caption{\label{fig:test_id31_metrology_align}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.}
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 \(\pm1\,mm\), respectively along the 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.
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.
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.
First, the ``metrology kinematics'' (discussed in Section \ref{ssec:test_id31_metrology_kinematics}) is only approximate (i.e. valid for very 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}).
Then, the reference spheres have some deviations with respect to an ideal sphere \footnote{The roundness of the spheres is specified at \(50\,nm\)}.
They are initially meant to be used with capacitive sensors which are integrating the 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.
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 \(\approx4\,nm\).
\caption{\label{fig:test_id31_metrology_errors}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}).}
\item Voltage across the piezoelectric stack actuator: \(\bm{V}_a =[V_{a1},\ V_{a2},\ V_{a3},\ V_{a4},\ V_{a5},\ V_{a6}]\)
\item Motion of the sample measured by external metrology: \(\bm{y}_\mathcal{X}=[D_x,\,D_y,\,D_z,\,R_x,\,R_y,\,R_z]\)
\item Error of the sample measured by external metrology: \(\bm{\epsilon\mathcal{X}}=[\epsilon_{D_x},\,\epsilon_{D_y},\,\epsilon_{D_z},\,\epsilon_{R_x},\,\epsilon_{R_y},\,\epsilon_{R_z}]\)
\item Error of the struts measured by external metrology: \(\bm{\epsilon\mathcal{L}}=[\epsilon_{\mathcal{L}_1},\,\epsilon_{\mathcal{L}_2},\,\epsilon_{\mathcal{L}_3},\,\epsilon_{\mathcal{L}_4},\,\epsilon_{\mathcal{L}_5},\,\epsilon_{\mathcal{L}_6}]\)
However, the coupling for the transfer function from command signals \(\bm{u}\) to estimated strut motion from the external metrology \(e\bm{\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 digital processing unit\footnote{The ``PEPU'' \cite{hino18_posit_encod_proces_unit} was used for digital protocol conversion between the interferometers and the Speedgoat} that was used to read the interferometers in the Speedgoat.
\caption{\label{fig:test_id31_first_id}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}).}
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 is implemented.
This allowed to perform two straight movements of the nano-hexapod along the \(x\) and \(y\) axes in the frame of the nano-hexapod.
During these two movements, the external metrology measurement is recorded and shown in Figure \ref{fig:test_id31_Rz_align_error}.
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 was corrected by adding an offset to the spindle angle.
To check that the alignment has improved, the same movement 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.
\caption{\label{fig:test_id31_Rz_align_error}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}).}
\end{figure}
\section{Open-Loop Identification after alignment}
The plant dynamics is identified 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 \(\approx100\) 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.
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}).
\caption{\label{fig:test_id31_picture_masses}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{\label{fig:test_nhexa_comp_simscape_diag_masses}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 \(e\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})}
The dynamics was then identified while the Spindle was rotating at constant velocity.
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 \(e\mathcal{L}\) is done 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.
This also indicates that the metrology kinematics is correct and is working in real time.
\caption{\label{fig:test_id31_effect_rotation}Effect of the spindle rotation on the plant dynamics from \(u\) to \(e\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.}
Thanks to the model, poor alignment between the nano-hexapod axes and the external metrology axes could be identified.
After alignment, the identified dynamics is well matching with the multi-body model.
Also, the observed effects of the payload mass and of the spindle rotation on the dynamics are well matching the model predictions.
\chapter{Decentralized Integral Force Feedback}
\label{sec:test_id31_iff}
Before implementing a position controller, an active damping controller was first implemented as shown in Figure \ref{fig:test_id31_iff_block_diagram}.
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}.
\caption{\label{fig:test_id31_iff_block_diagram}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}}\).}
\end{figure}
\section{IFF Plant}
\label{ssec:test_id31_iff_plant}
As the multi-body model is going to be used to estimate the stability of the IFF controller and to optimize achievable damping, it is first checked is this model accurately represents the system dynamics.
In 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, as that for all considered payloads.
The model is also accurate for the dynamics from an actuator to the force sensors in the other struts (i.e. the off-diagonal dynamics) as shown in Figure \ref{fig:test_id31_comp_simscape_Vs}.
\caption{\label{fig:test_id31_comp_simscape_Vs}Comparison of the measured (in blue) and modeled (in red) frequency transfer functions from the first control signal \(u_1\) to the six force sensor voltages \(V_{s1}\) to \(V_{s6}\)}
\end{figure}
\section{IFF Controller}
\label{ssec:test_id31_iff_controller}
A decentralized IFF controller is there 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 \(\approx30\,\text{Hz}\) to \(\approx250\,\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}\)) is added to limit the low frequency gain.
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.
\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)
\caption{\label{fig:test_id31_Kiff}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})}
\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_m0}).
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.
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 could be tuned separately for each payload.
For instance, 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.
\caption{\label{fig:test_id31_iff_root_locus_m0}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.}
\end{figure}
\section{Estimated Damped Plant}
\label{ssec:test_id31_iff_perf}
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}}\).
The obtained damped plants are compared with 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, and with the same decentralized IFF controller.
The position of the sample is actively stabilized by implementing a High-Authority-Controller as shown in Figure \ref{fig:test_id31_iff_hac_schematic}.
\caption{\label{fig:test_id31_iff_hac_schematic}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}}\).}
\end{figure}
\section{Damped Plant}
\label{ssec:test_id31_iff_hac_plant}
The damped plants (i.e. the transfer function from \(\bm{u}^\prime\) to \(\bm{\epsilon\mathcal{L}}\)) were identified for all payload conditions.
To verify if the model accurately represents the damped plants, both direct terms and coupling terms corresponding to the first actuator are compared in Figure \ref{fig:test_id31_comp_simscape_hac}.
\caption{\label{fig:test_id31_comp_simscape_hac}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}
\end{figure}
The six direct terms for all four payload conditions are compared with the model in Figure \ref{fig:test_id31_hac_plant_effect_mass}.
It is shown that the model accurately represents the dynamics for all payloads.
Without decentralized IFF being applied, the controller would have had to be robust to all the undamped dynamics shown in Figure \ref{fig:test_id31_comp_all_undamped_damped_plants}, which is a very complex control problem.
With the applied decentralized IFF, the HAC instead had to be be robust to all the damped dynamics shown 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.
\subcaption{\label{fig:test_id31_comp_all_undamped_damped_plants}Undamped and damped plants}
\end{subfigure}
\caption{\label{fig:test_id31_hac_plant_effect_mass_comp_model}Comparison of the measured damped plants and modeled plants for all considered payloads, only ``direct'' terms (\(\epsilon\mathcal{L}_i/u_i^\prime\)) are displayed (\subref{fig:test_id31_hac_plant_effect_mass}). Comparison of all undamped \(\epsilon\mathcal{L}_i/u_i\) and damped \(\epsilon\mathcal{L}_i/u_i^\prime\) measured frequency response functions for all payloads is done in (\subref{fig:test_id31_comp_all_undamped_damped_plants}).}
A first 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 a first design, a crossover frequency of \(5\,\text{Hz}\) for chosen.
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 obtained ``decentralized'' loop-gains are shown in Figure \ref{fig:test_id31_hac_loop_gain}.
\caption{\label{fig:test_id31_hac_loop_gain_loci}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})}
To estimate the performances that can be expected with this HAC-LAC architecture and the designed controllers, two simulations of tomography experiments were performed\footnote{Note that the eccentricity of the ``point of interest'' with respect to the Spindle rotation axis has been tuned from the measurements.}.
The rotational velocity was set to 30rpm, and no payload was added on top of the nano-hexapod.
An open-loop simulation and a closed-loop simulation were performed and compared in Figure \ref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim}.
\caption{\label{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim}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 30RPM. No payload is placed on top of the nano-hexapod.}
\end{figure}
Then the same tomography experiment (i.e. constant spindle rotation at 30rpm, and no payload) was performed experimentally.
The measured position of the ``point of interest'' during the experiment are shown in Figure \ref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp}.
\caption{\label{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp}Experimental results of a tomography experiment at 30RPM 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.}
\end{figure}
Even though the simulation (Figure \ref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_sim}) and the experimental results (Figure \ref{fig:test_id31_tomo_m0_30rpm_robust_hac_iff_exp}) are looking similar, the most important metric to compare is the RMS values of the positioning errors in closed-loop.
These are computed for both the simulation and the experimental results and are compared in Table \ref{tab:test_id31_tomo_m0_30rpm_robust_hac_iff_rms}.
The lateral and vertical errors are similar, however the tilt (\(R_y\)) errors are underestimated by the model, which is reasonable as disturbances in \(R_y\) were not modeled.
Results obtained with this conservative HAC are already close to the specifications.
\caption{\label{tab:test_id31_tomo_m0_30rpm_robust_hac_iff_rms}RMS values of the errors for a tomography experiment at 30RPM and without payload. Experimental results and simulation are compared.}
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 1rpm (i.e. 6deg/s), as it is the typical rotational velocity for heavy samples.
The closed-loop systems were stable for all payload conditions, indicating good control robustness.
The tomography experiments that were simulated were then experimentally conducted.
For each payload, a spindle rotating was first performed in open-loop, and then the loop was closed during another full spindle rotation.
An example with the \(26\,\text{kg}\) payload is shown in Figure \ref{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit}.
The eccentricity between the ``point of interest'' and the spindle rotation axis is quite large as the added payload mass statically deforms the micro-station stages.
To estimate the open-loop errors, it is supposed that the ``point of interest'' can be perfectly aligned with the spindle rotation axis.
Therefore, the eccentricity is first estimated by performing a circular fit (dashed black circle in Figure \ref{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit}), and then subtracted from the data in Figure \ref{fig:test_id31_tomo_m2_1rpm_robust_hac_iff_fit_removed}.
This underestimate the real condition open-loop errors as it is difficult to obtain a perfect alignment in practice.
\caption{\label{fig:test_id31_tomo_m2_1rpm_robust_hac_iff}Tomography experiment with rotation velocity of 1rpm, 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}).}
\end{figure}
The RMS values of the open-loop and closed-loop errors for all masses are summarized in Table \ref{tab:test_id31_tomo_1rpm_robust_ol_cl_errors}.
The obtained closed-loop errors are fulfilling the requirements, except for the \(39\,\text{kg}\) payload in the lateral (\(D_y\)) direction.
\caption{\label{tab:test_id31_tomo_1rpm_robust_ol_cl_errors}RMS values of the measured errors during open-loop and closed-loop tomography scans (1rpm) for all considered payloads. Measured closed-Loop errors are indicated by ``bold'' font.}
However, in order to fully validate the NASS, typical motion performed during scientific experiments can be mimicked, and the positioning performances can be evaluated.
\item\emph{Lateral scans}: the \(T_y\) translations stage performs \(D_y\) scans and the errors are corrected by the NASS in real time (Section \ref{ssec:test_id31_scans_dy})
\item\emph{Vertical layer scans}: the nano-hexapod is used to perform \(D_z\) step motion or ramp scans (Section \ref{ssec:test_id31_scans_dz})
\item\emph{Reflectivity scans}: the tilt stage is doing \(R_y\) rotations and the errors are corrected by the NASS in real time (Section \ref{ssec:test_id31_scans_reflectivity})
\item\emph{Diffraction Tomography}: the Spindle is performing continuous \(R_z\) rotation while the translation stage is performing lateral \(D_y\) scans at the same time.
This is the experiment with the most stringent requirements (Section \ref{ssec:test_id31_scans_diffraction_tomo})
Lateral scans are performed with the \(T_y\) stage.
The stepper motor controller\footnote{The ``IcePAP'' \cite{janvier13_icepap} which is developed at the ESRF} outputs the setpoint which is received by the Speedgoat.
In the Speedgoat, the setpoint is compared with the measured \(D_y\) position of the top-platform, and the Nano-Hexapod is used to correct positioning errors induced by the scanning of the \(T_y\) stage.
The stroke is here limited to \(\pm100\,\mu m\) due to the limited acceptance of the metrology system.
These errors are induced by the stepper motor being used in the \(T_y\) stage.
Indeed, stepper motors inherently have ``micro-stepping errors'' which are periodic errors happening 200 times per motor rotation with an amplitude approximately equal to \(1\,\text{mrad}\).
As the lead screw for the \(T_y\) stage has a pitch of \(2\,mm\), this means that the micro-stepping errors have a period of \(10\,\mu m\) and an amplitude of \(\approx300\,nm\) which can indeed be seen in open-loop.
In the vertical direction (Figure \ref{fig:test_id31_dy_10ums_dz}), open-loop errors are most likely due to measurement errors of the metrology itself as the top interferometer point at a sphere (see Figure \ref{fig:test_id31_xy_map_sphere}).
In closed-loop, the errors are within the specifications in all directions.
\caption{\label{fig:test_id31_dy_10ums}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}).}
\end{figure}
\paragraph{Faster Scan}
The performance of the NASS is then tested for a scanning velocity of \(100\,\mu m/s\) and the results are shown in Figure \ref{fig:test_id31_dy_100ums}.
At this velocity, the micro-stepping errors have a frequency of \(10\,\text{Hz}\) and are inducing lot's of vibrations which are even amplified by some resonances of the micro-station.
These vibrations are outside the bandwidth of the NASS feedback controller and therefore not well reduced in closed-loop.
This is the main reason why stepper motors should be not be used for ``long-stroke / short-stroke'' systems when good scanning performances are wanted \cite{dehaeze22_fastj_uhv}.
In order to improve the scanning performances at high velocity, the stepper motor of the \(T_y\) stage could be replaced by a three-phase torque motor for instance.
As the closed-loop errors in \(D_z\) and \(R_y\) directions are within specifications (see Figures \ref{fig:test_id31_dy_100ums_dz} and \ref{fig:test_id31_dy_100ums_ry}), another option would be to trigger the detectors based on the measured \(D_y\) position instead of based on time or on the \(T_y\) setpoint.
This would make the experiment less sensitive to \(D_y\) vibrations.
For small \(D_y\) scans, the nano-hexapod alone can be used for the scans, but with limited strokes.
\caption{\label{fig:test_id31_dy_100ums}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}).}
In some cases, samples are composed of several atomic ``layers'' that are first aligned in the horizontal plane with precise \(R_y\) positioning and that are then scanned vertically with precise \(D_z\) motion.
The vertical scan can be performed continuously of using step-by-step motion.
10nm steps can be resolved if detectors are integrating over 50ms (see red curve in Figure \ref{fig:test_id31_dz_mim_10nm_steps}), which is reasonable for many experiments.
When doing step-by-step scans, the time to reach the next value is quite critical as long settling time can render the total experiment excessively long.
The response time to reach the wanted value (to within \(\pm20\,nm\)) is around \(70\,ms\) as shown with the \(1\,\mu m\) step response in Figure \ref{fig:test_id31_dz_mim_1000nm_steps}.
\caption{\label{fig:test_id31_dz_mim_steps}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 \(\pm20\,nm\) is \(\approx70\,ms\) as shown in (\subref{fig:test_id31_dz_mim_1000nm_steps}) for a \(1\,\mu m\) step.}
\caption{\label{fig:test_id31_dz_scan_10ums}\(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})}
The second tested velocity is \(100\,\mu m/s\), which is the fastest velocity for \(D_z\) scans when the ultimate performances is wanted (corresponding to a 1ms integration time and 100nm ``resolution'').
At this velocity, the positioning errors are also within the specifications except for the very start and very end of the motion (i.e. during acceleration/deceleration phases, see Figure \ref{fig:test_id31_dz_scan_100ums}).
However, the detectors are usually triggered only during the constant velocity phase, so this is not not an issue.
The performances during acceleration phase may also be improved by using a feedforward controller.
\caption{\label{fig:test_id31_dz_scan_100ums}\(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})}
\end{figure}
\paragraph{Summary}
\begin{center}
\begin{tabular}{lrrr}
&\(D_y\)&\(D_z\)&\(R_y\)\\
\hline
Specs & 100.0 & 50.0 & 0.85\\
10um/s & 82.35 & 17.94 & 0.41\\
100um/s & 98.72 & 41.45 & 0.48\\
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{lrrr}
&\(D_y\)&\(D_z\)&\(R_y\)\\
\hline
Specs & 30.0 & 15.0 & 0.25\\
10um/s & 25.11 & 5.04 & 0.11\\
100um/s & 34.84 & 9.08 & 0.13\\
\end{tabular}
\end{center}
\section{\(R_y\) scans: Reflectivity}
\label{ssec:test_id31_scans_reflectivity}
X-ray reflectivity consists of scanning the \(R_y\) angle of thin structures (typically solid/liquid interfaces) through the beam.
Here, a \(R_y\) scan is performed with a rotational velocity of \(100\,\mu rad/s\) and the positioning errors in closed-loop are recorded (Figure \ref{fig:test_id31_reflectivity}).
It is shown that the NASS is able to keep the point of interest in the beam within specifications.
The \(T_y\) stage is here not used as the stepper motor would induce high frequency vibrations, therefore the stroke is here limited to \(\approx\pm100\,\mu m/s\).
Several \(D_y\) velocities are tested: \(0.1\,mm/s\), \(0.5\,mm/s\) and \(1\,mm/s\).
The measured errors in \(D_y\), \(D_z\) and \(R_y\) directions are shown in Figure \ref{fig:test_id31_diffraction_tomo}.
While the \(D_z\) and \(R_y\) errors are within specifications (see Figures \ref{fig:test_id31_diffraction_tomo_dz} and \ref{fig:test_id31_diffraction_tomo_ry}), the lateral error goes outside of specifications during acceleration and deceleration phases (Figure \ref{fig:test_id31_diffraction_tomo_dy}).
However, it goes out of specifications during only during \(\approx20\,ms\), and this could be optimized using feedforward and more appropriate setpoint signals.
\caption{\label{fig:test_id31_diffraction_tomo}Diffraction tomography scans (combined \(R_z\) and \(D_y\) motions) at several \(D_y\) velocities (\(R_z\) rotational velocity is 1rpm).}
For each conducted experiments, the \(D_y\), \(D_z\) and \(R_y\) errors are computed and summarized in Table \ref{tab:id31_experiments_results_summary}.