Simscape => Multi-body

This commit is contained in:
Thomas Dehaeze 2024-11-18 13:11:38 +01:00
parent 647b360342
commit 42de69005d
5 changed files with 106 additions and 105 deletions

View File

@ -14,3 +14,5 @@
\makeindex
\makeglossaries
\usepackage{bm}

View File

@ -2,7 +2,6 @@
\usepackage{enumitem}
\usepackage{caption,tabularx,booktabs}
\usepackage{bm}
\usepackage{xpatch} % Recommanded for biblatex
\usepackage[ % use biblatex for bibliography

View File

@ -1,4 +1,4 @@
#+TITLE: Simscape Model - Micro Station
#+TITLE: Multi-Body Model - Micro Station
:DRAWER:
#+LANGUAGE: en
#+EMAIL: dehaeze.thomas@gmail.com
@ -529,10 +529,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\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.
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.
\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}
{}^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}
@ -543,7 +543,7 @@ Consider a pure rotation of a rigid body ($\{\bm{A}\}$ and $\{\bm{B}\}$ are coin
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
{}^AP = {}^A\bm{R}_B {}^BP
\end{equation}
@ -551,17 +551,17 @@ For rotations along $x$, $y$ or $z$ axis, the formulas of the corresponding rota
\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}
\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}
\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$.
Sometimes, it is useful to express a rotation as a combination of three rotations described by $\bm{R}_x$, $\bm{R}_y$ and $\bm{R}_z$.
The order of rotation is very important[fn:5], therefore, in this study, rotations are expressed 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)
{}^A\bm{R}_B(\alpha, \beta, \gamma) = \bm{R}_u(\alpha) \bm{R}_v(\beta) \bm{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.
@ -580,23 +580,23 @@ Since the relative positions of a rigid body with respect to a moving frame $\{B
Therefore, the pose of a rigid body can be fully determined by:
1. The position vector of point $O_B$ with respect to frame $\{A\}$ which is denoted ${}^AP_{O_B}$
2. 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$.
2. 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 $\{\mathbf{A}\}$, which is denoted ${}^A\mathbf{P}$ may be determined thanks to the /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.
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 /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.
\begin{equation} \label{eq:ustation_chasles_therorem}
{}^AP = {}^A\mathbf{R}_B {}^BP + {}^AP_{O_B}
{}^AP = {}^A\bm{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.
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.
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 =
{}^A\bm{T}_B =
\left[ \begin{array}{ccc|c}
& & & \\
& {}^A\mathbf{R}_B & & {}^AP_{O_B} \\
& {}^A\bm{R}_B & & {}^AP_{O_B} \\
& & & \cr
\hline
0 & 0 & 0 & 1
@ -610,12 +610,12 @@ Then, ${}^AP$ can be computed from ${}^BP$ and the homogeneous transformation ma
=
\left[ \begin{array}{ccc|c}
& & & \\
& {}^A\mathbf{R}_B & & {}^AP_{O_B} \\
& {}^A\bm{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}
\left[ \begin{array}{c} \\ {}^BP \\ \cr \hline 1 \end{array} \right] \quad \Rightarrow \quad {}^AP = {}^A\bm{R}_B {}^BP + {}^AP_{O_B}
\end{equation}
One key advantage of homogeneous transformation is that it can easily be generalized for consecutive transformations.
@ -627,23 +627,23 @@ Frame $\{A\}$ represents the initial location, frame $\{B\}$ is an intermediate
[[file:figs/ustation_combined_transformation.png]]
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\mathbf{T}_C$ using ${}^BP = {}^B\mathbf{T}_C {}^CP$.
Similarly, ${}^BP$ can be transformed into ${}^AP$ using ${}^AP = {}^A\mathbf{T}_B {}^BP$.
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$.
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
{}^AP = \underbrace{{}^A\bm{T}_B {}^B\bm{T}_C}_{{}^A\bm{T}_C} {}^CP
\end{equation}
Another key advantage of homogeneous transformation is the easy inverse transformation, which 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} =
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
\left[ \begin{array}{ccc|c}
& & & \\
& {}^A\mathbf{R}_B^T & & -{}^A \mathbf{R}_B^T {}^AP_{O_B} \\
& {}^A\bm{R}_B^T & & -{}^A \bm{R}_B^T {}^AP_{O_B} \\
& & & \cr
\hline
0 & 0 & 0 & 1 \\
@ -667,50 +667,50 @@ The motion induced by a positioning stage can be described by a homogeneous tran
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) =
{}^A\bm{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 \\
& \bm{R}_x(\theta_x) \bm{R}_y(\theta_y) \bm{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.
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.
\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}}
\bm{T}_{\mu\text{-station}} = \bm{T}_{D_y} \cdot \bm{T}_{R_y} \cdot \bm{T}_{R_z} \cdot \bm{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.
$\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), $\mathbf{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 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.
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
\begin{align}
\mathbf{T}_{D_y} &= \begin{bmatrix}
\bm{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}} =
\bm{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} \\
& \bm{R}_x(\theta_{\mu x}) \bm{R}_y(\theta_{\mu y}) \bm{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}
\bm{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}
\bm{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 \\
@ -802,7 +802,7 @@ The obtained dynamics is then compared with the modal analysis performed on the
# TODO - Add reference to uniaxial model
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 Simscape model (Section ref:ssec:ustation_model_compliance).
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).
** Matlab Init :noexport:ignore:
#+begin_src matlab
@ -845,7 +845,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 (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 disturbances 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.
@ -855,7 +855,7 @@ Additional forces can be used to model disturbances induced by the stage motion.
The obtained 3D representation of the multi-body model is shown in Figure ref:fig:ustation_simscape_model.
#+name: fig:ustation_simscape_model
#+caption: 3D view of the micro-station Simscape model
#+caption: 3D view of the micro-station multi-body model
#+attr_latex: :width 0.8\linewidth
[[file:figs/ustation_simscape_model.jpg]]
@ -887,9 +887,9 @@ The spring values are summarized in Table ref:tab:ustation_6dof_stiffness_values
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 FRFs were then projected at the CoM of each stage.
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 Simscape model and compared with the measurements in Figure ref:fig:ustation_comp_com_response.
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 Simscape model does not accurately represent the complex micro-station dynamics.
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.
#+begin_src matlab
@ -1010,7 +1010,7 @@ exportFig('figs/ustation_comp_com_response_ry_z.pdf', 'width', 'third', 'height'
#+end_src
#+name: fig:ustation_comp_com_response
#+caption: 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 Simscape model. Different directions are computed for different stages.
#+caption: 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.
#+attr_latex: :options [htbp]
#+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:ustation_comp_com_response_rz_x}Spindle, $x$ response}
@ -1050,10 +1050,10 @@ For each impact position, 10 impacts were performed to average and improve the d
#+caption: 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).
[[file:figs/ustation_compliance_meas.png]]
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.
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.
\begin{equation}\label{eq:ustation_compliance_acc_jacobian}
\mathbf{J}_a = \begin{bmatrix}
\bm{J}_a = \begin{bmatrix}
1 & 0 & 0 & 0 & 0 &-d \\
0 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & d & 0 & 0 \\
@ -1072,13 +1072,13 @@ To convert the 12 acceleration signals $a_{\mathcal{L}} = [a_{1x}\ a_{1y}\ a_{1z
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}}
a_{\mathcal{X}} = \bm{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).
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).
\begin{equation}\label{eq:ustation_compliance_force_jacobian}
\mathbf{J}_F = \begin{bmatrix}
\bm{J}_F = \begin{bmatrix}
0 & -1 & 0 & 0 & 0 & 0\\
0 & 0 & -1 & -d & 0 & 0\\
1 & 0 & 0 & 0 & 0 & 0\\
@ -1095,11 +1095,11 @@ Similar to what is done for the accelerometers, a Jacobian matrix $\mathbf{J}_F$
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}} = \mathbf{J}_F^t \cdot F_{\mathcal{L}}
F_{\mathcal{X}} = \bm{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}\}$.
These FRFs were then used for comparison with the Simscape model.
These FRFs were then used for comparison with the multi-body model.
#+begin_src matlab
% Positions and orientation of accelerometers
@ -1355,7 +1355,7 @@ In the multi-body model, stage vibrations are modeled as internal forces applied
In practice, disturbance forces cannot be directly measured.
Instead, the vibrations of the micro-station's top platform induced by the disturbances were measured (Section ref:ssec:ustation_disturbances_meas).
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 Simscape model (Section ref:ssec:ustation_disturbances_sensitivity).
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).
Finally, the obtained disturbance sources are compared in Section ref:ssec:ustation_disturbances_results.
** Matlab Init :noexport:ignore:
@ -1840,7 +1840,7 @@ exportFig('figs/ustation_model_sensitivity_rz.pdf', 'width', 'third', 'height',
** Obtained disturbance sources
<<ssec:ustation_disturbances_results>>
From the measured effect of disturbances in Section ref:ssec:ustation_disturbances_meas and the sensitivity to disturbances extracted from the Simscape 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.
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.
The obtained power spectral density of the disturbances are shown in Figure ref:fig:ustation_dist_sources.
#+begin_src matlab
@ -4589,22 +4589,22 @@ Note that there is trade-off between:
:END:
**** Theory
For inverse kinematic analysis, it is assumed that the position ${}^A\mathbf{P}$ and orientation of the moving platform ${}^A\mathbf{R}_B$ are given and the problem is to obtain the joint variables, namely, $\mathbf{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]^T$.
From the geometry of the manipulator, the loop closure for each limb, $i = 1, 2, \dots, 6$ can be written as
\begin{align*}
l_i {}^A\hat{\mathbf{s}}_i &= {}^A\mathbf{A} + {}^A\mathbf{b}_i - {}^A\mathbf{a}_i \\
&= {}^A\mathbf{A} + {}^A\mathbf{R}_b {}^B\mathbf{b}_i - {}^A\mathbf{a}_i
l_i {}^A\hat{\bm{s}}_i &= {}^A\bm{A} + {}^A\bm{b}_i - {}^A\bm{a}_i \\
&= {}^A\bm{A} + {}^A\bm{R}_b {}^B\bm{b}_i - {}^A\bm{a}_i
\end{align*}
To obtain the length of each actuator and eliminate $\hat{\mathbf{s}}_i$, it is sufficient to dot multiply each side by itself:
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{\mathbf{s}}_i^T {}^A\hat{\mathbf{s}}_i \right] = \left[ {}^A\mathbf{P} + {}^A\mathbf{R}_B {}^B\mathbf{b}_i - {}^A\mathbf{a}_i \right]^T \left[ {}^A\mathbf{P} + {}^A\mathbf{R}_B {}^B\mathbf{b}_i - {}^A\mathbf{a}_i \right]
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]
\end{equation}
Hence, for $i = 1, 2, \dots, 6$, each limb length can be uniquely determined by:
\begin{equation}
l_i = \sqrt{{}^A\mathbf{P}^T {}^A\mathbf{P} + {}^B\mathbf{b}_i^T {}^B\mathbf{b}_i + {}^A\mathbf{a}_i^T {}^A\mathbf{a}_i - 2 {}^A\mathbf{P}^T {}^A\mathbf{a}_i + 2 {}^A\mathbf{P}^T \left[{}^A\mathbf{R}_B {}^B\mathbf{b}_i\right] - 2 \left[{}^A\mathbf{R}_B {}^B\mathbf{b}_i\right]^T {}^A\mathbf{a}_i}
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}
\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.

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2024-11-06 Wed 18:35
% Created 2024-11-18 Mon 13:10
% Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
@ -7,10 +7,10 @@
\bibliography{simscape-micro-station.bib}
\author{Dehaeze Thomas}
\date{\today}
\title{Simscape Model - Micro Station}
\title{Multi-Body Model - Micro Station}
\hypersetup{
pdfauthor={Dehaeze Thomas},
pdftitle={Simscape Model - Micro Station},
pdftitle={Multi-Body Model - Micro Station},
pdfkeywords={},
pdfsubject={},
pdfcreator={Emacs 29.4 (Org mode 9.6)},
@ -176,10 +176,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\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}.
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}.
\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}
{}^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}
@ -190,7 +190,7 @@ Consider a pure rotation of a rigid body (\(\{\bm{A}\}\) and \(\{\bm{B}\}\) are
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
{}^AP = {}^A\bm{R}_B {}^BP
\end{equation}
@ -198,17 +198,17 @@ For rotations along \(x\), \(y\) or \(z\) axis, the formulas of the correspondin
\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}
\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}
\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\).
Sometimes, it is useful to express a rotation as a combination of three rotations described by \(\bm{R}_x\), \(\bm{R}_y\) and \(\bm{R}_z\).
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}.
\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)
{}^A\bm{R}_B(\alpha, \beta, \gamma) = \bm{R}_u(\alpha) \bm{R}_v(\beta) \bm{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}.
@ -228,24 +228,24 @@ Since the relative positions of a rigid body with respect to a moving frame \(\{
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\).
\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\).
\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}.
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}.
\begin{equation} \label{eq:ustation_chasles_therorem}
{}^AP = {}^A\mathbf{R}_B {}^BP + {}^AP_{O_B}
{}^AP = {}^A\bm{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.
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.
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 =
{}^A\bm{T}_B =
\left[ \begin{array}{ccc|c}
& & & \\
& {}^A\mathbf{R}_B & & {}^AP_{O_B} \\
& {}^A\bm{R}_B & & {}^AP_{O_B} \\
& & & \cr
\hline
0 & 0 & 0 & 1
@ -259,12 +259,12 @@ Then, \({}^AP\) can be computed from \({}^BP\) and the homogeneous transformatio
=
\left[ \begin{array}{ccc|c}
& & & \\
& {}^A\mathbf{R}_B & & {}^AP_{O_B} \\
& {}^A\bm{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}
\left[ \begin{array}{c} \\ {}^BP \\ \cr \hline 1 \end{array} \right] \quad \Rightarrow \quad {}^AP = {}^A\bm{R}_B {}^BP + {}^AP_{O_B}
\end{equation}
One key advantage of homogeneous transformation is that it can easily be generalized for consecutive transformations.
@ -278,23 +278,23 @@ Frame \(\{A\}\) represents the initial location, frame \(\{B\}\) is an intermedi
\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\mathbf{T}_C\) using \({}^BP = {}^B\mathbf{T}_C {}^CP\).
Similarly, \({}^BP\) can be transformed into \({}^AP\) using \({}^AP = {}^A\mathbf{T}_B {}^BP\).
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\).
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
{}^AP = \underbrace{{}^A\bm{T}_B {}^B\bm{T}_C}_{{}^A\bm{T}_C} {}^CP
\end{equation}
Another key advantage of homogeneous transformation is the easy inverse transformation, which 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} =
{}^B\bm{T}_A = {}^A\bm{T}_B^{-1} =
\left[ \begin{array}{ccc|c}
& & & \\
& {}^A\mathbf{R}_B^T & & -{}^A \mathbf{R}_B^T {}^AP_{O_B} \\
& {}^A\bm{R}_B^T & & -{}^A \bm{R}_B^T {}^AP_{O_B} \\
& & & \cr
\hline
0 & 0 & 0 & 1 \\
@ -320,50 +320,50 @@ The motion induced by a positioning stage can be described by a homogeneous tran
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) =
{}^A\bm{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 \\
& \bm{R}_x(\theta_x) \bm{R}_y(\theta_y) \bm{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}.
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}.
\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}}
\bm{T}_{\mu\text{-station}} = \bm{T}_{D_y} \cdot \bm{T}_{R_y} \cdot \bm{T}_{R_z} \cdot \bm{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.
\(\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), \(\mathbf{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 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}.
\begin{equation}\label{eq:ustation_transformation_matrices_stages}
\begin{align}
\mathbf{T}_{D_y} &= \begin{bmatrix}
\bm{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}} =
\bm{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} \\
& \bm{R}_x(\theta_{\mu x}) \bm{R}_y(\theta_{\mu y}) \bm{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}
\bm{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}
\bm{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 \\
@ -381,7 +381,7 @@ The inertia of the solid bodies and the stiffness properties of the guiding mech
The obtained dynamics is then compared with the modal analysis performed on the micro-station (Section \ref{ssec:ustation_model_comp_dynamics}).
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 Simscape model (Section \ref{ssec:ustation_model_compliance}).
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}).
\section{Multi-Body Model}
\label{ssec:ustation_model_simscape}
@ -396,7 +396,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 (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 disturbances forces for all DoF can be included}
\end{figure}
Therefore, the micro-station is modeled by several solid bodies connected by joints.
@ -408,7 +408,7 @@ The obtained 3D representation of the multi-body model is shown in Figure \ref{f
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=0.8\linewidth]{figs/ustation_simscape_model.jpg}
\caption{\label{fig:ustation_simscape_model}3D view of the micro-station Simscape model}
\caption{\label{fig:ustation_simscape_model}3D view of the micro-station multi-body model}
\end{figure}
The ground is modeled by a solid body connected to the ``world frame'' through a joint only allowing 3 translations.
@ -444,9 +444,9 @@ Hexapod & \(10\,N/\mu m\) & \(10\,N/\mu m\) & \(100\,N/\mu m\) & \(1.5\,Nm/rad\)
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 FRFs were then projected at the CoM of each stage.
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 Simscape model and compared with the measurements in Figure \ref{fig:ustation_comp_com_response}.
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 Simscape model does not accurately represent the complex micro-station dynamics.
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.
\begin{figure}[htbp]
@ -468,7 +468,7 @@ Tuning the numerous model parameters to better match the measurements is a highl
\end{center}
\subcaption{\label{fig:ustation_comp_com_response_ry_z}Tilt, $z$ response}
\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 Simscape model. Different directions are computed for different stages.}
\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}
@ -490,10 +490,10 @@ For each impact position, 10 impacts were performed to average and improve the d
\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).}
\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}.
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}.
\begin{equation}\label{eq:ustation_compliance_acc_jacobian}
\mathbf{J}_a = \begin{bmatrix}
\bm{J}_a = \begin{bmatrix}
1 & 0 & 0 & 0 & 0 &-d \\
0 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & d & 0 & 0 \\
@ -512,13 +512,13 @@ To convert the 12 acceleration signals \(a_{\mathcal{L}} = [a_{1x}\ a_{1y}\ a_{1
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}}
a_{\mathcal{X}} = \bm{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}).
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}).
\begin{equation}\label{eq:ustation_compliance_force_jacobian}
\mathbf{J}_F = \begin{bmatrix}
\bm{J}_F = \begin{bmatrix}
0 & -1 & 0 & 0 & 0 & 0\\
0 & 0 & -1 & -d & 0 & 0\\
1 & 0 & 0 & 0 & 0 & 0\\
@ -535,11 +535,11 @@ Similar to what is done for the accelerometers, a Jacobian matrix \(\mathbf{J}_F
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}} = \mathbf{J}_F^t \cdot F_{\mathcal{L}}
F_{\mathcal{X}} = \bm{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}\}\).
These FRFs were then used for comparison with the Simscape model.
These FRFs were then used for comparison with the multi-body model.
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}.
@ -572,7 +572,7 @@ In the multi-body model, stage vibrations are modeled as internal forces applied
In practice, disturbance forces cannot be directly measured.
Instead, the vibrations of the micro-station's top platform induced by the disturbances were measured (Section \ref{ssec:ustation_disturbances_meas}).
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 Simscape model (Section \ref{ssec:ustation_disturbances_sensitivity}).
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}).
Finally, the obtained disturbance sources are compared in Section \ref{ssec:ustation_disturbances_results}.
\section{Disturbance measurements}
\label{ssec:ustation_disturbances_meas}
@ -721,7 +721,7 @@ The obtained transfer functions are shown in Figure \ref{fig:ustation_model_sens
\section{Obtained disturbance sources}
\label{ssec:ustation_disturbances_results}
From the measured effect of disturbances in Section \ref{ssec:ustation_disturbances_meas} and the sensitivity to disturbances extracted from the Simscape 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.
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.
The obtained power spectral density of the disturbances are shown in Figure \ref{fig:ustation_dist_sources}.
\begin{figure}[htbp]