Add introduction

This commit is contained in:
Thomas Dehaeze 2024-11-06 16:29:01 +01:00
parent 2adbc65510
commit 64c072f187
13 changed files with 113 additions and 59 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

View File

@ -308,6 +308,10 @@ Be able to pass custom =.mat= files (one mat file per disturbance)?
- Maybe say that we remove the excentricity (by circle fit: show it in the figure) - Maybe say that we remove the excentricity (by circle fit: show it in the figure)
- Then the rest is modelled by stochastic disturbance - Then the rest is modelled by stochastic disturbance
** TODO [#C] Add glossary
PoI | Point of interest
** TODO [#C] Add picture of measured ground motion ** TODO [#C] Add picture of measured ground motion
** TODO [#C] Add screenshot of Simscape model ** TODO [#C] Add screenshot of Simscape model
** WAIT [#B] I have no measurement of horizontal ground motion :@marc: ** WAIT [#B] I have no measurement of horizontal ground motion :@marc:
@ -874,7 +878,25 @@ xlim([2, 500]);
* Introduction :ignore: * Introduction :ignore:
Introduction... From the start of this work, it became increasingly clear that an accurate model of the micro-station was necessary.
First, during the uniaxial study, it became apparent 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 affects the system dynamics, and that it should therefore be modelled.
Finally, performing a modal analysis of the micro-station showed how complex the dynamics of the station is.
It also confirmed that each stage behaves as a rigid body in the frequency range of interest.
Therefore a multi-body model seems a good candidate to accurately represent the micro-station dynamics.
In this report, the development of such multi-body model is presented.
First, each stage of the micro-station is described.
The kinematics of the micro-station (i.e. how the motion of the stages are combined) is presented in Section ref:sec:ustation_kinematics.
Then, the multi-body model is presented and tuned to match the measured dynamics of the micro-station (Section ref:sec:ustation_modeling).
Disturbances affecting the positioning accuracy also need to be modelled properly.
To do so, the effect of these disturbances are first measured experimental and then injected in 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.
# #+name: tab:ustation_section_matlab_code # #+name: tab:ustation_section_matlab_code
# #+caption: Report sections and corresponding Matlab files # #+caption: Report sections and corresponding Matlab files
@ -1928,65 +1950,70 @@ Therefore, from a control point of view, they are not important.
**** Ground Motion **** Ground Motion
The ground motion is simply measured by using a sensitive 3-axis geophone placed on the ground. The ground motion is measured by using a sensitive 3-axis geophone[fn:11] placed on the ground.
The generated voltages are recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function. The generated voltages are 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. The obtained ground motion displacement is shown in Figure ref:fig:ustation_ground_disturbance.
#+begin_src matlab #+begin_src matlab
%% Compute Floor Motion Spectral Density %% Compute Floor Motion Spectral Density
% Load floor motion data % Load floor motion data
% t: time in [s] % velocity in [m/s] is measured in X, Y and Z directions
% V: measured voltage genrated by the geophone and amplified by a 60dB gain voltage amplifier [V] load('ustation_ground_motion.mat', 'Ts', 'Fs', 'vel_x', 'vel_y', 'vel_z', 't');
load('ustation_ground_motion.mat', 't', 'V');
% Geophone Transfer Function % Estimate ground displacement from measured velocity
Tg = 88; % Sensitivity [V/(m/s)] % This is done by integrating the motion
w0 = 2*2*pi; % Cut-off frequency [rad/s] gm_x = lsim(1/(s+0.1*2*pi), vel_x, t);
xi = 0.7; % Damping ratio gm_y = lsim(1/(s+0.1*2*pi), vel_y, t);
gm_z = lsim(1/(s+0.1*2*pi), vel_z, t);
G_geo = Tg*s*s^2/(s^2 + 2*xi*w0*s + w0^2); % Geophone's transfer function [V/m]
% Voltage amplifier transfer function
g0 = 10^(60/20); % [abs]
% Compute measured voltage PSD
Ts = (t(2)-t(1)); % Sampling Time [s]
Nfft = floor(2/Ts); Nfft = floor(2/Ts);
win = hanning(Nfft); win = hanning(Nfft);
Noverlap = floor(Nfft/2); Noverlap = floor(Nfft/2);
[pxx_V, f_gm] = pwelch(V, win, Noverlap, Nfft, 1/Ts); % [V^2/Hz] [pxx_gm_vx, f_gm] = pwelch(vel_x, win, Noverlap, Nfft, 1/Ts);
[pxx_gm_vy, ~] = pwelch(vel_y, win, Noverlap, Nfft, 1/Ts);
[pxx_gm_vz, ~] = pwelch(vel_z, win, Noverlap, Nfft, 1/Ts);
% Ground Motion ASD % Convert PSD in velocity to PSD in displacement
pxx_gm_z = pxx_V./abs(squeeze(freqresp(G_geo*g0, f_gm, 'Hz'))).^2; % [m^2/Hz] pxx_gm_x = pxx_gm_vx./((2*pi*f_gm).^2);
% Assumption here that horizontal ground motion is ~25% smaller pxx_gm_y = pxx_gm_vy./((2*pi*f_gm).^2);
% than vertical one. pxx_gm_z = pxx_gm_vz./((2*pi*f_gm).^2);
pxx_gm_x = (0.7)^2*pxx_gm_z; % [m^2/Hz]
pxx_gm_y = (0.8)^2*pxx_gm_z; % [m^2/Hz]
#+end_src #+end_src
#+begin_src matlab :exports none :results none #+begin_src matlab :exports none :results none
% Estimate ground motion
w0_min = 0.1*2*pi;
gm_z = lsim(inv(g0*G_geo)*((s/w0_min)/(1+s/w0_min))^3, detrend(V, 0), t);
%% Measured ground motion %% Measured ground motion
figure; figure;
hold on; hold on;
plot(t(t>50)-50, 1e6*gm_z(t>50)) plot(t, 1e6*gm_x, 'DisplayName', '$D_{xf}$')
plot(t, 1e6*gm_y, 'DisplayName', '$D_{yf}$')
plot(t, 1e6*gm_z, 'DisplayName', '$D_{zf}$')
hold off; hold off;
xlabel('Time [s]'); xlabel('Time [s]');
ylabel('Vertical motion [$\mu$m]') ylabel('Ground motion [$\mu$m]')
xlim([0, 5]); ylim([-2, 2])
leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
leg.ItemTokenSize(1) = 15;
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file replace #+begin_src matlab :tangle no :exports results :results file none
exportFig('figs/ustation_ground_disturbance.pdf', 'width', 'normal', 'height', 'short'); exportFig('figs/ustation_ground_disturbance.pdf', 'width', 'half', 'height', 450);
#+end_src #+end_src
#+attr_latex: :options [b]{0.54\linewidth}
#+begin_minipage
#+name: fig:ustation_ground_disturbance #+name: fig:ustation_ground_disturbance
#+caption: Measured ground motion #+caption: Measured ground motion
#+RESULTS: #+attr_latex: :scale 1 :float nil
[[file:figs/ustation_ground_disturbance.png]] [[file:figs/ustation_ground_disturbance.png]]
#+end_minipage
\hfill
#+attr_latex: :options [b]{0.44\linewidth}
#+begin_minipage
#+name: fig:ustation_geophone_picture
#+caption: (3D) L-4C geophone
#+attr_latex: :width 0.92\linewidth :float nil
[[file:figs/ustation_geophone_picture.jpg]]
#+end_minipage
**** Ty Stage **** Ty Stage
@ -2381,7 +2408,7 @@ pxx_dy_fz = pxx_dy_dz./abs(squeeze(freqresp(Gd('Dz', 'Fdy_z'), f_dy, 'Hz'))).^2;
% in the Simscape model % in the Simscape model
% Ground motion % Ground motion
min_f = 1; max_f = 500; min_f = 1; max_f = 100;
gm_dist.f = f_gm(f_gm < max_f & f_gm > min_f); gm_dist.f = f_gm(f_gm < max_f & f_gm > min_f);
gm_dist.pxx_x = pxx_gm_x(f_gm < max_f & f_gm > min_f); gm_dist.pxx_x = pxx_gm_x(f_gm < max_f & f_gm > min_f);
gm_dist.pxx_y = pxx_gm_y(f_gm < max_f & f_gm > min_f); gm_dist.pxx_y = pxx_gm_y(f_gm < max_f & f_gm > min_f);
@ -2573,7 +2600,6 @@ exportFig('figs/ustation_dist_source_ground_motion_time.pdf', 'width', 'third',
:HEADER-ARGS:matlab+: :tangle matlab/ustation_4_experiments.m :HEADER-ARGS:matlab+: :tangle matlab/ustation_4_experiments.m
:END: :END:
<<sec:ustation_experiments>> <<sec:ustation_experiments>>
** Introduction :ignore: ** Introduction :ignore:
In order to fully validate the micro-station multi-body model, two time domain simulations corresponding to typical use cases are performed. In order to fully validate the micro-station multi-body model, two time domain simulations corresponding to typical use cases are performed.
@ -2797,6 +2823,9 @@ exportFig('figs/ustation_errors_model_dy_vertical.pdf', 'width', 'half', 'height
[[file:figs/ustation_errors_model_dy_vertical.png]] [[file:figs/ustation_errors_model_dy_vertical.png]]
* Conclusion * Conclusion
:PROPERTIES:
:UNNUMBERED: t
:END:
<<sec:uniaxial_conclusion>> <<sec:uniaxial_conclusion>>
In order to have good model: In order to have good model:
@ -5350,14 +5379,14 @@ Otherwise, when the limbs' lengths derived yield complex numbers, then the posit
#+end_src #+end_src
* Footnotes * Footnotes
[fn:11]A 3-Axis L4C geophone manufactured Sercel was used.
[fn:10]Laser source is manufactured by Agilent (5519b) [fn:10]Laser source is manufactured by Agilent (5519b).
[fn:9]The special optics (straightness interferometer and reflector) are manufactured by Agilent (10774A). [fn:9]The special optics (straightness interferometer and reflector) are manufactured by Agilent (10774A).
[fn:8]C8 capacitive sensors and CPL290 capacitive driver electronics from Lion Precision [fn:8]C8 capacitive sensors and CPL290 capacitive driver electronics from Lion Precision.
[fn:7]The Spindle Error Analyzer is made by Lion Precision. [fn:7]The Spindle Error Analyzer is made by Lion Precision.
[fn:6]The tools presented here are largely taken from [[cite:&taghirad13_paral]]. [fn:6]The tools presented here are largely taken from [[cite:&taghirad13_paral]].
[fn:5]Rotations are non commutative in 3D [fn:5]Rotations are non commutative in 3D.
[fn:4]Ball cage (N501) and guide bush (N550) from Mahr are used [fn:4]Ball cage (N501) and guide bush (N550) from Mahr are used.
[fn:3]Modified Zonda Hexapod by Symetrie [fn:3]Modified Zonda Hexapod by Symetrie.
[fn:2]Made by LAB Motion Systems [fn:2]Made by LAB Motion Systems.
[fn:1]HCR 35 A C1, from THK [fn:1]HCR 35 A C1, from THK.

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2024-11-06 Wed 15:31 % Created 2024-11-06 Wed 16:28
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
@ -24,7 +24,25 @@
\clearpage \clearpage
Introduction\ldots{} From the start of this work, it became increasingly clear that an accurate model of the micro-station was necessary.
First, during the uniaxial study, it became apparent 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 affects the system dynamics, and that it should therefore be modelled.
Finally, performing a modal analysis of the micro-station showed how complex the dynamics of the station is.
It also confirmed that each stage behaves as a rigid body in the frequency range of interest.
Therefore a multi-body model seems a good candidate to accurately represent the micro-station dynamics.
In this report, the development of such multi-body model is presented.
First, each stage of the micro-station is described.
The kinematics of the micro-station (i.e. how the motion of the stages are combined) is presented in Section \ref{sec:ustation_kinematics}.
Then, the multi-body model is presented and tuned to match the measured dynamics of the micro-station (Section \ref{sec:ustation_modeling}).
Disturbances affecting the positioning accuracy also need to be modelled properly.
To do so, the effect of these disturbances are first measured experimental and then injected in 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} \chapter{Micro-Station Kinematics}
@ -55,11 +73,11 @@ A linear motor was first used to be able to perform fast and accurate scans.
It was later replaced with a stepper motor and lead-screw, as the feedback control used for the linear motor was unreliable, probably caused by rust of the linear guides along its stroke. It was later replaced with a stepper motor and lead-screw, as the feedback control used for the linear motor was unreliable, probably caused by rust of the linear guides along its stroke.
An optical linear encoder is used to measure the stage motion and for PID control of the position. An optical linear encoder is used to measure the stage motion and for PID control of the position.
Four cylindrical bearings\footnote{Ball cage (N501) and guide bush (N550) from Mahr are used} are used to guide the motion (i.e. minimize the parasitic motions) and have high stiffness. 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} \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. The tilt stage is guided by four linear motion guides\footnote{HCR 35 A C1, from THK.} which are placed such that the center of rotation coincide with the X-ray beam.
Each linear guide has high stiffness in radial directions such that the only DoF with low stiffness is in \(R_y\). Each linear guide has high stiffness in radial directions such that the only DoF with low stiffness is in \(R_y\).
This stage is mainly used for \emph{reflectivity} experiments where the sample \(R_y\) angle is scanned. This stage is mainly used for \emph{reflectivity} experiments where the sample \(R_y\) angle is scanned.
@ -84,13 +102,13 @@ To precisely control the \(R_y\) angle, a stepper motor as well as two optical e
\paragraph{Spindle} \paragraph{Spindle}
Then, a rotation stage is used for tomography experiments. 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. It is composed of an air bearing spindle\footnote{Made by LAB Motion Systems.}, whose angular position is controlled with a 3 phase synchronous motor based on the reading of 4 optical encoders.
Additional rotary unions and slip-rings to be able to pass through the rotation many electrical signals and fluids and gazes. Additional rotary unions and slip-rings to be able to pass through the rotation many electrical signals and fluids and gazes.
\paragraph{Micro-Hexapod} \paragraph{Micro-Hexapod}
Finally, a Stewart platform\footnote{Modified Zonda Hexapod by Symetrie} is used to position the sample. Finally, a Stewart platform\footnote{Modified Zonda Hexapod by Symetrie.} is used to position the sample.
It includes a DC motor and an optical linear encoders in each of the six strut. It includes a DC motor and an optical linear encoders in each of the six strut.
It is used to position the point of interest of the sample with respect to the spindle rotation axis. It is used to position the point of interest of the sample with respect to the spindle rotation axis.
@ -186,7 +204,7 @@ For rotations along \(x\), \(y\) or \(z\) axis, formulas are given in Equation \
\end{subequations} \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 \(\mathbf{R}_x\), \(\mathbf{R}_y\) and \(\mathbf{R}_z\).
As the order of rotation is very important\footnote{Rotations are non commutative in 3D}, in this work we choose to express rotations as three successive rotations about the coordinate axes of the moving frame eqref;eq:ustation\_rotation\_combination. As the order of rotation is very important\footnote{Rotations are non commutative in 3D.}, in this work we choose to express rotations as three successive rotations about the coordinate axes of the moving frame eqref;eq:ustation\_rotation\_combination.
\begin{equation}\label{eq:ustation_rotation_combination} \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\mathbf{R}_B(\alpha, \beta, \gamma) = \mathbf{R}_u(\alpha) \mathbf{R}_v(\beta) \mathbf{R}_c(\gamma)
@ -563,20 +581,28 @@ The tilt stage and the micro-hexapod also have positioning errors, they are howe
Therefore, from a control point of view, they are not important. Therefore, from a control point of view, they are not important.
\paragraph{Ground Motion} \paragraph{Ground Motion}
The ground motion is simply measured by using a sensitive 3-axis geophone placed on the ground. The ground motion is 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 are recorded with a high resolution DAC, and converted to displacement using the Geophone sensitivity transfer function. The generated voltages are 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}. The obtained ground motion displacement is shown in Figure \ref{fig:ustation_ground_disturbance}.
\begin{figure}[htbp] \begin{minipage}[b]{0.54\linewidth}
\centering \begin{center}
\includegraphics[scale=1]{figs/ustation_ground_disturbance.png} \includegraphics[scale=1,scale=1]{figs/ustation_ground_disturbance.png}
\caption{\label{fig:ustation_ground_disturbance}Measured ground motion} \captionof{figure}{\label{fig:ustation_ground_disturbance}Measured ground motion}
\end{figure} \end{center}
\end{minipage}
\hfill
\begin{minipage}[b]{0.44\linewidth}
\begin{center}
\includegraphics[scale=1,width=0.92\linewidth]{figs/ustation_geophone_picture.jpg}
\captionof{figure}{\label{fig:ustation_geophone_picture}(3D) L-4C geophone}
\end{center}
\end{minipage}
\paragraph{Ty Stage} \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. To measure the positioning errors of the translation stage, the setup shown in Figure \ref{fig:ustation_errors_ty_setup} is used.
A special optical element (called a ``straightness interferometer''\footnote{The special optics (straightness interferometer and reflector) are 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 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 is used to measure the horizontal deviation (i.e. in the \(x\) direction), as well as the pitch and yaw errors of the translation stage. A similar setup is used to measure the horizontal deviation (i.e. in the \(x\) direction), as well as the pitch and yaw errors of the translation stage.
\begin{figure}[htbp] \begin{figure}[htbp]
@ -612,7 +638,7 @@ Similar result is obtain for the \(x\) lateral direction.
In order to measure the positioning errors induced by the Spindle, a ``Spindle error analyzer''\footnote{The Spindle Error Analyzer is made by Lion Precision.} is used as shown in Figure \ref{fig:ustation_rz_meas_lion_setup}. In order to measure the positioning errors induced by the Spindle, a ``Spindle error analyzer''\footnote{The Spindle Error Analyzer is made by Lion Precision.} is used as shown in Figure \ref{fig:ustation_rz_meas_lion_setup}.
A specific target is fixed on top of the micro-station which consists of two sphere with 1 inch diameter precisely aligned with the spindle rotation axis. 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}. 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. From the 5 measured displacements \([d_1,\,d_2,\,d_3,\,d_4,\,d_5]\), the translations and rotations \([D_x,\,D_y,\,D_z,\,R_x,\,R_y]\) of the target can be estimated.
\begin{figure}[htbp] \begin{figure}[htbp]
@ -751,7 +777,6 @@ In order to fully validate the micro-station multi-body model, two time domain s
First, a tomography experiment (i.e. a constant Spindle rotation) is performed and compared with experimental measurements (Section \ref{sec:ustation_experiments_tomography}). First, a tomography experiment (i.e. a constant Spindle rotation) is performed and compared with experimental measurements (Section \ref{sec:ustation_experiments_tomography}).
Second, a constant velocity scans with the translation stage is performed and also compared with experimental data (Section \ref{sec:ustation_experiments_ty_scans}). Second, a constant velocity scans with the translation stage is performed and also compared with experimental data (Section \ref{sec:ustation_experiments_ty_scans}).
\section{Tomography Experiment} \section{Tomography Experiment}
\label{sec:ustation_experiments_tomography} \label{sec:ustation_experiments_tomography}
@ -793,7 +818,7 @@ Similar error amplitude can be observed, thus indicating that the multi-body mod
\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.} \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} \end{figure}
\chapter{Conclusion} \chapter*{Conclusion}
\label{sec:uniaxial_conclusion} \label{sec:uniaxial_conclusion}
In order to have good model: In order to have good model: