% Created 2024-03-19 Tue 11:22
% Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}

\input{preamble.tex}
\bibliography{test-bench-id31.bib}
\author{Dehaeze Thomas}
\date{\today}
\title{Nano-Hexapod on the micro-station}
\hypersetup{
 pdfauthor={Dehaeze Thomas},
 pdftitle={Nano-Hexapod on the micro-station},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 29.2 (Org mode 9.7)}, 
 pdflang={English}}
\usepackage{biblatex}

\begin{document}

\maketitle
\tableofcontents

\clearpage
\chapter{Short Stroke Metrology System}
\label{sec:id31_short_stroke_metrology}
The control of the nano-hexapod requires an external metrology system measuring the relative position of the nano-hexapod top platform with respect to the granite.
As the long-stroke (\(\approx 1\,cm^3\)) metrology system is not developed yet, a stroke stroke (\(> 100\,\mu m^3\)) can be used instead to validate the nano-hexapod control.

This short stroke metrology system consists of 5 interferometers pointing at 2 spheres fixed on top of the nano-hexapod (Figure \ref{fig:LION_picture_close}).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=0.5\linewidth]{figs/LION_picture_close.jpg}
\caption{\label{fig:LION_picture_close}Metrology system with LION spheres (1 inch diameter) and 5 interferometers fixed to their individual tip-tilts}
\end{figure}

This short stroke metrology system is fixed to the main granite using a gantry made of granite blocs to have good vibration and thermal stability (see Figure \ref{fig:short_stroke_metrology_overview}).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=\linewidth]{figs/short_stroke_metrology_overview.jpg}
\caption{\label{fig:short_stroke_metrology_overview}Granite gantry used to fix the short-stroke metrology system}
\end{figure}

As the metrology system as limited stroke (estimated to be in the order of hundreds of micro-meters in x-y-z), it has to be well aligned in the rest position.

The alignment procedure is as follows:
\begin{enumerate}
\item The granite is aligned to be perpendicular to gravity (using inclinometer and adjusting airlocks)
\item The height of micro-hexapod is tuned to be able to position the short stroke metrology without additional shim
\item It is verified that the spindle axis is well perpendicular to the granite using the laser tracker
\item The micro hexapod is then used to align the two spheres with the spindle axis.
\end{enumerate}
\section{Kinematics}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=0.5\linewidth]{figs/LION_metrology_interferometers.png}
\caption{\label{fig:LION_metrology_interferometers}Schematic of the measurement system}
\end{figure}

We have the following set of equations:
\begin{align}
d_1 &= +D_y - l_2 R_x \\
d_2 &= +D_y + l_1 R_x \\
d_3 &= -D_x - l_2 R_y \\
d_4 &= -D_x + l_1 R_y \\
d_5 &= -D_z
\end{align}

That can be written as a linear transformation:
\begin{equation}
\begin{bmatrix}
  d_1 \\ d_2 \\ d_3 \\ d_4 \\ d_5
\end{bmatrix} = \begin{bmatrix}
   0 &  1 &  0 & -l_2 &  0   \\
   0 &  1 &  0 &  l_1 &  0   \\
  -1 &  0 &  0 &  0   & -l_2 \\
  -1 &  0 &  0 &  0   &  l_1 \\
   0 &  0 & -1 &  0   &  0
\end{bmatrix} \cdot \begin{bmatrix}
  D_x \\ D_y \\ D_z \\ R_x \\ R_y
\end{bmatrix}
\end{equation}

By inverting the matrix, we obtain the Jacobian relation:
\begin{equation}
\begin{bmatrix}
  D_x \\ D_y \\ D_z \\ R_x \\ R_y
\end{bmatrix} = \begin{bmatrix}
   0 &  1 &  0 & -l_2 &  0   \\
   0 &  1 &  0 &  l_1 &  0   \\
  -1 &  0 &  0 &  0   & -l_2 \\
  -1 &  0 &  0 &  0   &  l_1 \\
   0 &  0 & -1 &  0   &  0
\end{bmatrix}^{-1} \cdot \begin{bmatrix}
  d_1 \\ d_2 \\ d_3 \\ d_4 \\ d_5
\end{bmatrix}
\end{equation}

\begin{table}[htbp]
\caption{\label{tab:jacobian_metrology}Jacobian matrix for the metrology system}
\centering
\begin{tabularx}{\linewidth}{cXXXXX}
\toprule
 & \textbf{d1} & \textbf{d2} & \textbf{d3} & \textbf{d4} & \textbf{d5}\\
\midrule
\textbf{Dx} & 0.0 & 0.0 & -0.79 & -0.21 & 0.0\\
\textbf{Dy} & 0.79 & 0.21 & 0.0 & 0.0 & 0.0\\
\textbf{Dz} & 0.0 & 0.0 & 0.0 & 0.0 & -1.0\\
\textbf{Rx} & -13.12 & 13.12 & -0.0 & 0.0 & 0.0\\
\textbf{Ry} & -0.0 & -0.0 & -13.12 & 13.12 & 0.0\\
\bottomrule
\end{tabularx}
\end{table}
\section{Rough alignment of spheres using comparators}
Bottom Sphere, then top sphere.

Alignment better than 10um.
But the coaxiality between the cylinder and the sphere might not be good.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=\linewidth]{figs/align_top_sphere_comparators.jpg}
\caption{\label{fig:align_top_sphere_comparators}Two mechanical comparators used to align the top sphere with the rotation axis of the spindle}
\end{figure}
\section{Alignment of spheres using interferometers}
\subsection{Angular alignment}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_metrology_align_rx_ry.png}
\caption{\label{fig:id31_metrology_align_rx_ry}Rx/Ry alignment of the spheres using the micro-station}
\end{figure}
\subsection{Eccentricity alignment}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_metrology_align_dx_dy.png}
\caption{\label{fig:id31_metrology_align_dx_dy}Dx/Dy alignment of the spheres using the micro-station}
\end{figure}
\section{Residual error after alignment}
\begin{itemize}
\item Dx and Dy are less than 1um.
\item Dz less than 0.1um.
\item Rx and Ry less than 4urad.
\end{itemize}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_align_metorlogy_errors_after_align.png}
\caption{\label{fig:id31_align_metorlogy_errors_after_align}Remaining errors after aligning the metrology using the interferometers}
\end{figure}
\section{Metrology acceptance}
Because the interferometers are pointing to spheres and not flat surfaces, the lateral acceptance is limited.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/metrology_alignment_xy_map.png}
\caption{\label{fig:metrology_alignment_xy_map}XY mapping of the Z measurement by the interferometer}
\end{figure}
\chapter{Simscape Model}
\label{sec:id31_simscape_model}
\section{Init model}
\section{Identify Transfer functions}
\section{IFF Plant}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_simscape_iff_ol_plant.png}
\caption{\label{fig:id31_simscape_iff_ol_plant}IFF transfer function - Simscape model}
\end{figure}
\section{Encoder plant}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_simscape_enc_ol_plant.png}
\caption{\label{fig:id31_simscape_enc_ol_plant}ENC transfer function - Simscape model}
\end{figure}
\section{HAC Undamped plant}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_simscape_int_ol_plant.png}
\caption{\label{fig:id31_simscape_int_ol_plant}INT transfer function - Simscape model}
\end{figure}
\chapter{Identified Open Loop Plant}
\label{sec:id31_open_loop_plant}
\section{IFF Plant}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_iff_ol_plant_m0.png}
\caption{\label{fig:id31_iff_ol_plant_m0}Measured transfer function from generated voltages to measured voltage on the force sensors}
\end{figure}

The measured frequency response functions from DAC voltages \(u_i\) to measured voltages on the force sensors \(\tau_{m,i}\) are compared with the simscape model in Figure \ref{fig:id31_comp_simscape_frf_ol_iff}.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_comp_simscape_frf_ol_iff.png}
\caption{\label{fig:id31_comp_simscape_frf_ol_iff}Comparison of the Simscape model and identified IFF plant}
\end{figure}

The effect of the payload mass on the diagonal elements are shown in Figure \ref{fig:id31_effect_mass_frf_ol_iff}.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_effect_mass_frf_ol_iff.png}
\caption{\label{fig:id31_effect_mass_frf_ol_iff}Effect of the payload mass on the IFF plant}
\end{figure}
\section{Encoder plant}
The identified frequency response functions from general voltages \(u_i\) to measured displacement of the struts by the encoders \(d\mathcal{L}_i\) are compared with the simscape model in Figure \ref{fig:id31_comp_simscape_frf_ol_enc}.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_comp_simscape_frf_ol_enc.png}
\caption{\label{fig:id31_comp_simscape_frf_ol_enc}Comparison of the Simscape model and identified plant - Transfer functions from voltages to encoders}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_effect_mass_frf_ol_enc.png}
\caption{\label{fig:id31_effect_mass_frf_ol_enc}Effect of the payload mass on the transfer function from actuator voltage to encoder displacement}
\end{figure}
\section{HAC Undamped plant}
The identified frequency response functions from actuator voltages \(u_i\) to measured strut motion from the external metrology (i.e. the interferometers) are compare with the simscape model in Figure \ref{fig:id31_comp_simscape_frf_ol_int}.


\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_int_ol_plant_m0.png}
\caption{\label{fig:id31_int_ol_plant_m0}Measured transfer function from generated voltages to measured voltage on the force sensors}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_comp_simscape_frf_ol_int.png}
\caption{\label{fig:id31_comp_simscape_frf_ol_int}Comparison of the Simscape model and identified plant - Transfer functions from voltages to estimated strut motion from interferometers}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_effect_mass_frf_ol_int.png}
\caption{\label{fig:id31_effect_mass_frf_ol_int}Effect of the payload mass on the transfer functions from actuator voltage to measured strut motion by the external metrology}
\end{figure}
\section{Decoupling improvement thanks to better Rz alignment}
\subsection{Alignment procedure}

\begin{itemize}
\item Control based on encoders
\item Slow moving in X and Y
\item Compare with X and Y from interf
\end{itemize}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Rz_align_dx_dy_scans_before_calib.png}
\caption{\label{fig:id31_Rz_align_dx_dy_scans_before_calib}description}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Rz_align_dx_dy_scans.png}
\caption{\label{fig:id31_Rz_align_dx_dy_scans}description}
\end{figure}
\subsection{m0}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_coupling_decrease_rz_align.png}
\caption{\label{fig:id31_coupling_decrease_rz_align}Decrease of the coupling with better Rz alignment}
\end{figure}
\subsection{m3}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_coupling_decrease_rz_align_m3.png}
\caption{\label{fig:id31_coupling_decrease_rz_align_m3}Decrease of the coupling with better Rz alignment}
\end{figure}
\section{Conclusion}

\begin{itemize}
\item Good match between the model and experiment
\end{itemize}
\chapter{Noise Budget}
\label{sec:id31_noise_budget}
In this section, the noise budget is performed.
The vibrations of the sample is measured in different conditions using the external metrology.
\section{Open-Loop Noise Budget}
First, the noise is measured while no motion is performed.

Noise budget in the cartesian frame
Data in the time domain
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_noise_budget_interf_time_domain_m0.png}
\caption{\label{fig:id31_noise_budget_interf_time_domain_m0}Measured vibration with the interferometers}
\end{figure}

In the frequency domain
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_noise_budget_interf_freq_domain_m0.png}
\caption{\label{fig:id31_noise_budget_interf_freq_domain_m0}Measured vibration with the interferometers}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_noise_budget_open_loop_cas_m0.png}
\caption{\label{fig:id31_noise_budget_open_loop_cas_m0}Measured vibration with the interferometers}
\end{figure}
\section{Effect of LAC}
Effect of LAC (Figure \ref{fig:id31_noise_budget_effect_lac_m0}):
\begin{itemize}
\item reduce amplitude around 80Hz
\item Inject some noise between 200 and 700Hz?
\end{itemize}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_noise_budget_effect_lac_m0.png}
\caption{\label{fig:id31_noise_budget_effect_lac_m0}Measured vibration with the interferometers}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_cas_effect_lac_m0.png}
\caption{\label{fig:id31_cas_effect_lac_m0}Measured vibration with the interferometers}
\end{figure}
\section{Effect of rotation}
Rotation induces lots of vibrations, especially at high velocity.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_noise_budget_effect_rotation.png}
\caption{\label{fig:id31_noise_budget_effect_rotation}Cumulative Amplitude Spectrum for the three important directions (\(D_y\), \(D_z\) and \(R_y\)). Three rotating velocities are shown. Integrated RMS values are shown in the legend.}
\end{figure}
\section{Effect of HAC}
Bandwidth is approximately 10Hz.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_noise_budget_effect_hac_m0.png}
\caption{\label{fig:id31_noise_budget_effect_hac_m0}Measured vibration with the interferometers}
\end{figure}



\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_cas_effect_hac_m0.png}
\caption{\label{fig:id31_cas_effect_hac_m0}Measured vibration with the interferometers}
\end{figure}
\section{Noise coming from force sensor}
\chapter{Integral Force Feedback}
\label{sec:id31_iff}
\section{IFF Plants}
\subsection{6x6 Plant}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Giff_plant.png}
\caption{\label{fig:id31_Giff_plant}Obtained transfer function from generated voltages to measured voltages on the piezoelectric force sensor}
\end{figure}

Compare with Model:
\subsection{Effect of Rotation}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Giff_effect_rotation.png}
\caption{\label{fig:id31_Giff_effect_rotation}Obtained transfer function from generated voltages to measured voltages on the piezoelectric force sensor}
\end{figure}
\subsection{Effect of Mass}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Giff_effect_mass.png}
\caption{\label{fig:id31_Giff_effect_mass}Obtained transfer function from generated voltages to measured voltages on the piezoelectric force sensor}
\end{figure}
\subsection{Compare with the model}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Giff_plant_comp_model.png}
\caption{\label{fig:id31_Giff_plant_comp_model}Comparison of the identified IFF plant and the IFF plant extracted from the simscape model}
\end{figure}
\section{IFF Controller}
\subsection{Controller Design}
Test second order high pass filter:
We want integral action between 20Hz and 200Hz.
Loop Gain:
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_iff_loop_gain_diagonal_terms.png}
\caption{\label{fig:id31_iff_loop_gain_diagonal_terms}IFF Loop gain of the diagonal terms}
\end{figure}

Root Locus to obtain optimal gain.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_iff_root_locus.png}
\caption{\label{fig:id31_iff_root_locus}Root Locus for IFF. Green crosses are closed-loop poles for the same choosen IFF gain.}
\end{figure}
\subsection{Verify Stability}
Verify Stability with Nyquist plot:

\begin{itemize}
\item Why bad stability margins?
\end{itemize}
\subsection{Save Controller}
\section{Estimated Damped Plant}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_hac_damped_plant_estimated_simscape.png}
\caption{\label{fig:id31_hac_damped_plant_estimated_simscape}description}
\end{figure}
\chapter{High Authority Control}
\label{sec:id31_iff_hac}
\section{Identify Spurious modes}
\section{HAC Plants}
\subsection{6x6 Plant}
Compare with Model:
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Ghac_6x6_plant_comp_model.png}
\caption{\label{fig:id31_Ghac_6x6_plant_comp_model}6x6 plant from generated voltages to displacement of the struts as measured by the external metrology}
\end{figure}
\subsection{Effect of Mass}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Ghac_effect_mass.png}
\caption{\label{fig:id31_Ghac_effect_mass}Obtained transfer function from generated voltages to measured voltages on the piezoelectric force sensor}
\end{figure}
\subsection{Compare with the model}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_Ghac_plant_comp_model.png}
\caption{\label{fig:id31_Ghac_plant_comp_model}Comparison of the identified HAC plant and the HAC plant extracted from the simscape model}
\end{figure}
\subsection{Comparison with Undamped plant}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_comp_undamped_damped_plant_m0.png}
\caption{\label{fig:id31_comp_undamped_damped_plant_m0}description}
\end{figure}
\section{Robust HAC}
\subsection{Controller design}
Loop gain
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_hac_robust_loop_gain.png}
\caption{\label{fig:id31_hac_robust_loop_gain}description}
\end{figure}
\subsection{Verify Stability}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_hac_robust_nyquist.png}
\caption{\label{fig:id31_hac_robust_nyquist}description}
\end{figure}
\subsection{Estimated performances}

\subsection{Save Controller}
\section{High Performance HAC}
The goal is to make a controller specific for one mass in order to have high bandwidth.
\subsection{Mass 0}
\paragraph{Load Plant}
\paragraph{Plant}
\paragraph{Controller design}
Loop gain
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_high_perf_hac_m0_loop_gain.png}
\caption{\label{fig:id31_high_perf_hac_m0_loop_gain}Loop gain for the High Authority Control}
\end{figure}
\paragraph{Verify Stability}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_high_perf_hac_m0_nyquist.png}
\caption{\label{fig:id31_high_perf_hac_m0_nyquist}Nyquist plot for the High Authority Control}
\end{figure}
\paragraph{Estimated performances}
Loop gain with model
\paragraph{Save Controller}
\paragraph{Experimental Validation}

\begin{center}
\begin{tabular}{lrrr}
 & Dy [nm] & Dz [nm] & Ry [urad]\\
\hline
1rpm & 55.3 & 5.9 & 0.1\\
30rpm & 85.2 & 12.5 & 0.3\\
\end{tabular}
\end{center}
\paragraph{Closed-Loop identification}
\subsection{Mass 1}
\paragraph{Load Plant}
\paragraph{Plant}
\paragraph{Plant Inverse}
\paragraph{Controller design}
Loop gain
\paragraph{Verify Stability}
\paragraph{Estimated performances}
Loop gain with model
\paragraph{Save Controller}
\section{Tomography - Performances}
\subsection{First scan with closed-loop at middle}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_tomography_ol_cl_robust_hac_m0.png}
\caption{\label{fig:id31_tomography_ol_cl_robust_hac_m0}description}
\end{figure}
\subsection{Slow Rotation - 6RPM}
\subsection{Rapid Rotation - 30RPM}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_cas_m0_30rpm_ol_lac_hac.png}
\caption{\label{fig:id31_cas_m0_30rpm_ol_lac_hac}Cumulative Amplitude Spectrum of the errors in \(D_y\), \(D_z\) and \(R_y\) during a tomography scan at 30RPM. Three control configuration are compared: Open-Loop, Low Authority Control, and High Authority Control}
\end{figure}
\chapter{6DoF Control in Cartesian plane (rotating with the nano-hexapod)}
\label{sec:id31_cart_hac_rot}
As only Dy, Dz and Ry directions are important, we could only control them.
This lead to a 3x3 plant that may be more decoupled than the 6x6 plant.
\section{5x5 plant in Cartesian plane}
Compute identified plant in the Cartesian plane:
Compute plant model in the Cartesian plane:
\section{Controller Design}
\section{Check Stability}
\section{Save controllers}
\section{Performances}
2023-08-18\_18-33\_m0\_1rpm\_K\_cart.mat
\chapter{3DoF Control in Cartesian plane (fixed)}
\label{sec:id31_cart_hac_fix}
As only Dy, Dz and Ry directions are important, we could only control them.
This lead to a 3x3 plant that may be more decoupled than the 6x6 plant.
\section{3x3 plant in Cartesian plane}
Compute identified plant in the Cartesian plane:
Compute plant model in the Cartesian plane:
\begin{important}
Diagonal elements are matching quite well, but off-diagonal elements are very different.

Why so much more coupling than from the model?
\begin{itemize}
\item Is it due to the metrology? The spheres could induce coupling as for instance X motion will also be seen as Z motion.
This is especially true if not well centered with the sphere (as seemed to be the case for the lateral interferometers).
\end{itemize}
\end{important}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_cart_plant_3x3.png}
\caption{\label{fig:id31_cart_plant_3x3}3x3 cartesian plant}
\end{figure}


Normalization of outputs:
\section{Controller Design}
\subsection{Dy}
\subsection{Dz}
\subsection{Ry}
\subsection{3x3 controller}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/G_cart_loop_gain_diagonal_3dof.png}
\caption{\label{fig:G_cart_loop_gain_diagonal_3dof}description}
\end{figure}
\section{Check Stability}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/G_cart_nyquist_diagonal_3dof.png}
\caption{\label{fig:G_cart_nyquist_diagonal_3dof}description}
\end{figure}
\section{Save controllers}
\subsection{Save Controller}
\section{Controller Design (normalized)}
\section{Verify Stability}
\section{Control Performances}
\begin{itemize}
\item[{$\square$}] Compare with estimated performances
\end{itemize}
\chapter{Complementary Filter Control}
\label{sec:id31_cart_hac_complementary_filter}
\section{m0}
\subsection{3x3 plant in Cartesian plane}
Compute identified plant in the Cartesian plane:
Compute plant model in the Cartesian plane:
\subsection{Plant Invert}
Reduce model size
Add first resonance
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_comp_cart_plant_reduced_model.png}
\caption{\label{fig:id31_comp_cart_plant_reduced_model}Comparaison of the measured direct terms and the reduced order models}
\end{figure}


Invert and make realizable
\subsection{Save Plant Inverse}
\subsection{Control Performances}
\paragraph{5Hz}
\begin{itemize}
\item[{$\square$}] Compare with estimated performances
\end{itemize}
\paragraph{20Hz}
\begin{itemize}
\item[{$\square$}] Compare with estimated performances
\end{itemize}
\paragraph{Different bandwidth for different directions}
\begin{itemize}
\item[{$\square$}] Compare with estimated performances
\end{itemize}
\paragraph{Dz 25Hz}
\begin{itemize}
\item[{$\square$}] Compare with estimated performances
\end{itemize}
\subsection{Better plant invert}
\paragraph{Dy}
Stable Inverse
\paragraph{Dz}
Stable Inverse
\paragraph{Ry}
Stable Inverse
\paragraph{Compare Invert plants}

\paragraph{Save plant inverse}
\paragraph{Compare Digital Invert plants}
\subsection{Control Performances}
\paragraph{Better plant invert}
\subsection{Scans with good controller}
\paragraph{1rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 796 & 20 & 8 & 8209 & 73\\
\end{tabular}
\end{center}
\paragraph{30rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 820 & 39 & 13 & 7790 & 156\\
\end{tabular}
\end{center}
\section{m1}
\subsection{3x3 plant in Cartesian plane}
Compute identified plant in the Cartesian plane:
Compute plant model in the Cartesian plane:
Normalization of outputs:
\subsection{Better plant invert}
\paragraph{Dy}
Stable Inverse
\paragraph{Dz}
Stable Inverse
\paragraph{Ry}
Stable Inverse
\paragraph{Compare Invert plants}
\paragraph{Save plant inverse}
\paragraph{Compare Digital Invert plants}
\subsection{Control Performances}
\paragraph{Better plant invert}
\subsection{Scans with good controller}
\paragraph{1rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 796 & 20 & 8 & 8209 & 73\\
\end{tabular}
\end{center}
\paragraph{30rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 820 & 39 & 13 & 7790 & 156\\
\end{tabular}
\end{center}
\section{m2}
\subsection{3x3 plant in Cartesian plane}
Compute identified plant in the Cartesian plane:
Compute plant model in the Cartesian plane:
Normalization of outputs:
\subsection{Better plant invert}
\paragraph{Dy}
Stable Inverse
\paragraph{Dz}
Stable Inverse
\paragraph{Ry}
Stable Inverse
\paragraph{Compare Invert plants}
\paragraph{Save plant inverse}
\paragraph{Compare Digital Invert plants}
\subsection{Control Performances}
\paragraph{Better plant invert}
\subsection{Scans with good controller}
\paragraph{1rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 796 & 20 & 8 & 8209 & 73\\
\end{tabular}
\end{center}
\paragraph{30rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 820 & 39 & 13 & 7790 & 156\\
\end{tabular}
\end{center}
\section{m3}
\subsection{3x3 plant in Cartesian plane}
Compute identified plant in the Cartesian plane:
Compute plant model in the Cartesian plane:
Normalization of outputs:
\subsection{Better plant invert}
\paragraph{Dy}
Stable Inverse
\paragraph{Dz}
Stable Inverse
\paragraph{Ry}
Stable Inverse
\paragraph{Compare Invert plants}
\paragraph{Save plant inverse}
\paragraph{Compare Digital Invert plants}
\subsection{Control Performances}
\paragraph{Better plant invert}
\subsection{Scans with good controller}
\paragraph{1rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 796 & 20 & 8 & 8209 & 73\\
\end{tabular}
\end{center}
\paragraph{30rpm}
1RPM scans are performed for all the masses with the same controller.

\begin{center}
\begin{tabular}{lrrrrr}
 & Dx [nm] & Dy [nm] & Dz [nm] & Rx [nrad] & Ry [nrad]\\
\hline
m0 & 820 & 39 & 13 & 7790 & 156\\
\end{tabular}
\end{center}
\chapter{Scans}
\label{sec:id31_scans}
\begin{itemize}
\item Section \ref{sec:id31_scans_tomography}
\item Section \ref{sec:id31_scans_dz}
\item Section \ref{sec:id31_scans_reflectivity}
\item Section \ref{sec:id31_scans_dy}
\item Section \ref{sec:id31_scans_diffraction_tomo}
\end{itemize}
\section{\(R_z\) scans: Tomography}
\label{sec:id31_scans_tomography}
m0: 30rpm, 6rpm, 1rpm
m1: 6rpm, 1rpm
m2: 6rpm, 1rpm
m3: 1rpm
\subsection{Robust Control - 1rpm}
1RPM scans are performed for all the masses with the same robust controller.

The problem for these scans is that the position initialization was not make properly, so the open-loop errors are quite large (see Figure \ref{fig:id31_tomo_1rpm_robust_m0}).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_tomo_1rpm_robust_m0.png}
\caption{\label{fig:id31_tomo_1rpm_robust_m0}\(D_x\), \(D_y\) and \(D_z\) motion during a slow (1RPM) tomography experiment. Open Loop data is shown in blue and closed-loop data in red}
\end{figure}

The obtained open-loop and closed-loop errors are shown in tables \ref{tab:id31_tomo_1rpm_robust_ol_errors} and \ref{tab:id31_tomo_1rpm_robust_cl_errors} respectively.

\begin{table}[htbp]
\caption{\label{tab:id31_tomo_1rpm_robust_ol_errors}Measured error during open-loop tomography scans (1rpm)}
\centering
\begin{tabularx}{\linewidth}{cXXXXX}
\toprule
 & \(D_x\) {[}\(\mu m\)] & \(D_y\) {[}\(\mu m\)] & \(D_z\) {[}\(nm\)] & \(R_x\) {[}\(\mu\text{rad}\)] & \(R_y\) {[}\(\mu\text{rad}\)]\\
\midrule
\(m_0\) & 6 & 6 & 32 & 34 & 34\\
\(m_1\) & 6 & 7 & 26 & 51 & 55\\
\(m_2\) & 36 & 38 & 36 & 259 & 253\\
\(m_3\) & 31 & 33 & 38 & 214 & 203\\
\bottomrule
\end{tabularx}
\end{table}

\begin{table}[htbp]
\caption{\label{tab:id31_tomo_1rpm_robust_cl_errors}Measured error during closed-loop tomography scans (1rpm, robust controller)}
\centering
\begin{tabularx}{\linewidth}{cXXXXX}
\toprule
 & \(D_x\) {[}nm] & \(D_y\) {[}nm] & \(D_z\) {[}nm] & \(R_x\) {[}nrad] & \(R_y\) {[}nrad]\\
\midrule
\(m_0\) & 13 & 15 & 5 & 57 & 55\\
\(m_1\) & 16 & 25 & 6 & 102 & 55\\
\(m_2\) & 25 & 25 & 7 & 120 & 103\\
\(m_3\) & 40 & 53 & 9 & 225 & 169\\
\bottomrule
\end{tabularx}
\end{table}
\subsection{Robust Control - 6rpm}
\begin{table}[htbp]
\caption{\label{tab:id31_tomo_6rpm_robust_ol_errors}Measured error during open-loop tomography scans (6rpm)}
\centering
\begin{tabularx}{\linewidth}{cXXXXX}
\toprule
 & \(D_x\) {[}\(\mu m\)] & \(D_y\) {[}\(\mu m\)] & \(D_z\) {[}\(nm\)] & \(R_x\) {[}\(\mu\text{rad}\)] & \(R_y\) {[}\(\mu\text{rad}\)]\\
\midrule
\(m_0\) & 8 & 7 & 20 & 41 & 41\\
\(m_1\) & 4 & 4 & 21 & 39 & 39\\
\bottomrule
\end{tabularx}
\end{table}

\begin{table}[htbp]
\caption{\label{tab:id31_tomo_6rpm_robust_cl_errors}Measured error during closed-loop tomography scans (6rpm, robust controller)}
\centering
\begin{tabularx}{\linewidth}{cXXXXX}
\toprule
 & \(D_x\) {[}nm] & \(D_y\) {[}nm] & \(D_z\) {[}nm] & \(R_x\) {[}nrad] & \(R_y\) {[}nrad]\\
\midrule
\(m_0\) & 17 & 19 & 5 & 70 & 73\\
\(m_1\) & 20 & 26 & 7 & 110 & 77\\
\bottomrule
\end{tabularx}
\end{table}
\subsection{Robust Control - 30rpm}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_tomography_m0_30rpm_robust_xyz.png}
\caption{\label{fig:id31_tomography_m0_30rpm_robust_xyz}Measured motion during tomography scan at 30RPM with a robust controller}
\end{figure}

\begin{table}[htbp]
\caption{\label{tab:id31_tomo_30rpm_robust_ol_errors}Measured error during open-loop tomography scans (30rpm)}
\centering
\begin{tabularx}{\linewidth}{cXXXXX}
\toprule
 & \(D_x\) {[}\(\mu m\)] & \(D_y\) {[}\(\mu m\)] & \(D_z\) {[}\(nm\)] & \(R_x\) {[}\(\mu\text{rad}\)] & \(R_y\) {[}\(\mu\text{rad}\)]\\
\midrule
\(m_0\) & 2 & 2 & 24 & 10 & 10\\
\bottomrule
\end{tabularx}
\end{table}

\begin{table}[htbp]
\caption{\label{tab:id31_tomo_30rpm_robust_cl_errors}Measured error during closed-loop tomography scans (30rpm, robust controller)}
\centering
\begin{tabularx}{\linewidth}{cXXXXX}
\toprule
 & \(D_x\) {[}nm] & \(D_y\) {[}nm] & \(D_z\) {[}nm] & \(R_x\) {[}nrad] & \(R_y\) {[}nrad]\\
\midrule
\(m_0\) & 34 & 38 & 10 & 127 & 129\\
\bottomrule
\end{tabularx}
\end{table}
\section{\(D_z\) scans: Dirty Layer Scans}
\label{sec:id31_scans_dz}
\subsection{Step by Step \(D_z\) motion}
Three step sizes are tested:
\begin{itemize}
\item \(10\,nm\) steps (Figure \ref{fig:id31_dz_mim_10nm_steps})
\item \(100\,nm\) steps (Figure \ref{fig:id31_dz_mim_100nm_steps})
\item \(1\,\mu m\) steps (Figure \ref{fig:id31_dz_steps_response})
\end{itemize}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_dz_mim_10nm_steps.png}
\caption{\label{fig:id31_dz_mim_10nm_steps}Dz MIM test with 10nm steps (low pass filter with cut-off frequency of 10Hz is applied)}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_dz_mim_100nm_steps.png}
\caption{\label{fig:id31_dz_mim_100nm_steps}Dz MIM test with 100nm steps}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_dz_steps_response.png}
\caption{\label{fig:id31_dz_steps_response}\(D_z\) step response - Stabilization time is around 70ms}
\end{figure}
\subsection{Continuous \(D_z\) motion: Dirty Layer Scans}
Two \(D_z\) scans are performed:
\begin{itemize}
\item at \(10\,\mu m/s\) in Figure \ref{fig:id31_dirty_layer_scan_m0}
\item at \(100\,\mu m/s\) in Figure \ref{fig:id31_dirty_layer_scan_m0_large}
\end{itemize}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_dirty_layer_scan_m0.png}
\caption{\label{fig:id31_dirty_layer_scan_m0}Dirty layer scan: \(D_z\) motion at \(10\,\mu m/s\)}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_dirty_layer_scan_m0_large.png}
\caption{\label{fig:id31_dirty_layer_scan_m0_large}Dirty layer scan: \(D_z\) motion at \(100\,\mu m/s\)}
\end{figure}
\section{\(R_y\) scans: Reflectivity}
\label{sec:id31_scans_reflectivity}
An \(R_y\) scan is performed at \(100\,\mu rad/s\) velocity (Figure \ref{fig:id31_reflectivity_scan_Ry_100urads}).
During the \(R_y\) scan, the errors in \(D_y\) are \(D_z\) are kept small.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_reflectivity_scan_Ry_100urads.png}
\caption{\label{fig:id31_reflectivity_scan_Ry_100urads}\(R_y\) reflecitivity scan at \(100\,\mu\text{rad}/s\) velocity}
\end{figure}
\section{\(D_y\) Scans}
\label{sec:id31_scans_dy}
The steps generated by the IcePAP for the \(T_y\) stage are send to the Speedgoat.
Then, we can know in real time what is the wanted position in \(D_y\) during \(T_y\) scans.
\subsection{Open Loop}
We can clearly see micro-stepping errors of the stepper motor used for the \(T_y\) stage.
The errors have a period of \(10\,\mu m\) with an amplitude of \(\pm 100\,nm\).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_ty_scan_10ums_ol_dy_errors.png}
\caption{\label{fig:id31_ty_scan_10ums_ol_dy_errors}\(T_y\) scan (at \(10\,\mu m/s\)) - \(D_y\) errors. The micro-stepping errors can clearly be seen with a period of \(10\,\mu m\) and an amplitude of \(\pm 100\,nm\)}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_ty_scan_10ums_ol_dz_ry_errors.png}
\caption{\label{fig:id31_ty_scan_10ums_ol_dz_ry_errors}\(T_y\) scan (at \(10\,\mu m/s\)) - \(D_z\) and \(R_y\) errors. The \(D_z\) error is most likely due to having the top interferometer pointing to a sphere. The large \(R_y\) errors might also be due to the metrology system}
\end{figure}
\subsection{Closed Loop}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_ty_scan_10ums_cl_dy_errors.png}
\caption{\label{fig:id31_ty_scan_10ums_cl_dy_errors}\(T_y\) scan (at \(10\,\mu m/s\)) - \(D_y\) errors. Open-loop and Closed-loop scans}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_ty_scan_10ums_cl_dz_ry_errors.png}
\caption{\label{fig:id31_ty_scan_10ums_cl_dz_ry_errors}\(T_y\) scan (at \(10\,\mu m/s\)) - \(D_z\) and \(R_y\) errors. Open-loop and Closed-loop scans}
\end{figure}
\subsection{Faster Scan}
Because of micro-stepping errors of the Ty stepper motor, when scanning at high velocity this induce high frequency vibration that are outside the bandwidth of the feedback controller.

At \(100\,\mu m/s\), the micro-stepping errors with a period of \(10\,\mu m\) (see Figure \ref{fig:id31_ty_scan_10ums_ol_dy_errors}) are at 10Hz.
These errors are them amplified by some resonances in the system.

This could be easily solved by changing the stepper motor for a torque motor for instance.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_ty_scan_100ums_cl_dy_errors.png}
\caption{\label{fig:id31_ty_scan_100ums_cl_dy_errors}\(T_y\) scan (at \(100\,\mu m/s\)) - \(D_y\) errors. Open-loop and Closed-loop scans}
\end{figure}

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_ty_scan_100ums_cl_dz_ry_errors.png}
\caption{\label{fig:id31_ty_scan_100ums_cl_dz_ry_errors}\(T_y\) scan (at \(100\,\mu m/s\)) - \(D_z\) and \(R_y\) errors. Open-loop and Closed-loop scans}
\end{figure}
\section{Combined \(R_z\) and \(D_y\): Diffraction Tomography}
\label{sec:id31_scans_diffraction_tomo}
Instead of doing a fast \(R_z\) motion a slow \(D_y\), the idea is to perform slow \(R_z\) (here 1rpm) and fast \(D_y\) scans with the nano-hexapod.

Here, the \(D_y\) scans are performed only with the nano-hexapod (the Ty stage is not moving), so we are limited to \(\pm 100\,\mu m\).

Several \(D_y\) velocities are tested: \(0.1\,mm/s\), \(0.5\,mm/s\), \(1\,mm/s\) and \(10\,mm/s\) (see Figure \ref{fig:id31_diffraction_tomo_velocities}).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_diffraction_tomo_velocities.png}
\caption{\label{fig:id31_diffraction_tomo_velocities}Dy motion for several configured velocities}
\end{figure}

The corresponding ``repetition rate'' and \(D_y\) scan per spindle turn are shown in Table \ref{tab:diffraction_tomo_velocities}.

The main issue here is the ``waiting'' time between two scans that is in the order of 50ms.
By removing this waiting time (fairly easily), we can double the repetition rate at 10mm/s.

\begin{table}[htbp]
\caption{\label{tab:diffraction_tomo_velocities}\(D_y\) scaning repetition rate}
\centering
\begin{tabularx}{0.6\linewidth}{lXX}
\toprule
\(D_y\) Velocity & Repetition rate & Scans per turn (at 1RPM)\\
\midrule
0.1 mm/s & 4 s & 15\\
0.5 mm/s & 0.9 s & 65\\
1 mm/s & 0.5 s & 120\\
10 mm/s & 0.18 s & 330\\
\bottomrule
\end{tabularx}
\end{table}


The scan results for a velocity of 1mm/s is shown in Figure \ref{fig:id31_diffraction_tomo_1mms}.
The \(D_z\) and \(R_y\) errors are quite small during the scan.

The \(D_y\) errors are quite large as the velocity is increased.
This type of scan can probably be massively improved by using feed-forward and optimizing the trajectory.
Also, if the detectors are triggered in position (the Speedgoat could generate an encoder signal for instance), we don't care about the \(D_y\) errors.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/id31_diffraction_tomo_1mms.png}
\caption{\label{fig:id31_diffraction_tomo_1mms}Diffraction tomography with Dy velocity of 1mm/s and Rz velocity of 1RPM}
\end{figure}

\begin{table}[htbp]
\caption{\label{tab:id31_diffraction_tomo_results}Obtained errors for several \(D_y\) velocities}
\centering
\begin{tabularx}{\linewidth}{lXX}
\toprule
Velocity & \(D_y\) {[}nmRMS] & \(D_z\) {[}nmRMS] & \(R_y\) {[}\(\mu\text{radRMS}\)]\\
\midrule
0.1 mm/s & 75.5 & 9.1 & 0.1\\
0.5 mm/s & 190.5 & 10.0 & 0.1\\
1 mm/s & 428.0 & 11.2 & 0.2\\
10 mm/s & 4639.9 & 55.9 & 1.4\\
\bottomrule
\end{tabularx}
\end{table}
\section{Summary of experiments}
For each conducted experiments, the \(D_y\), \(D_z\) and \(R_y\) errors are computed and summarized in Table \ref{tab:id31_experiments_results_summary}.

\begin{table}[htbp]
\caption{\label{tab:id31_experiments_results_summary}Table caption}
\centering
\begin{tabularx}{\linewidth}{Xccc}
\toprule
 & \(D_y\) {[}nmRMS] & \(D_z\) {[}nmRMS] & \(R_y\) {[}nradRMS]\\
\midrule
Tomography (\(R_z\) 1rpm) & 15 & 5 & 55\\
Tomography (\(R_z\) 6rpm) & 19 & 5 & 73\\
Tomography (\(R_z\) 30rpm) & 38 & 10 & 129\\
Dirty Layer (\(D_z\) \(10\,\mu m/s\)) & 25 & 5 & 114\\
Dirty Layer (\(D_z\) \(100\,\mu m/s\)) & 34 & 15 & 130\\
Reflectivity (\(R_y\) \(100\,\mu\text{rad}/s\)) & 28 & 6 & 118\\
Lateral Scan (\(D_y\) \(10\,\mu m/s\)) & 21 & 10 & 37\\
Diffraction Tomography (\(R_z\) 1rpm, \(D_y\) 0.1mm/s) & 75 & 9 & 118\\
Diffraction Tomography (\(R_z\) 1rpm, \(D_y\) 1mm/s) & 428 & 11 & 169\\
\bottomrule
\end{tabularx}
\end{table}
\printbibliography[heading=bibintoc,title={Bibliography}]
\end{document}
