Rework control kinematics

This commit is contained in:
Thomas Dehaeze 2025-02-17 21:46:21 +01:00
parent 4c51b747d4
commit 02adf6c375
34 changed files with 7957 additions and 4765 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 104 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 106 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 111 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

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

View File

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

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2025-02-12 Wed 17:40 % Created 2025-02-17 Mon 21:45
% 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}
@ -28,76 +28,158 @@ From last sections:
\begin{itemize} \begin{itemize}
\item Uniaxial: No stiff nano-hexapod (should also demonstrate that here) \item Uniaxial: No stiff nano-hexapod (should also demonstrate that here)
\item Rotating: No soft nano-hexapod, Decentralized IFF can be used robustly by adding parallel stiffness \item Rotating: No soft nano-hexapod, Decentralized IFF can be used robustly by adding parallel stiffness
\item Micro-Station multi body model tuned from a modal analysis
\item Multi-body model of a nano-hexapod that can be merged with the multi-body model of the micro-station
\end{itemize} \end{itemize}
In this section: In this section:
\begin{itemize} \begin{itemize}
\item Take the model of the nano-hexapod with stiffness 1um/N \item Take the model of the nano-hexapod described in previous section (stiffness 1um/N)
\item Apply decentralized IFF \item Control kinematics: how the external metrology, the nano-hexapod metrology are used to control the sample's position (Section \ref{sec:nass_kinematics})
\item Apply HAC-LAC \item Apply decentralized IFF (Section \ref{sec:nass_active_damping})
\item Check robustness to payload change \item Apply HAC-LAC (Section \ref{sec:nass_hac})
\begin{itemize}
\item Check robustness to change of payload and to spindle rotation
\item Simulation of experiments \item Simulation of experiments
\end{itemize} \end{itemize}
\item Conclusion of the conceptual phase, validation with simulations
\end{itemize}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=0.8\linewidth]{figs/nass_simscape_model.jpg}
\caption{\label{fig:nass_simscape_model}3D view of the NASS multi-body model}
\end{figure}
\chapter{Control Kinematics} \chapter{Control Kinematics}
\label{sec:nass_kinematics} \label{sec:nass_kinematics}
\begin{itemize} Figure \ref{fig:nass_concept_schematic} presents a schematic overview of the NASS.
\item Explained during the last section: HAC-IFF This section focuses specifically on the components of the ``Instrumentation and Real-Time Control'' block.
Decentralized IFF
Centralized HAC, control in the frame of the struts
\item To compute the positioning errors in the frame of the struts
\begin{itemize}
\item Compute the wanted pose of the sample with respect to the granite using the micro-station kinematics (Section \ref{ssec:nass_ustation_kinematics})
\item Measure the sample pose with respect to the granite using the external metrology and internal metrology for Rz (Section \ref{ssec:nass_sample_pose_error})
\item Compute the sample pose error and map these errors in the frame of the struts (Section \ref{ssec:nass_error_struts})
\end{itemize}
\item The complete control architecture is shown in Section \ref{ssec:nass_control_architecture}
\item[{$\square$}] \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/positioning\_error.org}{positioning\_error}: Explain how the NASS control is made (computation of the wanted position, measurement of the sample position, computation of the errors)
\item[{$\square$}] Schematic with micro-station + nass + metrology + control system => explain what is inside the control system
\end{itemize}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1]{figs/nass_concept_schematic.png} \includegraphics[scale=1]{figs/nass_concept_schematic.png}
\caption{\label{fig:nass_concept_schematic}Figure caption} \caption{\label{fig:nass_concept_schematic}Schematic of the Nano Active Stabilization System}
\end{figure} \end{figure}
As established in the previous section on Stewart platforms, the proposed control strategy combines Decentralized Integral Force Feedback with a High Authority Controller performed in the frame of the struts.
For the Nano Active Stabilization System, computing the positioning errors in the frame of the struts involves three key steps.
First, the system computes the desired sample pose relative to a frame representing the point where the X-ray light is focused using micro-station kinematics, as detailed in Section \ref{ssec:nass_ustation_kinematics}.
Second, it measures the actual sample pose relative to the same fix frame, described in Section \ref{ssec:nass_sample_pose_error}.
Finally, it determines the sample pose error and maps these errors to the nano-hexapod struts, as explained in Section \ref{ssec:nass_error_struts}.
The complete control architecture is detailed in Section \ref{ssec:nass_control_architecture}.
\section{Micro Station Kinematics} \section{Micro Station Kinematics}
\label{ssec:nass_ustation_kinematics} \label{ssec:nass_ustation_kinematics}
\begin{itemize} The micro-station kinematics enables the computation of the desired sample pose from the reference signals of each micro-station stage.
\item from \ref{ssec:ustation_kinematics}, computation of the wanted sample pose from the setpoint of each stage. These reference signals consist of the desired lateral position \(r_{D_y}\), tilt angle \(r_{R_y}\), and spindle angle \(r_{R_z}\).
\end{itemize} The micro-hexapod pose is defined by six parameters: three translations (\(r_{D_{\mu x}}\), \(r_{D_{\mu y}}\), \(r_{D_{\mu z}}\)) and three rotations (\(r_{\theta_{\mu x}}\), \(r_{\theta_{\mu y}}\), \(r_{\theta_{\mu z}}\)).
wanted pose = Tdy * Try * Trz * Tu Using these reference signals, the desired sample position relative to the fixed frame is expressed through the homogeneous transformation matrix \(\bm{T}_{\mu\text{-station}}\), as defined in equation \eqref{eq:nass_sample_ref}.
\begin{equation}\label{eq:nass_sample_ref}
\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}
\begin{equation}\label{eq:nass_ustation_matrices}
\begin{align}
\bm{T}_{D_y} &= \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & r_{D_y} \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix} \quad
\bm{T}_{\mu\text{-hexapod}} =
\left[ \begin{array}{ccc|c}
& & & r_{D_{\mu x}} \\
& \bm{R}_x(r_{\theta_{\mu x}}) \bm{R}_y(r_{\theta_{\mu y}}) \bm{R}_{z}(r_{\theta_{\mu z}}) & & r_{D_{\mu y}} \\
& & & r_{D_{\mu z}} \cr
\hline
0 & 0 & 0 & 1
\end{array} \right] \\
\bm{T}_{R_z} &= \begin{bmatrix}
\cos(r_{R_z}) & -\sin(r_{R_z}) & 0 & 0 \\
\sin(r_{R_z}) & \cos(r_{R_z}) & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix} \quad
\bm{T}_{R_y} = \begin{bmatrix}
\cos(r_{R_y}) & 0 & \sin(r_{R_y}) & 0 \\
0 & 1 & 0 & 0 \\
-\sin(r_{R_y}) & 0 & \cos(r_{R_y}) & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}
\end{align}
\end{equation}
\section{Computation of the sample's pose error} \section{Computation of the sample's pose error}
\label{ssec:nass_sample_pose_error} \label{ssec:nass_sample_pose_error}
From metrology (here supposed to be perfect 6-DoF), compute the sample's pose error. The external metrology system measures the sample position relative to the fixed granite.
Has to invert the homogeneous transformation. Due to the system's symmetry, this metrology provides measurements for five degrees of freedom: three translations (\(D_x\), \(D_y\), \(D_z\)) and two rotations (\(R_x\), \(R_y\)).
In reality, 5DoF metrology => have to estimate the Rz using spindle encoder + nano-hexapod internal metrology (micro-hexapod does not perform Rz rotation). The sixth degree of freedom (\(R_z\)) is still required to compute the errors in the frame of the nano-hexapod struts (i.e. to compute the nano-hexapod inverse kinematics).
This \(R_z\) rotation is estimated by combining measurements from the spindle encoder and the nano-hexapod's internal metrology, which consists of relative motion sensors in each strut (note that the micro-hexapod is not used for \(R_z\) rotation, and is therefore ignore for \(R_z\) estimation).
The measured sample pose is represented by the homogeneous transformation matrix \(\bm{T}_{\text{sample}}\), as shown in equation \eqref{eq:nass_sample_pose}.
\begin{equation}\label{eq:nass_sample_pose}
\bm{T}_{\text{sample}} =
\left[ \begin{array}{ccc|c}
& & & D_{x} \\
& \bm{R}_x(R_{x}) \bm{R}_y(R_{y}) \bm{R}_{z}(R_{z}) & & D_{y} \\
& & & D_{z} \cr
\hline
0 & 0 & 0 & 1
\end{array} \right]
\end{equation}
\section{Position error in the frame of the struts} \section{Position error in the frame of the struts}
\label{ssec:nass_error_struts} \label{ssec:nass_error_struts}
Explain how to compute the errors in the frame of the struts (rotating):
\begin{itemize} The homogeneous transformation formalism enables straightforward computation of the sample position error.
\item Errors in the granite frame This computation involves the previously computed homogeneous \(4 \times 4\) matrices: \(\bm{T}_{\mu\text{-station}}\) representing the desired pose, and \(\bm{T}_{\text{sample}}\) representing the measured pose.
\item Errors in the frame of the nano-hexapod Their combination yields \(\bm{T}_{\text{error}}\), which expresses the position error of the sample in the frame of the rotating nano-hexapod, as shown in equation \eqref{eq:nass_transformation_error}.
\item Errors in the frame of the struts => used for control
\end{itemize} \begin{equation}\label{eq:nass_transformation_error}
\bm{T}_{\text{error}} = \bm{T}_{\mu\text{-station}}^{-1} \cdot \bm{T}_{\text{sample}}
\end{equation}
The known structure of the homogeneous transformation matrix facilitates efficient real-time computation of the inverse.
From \(\bm{T}_{\text{error}}\), the position and orientation errors \(\bm{\epsilon}_{\mathcal{X}} = [\epsilon_{D_x},\ \epsilon_{D_y},\ \epsilon_{D_z},\ \epsilon_{R_x},\ \epsilon_{R_y},\ \epsilon_{R_z}]\) of the sample are extracted using equation \eqref{eq:nass_compute_errors}:
\begin{equation}\label{eq:nass_compute_errors}
\begin{align}
\epsilon_{D_x} & = \bm{T}_{\text{error}}(1,4) \\
\epsilon_{D_y} & = \bm{T}_{\text{error}}(2,4) \\
\epsilon_{D_z} & = \bm{T}_{\text{error}}(3,4) \\
\epsilon_{R_y} & = \text{atan2}(\bm{T}_{\text{error}}(1,3), \sqrt{\bm{T}_{\text{error}}(1,1)^2 + \bm{T}_{\text{error}}(1,2)^2}) \\
\epsilon_{R_x} & = \text{atan2}(-\bm{T}_{\text{error}}(2,3)/\cos(\epsilon_{R_y}), \bm{T}_{\text{error}}(3,3)/\cos(\epsilon_{R_y})) \\
\epsilon_{R_z} & = \text{atan2}(-\bm{T}_{\text{error}}(1,2)/\cos(\epsilon_{R_y}), \bm{T}_{\text{error}}(1,1)/\cos(\epsilon_{R_y})) \\
\end{align}
\end{equation}
Finally, these errors are mapped to the strut space through the nano-hexapod Jacobian matrix \eqref{eq:nass_inverse_kinematics}.
\begin{equation}\label{eq:nass_inverse_kinematics}
\bm{\epsilon}_{\mathcal{L}} = \bm{J} \cdot \bm{\epsilon}_{\mathcal{X}}
\end{equation}
\section{Control Architecture} \section{Control Architecture}
\label{ssec:nass_control_architecture} \label{ssec:nass_control_architecture}
\begin{itemize} The complete control architecture is summarized in Figure \ref{fig:nass_control_architecture}.
\item Say that there are many control strategies. The sample pose is measured using external metrology for five degrees of freedom, while the sixth degree of freedom (Rz) is estimated by combining measurements from the nano-hexapod encoders and spindle encoder.
It will be the topic of chapter 2.3.
Here, we start with something simple: control in the frame of the struts The sample reference pose is determined by the reference signals of the translation stage, tilt stage, spindle, and micro-hexapod.
\end{itemize} Position error computation follows a two-step process: first, homogeneous transformation matrices are used to determine the error in the nano-hexapod frame, then the Jacobian matrix \(\bm{J}\) maps these errors to individual strut coordinates.
For control purposes, force sensors mounted on each strut are used in a decentralized way for active damping, as detailed in Section \ref{sec:nass_active_damping}.
Then, the high authority controller uses the computed errors in the frame of the struts to provides real-time stabilization of the sample position (Section \ref{sec:nass_hac}).
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
@ -112,75 +194,123 @@ Here, we start with something simple: control in the frame of the struts
\item Robustness to payload mass \item Robustness to payload mass
\item Root Locus \item Root Locus
\item Damping optimization \item Damping optimization
\item \textbf{Parallel stiffness?}
\end{itemize} \end{itemize}
Explain which samples are tested: Explain which samples are tested:
\begin{itemize} \begin{itemize}
\item 1kg, 25kg, 50kg \item cylindrical, 250mm height
\item cylindrical, 200mm height? \item mass of 1kg, 25kg and 50kg
\item[{$\square$}] \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/control\_active\_damping.org}{control\_active\_damping}
\item[{$\square$}] \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-active-damping.org}{active damping for stewart platforms}
\item[{$\square$}] \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org}{Vibration Control and Active Damping}
\end{itemize} \end{itemize}
\section{IFF Plant} \section{IFF Plant}
Using the multi-body model, the transfer functions from the six actuator forces \(f_i\) to the six force sensors \(f_{mi}\) are computed.
First the effect of added parallel stiffness on the plant dynamics is studied in Figure \ref{fig:nass_iff_plant_effect_kp}.
The plant is identified while the Spindle is rotating at a maximum velocity \(\Omega_z = 360\,\text{deg/s}\).
The payload mass is 25kg.
The obtained dynamics without the parallel stiffness (Figure \ref{fig:nass_iff_plant_no_kp}) has non-minimum phase zeros at low frequency, as was predicted using the 3-DoF rotating model.
When the parallel stiffness is added (Figure \ref{fig:nass_iff_plant_kp}), a minimum phase complex conjugate zero is obtained instead, which permits to use decentralized IFF with unconditional stability.
In both cases, high coupling around resonances, but should have guaranteed stability thanks to the collocated nature of actuators and sensors.
\begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_iff_plant_no_kp.png}
\end{center}
\subcaption{\label{fig:nass_iff_plant_no_kp}without parallel stiffness}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_iff_plant_kp.png}
\end{center}
\subcaption{\label{fig:nass_iff_plant_kp}with parallel stiffness}
\end{subfigure}
\caption{\label{fig:nass_iff_plant_effect_kp}Effect of stiffness parallel to the force sensor on the IFF plant with \(\Omega_z = 360\,\text{deg/s}\) and payload mass of 25kg. The dynamics without parallel stiffness has non-minimum phase zeros at low frequency (\subref{fig:nass_iff_plant_no_kp}). The added parallel stiffness transforms the non-minimum phase zeros to complex conjugate zeros (\subref{fig:nass_iff_plant_kp})}
\end{figure}
\begin{itemize} \begin{itemize}
\item[{$\square$}] Show how it changes with the payload mass (1, 25, 50) \item Effect of Rotation \ref{fig:nass_iff_plant_effect_rotation}: almost negligible thanks to sufficient actuator stiffness of \(1\,\mu m/N\) (determined using the uniaxial model)
\item[{$\square$}] Effect of rotation (no rotation - 60rpm) coupling is increased at much lower frequency that the first mode to damp and should therefore do not impact the control performances
\item[{$\square$}] Added parallel stiffness \item Effect of payload's mass \ref{fig:nass_iff_plant_effect_payload}: still have alternating poles and zeros, and therefore bounded phase between 0 and 180 degrees.
Location of poles change with the payload's mass as expected.
\end{itemize} \end{itemize}
Coupling \begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
Effect of rotation \begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_iff_plant_effect_rotation.png}
Effect of payload mass \end{center}
\subcaption{\label{fig:nass_iff_plant_effect_rotation}Effect of Spindle rotation}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_iff_plant_effect_payload.png}
\end{center}
\subcaption{\label{fig:nass_iff_plant_effect_payload}Effect of payload mass}
\end{subfigure}
\caption{\label{fig:nass_iff_plant_effect_rotation_payload}Effect of the Spindle's rotational velocity on the IFF plant (\subref{fig:nass_iff_plant_effect_rotation}) and effect of the payload's mass on the IFF plant (\subref{fig:nass_iff_plant_effect_payload})}
\end{figure}
\section{Controller Design} \section{Controller Design}
Low pass filter needs to be added (because now: DC gain) Using the 3DoF rotating model, it was shown that the decentralized IFF with pure integrators becomes unstable due to gyroscopic induced by the spindle's rotation.
It was shown that adding sufficient stiffness in parallel with the force sensor allows to make the decentralized IFF unconditional stable again.
Such parallel stiffness are here added to the nano-hexapod, and using the multi-body model of the NASS, it is verified that without parallel stiffness, the system would be unstable when using decentralized IFF with pure integrators.
Even though pure integrators will give stable systems and guaranteed stability when parallel stiffness are added, it would lead to unnecessary gain at low frequency that would modify the damped plant dynamics at low frequency.
To avoid that, a second order low pass filter is added at low frequency \eqref{eq:nass_kiff}.
\begin{equation}\label{eq:nass_kiff} \begin{equation}\label{eq:nass_kiff}
\bm{K}_{\text{IFF}}(s) = g \cdot \begin{bmatrix} \bm{K}_{\text{IFF}}(s) = g \cdot \begin{bmatrix}
K_{\text{IFF}}(s) & & 0 \\ K_{\text{IFF}}(s) & & 0 \\
& \ddots & \\ & \ddots & \\
0 & & K_{\text{IFF}}(s) 0 & & K_{\text{IFF}}(s)
\end{bmatrix}, \quad K_{\text{IFF}}(s) = \frac{1}{s} \end{bmatrix}, \quad K_{\text{IFF}}(s) = \frac{1}{s} \cdot \frac{\frac{s^2}{\omega_z^2}}{\frac{s^2}{\omega_z^2} + 2 \xi_z \frac{s}{\omega_z} + 1}
\end{equation} \end{equation}
Loop Gain: The frequency of the second order high pass filter is tuned to be below the frequency of the complex conjugate zero for the highest mass (here at \(4\,\text{Hz}\)).
Root Locus => Stability The overall gain is increased to have some authority on the nano-hexapod modes that we want to damp (Figure \ref{fig:nass_iff_loop_gain}).
\begin{itemize} \begin{figure}[htbp]
\item Use Integral controller (with parallel stiffness) \centering
\item Show Root Locus (show that without parallel stiffness => unstable?) \includegraphics[scale=1]{figs/nass_iff_loop_gain.png}
\item Choose optimal gain. \caption{\label{fig:nass_iff_loop_gain}Loop gain for the decentralized IFF: \(K_{\text{IFF}}(s) \cdot \frac{f_{mi}}{f_i}(s)\)}
Here in MIMO, cannot have optimal damping for all modes. (there is a paper that tries to optimize that) \end{figure}
\item[{$\square$}] Show robustness to change of payload (loci?) / Change of rotating velocity ?
\item Reference to paper showing stability in MIMO for decentralized IFF
\end{itemize}
In order to check the stability, root loci for the three payload configurations are computed and shown in Figure \ref{fig:nass_iff_root_locus}.
It is shown that the closed-loop poles are bounded to the left-half plane indicating the good robustness properties of the applied decentralized IFF.
\section{Sensitivity to disturbances} \begin{figure}[htbp]
\begin{subfigure}{0.33\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.9\linewidth]{figs/nass_iff_root_locus_1kg.png}
\end{center}
\subcaption{\label{fig:nass_iff_root_locus_1kg} $1\,\text{kg}$}
\end{subfigure}
\begin{subfigure}{0.33\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.9\linewidth]{figs/nass_iff_root_locus_25kg.png}
\end{center}
\subcaption{\label{fig:nass_iff_root_locus_25kg} $25\,\text{kg}$}
\end{subfigure}
\begin{subfigure}{0.33\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.9\linewidth]{figs/nass_iff_root_locus_50kg.png}
\end{center}
\subcaption{\label{fig:nass_iff_root_locus_50kg} $50\,\text{kg}$}
\end{subfigure}
\caption{\label{fig:nass_iff_root_locus}Measurement of strut flexible modes}
\end{figure}
Disturbances: \section*{Conclusion}
\begin{itemize}
\item floor motion
\item Spindle X and Z
\item Direct forces?
\item Compute sensitivity to disturbances with and without IFF (and compare without the NASS)
\item Maybe noise budgeting, but may be complex in MIMO\ldots{} ?
\end{itemize}
\chapter{Centralized Active Vibration Control} \chapter{Centralized Active Vibration Control}
\label{sec:nass_hac} \label{sec:nass_hac}
\begin{itemize} \begin{itemize}
\item[{$\square$}] \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty\_experiment.org}{uncertainty\_experiment}: Effect of experimental conditions on the plant (payload mass, Ry position, Rz position, Rz velocity, etc\ldots{}) \item[{$\square$}] Effect of micro-station compliance
\item Effect of micro-station compliance Compare plant with ``rigid'' u-station and normal u-station
\item Effect of IFF \item Effect of IFF
\item Effect of payload mass \item Effect of payload mass
\item Decoupled plant \item Decoupled plant
@ -195,48 +325,179 @@ From control kinematics:
\section{HAC Plant} \section{HAC Plant}
\begin{itemize} \begin{itemize}
\item[{$\square$}] Compute transfer function from \(\bm{f}\) to \(\bm{\epsilon\mathcal{L}}\) (with IFF applied) for all masses \item Effect of rotation: \ref{fig:nass_undamped_plant_effect_Wz}
\item[{$\square$}] Show effect of rotation Add some coupling at low frequency, but still small at the considered velocity.
\item[{$\square$}] Show effect of payload mass This is thanks to the relatively stiff nano-hexapod (CF rotating model)
\item[{$\square$}] Compare with undamped plants \item Effect of payload mass:
Decrease resonance frequencies
Increase coupling: \ref{fig:nass_undamped_plant_effect_mass}
=> control challenge for high payload masses
\item Other effects such as: Ry tilt angle, Rz spindle position, micro-hexapod position are found to have negligible effect on the plant dynamics.
This is thanks to the fact the the plant dynamics is well decoupled from the micro-station dynamics.
\end{itemize} \end{itemize}
Effect of rotation: \begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_undamped_plant_effect_Wz.png}
\end{center}
\subcaption{\label{fig:nass_undamped_plant_effect_Wz}Effect of rotational velocity $\Omega_z$}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_undamped_plant_effect_mass.png}
\end{center}
\subcaption{\label{fig:nass_undamped_plant_effect_mass}Effect of payload's mass}
\end{subfigure}
\caption{\label{fig:nass_undamped_plant_effect}Effect of the Spindle's rotational velocity on the positioning plant (\subref{fig:nass_undamped_plant_effect_Wz}) and effect of the payload's mass on the positioning plant (\subref{fig:nass_undamped_plant_effect_mass})}
\end{figure}
Effect of IFF:
Effect of payload mass \begin{itemize}
\item Effect of IFF on the plant \ref{fig:nass_comp_undamped_damped_plant_m1}
Modes are well damped
Small coupling increase at low frequency
\item Benefits of using IFF \ref{fig:nass_hac_plants}
with added damping, the set of plants to be controlled (with payloads from 1kg to 50kg) is more easily controlled.
Between 10 and 50Hz, the plant dynamics does not vary a lot with the frequency, whereas without active damping, it would be impossible to design a robust controller with bandwidth above 10Hz that is robust to the change of payload
\end{itemize}
\begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_comp_undamped_damped_plant_m1.png}
\end{center}
\subcaption{\label{fig:nass_comp_undamped_damped_plant_m1}Effect of IFF - $m = 1\,\text{kg}$}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_hac_plants.png}
\end{center}
\subcaption{\label{fig:nass_hac_plants}Effect of IFF on the set of plants to control}
\end{subfigure}
\caption{\label{fig:nass_hac_plant}Effect of the Spindle's rotational velocity on the positioning plant (\subref{fig:nass_undamped_plant_effect_Wz}) and effect of the payload's mass on the positioning plant (\subref{fig:nass_undamped_plant_effect_mass})}
\end{figure}
\section{Effect of micro-station compliance}
Micro-Station complex dynamics has almost no effect on the plant dynamics (Figure \ref{fig:nass_effect_ustation_compliance}):
\begin{itemize}
\item adds some alternating poles and zeros above 100Hz, which should not be an issue for control
\end{itemize}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/nass_effect_ustation_compliance.png}
\caption{\label{fig:nass_effect_ustation_compliance}Effect of the micro-station limited compliance on the plant dynamics}
\end{figure}
\section{Higher or lower nano-hexapod stiffness?}
\textbf{Goal}: confirm the analysis with simpler models (uniaxial and 3DoF) that a nano-hexapod stiffness of \(\approx 1\,N/\mu m\) should give better performances than a very stiff or very soft nano-hexapod.
\begin{itemize}
\item \textbf{Stiff nano-hexapod}:
uniaxial model: high nano-hexapod stiffness induce coupling between the nano-hexapod and the micro-station dynamics.
considering the complex dynamics of the micro-station as shown by the modal analysis, that would result in a complex system to control
To show that, a nano-hexapod with actuator stiffness equal to 100N/um is initialized, payload of 25kg.
The dynamics from \(\bm{f}\) to \(\bm{\epsilon}_{\mathcal{L}}\) is identified and compared to the case where the micro-station is infinitely rigid (figure \ref{fig:nass_stiff_nano_hexapod_coupling_ustation}):
\begin{itemize}
\item Coupling induced by the micro-station: much more complex and difficult to model / predict
\item Similar to what was predicted using the uniaxial model
\end{itemize}
\item \textbf{Soft nano-hexapod}:
Nano-hexapod with stiffness of 0.01N/um is initialized, payload of 25kg.
Dynamics is identified with no spindle rotation, and with spindle rotation of 36deg/s and 360deg/s (Figure \ref{fig:nass_soft_nano_hexapod_effect_Wz})
\begin{itemize}
\item Rotation as huge effect on the dynamics: unstable for high rotational velocities, added coupling due to gyroscopic effects, and change of resonance frequencies as a function of the rotational velocity
\item Simple 3DoF rotating model is helpful to understand the complex effect of the rotation => similar conclusion
\item Say that controlling the frame of the struts is not adapted with a soft nano-hexapod, but we should rather control in the frame matching the center of mass of the payload, but we would still obtain large coupling and change of dynamics due to gyroscopic effects.
\end{itemize}
\end{itemize}
\begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_stiff_nano_hexapod_coupling_ustation.png}
\end{center}
\subcaption{\label{fig:nass_stiff_nano_hexapod_coupling_ustation}Stiff nano-hexapod - Coupling with the micro-station}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_soft_nano_hexapod_effect_Wz.png}
\end{center}
\subcaption{\label{fig:nass_soft_nano_hexapod_effect_Wz}Soft nano-hexapod - Effect of Spindle rotational velocity}
\end{subfigure}
\caption{\label{fig:nass_soft_stiff_hexapod}Plant dynamics of a stiff (\(k_a = 100\,N/\mu m\)) nano-hexapod (\subref{fig:nass_stiff_nano_hexapod_coupling_ustation}) and of a soft (\(k_a = 0.01\,N/\mu m\)) nano-hexapod (\subref{fig:nass_soft_nano_hexapod_effect_Wz})}
\end{figure}
Advantage of using IFF:
\section{Controller design} \section{Controller design}
In this section, a high authority controller is design such that:
\begin{itemize} \begin{itemize}
\item[{$\square$}] Show design HAC with formulas and parameters \item it is robust to the change of payload mass (i.e. is should be stable for all the damped plants of Figure \ref{fig:nass_hac_plants})
\item[{$\square$}] Show robustness with Loci for all masses \item it has reasonably high bandwidth to give good performances (here 10Hz)
\end{itemize} \end{itemize}
\eqref{eq:nass_robust_hac}
\begin{equation}\label{eq:nass_robust_hac} \begin{equation}\label{eq:nass_robust_hac}
K_{\text{HAC}}(s) = g_0 \cdot \underbrace{\frac{\omega_c}{s}}_{\text{int}} \cdot \underbrace{\frac{1}{\sqrt{\alpha}}\frac{1 + \frac{s}{\omega_c/\sqrt{\alpha}}}{1 + \frac{s}{\omega_c\sqrt{\alpha}}}}_{\text{lead}} \cdot \underbrace{\frac{1}{1 + \frac{s}{\omega_0}}}_{\text{LPF}}, \quad \left( \omega_c = 2\pi5\,\text{rad/s},\ \alpha = 2,\ \omega_0 = 2\pi30\,\text{rad/s} \right) K_{\text{HAC}}(s) = g_0 \cdot \underbrace{\frac{\omega_c}{s}}_{\text{int}} \cdot \underbrace{\frac{1}{\sqrt{\alpha}}\frac{1 + \frac{s}{\omega_c/\sqrt{\alpha}}}{1 + \frac{s}{\omega_c\sqrt{\alpha}}}}_{\text{lead}} \cdot \underbrace{\frac{1}{1 + \frac{s}{\omega_0}}}_{\text{LPF}}, \quad \left( \omega_c = 2\pi10\,\text{rad/s},\ \alpha = 2,\ \omega_0 = 2\pi80\,\text{rad/s} \right)
\end{equation} \end{equation}
``Decentralized'' Loop Gain:
Characteristic Loci for three masses:
\section{Sensitivity to disturbances}
\begin{itemize} \begin{itemize}
\item Compute transfer functions from spindle vertical error to sample vertical error with HAC-IFF \item ``Decentralized'' Loop Gain:
Compare without the NASS, and with just IFF Bandwidth around 10Hz
\item Same for horizontal \item Characteristic Loci:
Stable for all payloads with acceptable stability margins
\end{itemize} \end{itemize}
\begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_hac_loop_gain.png}
\end{center}
\subcaption{\label{fig:nass_hac_loop_gain}Loop Gain}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/nass_hac_loci.png}
\end{center}
\subcaption{\label{fig:nass_hac_loci}Characteristic Loci}
\end{subfigure}
\caption{\label{fig:nass_hac_controller}High Authority Controller - ``Diagonal Loop Gain'' (\subref{fig:nass_hac_loop_gain}) and Characteristic Loci (\subref{fig:nass_hac_loci})}
\end{figure}
\section{Tomography experiment} \section{Tomography experiment}
\begin{itemize} \begin{itemize}
\item With HAC-IFF, perform tomography experiment, and compare with open-loop \item Validation of concept with tomography scans at the highest rotational velocity of \(\Omega_z = 360\,\text{deg/s}\)
\item Compare obtained results with the smallest beam size that is expected with future beamline upgrade: 200nm (horizontal size) x 100nm (vertical size)
\item Take into account the two main sources of disturbances: ground motion, spindle vibrations
Other noise sources are not taken into account here as they will be optimized latter (detail design phase): measurement noise, electrical noise for DAC and voltage amplifiers, \ldots{}
\end{itemize}
\item Take into account disturbances, metrology sensor noise. Maybe say here that we don't take in account other noise sources as they will be optimized latter (detail design phase) The open-loop errors and the closed-loop errors for the tomography scan with the light sample \(1\,kg\) are shown in Figure \ref{fig:nass_tomo_1kg_60rpm}.
\item Tomography + lateral scans (same as what was done in open loop \href{file:///home/thomas/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A4-simscape-micro-station/simscape-micro-station.org}{here})
\item Validation of concept \begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,scale=0.9]{figs/nass_tomo_1kg_60rpm_xy.png}
\end{center}
\subcaption{\label{fig:nass_tomo_1kg_60rpm_xy}XY plane}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,scale=0.9]{figs/nass_tomo_1kg_60rpm_yz.png}
\end{center}
\subcaption{\label{fig:nass_tomo_1kg_60rpm_yz}YZ plane}
\end{subfigure}
\caption{\label{fig:nass_tomo_1kg_60rpm}Position error of the sample in the XY (\subref{fig:nass_tomo_1kg_60rpm_xy}) and YZ (\subref{fig:nass_tomo_1kg_60rpm_yz}) planes during a simulation of a tomography experiment at \(360\,\text{deg/s}\). 1kg payload is placed on top of the nano-hexapod.}
\end{figure}
\begin{itemize}
\item Effect of payload mass (Figure \ref{fig:nass_tomography_hac_iff}):
Worse performance for high masses, as expected from the control analysis, but still acceptable considering that the rotational velocity of 360deg/s is only used for light payloads.
\end{itemize} \end{itemize}
\begin{figure}[htbp] \begin{figure}[htbp]
@ -258,10 +519,12 @@ Compare without the NASS, and with just IFF
\end{center} \end{center}
\subcaption{\label{fig:nass_tomography_hac_iff_m50} $m = 50\,kg$} \subcaption{\label{fig:nass_tomography_hac_iff_m50} $m = 50\,kg$}
\end{subfigure} \end{subfigure}
\caption{\label{fig:nass_tomography_hac_iff}Simulation of tomography experiments} \caption{\label{fig:nass_tomography_hac_iff}Simulation of tomography experiments - 360deg/s. Beam size shown by dashed black}
\end{figure} \end{figure}
\chapter{Conclusion} \section*{Conclusion}
\chapter*{Conclusion}
\label{sec:nass_conclusion} \label{sec:nass_conclusion}