Christophe's review
This commit is contained in:
parent
6876adf4f7
commit
e753cb6e75
@ -6,7 +6,7 @@
|
||||
version="1.2"
|
||||
id="svg251"
|
||||
sodipodi:docname="ustation_stage_motion.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
@ -21,15 +21,15 @@
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="pt"
|
||||
showgrid="false"
|
||||
inkscape:zoom="5.656854"
|
||||
inkscape:cx="239.35566"
|
||||
inkscape:cy="59.131807"
|
||||
inkscape:zoom="2.828427"
|
||||
inkscape:cx="134.52707"
|
||||
inkscape:cy="70.710681"
|
||||
inkscape:window-width="2534"
|
||||
inkscape:window-height="1367"
|
||||
inkscape:window-x="11"
|
||||
inkscape:window-y="60"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g28"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
@ -1645,5 +1645,16 @@
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal';text-align:center;text-anchor:middle;fill:#a2142f;stroke-width:0.75"
|
||||
x="-66.452881"
|
||||
y="32.661747"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:10px;fill:#a2142f;stroke-width:0.75"
|
||||
x="-66.452881"
|
||||
y="32.661747"
|
||||
id="tspan2">X-ray</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 151 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 49 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 25 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -12,6 +12,11 @@
|
||||
\setabbreviationstyle[acronym]{long-short}
|
||||
\setglossarystyle{long-name-desc}
|
||||
|
||||
\usepackage{amssymb}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{cases}
|
||||
\usepackage{empheq}
|
||||
|
||||
\makeindex
|
||||
\makeglossaries
|
||||
|
||||
|
@ -344,17 +344,6 @@ To do so, the effects of these disturbances were first measured experimental and
|
||||
|
||||
To validate the accuracy of the micro-station model, "real world" experiments are simulated and compared with measurements in Section ref:sec:ustation_experiments.
|
||||
|
||||
# #+name: tab:ustation_section_matlab_code
|
||||
# #+caption: Report sections and corresponding Matlab files
|
||||
# #+attr_latex: :environment tabularx :width 0.6\linewidth :align lX
|
||||
# #+attr_latex: :center t :booktabs t
|
||||
# | *Sections* | *Matlab File* |
|
||||
# |---------------------------------------+-----------------------------|
|
||||
# | Section ref:sec:ustation_kinematics | =ustation_1_kinematics.m= |
|
||||
# | Section ref:sec:ustation_modeling | =ustation_2_modeling.m= |
|
||||
# | Section ref:sec:ustation_disturbances | =ustation_3_disturbances.m= |
|
||||
# | Section ref:sec:ustation_experiments | =ustation_4_experiments.m= |
|
||||
|
||||
* Micro-Station Kinematics
|
||||
:PROPERTIES:
|
||||
:HEADER-ARGS:matlab+: :tangle matlab/ustation_1_kinematics.m
|
||||
@ -364,10 +353,10 @@ To validate the accuracy of the micro-station model, "real world" experiments ar
|
||||
|
||||
The micro-station consists of 4 stacked positioning stages (Figure ref:fig:ustation_cad_view).
|
||||
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.
|
||||
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex. complex dynamics.
|
||||
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex.
|
||||
|
||||
#+name: fig:ustation_cad_view
|
||||
#+caption: CAD view of the micro-station with the translation stage (in blue), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple). On top of these four stages, a solid part (shown in green) will be replaced by the stabilization stage.
|
||||
#+caption: CAD view of the micro-station with the translation stage (in blue), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple).
|
||||
#+attr_latex: :width \linewidth
|
||||
[[file:figs/ustation_cad_view.png]]
|
||||
|
||||
@ -415,7 +404,7 @@ The "controlled" DoF of each stage (for instance the $D_y$ direction for the tra
|
||||
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 enable 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[fn:ustation_12].
|
||||
It was later replaced with a stepper motor and lead-screw, as the feedback control used for the linear motor was unreliable[fn:ustation_11].
|
||||
An optical linear encoder is used to measure the stage motion and for controlling the position.
|
||||
|
||||
Four cylindrical bearings[fn:ustation_4] are used to guide the motion (i.e. minimize the parasitic motions) and have high stiffness.
|
||||
@ -529,14 +518,10 @@ The /orientation/ of a rigid body is the same at all its points (by definition).
|
||||
Hence, the orientation of a rigid body can be viewed as that 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 the Euler angles are common descriptions.
|
||||
|
||||
The rotation matrix ${}^A\bm{R}_B$ is a $3 \times 3$ matrix containing the Cartesian unit vectors of frame $\{\bm{B}\}$ represented in frame $\{\bm{A}\}$ eqref:eq:ustation_rotation_matrix.
|
||||
The rotation matrix ${}^A\bm{R}_B$ is a $3 \times 3$ matrix containing the Cartesian unit vectors $[{}^A\hat{\bm{x}}_B,\ {}^A\hat{\bm{y}}_B,\ {}^A\hat{\bm{z}}_B]$ of frame $\{\bm{B}\}$ represented in frame $\{\bm{A}\}$ eqref:eq:ustation_rotation_matrix.
|
||||
|
||||
\begin{equation}\label{eq:ustation_rotation_matrix}
|
||||
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{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}
|
||||
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{z}}_B \right]
|
||||
\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).
|
||||
@ -553,7 +538,7 @@ For rotations along $x$, $y$ or $z$ axis, the formulas of the corresponding rota
|
||||
\begin{align}
|
||||
\bm{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} \\
|
||||
\bm{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} \\
|
||||
\bm{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}
|
||||
\bm{R}_z(\theta_z) &= \begin{bmatrix} \cos(\theta_z) & -\sin(\theta_z) & 0 \\ \sin(\theta_z) & \cos(\theta_z) & 0 \\ 0 & 0 & 1 \end{bmatrix}
|
||||
\end{align}
|
||||
\end{subequations}
|
||||
|
||||
@ -643,7 +628,7 @@ Another key advantage of homogeneous transformation is the easy inverse transfor
|
||||
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
|
||||
\left[ \begin{array}{ccc|c}
|
||||
& & & \\
|
||||
& {}^A\bm{R}_B^T & & -{}^A \bm{R}_B^T {}^AP_{O_B} \\
|
||||
& {}^A\bm{R}_B^{\intercal} & & -{}^A \bm{R}_B^{\intercal} {}^AP_{O_B} \\
|
||||
& & & \cr
|
||||
\hline
|
||||
0 & 0 & 0 & 1 \\
|
||||
@ -685,8 +670,9 @@ The homogeneous transformation matrix corresponding to the micro-station $\bm{T}
|
||||
|
||||
$\bm{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 each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), $\bm{T}_{\mu\text{-station}}$ then represent the pose setpoint of the sample with respect to the granite.
|
||||
If the transformation matrices of the individual stages are each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), $\bm{T}_{\mu\text{-station}}$ then represents 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.
|
||||
The setpoints are $D_y$ for the translation stage, $\theta_y$ for the tilt-stage, $\theta_z$ for the spindle, $[D_{\mu x},\ D_{\mu y}, D_{\mu z}]$ for the micro-hexapod translations and $[\theta_{\mu x},\ \theta_{\mu y}, \theta_{\mu z}]$ for the micro-hexapod rotations.
|
||||
|
||||
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
|
||||
\begin{align}
|
||||
@ -845,7 +831,7 @@ Joints are used to impose kinematic constraints between solid bodies and to spec
|
||||
External forces can be used to model disturbances, and "sensors" can be used to measure the relative pose between two defined frames.
|
||||
|
||||
#+name: fig:ustation_simscape_stage_example
|
||||
#+caption: Example of a stage (here the tilt-stage) represented in the multi-body model software (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 DoFs are represented by springs and dampers. Additional disturbances forces for all DoF can be included
|
||||
#+caption: Example of a stage (here the tilt-stage) represented in the multi-body model software (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 DoFs are represented by springs and dampers. Additional disturbing forces for all DoF can be included
|
||||
[[file:figs/ustation_simscape_stage_example.png]]
|
||||
|
||||
Therefore, the micro-station is modeled by several solid bodies connected by joints.
|
||||
@ -1095,7 +1081,7 @@ Similar to what is done for the accelerometers, a Jacobian matrix $\bm{J}_F$ is
|
||||
The equivalent forces 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}} = \bm{J}_F^t \cdot F_{\mathcal{L}}
|
||||
F_{\mathcal{X}} = \bm{J}_F^{\intercal} \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}\}$.
|
||||
@ -1348,8 +1334,8 @@ exportFig('figs/ustation_frf_compliance_Rxyz_model.pdf', 'width', 'half', 'heigh
|
||||
|
||||
The goal of this section is to obtain a realistic representation of disturbances affecting the micro-station.
|
||||
These disturbance sources are then used during time domain simulations to accurately model the micro-station behavior.
|
||||
The focus on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
||||
Such disturbances include ground motions and vibrations induces by scanning the translation stage and the spindle.
|
||||
The focus is on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
||||
Such disturbances include ground motions and vibrations induce by scanning the translation stage and the spindle.
|
||||
|
||||
In the multi-body model, stage vibrations are modeled as internal forces applied in the stage joint.
|
||||
In practice, disturbance forces cannot be directly measured.
|
||||
@ -1398,7 +1384,7 @@ Therefore, from a control perspective, they are not important.
|
||||
|
||||
**** Ground Motion
|
||||
|
||||
The ground motion was measured by using a sensitive 3-axis geophone[fn:ustation_11] placed on the ground.
|
||||
The ground motion was measured by using a sensitive 3-axis geophone shown in Figure ref:fig:ustation_geophone_picture placed on the ground.
|
||||
The generated voltages were recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
|
||||
The obtained ground motion displacement is shown in Figure ref:fig:ustation_ground_disturbance.
|
||||
|
||||
@ -1470,7 +1456,7 @@ A special optical element (called a "straightness interferometer"[fn:ustation_9]
|
||||
A similar setup was used to measure the horizontal deviation (i.e. in the $x$ direction), as well as the pitch and yaw errors of the translation stage.
|
||||
|
||||
#+name: fig:ustation_errors_ty_setup
|
||||
#+caption: Experimental setup to measure the flatness (vertical deviation) of the translation stage
|
||||
#+caption: Experimental setup to measure the straightness (vertical deviation) of the translation stage
|
||||
[[file:figs/ustation_errors_ty_setup.png]]
|
||||
|
||||
Six scans were performed between $-4.5\,mm$ and $4.5\,mm$.
|
||||
@ -1513,7 +1499,7 @@ exportFig('figs/ustation_errors_dy_vertical.pdf', 'width', 'half', 'height', 'no
|
||||
%% Measurement of the linear (vertical) deviation of the Translation stage - Remove best linear fit
|
||||
figure;
|
||||
plot(ty_errors.setpoint, ty_errors.ty_z - straight_line, 'k-')
|
||||
xlabel('$D_y$ position [mm]'); ylabel('Vertical error [$\mu$m]');
|
||||
xlabel('$D_y$ position [mm]'); ylabel('Residual vertical error [$\mu$m]');
|
||||
xlim([-5, 5]); ylim([-0.4, 0.4]);
|
||||
#+end_src
|
||||
|
||||
@ -1963,7 +1949,7 @@ exportFig('figs/ustation_dist_source_spindle.pdf', 'width', 'third', 'height', '
|
||||
|
||||
The disturbances are characterized by their power spectral densities, as shown in Figure ref:fig:ustation_dist_sources.
|
||||
However, to perform time domain simulations, disturbances must be represented by a time domain signal.
|
||||
To generate stochastic time-domain signals with a specific power spectral densities, the discrete inverse Fourier transform is used, as explained in [[cite:&preumont94_random_vibrat_spect_analy chap. 12.11]].
|
||||
To generate stochastic time-domain signals with a specific power spectral density, the discrete inverse Fourier transform is used, as explained in [[cite:&preumont94_random_vibrat_spect_analy chap. 12.11]].
|
||||
Examples of the obtained time-domain disturbance signals are shown in Figure ref:fig:ustation_dist_sources_time.
|
||||
|
||||
#+begin_src matlab
|
||||
@ -2192,7 +2178,7 @@ exportFig('figs/ustation_errors_model_spindle_axial.pdf', 'width', 'half', 'heig
|
||||
#+end_subfigure
|
||||
#+end_figure
|
||||
|
||||
** Raster Scans with the translation stage
|
||||
** Scans with the translation stage
|
||||
<<sec:ustation_experiments_ty_scans>>
|
||||
|
||||
A second experiment was performed in which the translation stage was scanned at constant velocity.
|
||||
@ -4538,7 +4524,7 @@ Note that there is trade-off between:
|
||||
:END:
|
||||
|
||||
**** Theory
|
||||
For inverse kinematic analysis, it is assumed that the position ${}^A\bm{P}$ and orientation of the moving platform ${}^A\bm{R}_B$ are given and the problem is to obtain the joint variables, namely, $\bm{L} = [l_1, l_2, \dots, l_6]^T$.
|
||||
For inverse kinematic analysis, it is assumed that the position ${}^A\bm{P}$ and orientation of the moving platform ${}^A\bm{R}_B$ are given and the problem is to obtain the joint variables, namely, $\bm{L} = [l_1, l_2, \dots, l_6]^{\intercal}$.
|
||||
|
||||
From the geometry of the manipulator, the loop closure for each limb, $i = 1, 2, \dots, 6$ can be written as
|
||||
\begin{align*}
|
||||
@ -4548,12 +4534,12 @@ From the geometry of the manipulator, the loop closure for each limb, $i = 1, 2,
|
||||
|
||||
To obtain the length of each actuator and eliminate $\hat{\bm{s}}_i$, it is sufficient to dot multiply each side by itself:
|
||||
\begin{equation}
|
||||
l_i^2 \left[ {}^A\hat{\bm{s}}_i^T {}^A\hat{\bm{s}}_i \right] = \left[ {}^A\bm{P} + {}^A\bm{R}_B {}^B\bm{b}_i - {}^A\bm{a}_i \right]^T \left[ {}^A\bm{P} + {}^A\bm{R}_B {}^B\bm{b}_i - {}^A\bm{a}_i \right]
|
||||
l_i^2 \left[ {}^A\hat{\bm{s}}_i^{\intercal} {}^A\hat{\bm{s}}_i \right] = \left[ {}^A\bm{P} + {}^A\bm{R}_B {}^B\bm{b}_i - {}^A\bm{a}_i \right]^{\intercal} \left[ {}^A\bm{P} + {}^A\bm{R}_B {}^B\bm{b}_i - {}^A\bm{a}_i \right]
|
||||
\end{equation}
|
||||
|
||||
Hence, for $i = 1, 2, \dots, 6$, each limb length can be uniquely determined by:
|
||||
\begin{equation}
|
||||
l_i = \sqrt{{}^A\bm{P}^T {}^A\bm{P} + {}^B\bm{b}_i^T {}^B\bm{b}_i + {}^A\bm{a}_i^T {}^A\bm{a}_i - 2 {}^A\bm{P}^T {}^A\bm{a}_i + 2 {}^A\bm{P}^T \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^T {}^A\bm{a}_i}
|
||||
l_i = \sqrt{{}^A\bm{P}^{\intercal} {}^A\bm{P} + {}^B\bm{b}_i^{\intercal} {}^B\bm{b}_i + {}^A\bm{a}_i^{\intercal} {}^A\bm{a}_i - 2 {}^A\bm{P}^{\intercal} {}^A\bm{a}_i + 2 {}^A\bm{P}^{\intercal} \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^{\intercal} {}^A\bm{a}_i}
|
||||
\end{equation}
|
||||
|
||||
If the position and orientation of the moving platform lie in the feasible workspace of the manipulator, one unique solution to the limb length is determined by the above equation.
|
||||
@ -4613,8 +4599,7 @@ Otherwise, when the limbs' lengths derived yield complex numbers, then the posit
|
||||
|
||||
* Footnotes
|
||||
|
||||
[fn:ustation_12]It was probably caused by rust of the linear guides along its stroke.
|
||||
[fn:ustation_11]A 3-Axis L4C geophone manufactured Sercel was used.
|
||||
[fn:ustation_11]It was probably caused by rust of the linear guides along its stroke.
|
||||
[fn:ustation_10]Laser source is manufactured by Agilent (5519b).
|
||||
[fn:ustation_9]The special optics (straightness interferometer and reflector) are manufactured by Agilent (10774A).
|
||||
[fn:ustation_8]C8 capacitive sensors and CPL290 capacitive driver electronics from Lion Precision.
|
||||
|
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
% Created 2025-03-25 Tue 22:22
|
||||
% Created 2025-04-07 Mon 16:40
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
pdftitle={Multi-Body Model - Micro Station},
|
||||
pdfkeywords={},
|
||||
pdfsubject={},
|
||||
pdfcreator={Emacs 29.4 (Org mode 9.6)},
|
||||
pdfcreator={Emacs 30.1 (Org mode 9.7.26)},
|
||||
pdflang={English}}
|
||||
\usepackage{biblatex}
|
||||
|
||||
@ -23,7 +23,6 @@
|
||||
\tableofcontents
|
||||
|
||||
\clearpage
|
||||
|
||||
From the start of this work, it became increasingly clear that an accurate micro-station model was necessary.
|
||||
|
||||
First, during the uniaxial study, it became clear that the micro-station dynamics affects the nano-hexapod dynamics.
|
||||
@ -43,18 +42,16 @@ Disturbances affecting the positioning accuracy also need to be modeled properly
|
||||
To do so, the effects of these disturbances were first measured experimental and then injected into the multi-body model (Section \ref{sec:ustation_disturbances}).
|
||||
|
||||
To validate the accuracy of the micro-station model, ``real world'' experiments are simulated and compared with measurements in Section \ref{sec:ustation_experiments}.
|
||||
|
||||
|
||||
\chapter{Micro-Station Kinematics}
|
||||
\label{sec:ustation_kinematics}
|
||||
The micro-station consists of 4 stacked positioning stages (Figure \ref{fig:ustation_cad_view}).
|
||||
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.
|
||||
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex. complex dynamics.
|
||||
Such a stacked architecture allows high mobility, but the overall stiffness is reduced, and the dynamics is very complex.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\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), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple). On top of these four stages, a solid part (shown in green) will be replaced by the stabilization stage.}
|
||||
\caption{\label{fig:ustation_cad_view}CAD view of the micro-station with the translation stage (in blue), tilt stage (in red), rotation stage (in yellow) and positioning hexapod (in purple).}
|
||||
\end{figure}
|
||||
|
||||
There are different ways of modeling the stage dynamics in a multi-body model.
|
||||
@ -65,7 +62,6 @@ s can be tuned separately for each DoF.
|
||||
The ``controlled'' DoF of each stage (for instance the \(D_y\) direction for the translation stage) is modeled 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.
|
||||
@ -75,7 +71,6 @@ It was later replaced with a stepper motor and lead-screw, as the feedback contr
|
||||
An optical linear encoder is used to measure the stage motion and for controlling 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.
|
||||
|
||||
\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.
|
||||
@ -99,14 +94,12 @@ To precisely control the \(R_y\) angle, a stepper motor and two optical encoders
|
||||
\captionof{figure}{\label{fig:ustation_ry_stage}Tilt Stage}
|
||||
\end{center}
|
||||
\end{minipage}
|
||||
|
||||
\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 are used to be able to pass electrical signals, fluids and gazes through the rotation stage.
|
||||
|
||||
\paragraph{Micro-Hexapod}
|
||||
|
||||
Finally, a Stewart platform\footnote{Modified Zonda Hexapod by Symetrie.} is used to position the sample.
|
||||
@ -128,7 +121,6 @@ It can also be used to precisely position the PoI vertically with respect to the
|
||||
\captionof{figure}{\label{fig:ustation_hexapod_stage}Micro Hexapod}
|
||||
\end{center}
|
||||
\end{minipage}
|
||||
|
||||
\section{Mathematical description of a rigid body motion}
|
||||
\label{ssec:ustation_motion_description}
|
||||
In this section, mathematical tools\footnote{The tools presented here are largely taken from \cite{taghirad13_paral}.} that are used to describe the motion of positioning stages are introduced.
|
||||
@ -176,14 +168,10 @@ The \emph{orientation} of a rigid body is the same at all its points (by definit
|
||||
Hence, the orientation of a rigid body can be viewed as that 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 the Euler angles are common descriptions.
|
||||
|
||||
The rotation matrix \({}^A\bm{R}_B\) is a \(3 \times 3\) matrix containing the Cartesian unit vectors of frame \(\{\bm{B}\}\) represented in frame \(\{\bm{A}\}\) \eqref{eq:ustation_rotation_matrix}.
|
||||
The rotation matrix \({}^A\bm{R}_B\) is a \(3 \times 3\) matrix containing the Cartesian unit vectors \([{}^A\hat{\bm{x}}_B,\ {}^A\hat{\bm{y}}_B,\ {}^A\hat{\bm{z}}_B]\) of frame \(\{\bm{B}\}\) represented in frame \(\{\bm{A}\}\) \eqref{eq:ustation_rotation_matrix}.
|
||||
|
||||
\begin{equation}\label{eq:ustation_rotation_matrix}
|
||||
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{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}
|
||||
{}^A\bm{R}_B = \left[ {}^A\hat{\bm{x}}_B | {}^A\hat{\bm{y}}_B | {}^A\hat{\bm{z}}_B \right]
|
||||
\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}).
|
||||
@ -200,7 +188,7 @@ For rotations along \(x\), \(y\) or \(z\) axis, the formulas of the correspondin
|
||||
\begin{align}
|
||||
\bm{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} \\
|
||||
\bm{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} \\
|
||||
\bm{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}
|
||||
\bm{R}_z(\theta_z) &= \begin{bmatrix} \cos(\theta_z) & -\sin(\theta_z) & 0 \\ \sin(\theta_z) & \cos(\theta_z) & 0 \\ 0 & 0 & 1 \end{bmatrix}
|
||||
\end{align}
|
||||
\end{subequations}
|
||||
|
||||
@ -220,7 +208,6 @@ Such rotation can be parameterized by three Euler angles \((\alpha,\ \beta,\ \ga
|
||||
\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 are 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.
|
||||
@ -294,13 +281,12 @@ Another key advantage of homogeneous transformation is the easy inverse transfor
|
||||
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
|
||||
\left[ \begin{array}{ccc|c}
|
||||
& & & \\
|
||||
& {}^A\bm{R}_B^T & & -{}^A \bm{R}_B^T {}^AP_{O_B} \\
|
||||
& {}^A\bm{R}_B^{\intercal} & & -{}^A \bm{R}_B^{\intercal} {}^AP_{O_B} \\
|
||||
& & & \cr
|
||||
\hline
|
||||
0 & 0 & 0 & 1 \\
|
||||
\end{array} \right]
|
||||
\end{equation}
|
||||
|
||||
\section{Micro-Station Kinematics}
|
||||
\label{ssec:ustation_kinematics}
|
||||
|
||||
@ -338,8 +324,9 @@ The homogeneous transformation matrix corresponding to the micro-station \(\bm{T
|
||||
|
||||
\(\bm{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 each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), \(\bm{T}_{\mu\text{-station}}\) then represent the pose setpoint of the sample with respect to the granite.
|
||||
If the transformation matrices of the individual stages are each representing a perfect motion (i.e. the stages are supposed to have no parasitic motion), \(\bm{T}_{\mu\text{-station}}\) then represents 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}.
|
||||
The setpoints are \(D_y\) for the translation stage, \(\theta_y\) for the tilt-stage, \(\theta_z\) for the spindle, \([D_{\mu x},\ D_{\mu y}, D_{\mu z}]\) for the micro-hexapod translations and \([\theta_{\mu x},\ \theta_{\mu y}, \theta_{\mu z}]\) for the micro-hexapod rotations.
|
||||
|
||||
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
|
||||
\begin{align}
|
||||
@ -371,7 +358,6 @@ The transformation matrices for the translation stage, tilt stage, spindle, and
|
||||
\end{bmatrix}
|
||||
\end{align}
|
||||
\end{equation}
|
||||
|
||||
\chapter{Micro-Station Dynamics}
|
||||
\label{sec:ustation_modeling}
|
||||
In this section, the multi-body model of the micro-station is presented.
|
||||
@ -396,7 +382,7 @@ External forces can be used to model disturbances, and ``sensors'' can be used t
|
||||
\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 software (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 DoFs are represented by springs and dampers. Additional disturbances forces for all DoF can be included}
|
||||
\caption{\label{fig:ustation_simscape_stage_example}Example of a stage (here the tilt-stage) represented in the multi-body model software (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 DoFs are represented by springs and dampers. Additional disturbing forces for all DoF can be included}
|
||||
\end{figure}
|
||||
|
||||
Therefore, the micro-station is modeled by several solid bodies connected by joints.
|
||||
@ -436,7 +422,6 @@ Hexapod & \(10\,N/\mu m\) & \(10\,N/\mu m\) & \(100\,N/\mu m\) & \(1.5\,Nm/rad\)
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
\section{Comparison with the measured dynamics}
|
||||
\label{ssec:ustation_model_comp_dynamics}
|
||||
|
||||
@ -469,7 +454,6 @@ Tuning the numerous model parameters to better match the measurements is a highl
|
||||
\end{subfigure}
|
||||
\caption{\label{fig:ustation_comp_com_response}FRFs between the hammer impacts on the translation stage and the measured stage acceleration expressed at its CoM. Comparison of the measured and extracted FRFs from the multi-body model. Different directions are computed for different stages.}
|
||||
\end{figure}
|
||||
|
||||
\section{Micro-station compliance}
|
||||
\label{ssec:ustation_model_compliance}
|
||||
|
||||
@ -534,7 +518,7 @@ Similar to what is done for the accelerometers, a Jacobian matrix \(\bm{J}_F\) i
|
||||
The equivalent forces 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}} = \bm{J}_F^t \cdot F_{\mathcal{L}}
|
||||
F_{\mathcal{X}} = \bm{J}_F^{\intercal} \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}\}\).
|
||||
@ -559,13 +543,12 @@ Considering the complexity of the micro-station compliance dynamics, the model c
|
||||
\end{subfigure}
|
||||
\caption{\label{fig:ustation_frf_compliance_model}Compliance of the micro-station expressed in frame \(\{\mathcal{X}\}\). The measured FRFs are display by translucent lines, while the FRFs extracted from the multi-body models are shown by opaque lines. 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}
|
||||
\label{sec:ustation_disturbances}
|
||||
The goal of this section is to obtain a realistic representation of disturbances affecting the micro-station.
|
||||
These disturbance sources are then used during time domain simulations to accurately model the micro-station behavior.
|
||||
The focus on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
||||
Such disturbances include ground motions and vibrations induces by scanning the translation stage and the spindle.
|
||||
The focus is on stochastic disturbances because, in principle, it is possible to calibrate the repeatable part of disturbances.
|
||||
Such disturbances include ground motions and vibrations induce by scanning the translation stage and the spindle.
|
||||
|
||||
In the multi-body model, stage vibrations are modeled as internal forces applied in the stage joint.
|
||||
In practice, disturbance forces cannot be directly measured.
|
||||
@ -582,7 +565,7 @@ The tilt stage and the micro-hexapod also have positioning errors; however, they
|
||||
Therefore, from a control perspective, they are not important.
|
||||
\paragraph{Ground Motion}
|
||||
|
||||
The ground motion was measured by using a sensitive 3-axis geophone\footnote{A 3-Axis L4C geophone manufactured Sercel was used.} placed on the ground.
|
||||
The ground motion was measured by using a sensitive 3-axis geophone shown in Figure \ref{fig:ustation_geophone_picture} placed on the ground.
|
||||
The generated voltages were recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
|
||||
The obtained ground motion displacement is shown in Figure \ref{fig:ustation_ground_disturbance}.
|
||||
|
||||
@ -599,7 +582,6 @@ The obtained ground motion displacement is shown in Figure \ref{fig:ustation_gro
|
||||
\captionof{figure}{\label{fig:ustation_geophone_picture}(3D) L-4C geophone}
|
||||
\end{center}
|
||||
\end{minipage}
|
||||
|
||||
\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.
|
||||
@ -609,7 +591,7 @@ A similar setup was used to measure the horizontal deviation (i.e. in the \(x\)
|
||||
\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}
|
||||
\caption{\label{fig:ustation_errors_ty_setup}Experimental setup to measure the straightness (vertical deviation) of the translation stage}
|
||||
\end{figure}
|
||||
|
||||
Six scans were performed between \(-4.5\,mm\) and \(4.5\,mm\).
|
||||
@ -634,7 +616,6 @@ Similar result is obtained for the \(x\) lateral direction.
|
||||
\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}
|
||||
|
||||
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}.
|
||||
@ -687,7 +668,6 @@ The vertical motion induced by scanning the spindle is in the order of \(\pm 30\
|
||||
\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 during a 60rpm spindle rotation. The circular best fit is shown by the dashed circle. It represents the misalignment of the spheres with the rotation axis.}
|
||||
\end{figure}
|
||||
|
||||
\section{Sensitivity to disturbances}
|
||||
\label{ssec:ustation_disturbances_sensitivity}
|
||||
|
||||
@ -716,7 +696,6 @@ The obtained transfer functions are shown in Figure \ref{fig:ustation_model_sens
|
||||
\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}
|
||||
|
||||
@ -747,7 +726,7 @@ The obtained power spectral density of the disturbances are shown in Figure \ref
|
||||
|
||||
The disturbances are characterized by their power spectral densities, as shown in Figure \ref{fig:ustation_dist_sources}.
|
||||
However, to perform time domain simulations, disturbances must be represented by a time domain signal.
|
||||
To generate stochastic time-domain signals with a specific power spectral densities, the discrete inverse Fourier transform is used, as explained in \cite[chap. 12.11]{preumont94_random_vibrat_spect_analy}.
|
||||
To generate stochastic time-domain signals with a specific power spectral density, the discrete inverse Fourier transform is used, as explained in \cite[chap. 12.11]{preumont94_random_vibrat_spect_analy}.
|
||||
Examples of the obtained time-domain disturbance signals are shown in Figure \ref{fig:ustation_dist_sources_time}.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
@ -771,7 +750,6 @@ Examples of the obtained time-domain disturbance signals are shown in Figure \re
|
||||
\end{subfigure}
|
||||
\caption{\label{fig:ustation_dist_sources_time}Generated time domain disturbance signals. Ground motion (\subref{fig:ustation_dist_source_ground_motion_time}), translation stage (\subref{fig:ustation_dist_source_translation_stage_time}) and spindle (\subref{fig:ustation_dist_source_spindle_time}).}
|
||||
\end{figure}
|
||||
|
||||
\chapter{Simulation of Scientific Experiments}
|
||||
\label{sec:ustation_experiments}
|
||||
To fully validate the micro-station multi-body model, two time-domain simulations corresponding to typical use cases were performed.
|
||||
@ -803,8 +781,7 @@ A good correlation with the measurements is observed both for radial errors (Fig
|
||||
\end{subfigure}
|
||||
\caption{\label{fig:ustation_errors_model_spindle}Simulation results for a tomography experiment at constant velocity of 60rpm. The comparison is made with measurements for both radial (\subref{fig:ustation_errors_model_spindle_radial}) and axial errors (\subref{fig:ustation_errors_model_spindle_axial}).}
|
||||
\end{figure}
|
||||
|
||||
\section{Raster Scans with the translation stage}
|
||||
\section{Scans with the translation stage}
|
||||
\label{sec:ustation_experiments_ty_scans}
|
||||
|
||||
A second experiment was performed in which the translation stage was scanned at constant velocity.
|
||||
@ -818,7 +795,6 @@ A similar error amplitude was observed, thus indicating that the multi-body mode
|
||||
\includegraphics[scale=1]{figs/ustation_errors_model_dy_vertical.png}
|
||||
\caption{\label{fig:ustation_errors_model_dy_vertical}Vertical errors during a constant-velocity scan of the translation stage. Comparison of the measurements and simulated errors.}
|
||||
\end{figure}
|
||||
|
||||
\chapter*{Conclusion}
|
||||
\label{sec:ustation_conclusion}
|
||||
|
||||
@ -829,6 +805,5 @@ After tuning the model parameters, a good match with the measured compliance was
|
||||
|
||||
The disturbances affecting the sample position should also be well modeled.
|
||||
After experimentally estimating the disturbances (Section \ref{sec:ustation_disturbances}), the multi-body model was finally validated by performing a tomography simulation (Figure \ref{fig:ustation_errors_model_spindle}) as well as a simulation in which the translation stage was scanned (Figure \ref{fig:ustation_errors_model_dy_vertical}).
|
||||
|
||||
\printbibliography[heading=bibintoc,title={Bibliography}]
|
||||
\end{document}
|
||||
|
Reference in New Issue
Block a user