Update few experimental figures
BIN
figs/test_id31_diffraction_tomo_dy.pdf
Normal file
BIN
figs/test_id31_diffraction_tomo_dy.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
figs/test_id31_diffraction_tomo_dz.pdf
Normal file
BIN
figs/test_id31_diffraction_tomo_dz.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
figs/test_id31_diffraction_tomo_ry.pdf
Normal file
BIN
figs/test_id31_diffraction_tomo_ry.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
figs/test_id31_diffraction_tomo_setpoint.pdf
Normal file
BIN
figs/test_id31_diffraction_tomo_setpoint.png
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
figs/test_id31_dy_100ums_dy.pdf
Normal file
BIN
figs/test_id31_dy_100ums_dy.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
figs/test_id31_dy_100ums_dz.pdf
Normal file
BIN
figs/test_id31_dy_100ums_dz.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
figs/test_id31_dy_100ums_ry.pdf
Normal file
BIN
figs/test_id31_dy_100ums_ry.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
figs/test_id31_dy_10ums_dy.pdf
Normal file
BIN
figs/test_id31_dy_10ums_dy.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
figs/test_id31_dy_10ums_dz.pdf
Normal file
BIN
figs/test_id31_dy_10ums_dz.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
figs/test_id31_dy_10ums_ry.pdf
Normal file
BIN
figs/test_id31_dy_10ums_ry.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
figs/test_id31_dz_mim_1000nm_steps.pdf
Normal file
BIN
figs/test_id31_dz_mim_1000nm_steps.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
figs/test_id31_dz_mim_100nm_steps.pdf
Normal file
BIN
figs/test_id31_dz_mim_100nm_steps.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
figs/test_id31_dz_mim_10nm_steps.pdf
Normal file
BIN
figs/test_id31_dz_mim_10nm_steps.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
figs/test_id31_dz_scan_100ums_dy.pdf
Normal file
BIN
figs/test_id31_dz_scan_100ums_dy.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
figs/test_id31_dz_scan_100ums_dz.pdf
Normal file
BIN
figs/test_id31_dz_scan_100ums_dz.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
figs/test_id31_dz_scan_100ums_ry.pdf
Normal file
BIN
figs/test_id31_dz_scan_100ums_ry.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
figs/test_id31_dz_scan_10ums_dy.pdf
Normal file
BIN
figs/test_id31_dz_scan_10ums_dy.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
figs/test_id31_dz_scan_10ums_dz.pdf
Normal file
BIN
figs/test_id31_dz_scan_10ums_dz.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
figs/test_id31_dz_scan_10ums_ry.pdf
Normal file
BIN
figs/test_id31_dz_scan_10ums_ry.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
figs/test_id31_reflectivity_dy.pdf
Normal file
BIN
figs/test_id31_reflectivity_dy.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
figs/test_id31_reflectivity_dz.pdf
Normal file
BIN
figs/test_id31_reflectivity_dz.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
figs/test_id31_reflectivity_ry.pdf
Normal file
BIN
figs/test_id31_reflectivity_ry.png
Normal file
After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 29 KiB |
21
matlab/src/circlefit.m
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
function [xc,yc,R,a] = circlefit(x,y)
|
||||||
|
%
|
||||||
|
% [xc yx R] = circfit(x,y)
|
||||||
|
%
|
||||||
|
% fits a circle in x,y plane in a more accurate
|
||||||
|
% (less prone to ill condition )
|
||||||
|
% procedure than circfit2 but using more memory
|
||||||
|
% x,y are column vector where (x(i),y(i)) is a measured point
|
||||||
|
%
|
||||||
|
% result is center point (yc,xc) and radius R
|
||||||
|
% an optional output is the vector of coeficient a
|
||||||
|
% describing the circle's equation
|
||||||
|
%
|
||||||
|
% x^2+y^2+a(1)*x+a(2)*y+a(3)=0
|
||||||
|
%
|
||||||
|
% By: Izhak bucher 25/oct /1991,
|
||||||
|
x=x(:); y=y(:);
|
||||||
|
a=[x y ones(size(x))]\[-(x.^2+y.^2)];
|
||||||
|
xc = -.5*a(1);
|
||||||
|
yc = -.5*a(2);
|
||||||
|
R = sqrt((a(1)^2+a(2)^2)/4-a(3));
|
11
matlab/src/unwrapphase.m
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
function [unwraped_phase] = unwrapphase(frf, f, args)
|
||||||
|
|
||||||
|
arguments
|
||||||
|
frf
|
||||||
|
f
|
||||||
|
args.f0 (1,1) double {mustBeNumeric} = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
unwraped_phase = unwrap(frf);
|
||||||
|
[~,i] = min(abs(f - args.f0));
|
||||||
|
unwraped_phase = unwraped_phase - 2*pi*round(unwraped_phase(i)./(2*pi));
|
@ -11,6 +11,27 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@inproceedings{dehaeze22_fastj_uhv,
|
||||||
|
author = {Thomas Dehaeze and Ludovic Ducott{\'e}},
|
||||||
|
title = {The Fastjack - A robust, UHV compatible and high
|
||||||
|
performance linear actuator},
|
||||||
|
year = 2022,
|
||||||
|
organization = {EUSPEN},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@article{janvier13_icepap,
|
||||||
|
author = {Janvier, N and Clement, JM and Fajardo, P and Cun{\'\i}, G},
|
||||||
|
title = {Icepap: an Advanced Motor Controller for Scientific
|
||||||
|
Applications in Large User Facilities},
|
||||||
|
journal = {TUPPC081, ICALEPCS2013, San Francisco},
|
||||||
|
volume = 2016,
|
||||||
|
year = 2013,
|
||||||
|
keywords = {esrf},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@article{hino18_posit_encod_proces_unit,
|
@article{hino18_posit_encod_proces_unit,
|
||||||
author = {Ricardo Hino and Pablo Fajardo and Nicolas Janvier and
|
author = {Ricardo Hino and Pablo Fajardo and Nicolas Janvier and
|
||||||
Thierry Le Ca{\"e}r and Fabien Le Mentec},
|
Thierry Le Ca{\"e}r and Fabien Le Mentec},
|
||||||
@ -25,3 +46,5 @@
|
|||||||
url =
|
url =
|
||||||
{http://jacow.org/icalepcs2017/doi/JACoW-ICALEPCS2017-THPHA072.html},
|
{http://jacow.org/icalepcs2017/doi/JACoW-ICALEPCS2017-THPHA072.html},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
2107
test-bench-id31.org
@ -1,4 +1,4 @@
|
|||||||
% Created 2024-11-15 Fri 18:44
|
% Created 2025-01-31 Fri 14:50
|
||||||
% Intended LaTeX compiler: pdflatex
|
% Intended LaTeX compiler: pdflatex
|
||||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||||
|
|
||||||
@ -205,7 +205,6 @@ 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.
|
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.
|
||||||
|
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\caption{\label{tab:test_id31_metrology_acceptance}Estimated measurement range for each interferometer, and for three different directions.}
|
|
||||||
\centering
|
\centering
|
||||||
\begin{tabularx}{0.45\linewidth}{Xccc}
|
\begin{tabularx}{0.45\linewidth}{Xccc}
|
||||||
\toprule
|
\toprule
|
||||||
@ -218,6 +217,8 @@ The obtained lateral acceptance for pure displacements in any direction is estim
|
|||||||
\(d_5\) (z) & \(1.33\, mm\) & \(1.06\,mm\) & \(>2\,mm\)\\
|
\(d_5\) (z) & \(1.33\, mm\) & \(1.06\,mm\) & \(>2\,mm\)\\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabularx}
|
\end{tabularx}
|
||||||
|
\caption{\label{tab:test_id31_metrology_acceptance}Estimated measurement range for each interferometer, and for three different directions.}
|
||||||
|
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
|
|
||||||
@ -345,6 +346,8 @@ Results shown in Figure \ref{fig:test_id31_Rz_align_correct} are indeed indicati
|
|||||||
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}.
|
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.
|
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).
|
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.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@ -401,7 +404,7 @@ It is interesting to note that the anti-resonances in the force sensor plant are
|
|||||||
\end{center}
|
\end{center}
|
||||||
\subcaption{\label{fig:test_id31_comp_simscape_iff_diag_masses}from $u$ to $V_s$}
|
\subcaption{\label{fig:test_id31_comp_simscape_iff_diag_masses}from $u$ to $V_s$}
|
||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\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 Simscape 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})}
|
\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})}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\section{Effect of Spindle Rotation}
|
\section{Effect of Spindle Rotation}
|
||||||
@ -432,13 +435,6 @@ This also indicates that the metrology kinematics is correct and is working in r
|
|||||||
\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.}
|
\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.}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\section{Identification of Spurious modes}
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
\item[{$\square$}] These are made to identify the modes of the spheres
|
|
||||||
\item[{$\square$}] Also discuss other observed modes
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\section*{Conclusion}
|
\section*{Conclusion}
|
||||||
Thanks to the model, poor alignment between the nano-hexapod axes and the external metrology axes could be identified.
|
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.
|
After alignment, the identified dynamics is well matching with the multi-body model.
|
||||||
@ -609,6 +605,10 @@ This is one of the key benefit of using the HAC-LAC strategy.
|
|||||||
\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}).}
|
\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}).}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Interaction Analysis}
|
||||||
|
Decoupled system up to 10Hz
|
||||||
|
Higher coupling for higher masses (when considering control in the frame of the struts)
|
||||||
|
|
||||||
\section{Robust Controller Design}
|
\section{Robust Controller Design}
|
||||||
\label{ssec:test_id31_iff_hac_controller}
|
\label{ssec:test_id31_iff_hac_controller}
|
||||||
|
|
||||||
@ -639,7 +639,7 @@ The closed-loop stability is verified by computing the characteristic Loci (Figu
|
|||||||
\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})}
|
\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})}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\section{Estimation of performances}
|
\section{Estimation of performances with Tomography scans}
|
||||||
\label{ssec:test_id31_iff_hac_perf}
|
\label{ssec:test_id31_iff_hac_perf}
|
||||||
|
|
||||||
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.}.
|
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.}.
|
||||||
@ -665,6 +665,10 @@ An open-loop simulation and a closed-loop simulation were performed and compared
|
|||||||
Then the same tomography experiment (i.e. constant spindle rotation at 30rpm, and no payload) was performed experimentally.
|
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}.
|
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}.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item[{$\square$}] Add beam size (200x100nm)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\begin{subfigure}{0.49\textwidth}
|
\begin{subfigure}{0.49\textwidth}
|
||||||
\begin{center}
|
\begin{center}
|
||||||
@ -688,7 +692,6 @@ The lateral and vertical errors are similar, however the tilt (\(R_y\)) errors a
|
|||||||
Results obtained with this conservative HAC are already close to the specifications.
|
Results obtained with this conservative HAC are already close to the specifications.
|
||||||
|
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\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.}
|
|
||||||
\centering
|
\centering
|
||||||
\begin{tabularx}{0.7\linewidth}{Xccc}
|
\begin{tabularx}{0.7\linewidth}{Xccc}
|
||||||
\toprule
|
\toprule
|
||||||
@ -699,9 +702,11 @@ Experiment (OL) & \(1.8\,\mu\text{mRMS}\) & \(24\,\text{nmRMS}\) & \(10\,\mu\tex
|
|||||||
Simulation (CL) & \(30\,\text{nmRMS}\) & \(8\,\text{nmRMS}\) & \(73\,\text{nradRMS}\)\\
|
Simulation (CL) & \(30\,\text{nmRMS}\) & \(8\,\text{nmRMS}\) & \(73\,\text{nradRMS}\)\\
|
||||||
Experiment (CL) & \(39\,\text{nmRMS}\) & \(11\,\text{nmRMS}\) & \(130\,\text{nradRMS}\)\\
|
Experiment (CL) & \(39\,\text{nmRMS}\) & \(11\,\text{nmRMS}\) & \(130\,\text{nradRMS}\)\\
|
||||||
\midrule
|
\midrule
|
||||||
Specifications (CL) & \(30\,\text{nmRMS}\) & \(15\,\text{nmRMS}\) & \(250\,\text{nradRMS}\)\\
|
Specifications & \(30\,\text{nmRMS}\) & \(15\,\text{nmRMS}\) & \(250\,\text{nradRMS}\)\\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabularx}
|
\end{tabularx}
|
||||||
|
\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.}
|
||||||
|
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\section{Robustness to change of payload}
|
\section{Robustness to change of payload}
|
||||||
@ -719,6 +724,11 @@ To estimate the open-loop errors, it is supposed that the ``point of interest''
|
|||||||
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}.
|
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.
|
This underestimate the real condition open-loop errors as it is difficult to obtain a perfect alignment in practice.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item[{$\square$}] Maybe show in the YZ plane?
|
||||||
|
\item[{$\square$}] Add the beam size?
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\begin{subfigure}{0.49\textwidth}
|
\begin{subfigure}{0.49\textwidth}
|
||||||
\begin{center}
|
\begin{center}
|
||||||
@ -739,7 +749,6 @@ The RMS values of the open-loop and closed-loop errors for all masses are summar
|
|||||||
The obtained closed-loop errors are fulfilling the requirements, except for the \(39\,\text{kg}\) payload in the lateral (\(D_y\)) direction.
|
The obtained closed-loop errors are fulfilling the requirements, except for the \(39\,\text{kg}\) payload in the lateral (\(D_y\)) direction.
|
||||||
|
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\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.}
|
|
||||||
\centering
|
\centering
|
||||||
\begin{tabularx}{0.9\linewidth}{Xccc}
|
\begin{tabularx}{0.9\linewidth}{Xccc}
|
||||||
\toprule
|
\toprule
|
||||||
@ -753,9 +762,423 @@ The obtained closed-loop errors are fulfilling the requirements, except for the
|
|||||||
\textbf{Specifications} & \(30\,\text{nmRMS}\) & \(15\,\text{nmRMS}\) & \(250\,\text{nradRMS}\)\\
|
\textbf{Specifications} & \(30\,\text{nmRMS}\) & \(15\,\text{nmRMS}\) & \(250\,\text{nradRMS}\)\\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabularx}
|
\end{tabularx}
|
||||||
|
\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.}
|
||||||
|
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\section*{Conclusion}
|
\section*{Conclusion}
|
||||||
|
|
||||||
|
\chapter{Dynamic Error Budgeting}
|
||||||
|
\label{sec:test_id31_error_budget}
|
||||||
|
In this section, the noise budget is performed.
|
||||||
|
The vibrations of the sample is measured in different conditions using the external metrology.
|
||||||
|
|
||||||
|
\textbf{Tomography}:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Beam size: 200nm x 100nm
|
||||||
|
\item Keep the PoI in the beam: peak to peak errors of 200nm in Dy and 100nm in Dz
|
||||||
|
\item RMS errors (/ by 6.6) gives 30nmRMS in Dy and 15nmRMS in Dz.
|
||||||
|
\item Ry error <1.7urad, 250nrad RMS
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{lllllll}
|
||||||
|
& Dx & Dy & Dz & Rx & Ry & Rz\\
|
||||||
|
\hline
|
||||||
|
peak 2 peak & & 200nm & 100nm & & 1.7 urad & \\
|
||||||
|
RMS & & 30nm & 15nm & & 250 nrad & \\
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
\end{center}
|
||||||
|
\section{Open-Loop Noise Budget}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Effect of rotation.
|
||||||
|
\item Comparison with measurement noise: should be higher
|
||||||
|
\item Maybe say that we then focus on the high rotation velocity
|
||||||
|
\item Also say that for the RMS errors, we don't take into account drifts (so we NASS we can correct drifts)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{Effect of LAC}
|
||||||
|
\begin{itemize}
|
||||||
|
\item[{$\square$}] Maybe merge this with the HAC-LAC
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Effect of LAC:
|
||||||
|
\begin{itemize}
|
||||||
|
\item reduce amplitude around 80Hz
|
||||||
|
\item Inject some noise between 200 and 700Hz?
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{Effect of HAC}
|
||||||
|
|
||||||
|
Bandwidth is approximately 10Hz.
|
||||||
|
|
||||||
|
\chapter{Validation with Scientific experiments}
|
||||||
|
The online metrology prototype does not allow samples to be placed on top of the nano-hexapod and to be illuminated by the x-ray beam.
|
||||||
|
However, in order to fully validate the NASS, typical motion performed during scientific experiments can be mimicked, and the positioning performances can be evaluated.
|
||||||
|
|
||||||
|
Performances were already evaluated with tomography scans (Section \ref{ssec:test_id31_iff_hac_perf}).
|
||||||
|
Here, other typical experiments are performed:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Lateral scans: the 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 Vertical layer scans: the nano-hexapod is used to perform \(D_z\) steps or ramp scans (Section \ref{ssec:test_id31_scans_dz})
|
||||||
|
\item 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 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})
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{\(D_y\) - Lateral Scans}
|
||||||
|
\label{ssec:test_id31_scans_dy}
|
||||||
|
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.
|
||||||
|
|
||||||
|
Therefore, the Nano-Hexapod can be used to correct positioning errors induced by the scanning of the \(T_y\) stage.
|
||||||
|
|
||||||
|
\paragraph{Slow scan}
|
||||||
|
|
||||||
|
The \(T_y\) stage is first scanned at \(10\,\mu m/s\) which is typical for such experiments.
|
||||||
|
The errors in open-loop (i.e. without using the NASS) and in closed-loop are compared in Figure \ref{fig:test_id31_dy_10ums}.
|
||||||
|
|
||||||
|
In the direction of motion, periodic errors can be observed in the open-loop case (Figure \ref{fig:test_id31_dy_10ums_dy}).
|
||||||
|
These are due to 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 \(\approx 300\,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 (see Figure \ref{fig:test_id31_xy_map_sphere}).
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dy_10ums_dy.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dy_10ums_dy} $D_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dy_10ums_dz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dy_10ums_dz} $D_z$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dy_10ums_ry.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dy_10ums_ry} $R_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\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 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}), the detectors could be triggered based on the measured \(D_y\) position and therefore the experiment would be much less sensitive to \(D_y\) vibrations.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dy_100ums_dy.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dy_100ums_dy} $D_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dy_100ums_dz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dy_100ums_dz} $D_z$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dy_100ums_ry.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dy_100ums_ry} $R_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\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}).}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\paragraph{Conclusion}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{lrrr}
|
||||||
|
& \(D_y\) & \(D_z\) & \(R_y\)\\
|
||||||
|
\hline
|
||||||
|
Specs & 30.0 & 15.0 & 0.25\\
|
||||||
|
\hline
|
||||||
|
10um/s (OL) & 585.43 & 154.51 & 6.3\\
|
||||||
|
10um/s (CL) & 20.64 & 9.67 & 0.06\\
|
||||||
|
\hline
|
||||||
|
100um/s (OL) & 1063.58 & 166.85 & 6.44\\
|
||||||
|
100um/s (CL) & 731.63 & 19.91 & 0.36\\
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{lrrr}
|
||||||
|
& \(D_y\) & \(D_z\) & \(R_y\)\\
|
||||||
|
\hline
|
||||||
|
Specs & 100.0 & 50.0 & 0.85\\
|
||||||
|
10um/s (OL) & 1167.8 & 308.35 & 11.06\\
|
||||||
|
10um/s (CL) & 86.36 & 41.6 & 0.28\\
|
||||||
|
100um/s (OL) & 2687.67 & 328.45 & 11.26\\
|
||||||
|
100um/s (CL) & 1339.31 & 69.5 & 0.91\\
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\section{\(D_z\) scans: Dirty Layer Scans}
|
||||||
|
\label{ssec:test_id31_scans_dz}
|
||||||
|
In some cases, samples are composed of several atomic ``layers'' that are first aligned in the horizontal plane with precise \(R_y\) positioning and then scanned vertically with precise \(D_z\) motion.
|
||||||
|
The vertical scan can be performed step-by-step or continuously.
|
||||||
|
\paragraph{Step by Step \(D_z\) motion}
|
||||||
|
|
||||||
|
Vertical steps are here performed using the nano-hexapod.
|
||||||
|
Step sizes from \(10\,nm\) to \(1\,\mu m\) are tested, and the results are shown in Figure \ref{fig:test_id31_dz_mim_steps}.
|
||||||
|
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 very typical.
|
||||||
|
|
||||||
|
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 \(\pm 20\,nm\)) is around \(70\,ms\) as shown with the \(1\,\mu m\) step response in Figure \ref{fig:test_id31_dz_mim_1000nm_steps}.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_mim_10nm_steps.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_mim_10nm_steps}10nm steps}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_mim_100nm_steps.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_mim_100nm_steps}100nm steps}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_mim_1000nm_steps.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_mim_1000nm_steps}$1\,\mu$m step}
|
||||||
|
\end{subfigure}
|
||||||
|
\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 \(\pm 20\,nm\) is \(\approx 70\,ms\) as shown in (\subref{fig:test_id31_dz_mim_1000nm_steps}) for a \(1\,\mu m\) step.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\paragraph{Continuous \(D_z\) motion: Dirty Layer Scans}
|
||||||
|
|
||||||
|
Instead of performing ``step-by-step'' scans, continuous scans can also be performed in the vertical direction.
|
||||||
|
|
||||||
|
At \(10\,\mu m/s\), the errors are well within the specifications (see Figure \ref{fig:test_id31_dz_scan_10ums}).
|
||||||
|
|
||||||
|
The second tested velocity is \(100\,\mu m/s\), which is typically the fastest velocity for \(D_z\) scans when the ultimate performances is wanted (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 should not be an issue.
|
||||||
|
The performances during acceleration phase may also be improved by using a feedforward controller.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_scan_10ums_dy.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_scan_10ums_dy}$D_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_scan_10ums_dz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_scan_10ums_dz}$D_z$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_scan_10ums_ry.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_scan_10ums_ry}$R_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\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})}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_scan_100ums_dy.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_scan_100ums_dy}$D_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_scan_100ums_dz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_scan_100ums_dz}$D_z$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_dz_scan_100ums_ry.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_dz_scan_100ums_ry}$R_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\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 at \(100\,\mu rad/s\) velocity and the positioning errors 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.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_reflectivity_dy.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_reflectivity_dy}$D_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_reflectivity_dz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_reflectivity_dz}$D_z$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_reflectivity_ry.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_reflectivity_ry}$R_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:test_id31_reflectivity}Reflectivity scan (\(R_y\)) with a rotational velocity of \(100\,\mu \text{rad}/s\).}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Combined \(R_z\) and \(D_y\): Diffraction Tomography}
|
||||||
|
\label{ssec:test_id31_scans_diffraction_tomo}
|
||||||
|
|
||||||
|
The goal of this experiment is to perform combined \(R_z\) rotation and \(D_z\) lateral scans.
|
||||||
|
Here the spindle is performing a continuous 1rpm rotation while the nano-hexapod is used to perform fast \(D_z\) scans.
|
||||||
|
|
||||||
|
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 \pm 100\,\mu m/s\).
|
||||||
|
Several \(D_y\) velocities are tested: \(0.1\,mm/s\), \(0.5\,mm/s\) and \(1\,mm/s\).
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/test_id31_diffraction_tomo_setpoint.png}
|
||||||
|
\caption{\label{fig:test_id31_diffraction_tomo_setpoint}Dy motion for several configured velocities}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_diffraction_tomo_dy.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_diffraction_tomo_dy}$D_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_diffraction_tomo_dz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_diffraction_tomo_dz}$D_z$}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=1]{figs/test_id31_diffraction_tomo_ry.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_id31_diffraction_tomo_ry}$R_y$}
|
||||||
|
\end{subfigure}
|
||||||
|
\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).}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The corresponding ``repetition rate'' and \(D_y\) scan per spindle turn are shown in Table \ref{tab:diffraction_tomo_velocities}.
|
||||||
|
The main issue here is the ``waiting'' time between two scans that is in the order of 50ms.
|
||||||
|
By removing this waiting time (fairly easily), we can double the repetition rate at 10mm/s.
|
||||||
|
|
||||||
|
\begin{table}[htbp]
|
||||||
|
\centering
|
||||||
|
\begin{tabularx}{0.6\linewidth}{lXX}
|
||||||
|
\toprule
|
||||||
|
\(D_y\) Velocity & Repetition rate & Scans per turn (at 1RPM)\\
|
||||||
|
\midrule
|
||||||
|
0.1 mm/s & 4 s & 15\\
|
||||||
|
0.5 mm/s & 0.9 s & 65\\
|
||||||
|
1 mm/s & 0.5 s & 120\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
\caption{\label{tab:diffraction_tomo_velocities}\(D_y\) scaning repetition rate}
|
||||||
|
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
The scan results for a velocity of 1mm/s is shown in Figure \ref{fig:id31_diffraction_tomo_1mms}.
|
||||||
|
The \(D_z\) and \(R_y\) errors are quite small during the scan.
|
||||||
|
|
||||||
|
The \(D_y\) errors are quite large as the velocity is increased.
|
||||||
|
This type of scan can probably be massively improved by using feed-forward and optimizing the trajectory.
|
||||||
|
Also, if the detectors are triggered in position (the Speedgoat could generate an encoder signal for instance), we don't care about the \(D_y\) errors.
|
||||||
|
|
||||||
|
\begin{table}[htbp]
|
||||||
|
\centering
|
||||||
|
\begin{tabularx}{\linewidth}{lXX}
|
||||||
|
\toprule
|
||||||
|
Velocity & \(D_y\) [nmRMS] & \(D_z\) [nmRMS] & \(R_y\) [\(\mu\text{radRMS}\)]\\
|
||||||
|
\midrule
|
||||||
|
0.1 mm/s & 75.45 & 9.13 & 0.12\\
|
||||||
|
0.5 mm/s & 190.47 & 9.97 & 0.1\\
|
||||||
|
1 mm/s & 428.0 & 11.24 & 0.17\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
\caption{\label{tab:id31_diffraction_tomo_results}Obtained errors for several \(D_y\) velocities}
|
||||||
|
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\section*{Conclusion}
|
||||||
|
\label{ssec:test_id31_scans_conclusion}
|
||||||
|
|
||||||
|
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}.
|
||||||
|
|
||||||
|
\begin{table}[htbp]
|
||||||
|
\centering
|
||||||
|
\begin{tabularx}{\linewidth}{Xccc}
|
||||||
|
\toprule
|
||||||
|
& \(D_y\) [nmRMS] & \(D_z\) [nmRMS] & \(R_y\) [nradRMS]\\
|
||||||
|
\midrule
|
||||||
|
Tomography (\(R_z\) 1rpm) & 15 & 5 & 55\\
|
||||||
|
Tomography (\(R_z\) 6rpm) & 19 & 5 & 73\\
|
||||||
|
Tomography (\(R_z\) 30rpm) & 38 & 10 & 129\\
|
||||||
|
Dirty Layer (\(D_z\) \(10\,\mu m/s\)) & 25 & 5 & 114\\
|
||||||
|
Dirty Layer (\(D_z\) \(100\,\mu m/s\)) & 34 & 15 & 130\\
|
||||||
|
Reflectivity (\(R_y\) \(100\,\mu\text{rad}/s\)) & 28 & 6 & 118\\
|
||||||
|
Lateral Scan (\(D_y\) \(10\,\mu m/s\)) & 21 & 10 & 37\\
|
||||||
|
Diffraction Tomography (\(R_z\) 1rpm, \(D_y\) 0.1mm/s) & 75 & 9 & 118\\
|
||||||
|
Diffraction Tomography (\(R_z\) 1rpm, \(D_y\) 1mm/s) & 428 & 11 & 169\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
\caption{\label{tab:id31_experiments_results_summary}Table caption}
|
||||||
|
|
||||||
|
\end{table}
|
||||||
|
|
||||||
\printbibliography[heading=bibintoc,title={Bibliography}]
|
\printbibliography[heading=bibintoc,title={Bibliography}]
|
||||||
\end{document}
|
\end{document}
|
||||||
|