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

\input{preamble.tex}
\input{preamble_extra.tex}
\bibliography{simscape-nano-hexapod.bib}
\author{Dehaeze Thomas}
\date{\today}
\title{Simscape Model - Nano Hexapod}
\hypersetup{
 pdfauthor={Dehaeze Thomas},
 pdftitle={Simscape Model - Nano Hexapod},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 29.4 (Org mode 9.6)}, 
 pdflang={English}}
\usepackage{biblatex}

\begin{document}

\maketitle
\tableofcontents

\clearpage

Now that the multi-body model of the micro-station has been developed and validated using dynamical measurements, a model of the active vibration platform can be integrated.

First, the mechanical architecture of the active platform needs to be carefully chosen.
In Section \ref{sec:nhexa_platform_review}, a quick review of active vibration platforms is performed.

The chosen architecture is the Stewart platform, which is presented in Section \ref{sec:nhexa_stewart_platform}.
It is a parallel manipulator that require the use of specific tools to study its kinematics.

However, to study the dynamics of the Stewart platform, the use of analytical equations is very complex.
Instead, a multi-body model of the Stewart platform is developed (Section \ref{sec:nhexa_model}), that can then be easily integrated on top of the micro-station's model.

From a control point of view, the Stewart platform is a MIMO system with complex dynamics.
To control such system, it requires several tools to study interaction (Section \ref{sec:nhexa_control}).

\chapter{Active Vibration Platforms}
\label{sec:nhexa_platform_review}
\textbf{Goals}:
\begin{itemize}
\item Quick review of active vibration platforms (5 or 6DoF) similar to NASS
\item Explain why Stewart platform architecture is chosen

\item Wanted controlled DOF: Y, Z, Ry
\item But because of continuous rotation (key specificity): X,Y,Z,Rx,Ry in the frame of the active platform

\item Literature review? (\textbf{maybe more suited for chapter 2})
\begin{itemize}
\item \url{file:///home/thomas/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org}
\item Talk about flexible joint? Maybe not so much as it should be topic of second chapter.
Just say that we must of flexible joints that can be defined as 3 to 6DoF joints, and it will be optimize in chapter 2.
\end{itemize}
\item \cite{taghirad13_paral}

\item For some systems, just XYZ control (stack stages), example: holler
\item For other systems, Stewart platform (ID16a), piezo based
\item Examples of Stewart platforms for general vibration control, some with Piezo, other with Voice coil. IFF, \ldots{}
Show different geometry configuration
\item DCM: tripod?
\end{itemize}
\section{Active vibration control of sample stages}

\href{file:///home/thomas/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A0-nass-introduction/nass-introduction.org}{Review of stages with online metrology for Synchrotrons}

\begin{itemize}
\item[{$\square$}] Talk about external metrology?
Maybe not the topic here.
\item[{$\square$}] Talk about control architecture?
\item[{$\square$}] Comparison with the micro-station / NASS
\end{itemize}

\section{Serial and Parallel Manipulators}

\textbf{Goal}:
\begin{itemize}
\item Explain why a parallel manipulator is here preferred
\item Compact, 6DoF, higher control bandwidth, linear, simpler

\item Show some example of serial and parallel manipulators

\item A review of Stewart platform will be given in Chapter related to the detailed design of the Nano-Hexapod
\end{itemize}


\begin{table}[htbp]
\centering
\begin{tabularx}{\linewidth}{lXX}
\toprule
 & \textbf{Serial Robots} & \textbf{Parallel Robots}\\
\midrule
Advantages & Large Workspace & High Stiffness\\
Disadvantages & Low Stiffness & Small Workspace\\
Kinematic Struture & Open & Closed-loop\\
\bottomrule
\end{tabularx}
\caption{\label{tab:nhexa_serial_vs_parallel}Advantages and Disadvantages of both serial and parallel robots}

\end{table}

\chapter{The Stewart platform}
\label{sec:nhexa_stewart_platform}
The Stewart platform, first introduced by Stewart in 1965 \cite{stewart65_platf_with_six_degrees_freed} for flight simulation applications, represents a significant milestone in parallel manipulator design.
This mechanical architecture has evolved far beyond its original purpose, finding applications across diverse fields from precision positioning systems to robotic surgery.
The fundamental design consists of two platforms connected by six adjustable struts in parallel, creating a fully parallel manipulator capable of six degrees of freedom motion.

Unlike serial manipulators where errors worsen through the kinematic chain, parallel architectures distribute loads across multiple actuators, leading to enhanced mechanical stiffness and improved positioning accuracy.
This parallel configuration also results in superior dynamic performance, as the actuators directly contribute to the platform's motion without intermediate linkages.
These characteristics of Stewart platforms have made them particularly valuable in applications requiring high precision and stiffness.

For the NASS application, the Stewart platform architecture presents three key advantages.
First, as a fully parallel manipulator, all motion errors of the micro-station can be compensated through the coordinated action of the six actuators.
Second, its compact design compared to serial manipulators makes it ideal for integration on top micro-station where only \(95\,mm\) of height is available.
Third, the good dynamical properties should enable high bandwidth positioning control.

While Stewart platforms excel in precision and stiffness, they typically exhibit a relatively limited workspace compared to serial manipulators.
However, this limitation is not significant for the NASS application, as the required motion range corresponds to the positioning errors of the micro-station which are in the order of \(10\,\mu m\).

This section provides a comprehensive analysis of the Stewart platform's properties, focusing on aspects crucial for precision positioning applications.
The analysis encompasses the platform's kinematic relationships (Section \ref{ssec:nhexa_stewart_platform_kinematics}), the use of the Jacobian matrix (Section \ref{ssec:nhexa_stewart_platform_jacobian}), static behavior (Section \ref{ssec:nhexa_stewart_platform_static}), and dynamic characteristics (Section \ref{ssec:nhexa_stewart_platform_dynamics}).
These theoretical foundations form the basis for subsequent design decisions and control strategies, which will be elaborated in later sections.
\section{Mechanical Architecture}
\label{ssec:nhexa_stewart_platform_architecture}

The Stewart platform consists of two rigid platforms connected by six struts arranged in parallel (Figure \ref{fig:nhexa_stewart_architecture}).
Each strut incorporates an active prismatic joint that enables controlled length variation, with its ends attached to the fixed and mobile platforms through joints.
The typical configuration consists of a universal joint at one end and a spherical joint at the other, providing the necessary degrees of freedom\footnote{Different architecture exists, typically referred as ``6-SPS'' (Spherical, Prismatic, Spherical) or ``6-UPS'' (Universal, Prismatic, Spherical)}.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/nhexa_stewart_architecture.png}
\caption{\label{fig:nhexa_stewart_architecture}Schematical representation of the Stewart platform architecture.}
\end{figure}

To facilitate rigorous analysis of the Stewart platform, four reference frames are defined:
\begin{itemize}
\item The fixed base frame \(\{F\}\), located at the center of the base platform's bottom surface, serves as the mounting reference for the support structure.
\item The mobile frame \(\{M\}\), situated at the center of the top platform's upper surface, provides a reference for payload mounting.
\item The point-of-interest frame \(\{A\}\), fixed to the base but positioned at the workspace center.
\item The moving point-of-interest frame \(\{B\}\), attached to the mobile platform and coincident with frame \(\{A\}\) in the home position.
\end{itemize}

Frames \(\{F\}\) and \(\{M\}\) serve primarily to define the joint locations.
On the other hand, frames \(\{A\}\) and \(\{B\}\) are used to describe the relative motion of the two platforms through the position vector \({}^A\bm{P}_B\) of frame \(\{B\}\) expressed in frame \(\{A\}\) and the rotation matrix \({}^A\bm{R}_B\) expressing the orientation of \(\{B\}\) with respect to \(\{A\}\).
For the nano-hexapod, frames \(\{A\}\) and \(\{B\}\) are chosen to be located at the theoretical focus point of the X-ray light which is \(150\,mm\) above the top platform, i.e. above \(\{M\}\).

Location of the joints and orientation and length of the struts are crucial for subsequent kinematic, static, and dynamic analyses of the Stewart platform.
The center of rotation for the joint fixed to the base is noted \(\bm{a}_i\), while \(b_i\) is used for the top platform joints.
The struts orientation are represented by the unit vectors \(\hat{\bm{s}}_i\) and their lengths by the scalars \(l_i\).
This is summarized in Figure \ref{fig:nhexa_stewart_notations}.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/nhexa_stewart_notations.png}
\caption{\label{fig:nhexa_stewart_notations}Frame and key notations for the Stewart platform}
\end{figure}

\section{Kinematic Analysis}
\label{ssec:nhexa_stewart_platform_kinematics}
The kinematic analysis of the Stewart platform involves understanding the geometric relationships between the platform position/orientation and the actuator lengths, without considering the forces involved.
\paragraph{Loop Closure}

The foundation of the kinematic analysis lies in the geometric constraints imposed by each strut, which can be expressed through loop closure equations.
For each strut \(i\) (illustrated in Figure \ref{fig:nhexa_stewart_loop_closure}), the loop closure equation \eqref{eq:nhexa_loop_closure} can be written.

\begin{equation}\label{eq:nhexa_loop_closure}
  {}^A\bm{P}_B = {}^A\bm{a}_i + l_i{}^A\hat{\bm{s}}_i - \underbrace{{}^B\bm{b}_i}_{{}^A\bm{R}_B {}^B\bm{b}_i} \quad \text{for } i=1 \text{ to } 6
\end{equation}

Such equation links the pose variables \({}^A\bm{P}\) and \({}^A\bm{R}_B\), the position vectors describing the known geometry of the base and of the moving platform, \(\bm{a}_i\) and \(\bm{b}_i\), and the strut vector \(l_i {}^A\hat{\bm{s}}_i\):

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/nhexa_stewart_loop_closure.png}
\caption{\label{fig:nhexa_stewart_loop_closure}Notations to compute the kinematic loop closure}
\end{figure}

\paragraph{Inverse Kinematics}

The inverse kinematic problem involves determining the required strut lengths \(\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^T\) for a desired platform pose \(\bm{\mathcal{X}}\) (i.e. position \({}^A\bm{P}\) and orientation \({}^A\bm{R}_B\)).
This problem can be solved analytically using the loop closure equations \eqref{eq:nhexa_loop_closure}.
The obtain strut lengths are given by \eqref{eq:nhexa_inverse_kinematics}.

\begin{equation}\label{eq:nhexa_inverse_kinematics}
    l_i = \sqrt{{}^A\bm{P}^T {}^A\bm{P} + {}^B\bm{b}_i^T {}^B\bm{b}_i + {}^A\bm{a}_i^T {}^A\bm{a}_i - 2 {}^A\bm{P}^T {}^A\bm{a}_i + 2 {}^A\bm{P}^T \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^T {}^A\bm{a}_i}
\end{equation}

If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
Otherwise, the solution gives complex numbers.

\paragraph{Forward Kinematics}

The forward kinematic problem seeks to determine the platform pose \(\bm{\mathcal{X}}\) given a set of strut lengths \(\bm{\mathcal{L}}\).
Unlike the inverse kinematics, this presents a significant challenge as it requires solving a system of nonlinear equations.
While various numerical methods exist for solving this problem, they can be computationally intensive and may not guarantee convergence to the correct solution.

For the nano-hexapod application, where displacements are typically small, an approximate solution based on linearization around the operating point provides a practical alternative.
This approximation, developed in subsequent sections through the Jacobian matrix analysis, proves particularly useful for real-time control applications.


\section{The Jacobian Matrix}
\label{ssec:nhexa_stewart_platform_jacobian}
The Jacobian matrix plays a central role in analyzing the Stewart platform's behavior, providing a linear mapping between platform and actuator velocities.
While the previously derived kinematic relationships are essential for position analysis, the Jacobian enables velocity analysis and forms the foundation for both static and dynamic studies.
\paragraph{Jacobian Computation - Velocity Loop Closure}

As was shown in Section \ref{ssec:nhexa_stewart_platform_kinematics}, the strut lengths \(\bm{\mathcal{L}}\) and the platform pose \(\bm{\mathcal{X}}\) are related through a system of nonlinear algebraic equations representing the kinematic constraints imposed by the struts.

By taking the time derivative of the position loop close \eqref{eq:nhexa_loop_closure}, the \emph{velocity loop closure} is obtained \eqref{eq:nhexa_loop_closure_velocity}.

\begin{equation}\label{eq:nhexa_loop_closure_velocity}
  {}^A\bm{v}_p + {}^A \dot{\bm{R}}_B {}^B\bm{b}_i + {}^A\bm{R}_B \underbrace{{}^B\dot{\bm{b}_i}}_{=0} = \dot{l}_i {}^A\hat{\bm{s}}_i + l_i {}^A\dot{\hat{\bm{s}}}_i + \underbrace{{}^A\dot{a}_i}_{=0}
\end{equation}

Moreover, we have:
\begin{itemize}
\item \({}^A\dot{\bm{R}}_B {}^B\bm{b}_i = {}^A\bm{\omega} \times {}^A\bm{R}_B {}^B\bm{b}_i = {}^A\bm{\omega} \times {}^A\bm{b}_i\) in which \({}^A\bm{\omega}\) denotes the angular velocity of the moving platform expressed in the fixed frame \(\{\bm{A}\}\).
\item \(l_i {}^A\dot{\hat{\bm{s}}}_i = l_i \left( {}^A\bm{\omega}_i \times \hat{\bm{s}}_i \right)\) in which \({}^A\bm{\omega}_i\) is the angular velocity of strut \(i\) express in fixed frame \(\{\bm{A}\}\).
\end{itemize}

By multiplying both sides by \({}^A\hat{s}_i\), \eqref{eq:nhexa_loop_closure_velocity_bis} is obtained.

\begin{equation}\label{eq:nhexa_loop_closure_velocity_bis}
  {}^A\hat{\bm{s}}_i {}^A\bm{v}_p + \underbrace{{}^A\hat{\bm{s}}_i ({}^A\bm{\omega} \times {}^A\bm{b}_i)}_{=({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) {}^A\bm{\omega}} = \dot{l}_i + \underbrace{{}^A\hat{s}_i l_i \left( {}^A\bm{\omega}_i \times {}^A\hat{\bm{s}}_i \right)}_{=0}
\end{equation}

Equation \eqref{eq:nhexa_loop_closure_velocity_bis} can be rearranged in a matrix form to obtain \eqref{eq:nhexa_jacobian_velocities}, with \(\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^T\) the vector of strut velocities, and \(\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\  {}^A\bm{\omega}]^T\) the vector of platform velocity and angular velocity.

\begin{equation}\label{eq:nhexa_jacobian_velocities}
  \boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
\end{equation}

The matrix \(\bm{J}\) is called the Jacobian matrix, and is defined by \eqref{eq:nhexa_jacobian}, with:
\begin{itemize}
\item \({}^A\hat{\bm{s}}_i\) the orientation of the struts expressed in \(\{A\}\)
\item \({}^A\bm{b}_i\) the position of the joints with respect to \(O_B\) and express in \(\{A\}\)
\end{itemize}

\begin{equation}\label{eq:nhexa_jacobian}
  \bm{J} = \begin{bmatrix}
    {{}^A\hat{\bm{s}}_1}^T & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^T \\
    {{}^A\hat{\bm{s}}_2}^T & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^T \\
    {{}^A\hat{\bm{s}}_3}^T & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^T \\
    {{}^A\hat{\bm{s}}_4}^T & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^T \\
    {{}^A\hat{\bm{s}}_5}^T & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^T \\
    {{}^A\hat{\bm{s}}_6}^T & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^T
  \end{bmatrix}
\end{equation}

This Jacobian matrix \(\bm{J}\) therefore links the rate of change of strut length to the velocity and angular velocity of the top platform with respect to the fixed base through a set of linear equations.
However, \(\bm{J}\) needs to be recomputed for every Stewart platform pose as it depends on the actual pose of of the manipulator.

\paragraph{Approximate solution of the Forward and Inverse Kinematic problems}

For small displacements \(\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^T\) around an operating point \(\bm{\mathcal{X}}_0\) (for which the Jacobian was computed), the associated joint displacement \(\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^T\) can be computed using the Jacobian (approximate solution of the inverse kinematic problem):
\begin{equation}\label{eq:nhexa_inverse_kinematics_approximate}
  \boxed{\delta\bm{\mathcal{L}} = \bm{J} \delta\bm{\mathcal{X}}}
\end{equation}

Similarly, for small joint displacements \(\delta\bm{\mathcal{L}}\), it is possible to find the induced small displacement of the mobile platform (approximate solution of the forward kinematic problem):
\begin{equation}\label{eq:nhexa_forward_kinematics_approximate}
  \boxed{\delta\bm{\mathcal{X}} = \bm{J}^{-1} \delta\bm{\mathcal{L}}}
\end{equation}

These two relations solve the forward and inverse kinematic problems for small displacement in a \emph{approximate} way.
As the inverse kinematic can be easily solved exactly this is not much useful, however, as the forward kinematic problem is difficult to solve, this approximation can be very useful for small displacements.

\paragraph{Range validity of the approximate inverse kinematics}

The accuracy of the Jacobian-based forward kinematics solution was estimated through a systematic error analysis.
For a series of platform positions along the \$x\$-axis, the exact strut lengths are computed using the analytical inverse kinematics equation \eqref{eq:nhexa_inverse_kinematics}.
These strut lengths are then used with the Jacobian to estimate the platform pose, from which the error between the estimated and true poses can be calculated.

The estimation errors in the \(x\), \(y\), and \(z\) directions are shown in Figure \ref{fig:nhexa_forward_kinematics_approximate_errors}.
The results demonstrate that for displacements up to approximately \(1\,\%\) of the hexapod's size (which corresponds to \(100\,\mu m\) as the size of the Stewart platform is here \(\approx 100\,mm\)), the Jacobian approximation provides excellent accuracy.

This finding has particular significance for the Nano-hexapod application.
Since the maximum required stroke (\(\approx 100\,\mu m\)) is three orders of magnitude smaller than the stewart platform size (\(\approx 100\,mm\)), the Jacobian matrix can be considered constant throughout the workspace.
It can be computed once at the rest position and used for both forward and inverse kinematics with high accuracy.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/nhexa_forward_kinematics_approximate_errors.png}
\caption{\label{fig:nhexa_forward_kinematics_approximate_errors}Errors associated with the use of the Jacobian matrix to solve the forward kinematic problem. A Stewart platform with an height of \(100\,mm\) was used to perform this analysis}
\end{figure}

\paragraph{Static Forces}

The static force analysis of the Stewart platform can be elegantly performed using the principle of virtual work.
This principle states that, for a system in static equilibrium, the total virtual work of all forces acting on the system must be zero for any virtual displacement compatible with the system's constraints.

Let \(\bm{\tau} = [\tau_1, \tau_2, \cdots, \tau_6]^T\) represent the vector of actuator forces applied in each strut, and \(\bm{\mathcal{F}} = [\bm{f}, \bm{n}]^T\) denote the external wrench (combined force \(\bm{f}\) and torque \(\bm{n}\)) acting on the mobile platform at point \(\bm{O}_B\).
The virtual work \(\delta W\) consists of two contributions:
\begin{itemize}
\item The work performed by the actuator forces through virtual strut displacements \(\delta \bm{\mathcal{L}}\): \(\bm{\tau}^T \delta \bm{\mathcal{L}}\)
\item The work performed by the external wrench through virtual platform displacements \(\delta \bm{\mathcal{X}}\): \(-\bm{\mathcal{F}}^T \delta \bm{\mathcal{X}}\)
\end{itemize}

The principle of virtual work can thus be expressed as:
\begin{equation}
\delta W = \bm{\tau}^T \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^T \delta \bm{\mathcal{X}} = 0
\end{equation}

Using the Jacobian relationship that links virtual displacements \eqref{eq:nhexa_inverse_kinematics_approximate}, this equation becomes:
\begin{equation}
\left( \bm{\tau}^T \bm{J} - \bm{\mathcal{F}}^T \right) \delta \bm{\mathcal{X}} = 0
\end{equation}

Since this equation must hold for any virtual displacement \(\delta \bm{\mathcal{X}}\), the following force mapping relationships can be derived:

\begin{equation}\label{eq:nhexa_jacobian_forces}
\bm{\tau}^T \bm{J} - \bm{\mathcal{F}}^T = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^T \bm{\tau}} \quad \text{and} \quad \boxed{\bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}}}
\end{equation}

These equations establish that the transpose of the Jacobian matrix maps actuator forces to platform forces and torques, while its inverse transpose maps platform forces and torques to required actuator forces.

\section{Static Analysis}
\label{ssec:nhexa_stewart_platform_static}

The static stiffness characteristics of the Stewart platform play a crucial role in its performance, particularly for precision positioning applications.
These characteristics are fundamentally determined by both the actuator properties and the platform geometry.

Starting from the individual actuators, the relationship between applied force \(\delta \tau_i\) and resulting displacement \(\delta l_i\) for each strut \(i\) is characterized by its stiffness \(k_i\):
\begin{equation}
\tau_i = k_i \delta l_i, \quad i = 1,\ \dots,\ 6
\end{equation}

These individual relationships can be combined into a matrix form using the diagonal stiffness matrix \(\mathcal{K}\):
\begin{equation}
\bm{\tau} = \mathcal{K} \delta \bm{\mathcal{L}}, \quad \mathcal{K} = \text{diag}\left[ k_1,\ \dots,\ k_6 \right]
\end{equation}

By applying the force mapping relationships \eqref{eq:nhexa_jacobian_forces} derived in the previous section and the Jacobian relationship for small displacements \eqref{eq:nhexa_forward_kinematics_approximate}, the relationship between applied wrench \(\bm{\mathcal{F}}\) and resulting platform displacement \(\delta \bm{\mathcal{X}}\) is obtained \eqref{eq:nhexa_stiffness_matrix}.

\begin{equation}\label{eq:nhexa_stiffness_matrix}
\bm{\mathcal{F}} = \underbrace{\bm{J}^T \mathcal{K} \bm{J}}_{\bm{K}} \delta \bm{\mathcal{X}}
\end{equation}
where \(\bm{K} = \bm{J}^T \mathcal{K} \bm{J}\) is identified as the platform stiffness matrix.

The inverse relationship is given by the compliance matrix \(\bm{C}\):

\begin{equation}
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^T \mathcal{K} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
\end{equation}

These relationships reveal that the overall platform stiffness and compliance characteristics are determined by two factors:
\begin{itemize}
\item The individual actuator stiffnesses represented by \(\mathcal{K}\)
\item The geometric configuration embodied in the Jacobian matrix \(\bm{J}\)
\end{itemize}

This geometric dependency means that the platform's stiffness varies throughout its workspace, as the Jacobian matrix changes with the platform's position and orientation.
For the NASS application, where the workspace is relatively small compared to the platform dimensions, these variations can be considered minimal.
However, the initial geometric configuration significantly impacts the overall stiffness characteristics.
The relationship between maximum stroke and stiffness presents another important design consideration.
As both parameters are influenced by the geometric configuration, their optimization involves inherent trade-offs that must be carefully balanced based on application requirements.
The optimization of this configuration to achieve desired stiffness properties while having enough stroke will be addressed during the detailed design phase.

\section{Dynamic Analysis}
\label{ssec:nhexa_stewart_platform_dynamics}

The dynamic behavior of a Stewart platform can be analyzed through various approaches, depending on the desired level of model fidelity.
For initial analysis, we consider a simplified model with the following assumptions:
\begin{itemize}
\item Massless struts
\item Ideal joints without friction or compliance
\item Rigid platform and base
\end{itemize}

Under these assumptions, the system dynamics can be expressed in the Cartesian space as:
\begin{equation}
M s^2 \mathcal{X} = \Sigma \mathcal{F}
\end{equation}

where \(M\) represents the platform mass matrix, \(\mathcal{X}\) the platform pose, and \(\Sigma \mathcal{F}\) the sum of forces acting on the platform.

The primary forces acting on the system are actuator forces \(\bm{\tau}\), elastic forces due to strut stiffness \(-\mathcal{K} \mathcal{L}\) and damping forces in the struts \(\mathcal{C} \dot{\mathcal{L}}\).

\begin{equation}
\Sigma \bm{\mathcal{F}} = \bm{J}^T (\tau - \mathcal{K} \mathcal{L} - s \mathcal{C} \mathcal{L}), \quad \mathcal{K} = \text{diag}(k_1\,\dots\,k_6),\  \mathcal{C} = \text{diag}(c_1\,\dots\,c_6)
\end{equation}

Combining these forces and using \eqref{eq:nhexa_forward_kinematics_approximate} yields the complete dynamic equation \eqref{eq:nhexa_dynamical_equations}.

\begin{equation}\label{eq:nhexa_dynamical_equations}
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^T \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^T \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
\end{equation}

The transfer function in the Cartesian frame becomes \eqref{eq:nhexa_transfer_function_cart}.

\begin{equation}\label{eq:nhexa_transfer_function_cart}
\frac{\mathcal{X}}{\mathcal{F}}(s) = (  M s^2 + \bm{J}^{T} \mathcal{C} J s + \bm{J}^{T} \mathcal{K} J )^{-1}
\end{equation}

Through coordinate transformation using the Jacobian matrix, the dynamics in the actuator space is obtained \eqref{eq:nhexa_transfer_function_struts}.

\begin{equation}\label{eq:nhexa_transfer_function_struts}
\frac{\mathcal{L}}{\tau}(s) = ( \bm{J}^{-T} M \bm{J}^{-1} s^2 + \mathcal{C} + \mathcal{K} )^{-1}
\end{equation}

While this simplified model provides useful insights, real Stewart platforms exhibit more complex behaviors.
Several factors significantly increase model complexity:
\begin{itemize}
\item Strut dynamics, including mass distribution and internal resonances
\item Joint compliance and friction effects
\item Supporting structure dynamics and payload dynamics, which are both very critical for NASS
\end{itemize}

These additional effects make analytical modeling impractical for complete system analysis.

\section*{Conclusion}
The fundamental characteristics of the Stewart platform have been analyzed in this chapter.
Essential kinematic relationships were developed through loop closure equations, from which both exact and approximate solutions for the inverse and forward kinematic problems were derived.
The Jacobian matrix was established as a central mathematical tool, through which crucial insights into velocity relationships, static force transmission, and dynamic behavior of the platform were obtained.

For the NASS application, where displacements are typically limited to the micrometer range, the accuracy of linearized models using a constant Jacobian matrix has been demonstrated, by which both analysis and control can be significantly simplified.
However, additional complexities such as strut masses, joint compliance, and supporting structure dynamics must be considered in the full dynamic behavior.
This will be performed in the next section using a multi-body model.

All these characteristics (maneuverability, stiffness, dynamics, etc.) are fundamentally determined by the platform's geometry.
While a reasonable geometric configuration will be used to validate the NASS during this conceptual phase, the optimization of these geometric parameters will be explored during the detailed design phase.

\chapter{Multi-Body Model}
\label{sec:nhexa_model}
\textbf{Goal}:
\begin{itemize}
\item Study the dynamics of Stewart platform
\item Instead of working with complex analytical models: a multi-body model is used.
Complex because has to model the inertia of the struts.
Cite papers that tries to model the stewart platform analytically
Advantage: it will be easily included in the model of the NASS
\item Model definition (Section \ref{ssec:nhexa_model_def})
\item Validation of the model by comparing with analytical equations (Section \ref{ssec:nhexa_model_validation})
\item Dynamics of the nano-hexapod used for conceptual analysis: (Section \ref{ssec:nhexa_model_dynamics})
\end{itemize}
\section{Model Definition}
\label{ssec:nhexa_model_def}
\paragraph{Geometry}

The geometry of the Stewart platform (see Figure \ref{fig:nhexa_stewart_model_def}) is defined by the position of frame \(\{F\}\) with respect to \(\{M\}\) and by the locations of the joints \({}^Fa_i\) and \({}^Mb_i\).
The point of interest, indicated by frame \(\{A\}\) is located \(150\,mm\) above the top platform (i.e. above the \(\{M\}\) frame).
Parameters that defines the geometry of the nano-hexapod multi-body models are summarized in Table \ref{tab:nhexa_stewart_model_geometry}.

From this, the orientation \(\hat{s}_i\) and length \(l_i\) of the struts can be computed, the Jacobian matrix \(\bm{J}\) can be computed, and the kinematics of the Stewart platform can be studied.

\begin{minipage}[b]{0.6\linewidth}
\begin{center}
\includegraphics[scale=1,scale=1]{figs/nhexa_stewart_model_def.png}
\captionof{figure}{\label{fig:nhexa_stewart_model_def}Geometry of the stewart platform}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[b]{0.38\linewidth}
\begin{scriptsize}
\centering
\begin{tabularx}{0.75\linewidth}{Xrrr}
\toprule
 & \(\bm{x}\) & \(\bm{y}\) & \(\bm{z}\)\\
\midrule
\({}^MO_B\) & \(0\) & \(0\) & \(150\)\\
\({}^FO_M\) & \(0\) & \(0\) & \(95\)\\
\({}^Fa_1\) & \(-92\) & \(-77\) & \(20\)\\
\({}^Fa_2\) & \(92\) & \(-77\) & \(20\)\\
\({}^Fa_3\) & \(113\) & \(-41\) & \(20\)\\
\({}^Fa_4\) & \(21\) & \(118\) & \(20\)\\
\({}^Fa_5\) & \(-21\) & \(118\) & \(20\)\\
\({}^Fa_6\) & \(-113\) & \(-41\) & \(20\)\\
\({}^Mb_1\) & \(-28\) & \(-106\) & \(-20\)\\
\({}^Mb_2\) & \(28\) & \(-106\) & \(-20\)\\
\({}^Mb_3\) & \(106\) & \(28\) & \(-20\)\\
\({}^Mb_4\) & \(78\) & \(78\) & \(-20\)\\
\({}^Mb_5\) & \(-78\) & \(78\) & \(-20\)\\
\({}^Mb_6\) & \(-106\) & \(28\) & \(-20\)\\
\bottomrule
\end{tabularx}
\captionof{table}{\label{tab:nhexa_stewart_model_geometry}Parameter values in [mm]}
\end{scriptsize}
\end{minipage}

\paragraph{Inertia of Plates}

Both the fixed base and the top platform are modelled are solid bodies.
The bottom plate is a cylinder with radius of \(120\,mm\) (matching the size of the micro-hexapod's top platform) and a thickness of \(15\,mm\).
The top plate is also modelled as a cylinder with a radius of \(110\,mm\) and a thickness of \(15,mm\).
Both have a mass of \(5\,kg\).

\paragraph{Joints}

The top and bottom joints, different number of DoF can be considered.
universal joint, spherical joint, with added axial stiffness and even with added lateral stiffnesses.
For each DoF, stiffnesses can be added.

During the conceptual design phase, bottom joints are modelled with universal joints (2-DoF) while top joints are modelled with spherical joints (3-DoF).
Both have no stiffness along their DoF and are mass-less.

\paragraph{Actuators}

In its simplest form, the actuators are modelled with one prismatic joint having some internal stiffness \(k_a\) and damping \(c_a\), and a force source \(f\).

As was shown using the 3DoF rotating model, having a parallel stiffness \(k_p\) with the force sensor permits to regain the guaranteed stability of decentralized IFF when the spindle is rotating.

A force sensor with output \(f_m\) is added as well as a relative motion sensor with output \(d_L\).
The model of the nano-hexapod actuators used during the conceptual phase are shown in Figure \ref{fig:nhexa_actuator_model} with the parameters summarized in Table \ref{tab:nhexa_actuator_parameters}.

Thanks to the flexibility of the multi-body model, the model of the actuators can later be refined.

\begin{minipage}[b]{0.6\linewidth}
\begin{center}
\includegraphics[scale=1,scale=1]{figs/nhexa_actuator_model.png}
\captionof{figure}{\label{fig:nhexa_actuator_model}Model of the nano-hexapod actuators}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[b]{0.38\linewidth}
\begin{scriptsize}
\centering
\begin{tabularx}{0.4\linewidth}{Xl}
\toprule
 & Value\\
\midrule
\(k_a\) & \(1\,N/\mu m\)\\
\(c_a\) & \(50\,N/(m/s)\)\\
\(k_p\) & \(0.05\,N/\mu m\)\\
\bottomrule
\end{tabularx}
\captionof{table}{\label{tab:nhexa_actuator_parameters}Actuator parameters}
\end{scriptsize}
\end{minipage}

\section{Validation of the multi-body model}
\label{ssec:nhexa_model_validation}

The obtained multi-body model can schematically be represented as in Figure \ref{fig:nhexa_stewart_model_input_outputs} with actuator inputs \(\bm{f}\), force sensor outputs \(\bm{f}_m\) and relative displacement outputs \(\bm{d}_L\).
The 3D representation of the Stewart platform using the multi-body model is shown in Figure \ref{fig:nhexa_simscape_screenshot}.

\begin{minipage}[b]{0.6\linewidth}
\begin{center}
\includegraphics[scale=1,scale=1]{figs/nhexa_stewart_model_input_outputs.png}
\captionof{figure}{\label{fig:nhexa_stewart_model_input_outputs}Nano-Hexapod plant with inputs and outputs. Frames \(\{F\}\) and \(\{M\}\) can be connected to other elements in the multi-body models.}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[b]{0.35\linewidth}
\begin{center}
\includegraphics[scale=1,width=0.90\linewidth]{figs/nhexa_simscape_screenshot.jpg}
\captionof{figure}{\label{fig:nhexa_simscape_screenshot}3D representation of the multi-body model}
\end{center}
\end{minipage}

To validate the multi-body model of the Stewart platform, the simplest Stewart platform configuration is used to compare the multi-body dynamics with the analytical transfer functions obtained in Section \ref{ssec:nhexa_stewart_platform_dynamics}.

The bottom joints are universal joints while the top joints are spherical joints. All joints mass-less and have zero stiffness in the free DoF.
The struts are modelled with a stiffness equal to \(k_a = 1\,N/\mu m\), damping \(c_a = 10\,N/(m/s)\), and are mass-less.
The geometry used is shown in Table \ref{tab:nhexa_actuator_parameters}.

The top platform is considered mass-less, but a payload with mass \(m = 10\,kg\) is added on top of the Stewart platform.
The payload is cylindrical with a radius of \(r = 110\,mm\) and a height \(h = 300\,mm\) such that its center of mass coincide with \(\{A\}\).

Stiffness, damping and mass matrices for the analytical equations are summarized in \eqref{eq:nhexa_analytical_matrices}.
The transfer functions from actuator forces to displacement of each strut can then be computed using \eqref{eq:nhexa_transfer_function_struts}.

\begin{subequations}\label{eq:nhexa_analytical_matrices}
\begin{align}
\bm{K} &= \text{diag}(k_a,\ k_a,\ k_a,\ k_a,\ k_a,\ k_a) \\
\bm{C} &= \text{diag}(c_a,\ c_a,\ c_a,\ c_a,\ c_a,\ c_a) \\
\bm{M} &= \text{diag}\left(m,\ m,\ m,\ \frac{1}{12}m(3r^2 + h^2),\ \frac{1}{12}m(3r^2 + h^2),\ \frac{1}{2}mr^2\right)
\end{align}
\end{subequations}

The same transfer functions are extracted from the multi-body model.
The obtained state-space model has 12 states which corresponds to the 6-DoF of the top platform.

The transfer functions from the first actuator to the displacement of the 6 struts are compared in Figure \ref{fig:nhexa_comp_multi_body_analytical}.
A good match can be observed between the analytical formulas and the multi-body model therefore validating the multi-body model.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/nhexa_comp_multi_body_analytical.png}
\caption{\label{fig:nhexa_comp_multi_body_analytical}Comparison of the analytical transfer functions and the multi-body model}
\end{figure}

\section{Nano Hexapod Dynamics}
\label{ssec:nhexa_model_dynamics}

Now that the multi-body model is validated, it can be used to study the dynamics of the nano-hexapod.
The model is initialized as described in Section \ref{ssec:nhexa_model_def} with a \(10\,kg\) payload, and the transfer functions from \(\bm{f}\) to \(\bm{f}_m\) and \(\bm{d}_e\) are computed from the multi-body model.



\begin{itemize}
\item[{$\boxtimes$}] What payload to use?
10kg payload
\item[{$\square$}] Transfer function from f to de:
\begin{itemize}
\item[{$\square$}] All diagonal terms equal (thanks to symmetry and having the same struts)
\item[{$\square$}] 4 observed modes (due to symmetry, in reality 6 modes)
\item[{$\square$}] Decoupled at low frequency \(G(j\omega) \xrightarrow[\omega \to 0]{} \mathcal{K}^{-1}\) (low frequency gain is K)
\item[{$\square$}] High frequency gain is \(G(j\omega) \xrightarrow[\omega \to \infty]{} J M^{-T} J^T \frac{-1}{\omega^2}\), which is in general not diagonal
\end{itemize}
\item[{$\square$}] Transfer function from f to fm:
\begin{itemize}
\item[{$\square$}] Alternating poles and zeros
\item[{$\square$}] Effect of parallel stiffness on IFF plant?
\end{itemize}
\item[{$\square$}] Validation of compliance matrix?
\end{itemize}

\begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=\linewidth]{figs/nhexa_multi_body_plant_dL.png}
\end{center}
\subcaption{\label{fig:nhexa_multi_body_plant_dL}$f_i$ to $d_{Li}$}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=\linewidth]{figs/nhexa_multi_body_plant_fm.png}
\end{center}
\subcaption{\label{fig:nhexa_multi_body_plant_fm}$f_i$ to $f_{mi}$}
\end{subfigure}
\caption{\label{fig:nhexa_multi_body_plant}Bode plot of the transfer functions computed from the nano-hexapod multi-body model}
\end{figure}

\section*{Conclusion}
\begin{itemize}
\item Validation of multi-body model in a simple case
\item Possible to increase the model complexity when required
\begin{itemize}
\item If considered 6dof joint stiffness, model order increases
\item Can have an effect on IFF performances: \cite{preumont07_six_axis_singl_stage_activ}
\item Conclusion: during the conceptual design, we consider a perfect, but will be taken into account later
\item Optimization of the Flexible joint will be performed in Chapter 2.2
\end{itemize}
\item MIMO system: how to control? => next section
\end{itemize}

\chapter{Control of Stewart Platforms}
\label{sec:nhexa_control}
MIMO control: much more complex than SISO control because of interaction.
Possible to ignore interaction when good decoupling is achieved.
Important to have tools to study interaction
Different ways to try to decouple a MIMO plant.

Reference book: \cite{skogestad07_multiv_feedb_contr}

Control will be more detailed in chapter 2.
\section{Centralized and Decentralized Control}
\label{ssec:nhexa_control_centralized_decentralized}

\begin{itemize}
\item Explain what is centralized and decentralized:
\begin{itemize}
\item linked to the sensor position relative to the actuators
\item linked to the fact that sensors and actuators pairs are ``independent'' or each other (related to the control architecture, not because there is no coupling)
\end{itemize}
\item When can decentralized control be used and when centralized control is necessary?
Study of interaction: RGA
\end{itemize}

\section{Choice of the control space}
\label{ssec:nhexa_control_space}

\begin{itemize}
\item[{$\square$}] \url{file:///home/thomas/Cloud/research/matlab/decoupling-strategies/svd-control.org}

\item Jacobian matrices, CoK, CoM, control in the frame of the struts, SVD, Modal, \ldots{}
\item Combined CoM and CoK => Discussion of cubic architecture ? (quick, as it is going to be in detailed in chapter 2)
\item Explain also the link with the setpoint: it is interesting to have the controller in the frame of the performance variables
Also speak about disturbances? (and how disturbances can be mixed to different outputs due to control and interaction)
\item Table that summarizes the trade-off for each strategy
\item Say that in this study, we will do the control in the frame of the struts for simplicity (even though control in the cartesian frame was also tested)
\end{itemize}

\textbf{Maybe all details about control should be in chapter 2, dedicated to control}
\textbf{Here, just say that using kinematics, we control in the frame of the struts}

\section{Active Damping with Decentralized IFF}
\label{ssec:nhexa_control_iff}

Guaranteed stability: \cite{preumont08_trans_zeros_struc_contr_with}
\begin{itemize}
\item[{$\square$}] I think there is another paper about that
\end{itemize}

For decentralized control: ``MIMO root locus'' can be used to estimate the damping / optimal gain
Poles and converging towards \emph{transmission zeros}

How to optimize the added damping to all modes?
\begin{itemize}
\item[{$\square$}] Add some papers citations
\end{itemize}

Compute:
\begin{itemize}
\item[{$\square$}] Plant dynamics
\item[{$\square$}] Root Locus
\end{itemize}

\section{MIMO High-Authority Control - Low-Authority Control}
\label{ssec:nhexa_control_hac_lac}

Compute:
\begin{itemize}
\item[{$\square$}] compare open-loop and damped plant (outputs are the encoders)
\item[{$\square$}] Implement decentralized control?
\item[{$\square$}] Check stability:
\begin{itemize}
\item Characteristic Loci: Eigenvalues of \(G(j\omega)\) plotted in the complex plane
\item Generalized Nyquist Criterion: If \(G(s)\) has \(p_0\) unstable poles, then the closed-loop system with return ratio \(kG(s)\) is stable if and only if the characteristic loci of \(kG(s)\), taken together, encircle the point \(-1\), \(p_0\) times anti-clockwise, assuming there are no hidden modes
\end{itemize}
\item[{$\square$}] Show some performance metric? For instance compliance?
\end{itemize}

\section*{Conclusion}


\chapter*{Conclusion}
\label{sec:nhexa_conclusion}

\begin{itemize}
\item Configurable Stewart platform model
\item Will be included in the multi-body model of the micro-station => nass multi body model
\item Control: complex problem, try to use simplest architecture
\end{itemize}

\printbibliography[heading=bibintoc,title={Bibliography}]
\end{document}
