First, during the uniaxial study, it became clear that the micro-station dynamics affects the nano-hexapod dynamics.
Then, using the 3-DoF rotating model, it was discovered that the rotation of the nano-hexapod induces gyroscopic effects that affect the system dynamics and should therefore be modeled.
Finally, a modal analysis of the micro-station showed how complex the dynamics of the station is.
The modal analysis also confirm that each stage behaves as a rigid body in the frequency range of interest.
Therefore, a multi-body model is a good candidate to accurately represent the micro-station dynamics.
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}.
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.
\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.}
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.
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\footnote{It was probably caused by rust of the linear guides along its stroke.}.
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.
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.
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.
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.
The \emph{position} of a point \(P\) with respect to a frame \(\{A\}\) can be described by a \(3\times1\) 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\}\).
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}.
\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.}
The rotation matrix \({}^A\bm{R}_B\) is a \(3\times3\) matrix containing the Cartesian unit vectors of frame \(\{\bm{B}\}\) represented in frame \(\{\bm{A}\}\)\eqref{eq:ustation_rotation_matrix}.
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}.
For rotations along \(x\), \(y\) or \(z\) axis, the formulas of the corresponding rotation matrices are given in Equation \eqref{eq:ustation_rotation_matrices_xyz}.
The order of rotation is very important\footnote{Rotations are non commutative in 3D.}, therefore, in this study, rotations are expressed as three successive rotations about the coordinate axes of the moving frame \eqref{eq:ustation_rotation_combination}.
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}.
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.
\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\bm{R}_B\).
The position of any point \(P\) of the rigid body with respect to the fixed frame \(\{\bm{A}\}\), which is denoted \({}^A\bm{P}\) may be determined thanks to the \emph{Chasles' theorem}, which states that if the pose of a rigid body \(\{{}^A\bm{R}_B, {}^AP_{O_B}\}\) is given, then the position of any point \(P\) of this rigid body with respect to \(\{\bm{A}\}\) is given by Equation \eqref{eq:ustation_chasles_therorem}.
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\times4\) homogeneous transformation matrices and \(4\times1\) homogeneous coordinates.
The homogeneous transformation matrix is composed of the rotation matrix \({}^A\bm{R}_B\) representing the orientation and the position vector \({}^AP_{O_B}\) representing the translation.
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.
\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 are known relative to each other, \({}^CP\) can be transformed to \({}^BP\) using \({}^B\bm{T}_C\) using \({}^BP ={}^B\bm{T}_C {}^CP\).
Similarly, \({}^BP\) can be transformed into \({}^AP\) using \({}^AP ={}^A\bm{T}_B {}^BP\).
Another key advantage of homogeneous transformation is the easy inverse transformation, which can be computed using Equation \eqref{eq:ustation_inverse_homogeneous_transformation}.
\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.}
The motion induced by a positioning stage can 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}.
The homogeneous transformation matrix corresponding to the micro-station \(\bm{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}.
\(\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.
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}.
In this section, the multi-body model of the micro-station is presented.
Such model consists of several rigid bodies connected by springs and dampers.
The inertia of the solid bodies and the stiffness properties of the guiding mechanisms were first estimated based on the CAD model and data-sheets (Section \ref{ssec:ustation_model_simscape}).
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 and then compared with the 6-DoF compliance extracted from the multi-body model (Section \ref{ssec:ustation_model_compliance}).
A multi-body model consists of several solid bodies connected by joints.
Each solid body can be represented by its 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).
\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}
Therefore, the micro-station is modeled by several solid bodies connected by joints.
A typical stage (here the tilt-stage) is modeled 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 modeled by a spring and damper.
\caption{\label{tab:ustation_6dof_stiffness_values}Summary of the stage stiffnesses. The contrained degrees-of-freedom are indicated by ``-''. The frames in which the 6-DoF joints are defined are indicated in figures found in Section \ref{ssec:ustation_stages}}
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.
To gain a first insight into the accuracy of the obtained model, the FRFs from the hammer impacts to the acceleration of each stage were extracted from the multi-body 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 multi-body model does not accurately represent the complex micro-station dynamics.
Tuning the numerous model parameters to better match the measurements is a highly non-linear optimization problem that is difficult to solve in practice.
\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.}
As discussed 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 difficult.
\caption{\label{fig:ustation_compliance_meas}Schematic of the measurement setup used 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).}
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 \(\bm{J}_a\) is written based on the positions and orientations of the accelerometers \eqref{eq:ustation_compliance_acc_jacobian}.
Similar to what is done for the accelerometers, a Jacobian matrix \(\bm{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}).
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 compliance of the micro-station multi-body model was extracted by computing the transfer function from forces/torques applied on the hexapod's top platform to the ``absolute'' motion of the top platform.
These results are compared with the measurements in Figure \ref{fig:ustation_frf_compliance_model}.
Considering the complexity of the micro-station compliance dynamics, the model compliance matches sufficiently well for the current application.
\caption{\label{fig:ustation_frf_compliance_model}Compliance of the micro-station expressed in frame \(\{\mathcal{X}\}\). The measured FRFs are display by solid lines, while the FRFs extracted from the multi-body models are shown by dashed lines. Both translation terms (\subref{fig:ustation_frf_compliance_xyz_model}) and rotational terms (\subref{fig:ustation_frf_compliance_Rxyz_model}) are displayed.}
To estimate the equivalent disturbance force that induces such vibration, the transfer functions from disturbance sources (i.e. forces applied in the stages' joint) to the displacements of the micro-station's top platform with respect to the granite are extracted from the multi-body model (Section \ref{ssec:ustation_disturbances_sensitivity}).
The tilt stage and the micro-hexapod also have positioning errors; however, they are not modeled here because these two stages are only used for pre-positioning and not for scanning.
Therefore, from a control perspective, they are not important.
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 generated voltages were recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function.
A special optical element (called a ``straightness interferometer''\footnote{The special optics (straightness interferometer and reflector) are 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 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.
\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}).}
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.
\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 spheres is measured using 5 capacitive sensors (\subref{fig:ustation_rz_meas_lion_zoom})}
A measurement was performed during a constant rotational velocity of the spindle of 60rpm and during 10 turns.
The obtained results are shown in Figure \ref{fig:ustation_errors_spindle}.
A large 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, some misalignment between the ``point-of-interest'' of the sample and the rotation axis will be considered because the alignment is not perfect in practice.
The vertical motion induced by scanning the spindle is in the order of \(\pm30\,nm\) (Figure \ref{fig:ustation_errors_spindle_axial}).
\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.}
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 achieved using the multi-body model presented in Section \ref{sec:ustation_modeling}.
\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}).}
From the measured effect of disturbances in Section \ref{ssec:ustation_disturbances_meas} and the sensitivity to disturbances extracted from the multi-body model in Section \ref{ssec:ustation_disturbances_sensitivity}, the power spectral density of the disturbance sources (i.e. forces applied in the stage's joint) can be estimated.
\caption{\label{fig:ustation_dist_sources}Measured spectral density of the micro-station disturbance sources. Ground motion (\subref{fig:ustation_dist_source_ground_motion}), translation stage (\subref{fig:ustation_dist_source_translation_stage}) and spindle (\subref{fig:ustation_dist_source_spindle}).}
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}.
Examples of the obtained time-domain disturbance signals are shown in Figure \ref{fig:ustation_dist_sources_time}.
First, a tomography experiment (i.e. a constant Spindle rotation) was performed and was compared with experimental measurements (Section \ref{sec:ustation_experiments_tomography}).
Second, a constant velocity scans with the translation stage was performed and also compared with the experimental data (Section \ref{sec:ustation_experiments_ty_scans}).
A radial offset of \(\approx1\,\mu m\) between the ``point-of-interest'' and the spindle's rotation axis is introduced to represent what is experimentally observed.
A good correlation with the measurements is observed both for radial errors (Figure \ref{fig:ustation_errors_model_spindle_radial}) and axial errors (Figure \ref{fig:ustation_errors_model_spindle_axial}).
\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}).}
Both ground motion and translation stage vibrations were included in the simulation.
Similar to what was performed for the tomography simulation, the PoI position with respect to the granite was recorded and compared with the experimental measurements in Figure \ref{fig:ustation_errors_model_dy_vertical}.
A similar error amplitude was observed, thus indicating that the multi-body model with the included disturbances accurately represented the micro-station behavior in typical scientific experiments.
\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.}
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}).