Large update
18
figs/inkscape/convert_svg.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Directory containing SVG files
|
||||||
|
INPUT_DIR="."
|
||||||
|
|
||||||
|
# Loop through all SVG files in the directory
|
||||||
|
for svg_file in "$INPUT_DIR"/*.svg; do
|
||||||
|
# Check if there are SVG files in the directory
|
||||||
|
if [ -f "$svg_file" ]; then
|
||||||
|
# Output PDF file name
|
||||||
|
pdf_file="../${svg_file%.svg}.pdf"
|
||||||
|
png_file="../${svg_file%.svg}"
|
||||||
|
|
||||||
|
# Convert SVG to PDF using Inkscape
|
||||||
|
inkscape "$svg_file" --export-filename="$pdf_file" && \
|
||||||
|
pdftocairo -png -singlefile -cropbox "$pdf_file" "$png_file"
|
||||||
|
fi
|
||||||
|
done
|
BIN
figs/inkscape/ustation_cad_view.svg
Normal file
After Width: | Height: | Size: 2.9 MiB |
BIN
figs/inkscape/ustation_combined_transformation.svg
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
figs/inkscape/ustation_compliance_meas.svg
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
figs/inkscape/ustation_errors_ty_setup.svg
Normal file
After Width: | Height: | Size: 1006 KiB |
BIN
figs/inkscape/ustation_hexapod_stage.svg
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
figs/inkscape/ustation_rotation.svg
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
figs/inkscape/ustation_ry_stage.svg
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
figs/inkscape/ustation_rz_stage.svg
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
figs/inkscape/ustation_simscape_stage_example.svg
Normal file
After Width: | Height: | Size: 150 KiB |
BIN
figs/inkscape/ustation_stage_motion.svg
Normal file
After Width: | Height: | Size: 150 KiB |
BIN
figs/inkscape/ustation_transformation.svg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
figs/inkscape/ustation_translation.svg
Normal file
After Width: | Height: | Size: 119 KiB |
BIN
figs/inkscape/ustation_ty_stage.svg
Normal file
After Width: | Height: | Size: 2.5 MiB |
BIN
figs/ustation_cad_view.pdf
Normal file
BIN
figs/ustation_cad_view.png
Normal file
After Width: | Height: | Size: 299 KiB |
BIN
figs/ustation_combined_transformation.pdf
Normal file
BIN
figs/ustation_combined_transformation.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
figs/ustation_comp_com_response_hexa_y.pdf
Normal file
BIN
figs/ustation_comp_com_response_hexa_y.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
figs/ustation_comp_com_response_ry_z.pdf
Normal file
BIN
figs/ustation_comp_com_response_ry_z.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
figs/ustation_comp_com_response_rz_x.pdf
Normal file
BIN
figs/ustation_comp_com_response_rz_x.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
figs/ustation_comp_com_response_rz_z.pdf
Normal file
BIN
figs/ustation_comp_com_response_rz_z.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
figs/ustation_compliance_meas.pdf
Normal file
BIN
figs/ustation_compliance_meas.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
figs/ustation_errors_dy_vertical.pdf
Normal file
BIN
figs/ustation_errors_dy_vertical.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
figs/ustation_errors_dy_vertical_remove_mean.pdf
Normal file
BIN
figs/ustation_errors_dy_vertical_remove_mean.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
figs/ustation_errors_spindle_axial.pdf
Normal file
BIN
figs/ustation_errors_spindle_axial.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
figs/ustation_errors_spindle_radial.pdf
Normal file
BIN
figs/ustation_errors_spindle_radial.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
figs/ustation_errors_spindle_tilt.pdf
Normal file
BIN
figs/ustation_errors_spindle_tilt.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
figs/ustation_errors_ty_setup.pdf
Normal file
BIN
figs/ustation_errors_ty_setup.png
Normal file
After Width: | Height: | Size: 326 KiB |
BIN
figs/ustation_frf_compliance_Rxyz.pdf
Normal file
BIN
figs/ustation_frf_compliance_Rxyz.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
figs/ustation_frf_compliance_Rxyz_model.pdf
Normal file
BIN
figs/ustation_frf_compliance_Rxyz_model.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
figs/ustation_frf_compliance_xyz.pdf
Normal file
BIN
figs/ustation_frf_compliance_xyz.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
figs/ustation_frf_compliance_xyz_model.pdf
Normal file
BIN
figs/ustation_frf_compliance_xyz_model.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
figs/ustation_hexapod_stage.pdf
Normal file
BIN
figs/ustation_hexapod_stage.png
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
figs/ustation_model_sensitivity_ground_motion.pdf
Normal file
BIN
figs/ustation_model_sensitivity_ground_motion.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
figs/ustation_model_sensitivity_rz.pdf
Normal file
BIN
figs/ustation_model_sensitivity_rz.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
figs/ustation_model_sensitivity_ty.pdf
Normal file
BIN
figs/ustation_model_sensitivity_ty.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
figs/ustation_rotation.pdf
Normal file
BIN
figs/ustation_rotation.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
figs/ustation_ry_stage.pdf
Normal file
BIN
figs/ustation_ry_stage.png
Normal file
After Width: | Height: | Size: 115 KiB |
BIN
figs/ustation_rz_meas_lion.jpg
Normal file
After Width: | Height: | Size: 649 KiB |
BIN
figs/ustation_rz_meas_lion_zoom.jpg
Normal file
After Width: | Height: | Size: 499 KiB |
BIN
figs/ustation_rz_stage.pdf
Normal file
BIN
figs/ustation_rz_stage.png
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
figs/ustation_simscape_stage_example.pdf
Normal file
BIN
figs/ustation_simscape_stage_example.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
figs/ustation_stage_motion.pdf
Normal file
BIN
figs/ustation_stage_motion.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
figs/ustation_transformation.pdf
Normal file
BIN
figs/ustation_transformation.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
figs/ustation_translation.pdf
Normal file
BIN
figs/ustation_translation.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
figs/ustation_ty_stage.pdf
Normal file
BIN
figs/ustation_ty_stage.png
Normal file
After Width: | Height: | Size: 200 KiB |
@ -19,6 +19,10 @@
|
|||||||
args.Fty_x logical {mustBeNumericOrLogical} = true
|
args.Fty_x logical {mustBeNumericOrLogical} = true
|
||||||
% Translation Stage - Z direction
|
% Translation Stage - Z direction
|
||||||
args.Fty_z logical {mustBeNumericOrLogical} = true
|
args.Fty_z logical {mustBeNumericOrLogical} = true
|
||||||
|
% Spindle - X direction
|
||||||
|
args.Frz_x logical {mustBeNumericOrLogical} = true
|
||||||
|
% Spindle - Y direction
|
||||||
|
args.Frz_y logical {mustBeNumericOrLogical} = true
|
||||||
% Spindle - Z direction
|
% Spindle - Z direction
|
||||||
args.Frz_z logical {mustBeNumericOrLogical} = true
|
args.Frz_z logical {mustBeNumericOrLogical} = true
|
||||||
end
|
end
|
||||||
@ -106,6 +110,38 @@
|
|||||||
Fty_z = zeros(length(t), 1);
|
Fty_z = zeros(length(t), 1);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
% if args.Frz_x && args.enable
|
||||||
|
% phi = dist_f.psd_rz;
|
||||||
|
% C = zeros(N/2,1);
|
||||||
|
% for i = 1:N/2
|
||||||
|
% C(i) = sqrt(phi(i)*df);
|
||||||
|
% end
|
||||||
|
% rng(131);
|
||||||
|
% theta = 2*pi*rand(N/2,1); % Generate random phase [rad]
|
||||||
|
% Cx = [0 ; C.*complex(cos(theta),sin(theta))];
|
||||||
|
% Cx = [Cx; flipud(conj(Cx(2:end)))];;
|
||||||
|
% u = N/sqrt(2)*ifft(Cx); % Disturbance Force Rz z [N]
|
||||||
|
% Frz_x = u;
|
||||||
|
% else
|
||||||
|
Frz_x = zeros(length(t), 1);
|
||||||
|
% end
|
||||||
|
|
||||||
|
% if args.Frz_y && args.enable
|
||||||
|
% phi = dist_f.psd_rz;
|
||||||
|
% C = zeros(N/2,1);
|
||||||
|
% for i = 1:N/2
|
||||||
|
% C(i) = sqrt(phi(i)*df);
|
||||||
|
% end
|
||||||
|
% rng(131);
|
||||||
|
% theta = 2*pi*rand(N/2,1); % Generate random phase [rad]
|
||||||
|
% Cx = [0 ; C.*complex(cos(theta),sin(theta))];
|
||||||
|
% Cx = [Cx; flipud(conj(Cx(2:end)))];;
|
||||||
|
% u = N/sqrt(2)*ifft(Cx); % Disturbance Force Rz z [N]
|
||||||
|
% Frz_z = u;
|
||||||
|
% else
|
||||||
|
Frz_y = zeros(length(t), 1);
|
||||||
|
% end
|
||||||
|
|
||||||
if args.Frz_z && args.enable
|
if args.Frz_z && args.enable
|
||||||
phi = dist_f.psd_rz;
|
phi = dist_f.psd_rz;
|
||||||
C = zeros(N/2,1);
|
C = zeros(N/2,1);
|
||||||
@ -134,14 +170,14 @@
|
|||||||
|
|
||||||
if exist('./mat', 'dir')
|
if exist('./mat', 'dir')
|
||||||
if exist('./mat/nass_disturbances.mat', 'file')
|
if exist('./mat/nass_disturbances.mat', 'file')
|
||||||
save('mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_z', 'Fd', 'Ts', 't', 'args', '-append');
|
save('mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_x', 'Frz_y', 'Frz_z', 'Fd', 'Ts', 't', 'args', '-append');
|
||||||
else
|
else
|
||||||
save('mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_z', 'Fd', 'Ts', 't', 'args');
|
save('mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_x', 'Frz_y', 'Frz_z', 'Fd', 'Ts', 't', 'args');
|
||||||
end
|
end
|
||||||
elseif exist('./matlab', 'dir')
|
elseif exist('./matlab', 'dir')
|
||||||
if exist('./matlab/mat/nass_disturbances.mat', 'file')
|
if exist('./matlab/mat/nass_disturbances.mat', 'file')
|
||||||
save('matlab/mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_z', 'Fd', 'Ts', 't', 'args', '-append');
|
save('matlab/mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_x', 'Frz_y', 'Frz_z', 'Fd', 'Ts', 't', 'args', '-append');
|
||||||
else
|
else
|
||||||
save('matlab/mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_z', 'Fd', 'Ts', 't', 'args');
|
save('matlab/mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_x', 'Frz_y', 'Frz_z', 'Fd', 'Ts', 't', 'args');
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
% Created 2024-10-30 Wed 10:53
|
% Created 2024-11-05 Tue 22:36
|
||||||
% 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}
|
||||||
|
|
||||||
@ -22,7 +22,6 @@
|
|||||||
\maketitle
|
\maketitle
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
|
|
||||||
\clearpage
|
|
||||||
|
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\caption{\label{tab:ustation_section_matlab_code}Report sections and corresponding Matlab files}
|
\caption{\label{tab:ustation_section_matlab_code}Report sections and corresponding Matlab files}
|
||||||
@ -31,23 +30,850 @@
|
|||||||
\toprule
|
\toprule
|
||||||
\textbf{Sections} & \textbf{Matlab File}\\
|
\textbf{Sections} & \textbf{Matlab File}\\
|
||||||
\midrule
|
\midrule
|
||||||
Section \ref{sec}: & \texttt{ustation\_1\_.m}\\
|
Section \ref{sec:ustation_kinematics} & \texttt{ustation\_1\_kinematics.m}\\
|
||||||
|
Section \ref{sec:ustation_modeling} & \texttt{ustation\_2\_modeling.m}\\
|
||||||
|
Section \ref{sec:ustation_disturbances} & \texttt{ustation\_3\_disturbances.m}\\
|
||||||
|
Section \ref{sec:ustation_experiments} & \texttt{ustation\_4\_experiments.m}\\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabularx}
|
\end{tabularx}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
|
|
||||||
\chapter{Micro-Station Kinematics}
|
\chapter{Micro-Station Kinematics}
|
||||||
\label{sec:ustation_kinematics}
|
\label{sec:ustation_kinematics}
|
||||||
\url{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/kinematics.org}
|
The micro-station consists of 4 stacked positioning stages (Figure \ref{fig:ustation_cad_view}).
|
||||||
\chapter{Stage Modeling}
|
From bottom to top, the stacked stages are the translation stage \(D_y\), the tilt stage \(R_y\), the rotation stage (Spindle) \(R_z\) and the positioning hexapod.
|
||||||
\label{sec:ustation_kinematics}
|
|
||||||
\chapter{Measurement of Positioning Errors}
|
Such stacked architecture allows high mobility, but the overall stiffness is reduced and the dynamics is very complex. complex dynamics.
|
||||||
\label{sec:ustation_kinematics}
|
The micro-station degrees-of-freedom are summarized in Table \ref{tab:ustation_dof_summary}.
|
||||||
\url{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/kinematics.org}
|
|
||||||
\chapter{Simulation of Scientific Experiments}
|
\begin{figure}[htbp]
|
||||||
\label{sec:ustation_kinematics}
|
\centering
|
||||||
|
\includegraphics[scale=1,width=\linewidth]{figs/ustation_cad_view.png}
|
||||||
|
\caption{\label{fig:ustation_cad_view}CAD view of the micro-station with the translation stage (in blue), the tilt stage (in red), the rotation stage (in yellow) and the positioning hexapod (in purple). On top of these four stages, a solid part (shown in green) will be replaced by the stabilization stage.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{table}[htbp]
|
||||||
|
\caption{\label{tab:ustation_dof_summary}Summary of the micro-station degrees-of-freedom}
|
||||||
|
\centering
|
||||||
|
\begin{tabularx}{\linewidth}{lX}
|
||||||
|
\toprule
|
||||||
|
\textbf{Stage} & \textbf{Degrees of Freedom}\\
|
||||||
|
\midrule
|
||||||
|
Translation stage & \(D_y = \pm 10\,mm\)\\
|
||||||
|
Tilt stage & \(R_y = \pm 3\,\text{deg}\)\\
|
||||||
|
Spindle & \(R_z = 360\,\text{deg}\)\\
|
||||||
|
Micro Hexapod & \(D_{xyz} = \pm 10\,mm\), \(R_{xyz} = \pm 3\,\text{deg}\)\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
There are different ways of modelling the stage dynamics in a multi-body model.
|
||||||
|
The one chosen in this work consists of modelling each stage by two solid bodies connected by one 6-DoF joint.
|
||||||
|
The stiffness and damping properties of the joint can be tuned separately for each DoF.
|
||||||
|
|
||||||
|
The ``controlled'' DoF of each stage (for instance the \(D_y\) direction for the translation stage) is modelled as infinitely rigid (i.e. its motion is imposed by a ``setpoint'') while the other DoFs have limited stiffness to model the different micro-station modes.
|
||||||
|
\section{Motion Stages}
|
||||||
|
\label{ssec:ustation_stages}
|
||||||
|
|
||||||
|
\paragraph{Translation Stage}
|
||||||
|
|
||||||
|
The translation stage is used to position and scan the sample laterally with respect to the X-ray beam.
|
||||||
|
|
||||||
|
A linear motor was first used to be able to perform fast and accurate scans.
|
||||||
|
It was later replaced with a stepper motor and lead-screw, as the feedback control used for the linear motor was unreliable, probably caused by rust of the linear guides along its stroke.
|
||||||
|
An optical linear encoder is used to measure the stage motion and for PID control of the position.
|
||||||
|
|
||||||
|
Four cylindrical bearings\footnote{Ball cage (N501) and guide bush (N550) from Mahr are used} are used to guide the motion (i.e. minimize the parasitic motions) and have high stiffness.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_ty_stage.png}
|
||||||
|
\caption{\label{fig:ustation_ty_stage}Translation Stage}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\paragraph{Tilt Stage}
|
||||||
|
|
||||||
|
The tilt stage is guided by four linear motion guides\footnote{HCR 35 A C1, from THK} which are placed such that the center of rotation coincide with the X-ray beam.
|
||||||
|
Each linear guide has high stiffness in radial directions such that the only DoF with low stiffness is in \(R_y\).
|
||||||
|
|
||||||
|
This stage is mainly used for \emph{reflectivity} experiments where the sample \(R_y\) angle is scanned.
|
||||||
|
This stage can also be used to tilt the rotation axis of the Spindle.
|
||||||
|
|
||||||
|
To precisely control the \(R_y\) angle, a stepper motor as well as two optical encoders are used in a PID feedback loop.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_ry_stage.png}
|
||||||
|
\caption{\label{fig:ustation_ry_stage}Tilt Stage}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\paragraph{Spindle}
|
||||||
|
|
||||||
|
Then, a rotation stage is used for tomography experiments.
|
||||||
|
It is composed of an air bearing spindle\footnote{Made by LAB Motion Systems}, whose angular position is controlled with a 3 phase synchronous motor based on the reading of 4 optical encoders.
|
||||||
|
|
||||||
|
Additional rotary unions and slip-rings to be able to pass through the rotation many electrical signals and fluids and gazes.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_rz_stage.png}
|
||||||
|
\caption{\label{fig:ustation_rz_stage}Rotation Stage (Spindle)}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\paragraph{Micro-Hexapod}
|
||||||
|
|
||||||
|
Finally, a Stewart platform\footnote{Modified Zonda Hexapod by Symetrie} is used to position the sample.
|
||||||
|
It includes a DC motor and an optical linear encoders in each of the six strut.
|
||||||
|
|
||||||
|
It is used to position the point of interest of the sample with respect to the spindle rotation axis.
|
||||||
|
It can also be used to precisely position the PoI vertically with respect to the x-ray.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_hexapod_stage.png}
|
||||||
|
\caption{\label{fig:ustation_hexapod_stage}Micro Hexapod}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Mathematical description of a rigid body motion}
|
||||||
|
\label{ssec:ustation_motion_description}
|
||||||
|
The goal here is to introduce mathematical tools\footnote{The tools presented here are largely taken from \cite{taghirad13_paral}.} that are used to describe the motion of positioning stages and ultimately the sample.
|
||||||
|
|
||||||
|
First, the tools to described the pose of a solid body (i.e. it's position and orientation) are introduced.
|
||||||
|
Then, the motion induced by a positioning stage is described using transformation matrices.
|
||||||
|
Finally, the motion of all stacked stages are combined, and the sample's motion is computed from each stage motion.
|
||||||
|
\paragraph{Spatial motion representation}
|
||||||
|
|
||||||
|
The \emph{pose} of a solid body with respect to a specific frame can be described by six independent parameters.
|
||||||
|
Three parameters are usually describing its position, and three other parameters are describing its orientation.
|
||||||
|
|
||||||
|
The \emph{position} of a point \(P\) with respect to a frame \(\{A\}\) can be described by a \(3 \times 1\) position vector \eqref{eq:ustation_position}.
|
||||||
|
The name of the frame is usually added as a leading superscript: \({}^AP\) which reads as vector \(P\) in frame \(\{A\}\).
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_position}
|
||||||
|
{}^AP = \begin{bmatrix} P_x\\ P_y\\ P_z \end{bmatrix}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
A pure translation of a solid body (i.e. of a frame \(\{B\}\) attached to the solid body) can be described by the position \({}^AP_{O_B}\) as shown in Figure \ref{fig:ustation_translation}.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=0.8]{figs/ustation_translation.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_translation}Pure translation}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=0.8]{figs/ustation_rotation.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_rotation}Pure rotation}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,scale=0.8]{figs/ustation_transformation.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_transformation}General transformation}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_transformation_schematics}Rigid body motion representation. (\subref{fig:ustation_translation}) pure translation. (\subref{fig:ustation_rotation}) pure rotation. (\subref{fig:ustation_transformation}) combined rotation and translation.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The \emph{orientation} of a rigid body is the same for all its points (by definition).
|
||||||
|
Hence, the orientation of a rigid body can be viewed as that for the orientation of a moving frame attached to the rigid body.
|
||||||
|
It can be represented in several different ways: the rotation matrix, the screw axis representation and Euler angles are common descriptions.
|
||||||
|
|
||||||
|
A rotation matrix \({}^A\mathbf{R}_B\) is a \(3 \times 3\) matrix containing the Cartesian unit vectors of frame \(\{\mathbf{B}\}\) represented in frame \(\{\mathbf{A}\}\) \eqref{eq:ustation_rotation_matrix}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_rotation_matrix}
|
||||||
|
{}^A\mathbf{R}_B = \left[ {}^A\hat{\mathbf{x}}_B | {}^A\hat{\mathbf{y}}_B | {}^A\hat{\mathbf{z}}_B \right] = \begin{bmatrix}
|
||||||
|
u_{x} & v_{x} & z_{x} \\
|
||||||
|
u_{y} & v_{y} & z_{y} \\
|
||||||
|
u_{z} & v_{z} & z_{z}
|
||||||
|
\end{bmatrix}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Consider a pure rotation of a rigid body (\(\{\bm{A}\}\) and \(\{\bm{B}\}\) are coincident at their origins, as shown in Figure \ref{fig:ustation_rotation}).
|
||||||
|
The rotation matrix can be used to express the coordinates of a point \(P\) in a fixed frame \(\{A\}\) (i.e. \({}^AP\)) from its coordinate in the moving frame \(\{B\}\) using Equation \eqref{eq:ustation_rotation}.
|
||||||
|
|
||||||
|
\begin{equation} \label{eq:ustation_rotation}
|
||||||
|
{}^AP = {}^A\mathbf{R}_B {}^BP
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
|
||||||
|
For rotations along \(x\), \(y\) or \(z\) axis, formulas are given in Equation \eqref{eq:ustation_rotation_matrices_xyz}.
|
||||||
|
|
||||||
|
\begin{subequations}\label{eq:ustation_rotation_matrices_xyz}
|
||||||
|
\begin{align}
|
||||||
|
\mathbf{R}_x(\theta_x) &= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta_x) & -\sin(\theta_x) \\ 0 & \sin(\theta_x) & \cos(\theta_x) \end{bmatrix} \\
|
||||||
|
\mathbf{R}_y(\theta_y) &= \begin{bmatrix} \cos(\theta_y) & 0 & \sin(\theta_y) \\ 0 & 1 & 0 \\ -\sin(\theta_y) & 0 & \cos(\theta_y) \end{bmatrix} \\
|
||||||
|
\mathbf{R}_z(\theta_z) &= \begin{bmatrix} \cos(\theta_z) & -\sin(\theta_z) & 0 \\ \sin(\theta_z) & \cos(\theta_x) & 0 \\ 0 & 0 & 1 \end{bmatrix}
|
||||||
|
\end{align}
|
||||||
|
\end{subequations}
|
||||||
|
|
||||||
|
Sometimes, it is useful to express a rotation as a combination of three rotations described by \(\mathbf{R}_x\), \(\mathbf{R}_y\) and \(\mathbf{R}_z\).
|
||||||
|
As the order of rotation is very important\footnote{Rotations are non commutative in 3D}, in this work we choose to express rotations as three successive rotations about the coordinate axes of the moving frame eqref;eq:ustation\_rotation\_combination.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_rotation_combination}
|
||||||
|
{}^A\mathbf{R}_B(\alpha, \beta, \gamma) = \mathbf{R}_u(\alpha) \mathbf{R}_v(\beta) \mathbf{R}_c(\gamma)
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Such rotation can be parameterized by three Euler angles \((\alpha,\ \beta,\ \gamma)\), which can be computed from a given rotation matrix using equations \eqref{eq:ustation_euler_angles}.
|
||||||
|
|
||||||
|
\begin{subequations}\label{eq:ustation_euler_angles}
|
||||||
|
\begin{align}
|
||||||
|
\alpha &= \text{atan2}(-R_{23}/\cos(\beta),\ R_{33}/\cos(\beta)) \\
|
||||||
|
\beta &= \text{atan2}( R_{13},\ \sqrt{R_{11}^2 + R_{12}^2}) \\
|
||||||
|
\gamma &= \text{atan2}(-R_{12}/\cos(\beta),\ R_{11}/\cos(\beta))
|
||||||
|
\end{align}
|
||||||
|
\end{subequations}
|
||||||
|
|
||||||
|
\paragraph{Motion of a Rigid Body}
|
||||||
|
|
||||||
|
Since the relative positions of a rigid body with respect to a moving frame \(\{B\}\) attached to it is fixed for all time, it is sufficient to know the position of the origin of the frame \(O_B\) and the orientation of the frame \(\{B\}\) with respect to the fixed frame \(\{A\}\), to represent the position of any point \(P\) in the space.
|
||||||
|
|
||||||
|
Therefore, the pose of a rigid body, can be fully determined by:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item The position vector of point \(O_B\) with respect to frame \(\{A\}\) which is denoted \({}^AP_{O_B}\)
|
||||||
|
\item The orientation of the rigid body, or the moving frame \(\{B\}\) attached to it with respect to the fixed frame \(\{A\}\), that is represented by \({}^A\mathbf{R}_B\).
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
The position of any point \(P\) of the rigid body with respect to the fixed frame \(\{\mathbf{A}\}\), which is denoted \({}^A\mathbf{P}\) may be determined thanks to the \emph{Chasles' theorem}, which states that if the pose of a rigid body \(\{{}^A\mathbf{R}_B, {}^AP_{O_B}\}\) is given, then the position of any point \(P\) of this rigid body with respect to \(\{\mathbf{A}\}\) is given by Equation \eqref{eq:ustation_chasles_therorem}.
|
||||||
|
|
||||||
|
\begin{equation} \label{eq:ustation_chasles_therorem}
|
||||||
|
{}^AP = {}^A\mathbf{R}_B {}^BP + {}^AP_{O_B}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
While equation \eqref{eq:ustation_chasles_therorem} can describe the motion of a rigid body, it can be written in a more convenient way using \(4 \times 4\) homogeneous transformation matrices and \(4 \times 1\) homogeneous coordinates.
|
||||||
|
The homogeneous transformation matrix is composed of the rotation matrix \({}^A\mathbf{R}_B\) representing the orientation and the position vector \({}^AP_{O_B}\) representing the translation.
|
||||||
|
It is partitioned as shown in Equation \eqref{eq:ustation_homogeneous_transformation_parts}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_homogeneous_transformation_parts}
|
||||||
|
{}^A\mathbf{T}_B =
|
||||||
|
\left[ \begin{array}{ccc|c}
|
||||||
|
& & & \\
|
||||||
|
& {}^A\mathbf{R}_B & & {}^AP_{O_B} \\
|
||||||
|
& & & \cr
|
||||||
|
\hline
|
||||||
|
0 & 0 & 0 & 1
|
||||||
|
\end{array} \right]
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Then, \({}^AP\) can be computed from \({}^BP\) and the homogeneous transformation matrix using \eqref{eq:ustation_homogeneous_transformation}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_homogeneous_transformation}
|
||||||
|
\left[ \begin{array}{c} \\ {}^AP \\ \cr \hline 1 \end{array} \right]
|
||||||
|
=
|
||||||
|
\left[ \begin{array}{ccc|c}
|
||||||
|
& & & \\
|
||||||
|
& {}^A\mathbf{R}_B & & {}^AP_{O_B} \\
|
||||||
|
& & & \cr
|
||||||
|
\hline
|
||||||
|
0 & 0 & 0 & 1
|
||||||
|
\end{array} \right]
|
||||||
|
\left[ \begin{array}{c} \\ {}^BP \\ \cr \hline 1 \end{array} \right] \quad \Rightarrow \quad {}^AP = {}^A\mathbf{R}_B {}^BP + {}^AP_{O_B}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
One key advantage of using homogeneous transformation is that it can easily be generalized for consecutive transformations.
|
||||||
|
Let us consider the motion of a rigid body described at three locations (Figure \ref{fig:ustation_combined_transformation}).
|
||||||
|
Frame \(\{A\}\) represents the initial location, frame \(\{B\}\) is an intermediate location, and frame \(\{C\}\) represents the rigid body at its final location.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_combined_transformation.png}
|
||||||
|
\caption{\label{fig:ustation_combined_transformation}Motion of a rigid body represented at three locations by frame \(\{A\}\), \(\{B\}\) and \(\{C\}\)}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Furthermore, suppose the position vector of a point \(P\) of the rigid body is given in the final location, that is \({}^CP\) is given, and the position of this point is to be found in the fixed frame \(\{A\}\), that is \({}^AP\).
|
||||||
|
Since the locations of the rigid body is known relative to each other, \({}^CP\) can be transformed to \({}^BP\) using \({}^B\mathbf{T}_C\) using \({}^BP = {}^B\mathbf{T}_C {}^CP\).
|
||||||
|
Similarly, \({}^BP\) can be transformed into \({}^AP\) using \({}^AP = {}^A\mathbf{T}_B {}^BP\).
|
||||||
|
|
||||||
|
Combining the two relations, Equation \eqref{eq:ustation_consecutive_transformations} is obtained.
|
||||||
|
This shows that combining multiple transformations is equivalent as to compute \(4 \times 4\) matrix multiplications.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_consecutive_transformations}
|
||||||
|
{}^AP = \underbrace{{}^A\mathbf{T}_B {}^B\mathbf{T}_C}_{{}^A\mathbf{T}_C} {}^CP
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Another key advantage of using homogeneous transformation is the easy inverse transformation that can be computed using Equation \eqref{eq:ustation_inverse_homogeneous_transformation}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_inverse_homogeneous_transformation}
|
||||||
|
{}^B\mathbf{T}_A = {}^A\mathbf{T}_B^{-1} =
|
||||||
|
\left[ \begin{array}{ccc|c}
|
||||||
|
& & & \\
|
||||||
|
& {}^A\mathbf{R}_B^T & & -{}^A \mathbf{R}_B^T {}^AP_{O_B} \\
|
||||||
|
& & & \cr
|
||||||
|
\hline
|
||||||
|
0 & 0 & 0 & 1 \\
|
||||||
|
\end{array} \right]
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\section{Micro-Station Kinematics}
|
||||||
|
\label{ssec:ustation_kinematics}
|
||||||
|
|
||||||
|
Each stage is described by two frames, one is attached to the fixed platform \(\{A\}\) while the other is fixed to the mobile platform \(\{B\}\).
|
||||||
|
At ``rest'' position, the two are having the same pose and coincide with the point of interest (\(O_A = O_B\)).
|
||||||
|
An example is shown in Figure \ref{fig:ustation_stage_motion} for the tilt-stage.
|
||||||
|
Note that the mobile frame of the translation stage equals the fixed frame of the tilt stage: \(\{B_{D_y}\} = \{A_{R_y}\}\).
|
||||||
|
Similarly, the mobile frame of the tilt stage equals the fixed frame of the spindle: \(\{B_{R_y}\} = \{A_{R_z}\}\).
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_stage_motion.png}
|
||||||
|
\caption{\label{fig:ustation_stage_motion}Example of the motion induced by the tilt-stage \(R_y\). ``Rest'' position in shown in blue while a arbitrary position in shown in red. Parasitic motions are here magnified for clarity.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The motion induced by a positioning stage may be described by a homogeneous transformation matrix from frame \(\{A\}\) to frame \(\{B\}\) as explain in Section \ref{ssec:ustation_kinematics}.
|
||||||
|
As any motion stage induces parasitic motion in all 6 DoF, the transformation matrix representing its induced motion can be written as in \eqref{eq:ustation_translation_stage_errors}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_translation_stage_errors}
|
||||||
|
{}^A\mathbf{T}_B(D_x, D_y, D_z, \theta_x, \theta_y, \theta_z) =
|
||||||
|
\left[ \begin{array}{ccc|c}
|
||||||
|
& & & D_x \\
|
||||||
|
& \mathbf{R}_x(\theta_x) \mathbf{R}_y(\theta_y) \mathbf{R}_z(\theta_z) & & D_y \\
|
||||||
|
& & & D_z \cr
|
||||||
|
\hline
|
||||||
|
0 & 0 & 0 & 1
|
||||||
|
\end{array} \right]
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
The homogeneous transformation matrix corresponding to the micro-station \(\mathbf{T}_{\mu\text{-station}}\) is simply equal to the matrix multiplication of the homogeneous transformation matrices of the individual stages as shown in Equation \eqref{eq:ustation_transformation_station}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_transformation_station}
|
||||||
|
\mathbf{T}_{\mu\text{-station}} = \mathbf{T}_{D_y} \cdot \mathbf{T}_{R_y} \cdot \mathbf{T}_{R_z} \cdot \mathbf{T}_{\mu\text{-hexapod}}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\(\mathbf{T}_{\mu\text{-station}}\) represents the pose of the sample (supposed to be rigidly fixed on top of the positioning-hexapod) with respect to the granite.
|
||||||
|
|
||||||
|
If the transformation matrices of the individual stages are representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), \(\mathbf{T}_{\mu\text{-station}}\) is representing the pose setpoint of the sample with respect to the granite.
|
||||||
|
The transformation matrices for the translation stage, tilt stage, spindle and positioning hexapod can be written as shown in Equation \eqref{eq:ustation_transformation_matrices_stages}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
|
||||||
|
\begin{align}
|
||||||
|
\mathbf{T}_{D_y} &= \begin{bmatrix}
|
||||||
|
1 & 0 & 0 & 0 \\
|
||||||
|
0 & 1 & 0 & D_y \\
|
||||||
|
0 & 0 & 1 & 0 \\
|
||||||
|
0 & 0 & 0 & 1
|
||||||
|
\end{bmatrix} \quad
|
||||||
|
\mathbf{T}_{\mu\text{-hexapod}} =
|
||||||
|
\left[ \begin{array}{ccc|c}
|
||||||
|
& & & D_{\mu x} \\
|
||||||
|
& \mathbf{R}_x(\theta_{\mu x}) \mathbf{R}_y(\theta_{\mu y}) \mathbf{R}_{z}(\theta_{\mu z}) & & D_{\mu y} \\
|
||||||
|
& & & D_{\mu z} \cr
|
||||||
|
\hline
|
||||||
|
0 & 0 & 0 & 1
|
||||||
|
\end{array} \right] \\
|
||||||
|
\mathbf{T}_{R_z} &= \begin{bmatrix}
|
||||||
|
\cos(\theta_z) & -\sin(\theta_z) & 0 & 0 \\
|
||||||
|
\sin(\theta_z) & \cos(\theta_z) & 0 & 0 \\
|
||||||
|
0 & 0 & 1 & 0 \\
|
||||||
|
0 & 0 & 0 & 1
|
||||||
|
\end{bmatrix} \quad
|
||||||
|
\mathbf{T}_{R_y} = \begin{bmatrix}
|
||||||
|
\cos(\theta_y) & 0 & \sin(\theta_y) & 0 \\
|
||||||
|
0 & 1 & 0 & 0 \\
|
||||||
|
-\sin(\theta_y) & 0 & \cos(\theta_y) & 0 \\
|
||||||
|
0 & 0 & 0 & 1
|
||||||
|
\end{bmatrix}
|
||||||
|
\end{align}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\chapter{Micro-Station Dynamics}
|
||||||
|
\label{sec:ustation_modeling}
|
||||||
|
In this section, the Simscape model of the micro-station is briefly presented.
|
||||||
|
It consists of several rigid bodies connected by springs and dampers.
|
||||||
|
The inertia of the solid bodies as well as the stiffness properties of the guiding mechanisms are first estimated based on the CAD model and part data-sheets (Section \ref{ssec:ustation_model_simscape}).
|
||||||
|
|
||||||
|
The obtained dynamics is then compared with the modal analysis performed on the micro-station (Section \ref{ssec:ustation_meas_compliance}).
|
||||||
|
|
||||||
|
As the dynamics of the nano-hexapod is impacted by the micro-station compliance, the most important dynamical characteristic that should be well modeled is the overall compliance of the micro-station.
|
||||||
|
To do so, the 6-DoF compliance of the micro-station is measured (Section \ref{ssec:ustation_meas_compliance}) and then compared with the 6-DoF compliance extracted from the Simscape model (Section \ref{ssec:ustation_model_compliance}).
|
||||||
|
\section{Multi-Body Model}
|
||||||
|
\label{ssec:ustation_model_simscape}
|
||||||
|
|
||||||
|
By performing a modal analysis of the micro-station, it could be verified that in the frequency range of interest, each stage behaved as a rigid body.
|
||||||
|
This confirms that a multi-body model can be used to properly model the micro-station.
|
||||||
|
|
||||||
|
A multi-body model consists of several solid bodies connected with joints.
|
||||||
|
Each solid body can be represented by inertia properties (most of the time computed automatically from the 3D model and material density).
|
||||||
|
Joints are used to impose kinematic constraints between solid bodies, and to specify dynamical properties (i.e. spring stiffness and damping coefficient).
|
||||||
|
External forces can be used to model disturbances, and ``sensors'' can be used to measure the relative pose between two defined frames.
|
||||||
|
|
||||||
|
The micro-station is therefore modeled by several solid bodies connected by joints.
|
||||||
|
A typical stage (here the tilt-stage) is modelled as shown in Figure \ref{fig:ustation_simscape_stage_example} where two solid bodies (the fixed part and the mobile part) are connected by a 6-DoF joint.
|
||||||
|
One DoF of the 6-DoF joint is ``imposed'' by a setpoint (i.e. modeled as infinitely stiff) while the other 5 are each modelled by a spring and a damper.
|
||||||
|
Additional forces can be used to model disturbances induced by the stage motion.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_simscape_stage_example.png}
|
||||||
|
\caption{\label{fig:ustation_simscape_stage_example}Example of a stage (here the tilt-stage) represented in the multi-body model (Simscape). It is composed of two solid bodies connected by a 6-DoF joint. One joint DoF (here the tilt angle) can be imposed, the other ones are represented by springs and dampers. Additional disturbances forces for all DoF can be included}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The Ground is modelled by a solid body connected to the ``world frame'' through a joint only allowing 3 translations.
|
||||||
|
The granite is then connected to the ground by a 6-DoF joint.
|
||||||
|
The translation stage is connected to the granite by a 6-DoF joint, but the \(D_y\) motion is imposed.
|
||||||
|
Similarly, the tilt-stage and the spindle are connected to the stage below using a 6-DoF joint, with 1-DoF being imposed.
|
||||||
|
Finally, the positioning hexapod has 6-DoF.
|
||||||
|
|
||||||
|
The total number of ``free'' degrees of freedom is 27, and therefore the model has 54 states.
|
||||||
|
The springs and dampers values were first estimated from the joints/stages specifications and were later fined tuned based on measurements.
|
||||||
|
The spring values are summarized in Table \ref{tab:ustation_6dof_stiffness_values}.
|
||||||
|
|
||||||
|
\begin{table}[htbp]
|
||||||
|
\caption{\label{tab:ustation_6dof_stiffness_values}Summary of the stage stiffnesses. Contrained degrees-of-freedom are indicated by ``-''. The location of the 6-DoF joints in which the stiffnesses are defined are indicated by the frame in figures of Section \ref{ssec:ustation_stages}}
|
||||||
|
\centering
|
||||||
|
\begin{tabularx}{\linewidth}{Xcccccc}
|
||||||
|
\toprule
|
||||||
|
\textbf{Stage} & \(D_x\) & \(D_y\) & \(D_z\) & \(R_x\) & \(R_y\) & \(R_z\)\\
|
||||||
|
\midrule
|
||||||
|
Granite & \(5\,kN/\mu m\) & \(5\,kN/\mu m\) & \(5\,kN/\mu m\) & \(25\,Nm/\mu\text{rad}\) & \(25\,Nm/\mu\text{rad}\) & \(10\,Nm/\mu\text{rad}\)\\
|
||||||
|
Translation & \(200\,N/\mu m\) & - & \(200\,N/\mu m\) & \(60\,Nm/\mu\text{rad}\) & \(90\,Nm/\mu\text{rad}\) & \(60\,Nm/\mu\text{rad}\)\\
|
||||||
|
Tilt & \(380\,N/\mu m\) & \(400\,N/\mu m\) & \(380\,N/\mu m\) & \(120\,Nm/\mu\text{rad}\) & - & \(120\,Nm/\mu\text{rad}\)\\
|
||||||
|
Spindle & \(700\,N/\mu m\) & \(700\,N/\mu m\) & \(2\,kN/\mu m\) & \(10\,Nm/\mu\text{rad}\) & \(10\,Nm/\mu\text{rad}\) & -\\
|
||||||
|
Hexapod & \(10\,N/\mu m\) & \(10\,N/\mu m\) & \(100\,N/\mu m\) & \(1.5\,Nm/rad\) & \(1.5\,Nm/rad\) & \(0.27\,Nm/rad\)\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\section{With comparison with the measurements}
|
||||||
|
|
||||||
|
The dynamics of the micro-station was measured by placing accelerometers on each stage and by impacting the translation stage with an instrumented hammer in three directions.
|
||||||
|
The obtained FRF were then projected at the CoM of each stage.
|
||||||
|
|
||||||
|
In order to have a first idea of the accuracy of the obtained model, the FRF from the hammer impacts to the acceleration of each stage is extracted from the Simscape model and compared with the measurements in Figure \ref{fig:ustation_comp_com_response}.
|
||||||
|
|
||||||
|
Even though there is some similarity between the model and the measurements (similar overall shapes and amplitudes), it is clear that the Simscape model does not represent very accurately the complex micro-station dynamics.
|
||||||
|
Tuning the numerous model parameters to better match the measurements is an highly non-linear optimization problem which is difficult to solve in practice.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_comp_com_response_rz_x.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_comp_com_response_rz_x}Spindle, $x$ response}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_comp_com_response_hexa_y.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_comp_com_response_hexa_y}Hexapod, $y$ response}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_comp_com_response_ry_z.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_comp_com_response_ry_z}Tilt, $z$ response}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_comp_com_response}FRF between the hammer impacts on the translation stage and measured stage acceleration expressed at its CoM. Comparison of the measured FRF and the ones extracted from the Simscape model. Different directions are computed and for different stages.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Micro-station compliance - Measurement}
|
||||||
|
\label{ssec:ustation_meas_compliance}
|
||||||
|
|
||||||
|
As was shown in the previous section, the dynamics of the micro-station is complex and tuning the multi-body model parameters to obtain a perfect match is hard.
|
||||||
|
|
||||||
|
When considering the NASS, the most important dynamical characteristics of the micro-station is its compliance as it is what can impact the plant dynamics.
|
||||||
|
The adopted strategy is therefore to accurately model the micro-station compliance.
|
||||||
|
|
||||||
|
The micro-station compliance is experimentally measured using the setup schematically shown in Figure \ref{fig:ustation_compliance_meas}.
|
||||||
|
Four 3-axis accelerometers are fixed to the micro-hexapod top platform.
|
||||||
|
The micro-hexapod top platform is impacted at 10 different points.
|
||||||
|
For each impact position, 10 impacts are performed for averaging and improving the data quality.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_compliance_meas.png}
|
||||||
|
\caption{\label{fig:ustation_compliance_meas}Schematic of the measurement setup to estimate the compliance of the micro-station. The top platform of the positioning hexapod is shown with four 3-axis accelerometers (shown in red) are on top. 10 hammer impacts are performed at different locations (shown in blue).}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
To convert the 12 acceleration signals \(a_{\mathcal{L}} = [a_{1x}\ a_{1y}\ a_{1z}\ a_{2x}\ \dots\ a_{4z}]\) to the acceleration expressed in the frame \(\{\mathcal{X}\}\) \(a_{\mathcal{X}} = [a_{dx}\ a_{dy}\ a_{dz}\ a_{rx}\ a_{ry}\ a_{rz}]\), a Jacobian matrix \(\mathbf{J}_a\) is written based on the positions and orientations of the accelerometers \eqref{eq:ustation_compliance_acc_jacobian}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_compliance_acc_jacobian}
|
||||||
|
\mathbf{J}_a = \begin{bmatrix}
|
||||||
|
1 & 0 & 0 & 0 & 0 &-d \\
|
||||||
|
0 & 1 & 0 & 0 & 0 & 0 \\
|
||||||
|
0 & 0 & 1 & d & 0 & 0 \\
|
||||||
|
1 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
0 & 1 & 0 & 0 & 0 &-d \\
|
||||||
|
0 & 0 & 1 & 0 & d & 0 \\
|
||||||
|
1 & 0 & 0 & 0 & 0 & d \\
|
||||||
|
0 & 1 & 0 & 0 & 0 & 0 \\
|
||||||
|
0 & 0 & 1 &-d & 0 & 0 \\
|
||||||
|
1 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
0 & 1 & 0 & 0 & 0 & d \\
|
||||||
|
0 & 0 & 1 & 0 &-d & 0
|
||||||
|
\end{bmatrix}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Then, the acceleration in the cartesian frame can be computed using \eqref{eq:ustation_compute_cart_acc}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_compute_cart_acc}
|
||||||
|
a_{\mathcal{X}} = \mathbf{J}_a^\dagger \cdot a_{\mathcal{L}}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Similar to what is done for the accelerometers, a Jacobian matrix \(\mathbf{J}_F\) is computed \eqref{eq:ustation_compliance_force_jacobian} and used to convert the individual hammer forces \(F_{\mathcal{L}}\) to force and torques \(F_{\mathcal{X}}\) applied at the center of the micro-hexapod top plate (defined by frame \(\{\mathcal{X}\}\) in Figure \ref{fig:ustation_compliance_meas}).
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_compliance_force_jacobian}
|
||||||
|
\mathbf{J}_F = \begin{bmatrix}
|
||||||
|
0 & -1 & 0 & 0 & 0 & 0\\
|
||||||
|
0 & 0 & -1 & -d & 0 & 0\\
|
||||||
|
1 & 0 & 0 & 0 & 0 & 0\\
|
||||||
|
0 & 0 & -1 & 0 & -d & 0\\
|
||||||
|
0 & 1 & 0 & 0 & 0 & 0\\
|
||||||
|
0 & 0 & -1 & d & 0 & 0\\
|
||||||
|
-1 & 0 & 0 & 0 & 0 & 0\\
|
||||||
|
0 & 0 & -1 & 0 & d & 0\\
|
||||||
|
-1 & 0 & 0 & 0 & 0 & -d\\
|
||||||
|
-1 & 0 & 0 & 0 & 0 & d
|
||||||
|
\end{bmatrix}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Force and torques applied at center of \(\{\mathcal{X}\}\) are then computed using \eqref{eq:ustation_compute_cart_force}.
|
||||||
|
|
||||||
|
\begin{equation}\label{eq:ustation_compute_cart_force}
|
||||||
|
F_{\mathcal{X}} = \mathbf{J}_F^t \cdot F_{\mathcal{L}}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Using the two Jacobian matrices, the FRF from the 10 hammer impacts to the 12 accelerometer outputs can be converted to the FRF from 6 forces/torques applied at the origin of frame \(\{\mathcal{X}\}\) to the 6 linear/angular accelerations of the top platform expressed with respect to \(\{\mathcal{X}\}\).
|
||||||
|
The obtained FRF from forces to linear motion are shown in Figure \ref{fig:ustation_frf_compliance_xyz} while the FRF from torques to angular motion are shown in Figure \ref{fig:ustation_frf_compliance_Rxyz}.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.95\linewidth]{figs/ustation_frf_compliance_xyz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_frf_compliance_xyz}sub caption a}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.95\linewidth]{figs/ustation_frf_compliance_Rxyz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_frf_compliance_Rxyz}sub caption b}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_frf_compliance}Measured FRF of the compliance of the micro-station expressed in frame \(\{\mathcal{X}\}\). Both translation terms (\subref{fig:ustation_frf_compliance_xyz}) and rotational terms (\subref{fig:ustation_frf_compliance_Rxyz}) are displayed.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Compare with the Model}
|
||||||
|
\label{ssec:ustation_model_compliance}
|
||||||
|
|
||||||
|
The compliance of the micro-station is extracted from the Simscape model by computing the transfer function from forces/torques applied to the positioning hexapod's top platform to the ``absolute'' motion of the top platform.
|
||||||
|
These are compared with the measurements in Figure \ref{fig:ustation_frf_compliance_model}.
|
||||||
|
Considering how complex the micro-station compliance dynamics is, the model compliance is matching sufficiently well the measurements for the current application.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.95\linewidth]{figs/ustation_frf_compliance_xyz_model.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_frf_compliance_xyz_model}sub caption a}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.95\linewidth]{figs/ustation_frf_compliance_Rxyz_model.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_frf_compliance_Rxyz_model}sub caption b}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_frf_compliance_model}Measured FRF of the compliance of the micro-station expressed in frame \(\{\mathcal{X}\}\). Both translation terms (\subref{fig:ustation_frf_compliance_xyz_model}) and rotational terms (\subref{fig:ustation_frf_compliance_Rxyz_model}) are displayed.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\chapter{Estimation of disturbances}
|
\chapter{Estimation of disturbances}
|
||||||
|
\label{sec:ustation_disturbances}
|
||||||
|
The goal in this section is to obtain realistic representation of disturbances affecting the micro-station.
|
||||||
|
These disturbance sources will then be used during time domain simulations to accurately model the micro-station behavior.
|
||||||
|
The focus is made on stochastic disturbances, as it is in principle possible to calibrate the repeatable part of disturbances.
|
||||||
|
Such disturbance includes ground motion, and vibrations induces by the scanning of the translation stage and the spindle.
|
||||||
|
|
||||||
|
In the multi-body model, stage vibrations are modelled as internal forces applied in the stage's joint.
|
||||||
|
In practice, the disturbance forces cannot be directly measured, and the effect of those perturbations on the vibration of the micro-station's top platform is measured instead (Section \ref{ssec:ustation_disturbances_meas}).
|
||||||
|
|
||||||
|
To estimate the equivalent disturbance force that induces such vibration, the transfer function from disturbances sources (i.e. forces applied in the stages' joint) to the displacement of the micro-station's top platform with respect to the granite are extracted from the Simscape model (Section \ref{ssec:ustation_disturbances_sensitivity}).
|
||||||
|
Finally, the obtained disturbance sources are compared in Section \ref{ssec:ustation_disturbances_results}.
|
||||||
|
\section{Measurements of disturbances}
|
||||||
|
\label{ssec:ustation_disturbances_meas}
|
||||||
|
In this section, the ground motion disturbances is directly measured using geophones.
|
||||||
|
Vibrations induced by the scanning of the translation stage and of the spindle are also measured using dedicated setups.
|
||||||
|
|
||||||
|
The tilt stage and the micro-hexapod also have positioning errors, they are however not modelled here as these two stages are only used for pre-positioning and not for scanning.
|
||||||
|
Therefore, from a control point of view, they are not important.
|
||||||
|
\paragraph{Ground Motion}
|
||||||
|
|
||||||
|
The ground motion is simply measured by using a sensitive 3-axis geophone placed on the ground.
|
||||||
|
The generated voltages are recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
|
||||||
|
|
||||||
|
\paragraph{Ty Stage}
|
||||||
|
|
||||||
|
To measure the positioning errors of the translation stage, the setup shown in Figure \ref{fig:ustation_errors_ty_setup} is used.
|
||||||
|
A special optical element (called a ``straightness interferometer''\footnote{The special optics (straightness interferometer and reflector) are the manufactured by Agilent (10774A).}) is fixed on top of the micro-station, while a laser source\footnote{Laser source is manufactured by Agilent (5519b)} and a straightness reflector are fixed on the ground.
|
||||||
|
A similar setup is used to measure the horizontal deviation (i.e. in the \(x\) direction), as well as the pitch and yaw errors of the translation stage.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/ustation_errors_ty_setup.png}
|
||||||
|
\caption{\label{fig:ustation_errors_ty_setup}Experimental setup to measure the flatness (vertical deviation) of the translation stage}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Six scans are performed between \(-4.5\,mm\) and \(4.5\,mm\).
|
||||||
|
The results for each individual scan are shown in Figure \ref{fig:ustation_errors_dy_vertical}.
|
||||||
|
As the measurement axis may not be perfectly aligned with the displacement axis of the translation stage, a linear fit may be removed from the measurement.
|
||||||
|
The remaining vertical displacement is shown in Figure \ref{fig:ustation_errors_dy_vertical_remove_mean}.
|
||||||
|
A vertical error of \(\pm300\,nm\) induced by the translation stage is to be expected.
|
||||||
|
Similar result is obtain for the \(x\) lateral direction.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.95\linewidth]{figs/ustation_errors_dy_vertical.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_errors_dy_vertical}Measured vertical error}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.95\linewidth]{figs/ustation_errors_dy_vertical_remove_mean.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_errors_dy_vertical_remove_mean}Error after removing linear fit}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_errors_dy}Measurement of the linear (vertical) deviation of the Translation stage (\subref{fig:ustation_errors_dy_vertical}). A linear fit is then removed from the data (\subref{fig:ustation_errors_dy_vertical_remove_mean}).}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\paragraph{Spindle}
|
||||||
|
|
||||||
|
In order to measure the positioning errors induced by the Spindle, a ``Spindle error analyzer''\footnote{The Spindle Error Analyzer is made by Lion Precision.} is used as shown in Figure \ref{fig:ustation_rz_meas_lion_setup}.
|
||||||
|
A specific target is fixed on top of the micro-station which consists of two sphere with 1 inch diameter precisely aligned with the spindle rotation axis.
|
||||||
|
Five capacitive sensors\footnote{C8 capacitive sensors and CPL290 capacitive driver electronics from Lion Precision} are pointing at the two spheres as shown in Figure \ref{fig:ustation_rz_meas_lion_zoom}.
|
||||||
|
From the 5 measured displacements \([d_1,\,d_2,\,d_3,\,d_4,\,d_5]\), the translations and rotations \([D_x,\,D_y,\,D_z,\,R_x,\,R_y]\) of the target can be estimated.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_rz_meas_lion.jpg}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_rz_meas_lion}Micro-station and 5-DoF metrology}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_rz_meas_lion_zoom.jpg}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_rz_meas_lion_zoom}Zoom on the metrology system}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_rz_meas_lion_setup}Experimental setup used to estimate the errors induced by the Spindle rotation (\subref{fig:ustation_rz_meas_lion}). The motion of the two reference sphere is done using 5 capacitive sensors (\subref{fig:ustation_rz_meas_lion_zoom})}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
A measurement is performed at 60rpm during 10 turns, and the obtained results are shown in Figure \ref{fig:ustation_errors_spindle}.
|
||||||
|
A fraction of the radial (Figure \ref{fig:ustation_errors_spindle_radial}) and tilt (Figure \ref{fig:ustation_errors_spindle_tilt}) errors is linked to the fact that the two spheres are not perfectly aligned with the rotation axis of the Spindle.
|
||||||
|
However, it is in practice very difficult to align the ``point-of-interest'' of the sample with the rotation axis, so the NASS will be used to actively keep the PoI on the rotation axis.
|
||||||
|
The vertical motion induced by the scanning of the spindle is in the order of \(\pm 30\,nm\) (Figure \ref{fig:ustation_errors_spindle_axial}).
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_errors_spindle_radial.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_errors_spindle_radial}Radial errors}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_errors_spindle_axial.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_errors_spindle_axial}Axial error}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_errors_spindle_tilt.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_errors_spindle_tilt}Tilt errors}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_errors_spindle}Measurement of the radial (\subref{fig:ustation_errors_spindle_radial}), axial (\subref{fig:ustation_errors_spindle_axial}) and tilt (\subref{fig:ustation_errors_spindle_tilt}) Spindle errors.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Sensitivity to disturbances}
|
||||||
|
\label{ssec:ustation_disturbances_sensitivity}
|
||||||
|
|
||||||
|
In order to compute the disturbance source (i.e. forces) that induced the measured vibrations in Section \ref{ssec:ustation_disturbances_meas}, the transfer function from the disturbance sources to the stage vibration (i.e. the ``sensitivity to disturbances'') needs to be estimated.
|
||||||
|
This is done using the multi-body that was presented in Section \ref{sec:ustation_modeling}.
|
||||||
|
|
||||||
|
The obtained transfer functions are shown in Figure \ref{fig:ustation_model_sensitivity}.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_model_sensitivity_ground_motion.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_model_sensitivity_ground_motion}Ground motion}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_model_sensitivity_ty.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_model_sensitivity_ty}Translation stage}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.33\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,width=0.9\linewidth]{figs/ustation_model_sensitivity_rz.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:ustation_model_sensitivity_rz}Spindle}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:ustation_model_sensitivity}Extracted transfer functions from disturbances to relative motion between the micro-station's top platform and the granite. The considered disturbances are the ground motion (\subref{fig:ustation_model_sensitivity_ground_motion}), the translation stage vibrations (\subref{fig:ustation_model_sensitivity_ty}), and the spindle vibrations (\subref{fig:ustation_model_sensitivity_rz}).}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Obtained disturbance sources}
|
||||||
|
\label{ssec:ustation_disturbances_results}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item[{$\square$}] Display PSD of disturbances
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The obtained amplitude spectral densities of the disturbance forces are shown in Figure \ref{fig:dist_force_psd}.
|
||||||
|
|
||||||
|
\chapter{Simulation of Scientific Experiments}
|
||||||
|
\label{sec:ustation_experiments}
|
||||||
|
The goal here is to simulate some scientific experiments with the Simscape model when no control is applied to the nano-hexapod.
|
||||||
|
|
||||||
|
This has several goals:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Validate the model
|
||||||
|
\item Estimate the expected error motion for the experiments
|
||||||
|
\item Estimate the stroke that we may need for the nano-hexapod
|
||||||
|
\item Compare with experiments when control is applied
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The document in organized as follow:
|
||||||
|
\begin{itemize}
|
||||||
|
\item In section \ref{sec:simscape_model} the Simscape model is initialized
|
||||||
|
\item In section \ref{sec:tomo_no_dist} a tomography experiment is performed where the sample is aligned with the rotation axis. No disturbance is included
|
||||||
|
\item In section \ref{sec:tomo_dist}, the same is done but with disturbance included
|
||||||
|
\item In section \ref{sec:tomo_hexa_trans} the micro-hexapod translate the sample such that its center of mass is no longer aligned with the rotation axis. No disturbance is included
|
||||||
|
\item In section \ref{sec:ty_scans}, scans with the translation stage are simulated with no perturbation included
|
||||||
|
\end{itemize}
|
||||||
|
\section{Simscape Model}
|
||||||
|
\label{sec:simscape_model}
|
||||||
|
|
||||||
|
We load the shared simulink configuration and we set the \texttt{StopTime}.
|
||||||
|
We first initialize all the stages.
|
||||||
|
The nano-hexapod is considered to be a rigid body.
|
||||||
|
No controller is used (Open Loop).
|
||||||
|
We don't gravity.
|
||||||
|
We log the signals for further analysis.
|
||||||
|
\section{Tomography Experiment with no disturbances}
|
||||||
|
\label{sec:tomo_no_dist}
|
||||||
|
In this section, a tomography experiment is performed with the sample aligned with the rotation axis.
|
||||||
|
No disturbance is included.
|
||||||
|
\subsection{Simulation Setup}
|
||||||
|
And we initialize the disturbances to be equal to zero.
|
||||||
|
We initialize the reference path for all the stages.
|
||||||
|
All stage is set to its zero position except the Spindle which is rotating at 60rpm.
|
||||||
|
We simulate the model.
|
||||||
|
And we save the obtained data.
|
||||||
|
\subsection{Analysis}
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/exp_tomo_without_dist.png}
|
||||||
|
\caption{\label{fig:exp_tomo_without_dist}X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (\href{./figs/exp\_tomo\_without\_dist.png}{png}, \href{./figs/exp\_tomo\_without\_dist.pdf}{pdf})}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
When everything is aligned, the resulting error motion is very small (nm range) and is quite negligible with respect to the error when disturbances are included.
|
||||||
|
This residual error motion probably comes from a small misalignment somewhere.
|
||||||
|
\end{important}
|
||||||
|
|
||||||
|
\section{Tomography Experiment with included perturbations}
|
||||||
|
\label{sec:tomo_dist}
|
||||||
|
In this section, we also perform a tomography experiment with the sample's center of mass aligned with the rotation axis.
|
||||||
|
However this time, we include perturbations such as ground motion and stage vibrations.
|
||||||
|
\subsection{Simulation Setup}
|
||||||
|
We now activate the disturbances.
|
||||||
|
We initialize the reference path for all the stages.
|
||||||
|
All stage is set to its zero position except the Spindle which is rotating at 60rpm.
|
||||||
|
We simulate the model.
|
||||||
|
And we save the obtained data.
|
||||||
|
\subsection{Analysis}
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/exp_tomo_dist.png}
|
||||||
|
\caption{\label{fig:exp_tomo_dist}X-Y-Z translations and rotations of the sample w.r.t. the granite when performing tomography experiment with disturbances (\href{./figs/exp\_tomo\_dist.png}{png}, \href{./figs/exp\_tomo\_dist.pdf}{pdf})}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
Here, no vibration is included in the X and Y directions.
|
||||||
|
\end{important}
|
||||||
|
|
||||||
|
\section{Tomography Experiment with Ty raster scans}
|
||||||
|
\label{sec:tomo_dist_ty_scans}
|
||||||
|
In this section, we also perform a tomography experiment with scans of the Translation stage.
|
||||||
|
All the perturbations are included.
|
||||||
|
\subsection{Simulation Setup}
|
||||||
|
We now activate the disturbances.
|
||||||
|
We initialize the reference path for all the stages.
|
||||||
|
The Spindle which is rotating at 60rpm and the translation stage not moving as it would take a long time to simulate.
|
||||||
|
However, vibrations of the Ty stage are included.
|
||||||
|
We simulate the model.
|
||||||
|
And we save the obtained data.
|
||||||
|
\subsection{Analysis}
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/exp_scans_rz_dist.png}
|
||||||
|
\caption{\label{fig:exp_scans_rz_dist}X-Y-Z translations and rotations of the sample w.r.t. the granite when performing tomography experiment and scans with the translation stage at the same time}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Conclusion}
|
||||||
|
|
||||||
|
\section{Tomography when the micro-hexapod is not centered}
|
||||||
|
\label{sec:tomo_hexa_trans}
|
||||||
|
In this section, the sample's center of mass is not aligned with the rotation axis anymore.
|
||||||
|
This is due to the fact that the micro-hexapod has performed some displacement.
|
||||||
|
|
||||||
|
No disturbances are included.
|
||||||
|
\subsection{Simulation Setup}
|
||||||
|
We first set the wanted translation of the Micro Hexapod.
|
||||||
|
We initialize the reference path.
|
||||||
|
We initialize the stages.
|
||||||
|
And we initialize the disturbances to zero.
|
||||||
|
We simulate the model.
|
||||||
|
And we save the obtained data.
|
||||||
|
\subsection{Analysis}
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/exp_tomo_offset.png}
|
||||||
|
\caption{\label{fig:exp_tomo_offset}X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (\href{./figs/exp\_tomo\_offset.png}{png}, \href{./figs/exp\_tomo\_offset.pdf}{pdf})}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
The main motion error are 1Hz X-Y translations and constant Ry error.
|
||||||
|
This is mainly due to finite stiffness of the elements.
|
||||||
|
\end{important}
|
||||||
|
|
||||||
|
\section{Raster Scans with the translation stage}
|
||||||
|
\label{sec:ty_scans}
|
||||||
|
In this section, scans with the translation stage are performed.
|
||||||
|
\subsection{Simulation Setup}
|
||||||
|
We initialize the stages.
|
||||||
|
And we initialize the disturbances to zero.
|
||||||
|
We set the reference path to be a triangular signal for the Translation Stage.
|
||||||
|
We simulate the model.
|
||||||
|
And we save the obtained data.
|
||||||
|
We now set the reference path to be a sinusoidal signal for the Translation Stage.
|
||||||
|
We simulate the model.
|
||||||
|
And we save the obtained data.
|
||||||
|
\subsection{Analysis}
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/exp_ty_scan.png}
|
||||||
|
\caption{\label{fig:exp_ty_scan}X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (\href{./figs/exp\_ty\_scan.png}{png}, \href{./figs/exp\_ty\_scan.pdf}{pdf})}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
Scans with the translation stage induces some errors in the Y direction and Rx translations.
|
||||||
|
|
||||||
|
Also, scanning with a sinusoidal wave induces less position errors and at lower frequencies.
|
||||||
|
Thus, this should be preferred.
|
||||||
|
\end{important}
|
||||||
\chapter{Conclusion}
|
\chapter{Conclusion}
|
||||||
\label{sec:uniaxial_conclusion}
|
\label{sec:uniaxial_conclusion}
|
||||||
|
|
||||||
|