Rework nano-hexapod section

This commit is contained in:
Thomas Dehaeze 2025-04-02 11:17:55 +02:00
parent 2c662f23a8
commit e2724e24a9
7 changed files with 215 additions and 179 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -3296,7 +3296,7 @@ Architectures with the center of the cube about the top platform are proposed to
This study was necessary to determine if the Cubic configuration has specific properties that would be interesting for the nano-hexapod.
During this study, it was found that some properties attributed to the cubic configuration (such as uniform mobility and natural decoupling between the struts) were not verified or require more nuances than typically done.
* TODO Nano Hexapod
* Nano Hexapod
:PROPERTIES:
:HEADER-ARGS:matlab+: :tangle matlab/detail_kinematics_3_nano_hexapod.m
:END:
@ -3304,25 +3304,27 @@ During this study, it was found that some properties attributed to the cubic con
** Introduction :ignore:
For the NASS, the chosen frame $\{A\}$ and $\{B\}$ coincide with the sample's point of interest, which is $150\,mm$ above the top platform.
This is where we want to control the sample's position.
Requirements:
- The nano-hexapod should fit within a cylinder with radius of $120\,mm$ and with a height of $95\,mm$.
- In terms of mobility: uniform mobility in XYZ directions (100um)
- In terms of stiffness: ??
- Based on the measured errors of all the stages of the micro-stations, the required mobility of the nano-hexapod should be (with some safety margins):
It should be able to perform combined translation in any direction of +/-50um.
At any position, it should be able to perform Rx and Ry rotations of +/-50urad
- In terms of stiffness:
Having the resonance frequencies well above the maximum rotational velocity of $2\pi\,\text{rad/s}$ to limit the gyroscopic effects.
Having the resonance below the problematic modes of the micro-station to decouple from the micro-station complex dynamics.
- In terms of dynamics:
- be able to apply IFF in a decentralized way with good robustness and performances (good damping of modes)
- good decoupling for the HAC
- Be able to apply IFF in a decentralized way with good robustness and performances (good damping of modes)
- Having good decoupling for the High authority controller
The main difficulty for the design optimization of the nano-hexapod, is that the payloads will have various inertia, with masses ranging from 1 to 50kg.
It is therefore not possible to have one geometry that gives good dynamical properties for all the payloads.
It could have been an option to have a cubic architecture as proposed in section ref:ssec:detail_kinematics_cubic_design, but having the cube's center 150mm above the top platform would have lead to platforms well exceeding the maximum available size.
In that case, each payload would have to be calibrated in inertia before placing on top of the nano-hexapod, which would require a lot of work from the future users.
Considering the fact that it would not be possible to have the center of mass at the cube's center, the cubic architecture is not of great value here.
Considering the fact that it would not be possible to have the center of mass at the cube's center, the cubic architecture was considered not interesting for the nano-hexapod.
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
@ -3350,16 +3352,27 @@ Considering the fact that it would not be possible to have the center of mass at
#+end_src
** Obtained Geometry
<<ssec:detail_kinematics_nano_hexapod_geometry>>
Take both platforms at maximum size.
Make reasonable choice (close to the final choice).
Say that it is good enough to make all the calculations.
The geometry will be slightly refined during the detailed mechanical design for several reason: easy of mount, manufacturability, ...
Based on previous analysis:
- The geometry can be optimized to have the wanted trade-off between stiffness in different directions and mobility in different directions
- But as the payloads will be so different in terms of inertia, it was found difficult to optimize the geometry so that the wanted dynamical properties of the nano-hexapod are obtained for all the payloads.
Therefore, the geometry was chosen by:
- Height between the two plates is 95mm
- Taking both platforms with the maximum size available:
Joints are offset by 15mm from the plate surfaces, and are positioned along a circle with radius 120mm for the fixed joints and 110mm for the mobile joints.
- Make reasonable choice of the angles of the struts.
The positioning angles (Figure ref:fig:detail_kinematics_nano_hexapod_top) are $[255, 285, 15, 45, 135, 165]$ degrees for the top joints and $[220, 320, 340, 80, 100, 200]$ degrees for the bottom joints.
Obtained geometry is shown in Figure ref:fig:detail_kinematics_nano_hexapod.
Height between the top plates is 95mm.
Joints are offset by 15mm from the plate surfaces, and are positioned along a circle with radius 120mm for the fixed joints and 110mm for the mobile joints.
The positioning angles (Figure ref:fig:detail_kinematics_nano_hexapod_top) are $[255, 285, 15, 45, 135, 165]$ degrees for the top joints and $[220, 320, 340, 80, 100, 200]$ degrees for the bottom joints.
The geometry will be slightly refined during the detailed mechanical design for several reason: easy of mount, manufacturability, ... but will stay close to the defined geometry.
This geometry will be used for:
- Estimate required actuator stroke (Section ref:ssec:detail_kinematics_nano_hexapod_actuator_stroke)
- Estimate flexible joint stroke (Section ref:ssec:detail_kinematics_nano_hexapod_joint_stroke)
- When performing noise budgeting for the choice of instrumentation
- For control purposes
#+begin_src matlab
%% Obtained Nano Hexapod Design
@ -3415,7 +3428,7 @@ exportFig('figs/detail_kinematics_nano_hexapod_iso.pdf', 'width', 'normal', 'hei
#+begin_src matlab :tangle no :exports results :results file none
view([0,90])
exportFig('figs/detail_kinematics_nano_hexapod_top.pdf', 'width', 600, 'height', 'tall');
exportFig('figs/detail_kinematics_nano_hexapod_top.pdf', 'width', 500, 'height', 'tall');
#+end_src
#+name: fig:detail_kinematics_nano_hexapod
@ -3425,27 +3438,21 @@ exportFig('figs/detail_kinematics_nano_hexapod_top.pdf', 'width', 600, 'height',
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_nano_hexapod_iso}Isometric view}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
#+attr_latex: :scale 1
[[file:figs/detail_kinematics_nano_hexapod_iso.png]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_nano_hexapod_top}Top view}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
#+attr_latex: :scale 1
[[file:figs/detail_kinematics_nano_hexapod_top.png]]
#+end_subfigure
#+end_figure
This geometry will be used for:
- estimate required actuator stroke
- estimate flexible joint stroke
- when performing noise budgeting for the choice of instrumentation
- for control purposes
It is only when the complete mechanical design is finished (Section ...), that the model will be updated.
** Required Actuator stroke
<<ssec:detail_kinematics_nano_hexapod_actuator_stroke>>
The actuator stroke to have the wanted mobility is computed.
Now that the geometry is fixed, the required actuator stroke to have the wanted mobility can be computed.
Wanted mobility:
- Combined translations in the xyz directions of +/-50um (basically "cube")
@ -3455,10 +3462,12 @@ Wanted mobility:
First the minimum actuator stroke to have the wanted mobility is computed.
With the chosen geometry, an actuator stroke of +/-94um is found.
This stroke will be used when choosing the actuator.
#+begin_src matlab
max_translation = 50e-6;
max_rotation = 50e-6;
%% Estimate required actuator stroke for the wanted mobility
max_translation = 50e-6; % Wanted translation mobility [m]
max_rotation = 50e-6; % Wanted rotation mobility [rad]
Dxs = linspace(-max_translation, max_translation, 3);
Dys = linspace(-max_translation, max_translation, 3);
@ -3466,14 +3475,14 @@ Dzs = linspace(-max_translation, max_translation, 3);
Rxs = linspace(-max_rotation, max_rotation, 3);
Rys = linspace(-max_rotation, max_rotation, 3);
L_min = 0;
L_max = 0;
L_min = 0; % Required actuator negative stroke [m]
L_max = 0; % Required actuator negative stroke [m]
for Dx = Dxs
for Dy = Dys
for Dz = Dzs
for Rx = Rxs
for Ry = Rys
for Dy = Dys
for Dz = Dzs
for Rx = Rxs
for Ry = Rys
ARB = [ cos(Ry) 0 sin(Ry);
0 1 0;
-sin(Ry) 0 cos(Ry)] * ...
@ -3489,24 +3498,22 @@ for Ry = Rys
if max(Ls) > L_max
L_max = max(Ls);
end
end
end
end
end
end
end
end
end
end
sprintf('Actuator stroke should be from %.0f um to %.0f um', 1e6*L_min, 1e6*L_max)
#+end_src
Considering combined rotations and translations, the wanted mobility and the obtained mobility of the Nano hexapod are shown in Figure ...
Considering combined rotations and translations, the wanted mobility and the obtained mobility of the Nano hexapod are shown in Figure ref:fig:detail_kinematics_nano_hexapod_mobility.
It can be seen that just wanted mobility (displayed as a cube), just fits inside the obtained mobility.
Here the worst case scenario is considered, meaning that whatever the angular position in Rx and Ry (in the range +/-50urad), the top platform can be positioned anywhere inside the cube.
#+begin_src matlab
%% Compute mobility in translation with combined angular motion
% L_max = 100e-6; % Actuator Stroke (+/-)
% Direction of motion (spherical coordinates)
thetas = linspace(0, pi, 100);
phis = linspace(0, 2*pi, 100);
@ -3550,14 +3557,13 @@ for i = 1:length(thetas)
dL_real = dL_lin_max*stroke_ratio + dL_rot_max;
% % Obtained maximum displacement in the considered direction with angular motion
% rs(i, j) = stroke_ratio*max(abs(dL_lin_max));
rs(i, j) = stroke_ratio*L_max/max(abs(dL_lin));
end
end
#+end_src
min(min(rs))
max(max(rs))
#+begin_src matlab :exports none :results none
%% Wanted translation mobility of the Nano-Hexapod and computed Mobility
[phi_grid, theta_grid] = meshgrid(phis, thetas);
X = 1e6 * rs .* sin(theta_grid) .* cos(phi_grid);
Y = 1e6 * rs .* sin(theta_grid) .* sin(phi_grid);
@ -3596,54 +3602,87 @@ hold off;
axis equal;
grid on;
xlabel('X Translation [$\mu$m]'); ylabel('Y Translation [$\mu$m]'); zlabel('Z Translation [$\mu$m]');
xlim(2e6*[-L_max, L_max]); ylim(2e6*[-L_max, L_max]); zlim(2e6*[-L_max, L_max]);
xlim([-150 150]); ylim([-150, 150]); zlim([-120, 120]);
view(-160, 20)
#+end_src
Therefore, in Section ..., the specification for actuator stroke is +/-100um
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/detail_kinematics_nano_hexapod_mobility.pdf', 'width', 'wide', 'height', 'tall');
#+end_src
#+name: fig:detail_kinematics_nano_hexapod_mobility
#+caption: Wanted translation mobility of the Nano-Hexapod and computed Mobility
#+RESULTS:
[[file:figs/detail_kinematics_nano_hexapod_mobility.png]]
** Required Joint angular stroke
<<ssec:detail_kinematics_nano_hexapod_joint_stroke>>
Now that the mobility of the Stewart platform is know, the corresponding flexible joint stroke can be estimated.
Now that the geometry of the nano-hexapod is fixed and the wanted mobility is know, the flexible joint angular stroke to not limit the achievable workspace is determined.
- conclude on the required joint angle: 1mrad?
Will be used to design flexible joints.
Only the bending stroke is considered here.
The torsional stroke of the flexible joints is estimated to be very small, considering that no vertical rotation is expected.
The fixed and mobile joints are required angular stroke are found to be 1mrad.
This be used to design flexible joints.
#+begin_src matlab
%% Estimation of the required flexible joint angular stroke
max_angles = zeros(1,6);
%% Estimate required actuator stroke for the wanted mobility
max_translation = 50e-6; % Wanted translation mobility [m]
max_rotation = 50e-6; % Wanted rotation mobility [rad]
Dxs = linspace(-max_translation, max_translation, 3);
Dys = linspace(-max_translation, max_translation, 3);
Dzs = linspace(-max_translation, max_translation, 3);
Rxs = linspace(-max_rotation, max_rotation, 3);
Rys = linspace(-max_rotation, max_rotation, 3);
max_angles_F = zeros(1,6); % Maximum bending angle - Fixed joints [rad]
max_angles_M = zeros(1,6); % Maximum bending angle - Mobile joints [rad]
% Compute initial strut orientation
nano_hexapod = computeJointsPose(nano_hexapod, 'AP', zeros(3,1), 'ARB', eye(3));
As = nano_hexapod.geometry.As;
As = nano_hexapod.geometry.As; % Fixed joints
Bs = nano_hexapod.geometry.Bs; % Mobile joints
% Only consider translations, but add maximum expected top platform rotation
for i = 1:length(thetas)
for j = 1:length(phis)
% Maximum translations
Tx = rs(i,j)*sin(thetas(i))*cos(phis(j));
Ty = rs(i,j)*sin(thetas(i))*sin(phis(j));
Tz = rs(i,j)*cos(thetas(i));
for Dx = Dxs
for Dy = Dys
for Dz = Dzs
for Rx = Rxs
for Ry = Rys
ARB = [ cos(Ry) 0 sin(Ry);
0 1 0;
-sin(Ry) 0 cos(Ry)] * ...
[ 1 0 0;
0 cos(Rx) -sin(Rx);
0 sin(Rx) cos(Rx)];
nano_hexapod = computeJointsPose(nano_hexapod, 'AP', [Tx; Ty; Tz], 'ARB', eye(3));
nano_hexapod = computeJointsPose(nano_hexapod, 'AP', [Dx;Dy;Dz], 'ARB', ARB);
angles = acos(dot(As, nano_hexapod.geometry.As));
larger_angles = abs(angles) > max_angles;
max_angles(larger_angles) = angles(larger_angles);
angles_M = acos(dot(Bs, nano_hexapod.geometry.Bs));
max_angles_M(angles_M > max_angles_M) = angles_M(angles_M > max_angles_M);
angles_F = acos(dot(Bs, nano_hexapod.geometry.As));
max_angles_F(angles_F > max_angles_F) = angles_F(angles_F > max_angles_F);
end
end
end
end
end
sprintf('Maximum flexible joint angle is %.1f mrad', 1e3*max(max_angles))
sprintf('Fixed joint stroke should be %.1f mrad', 1e3*max(max_angles_F))
sprintf('Mobile joint stroke should be %.1f mrad', 1e3*max(max_angles_M))
#+end_src
* Conclusion
<<sec:detail_kinematics_conclusion>>
Inertia used for experiments will be very broad => difficult to optimize the dynamics
Specific geometry is not found to have a huge impact on performances.
Practical implementation is important.
Geometry impacts the static and dynamical characteristics of the Stewart platform.
Considering the design constrains, the slight change of geometry will not significantly impact the obtained results.
- quick review of the literature about stewart platform.
lots of different architectures was found
- link was made between the geometry of the stewart platform and its static (stiffness, mobility) and dynamical properties
- most of stewart platforms have a payload with fixed inertia properties, which also for fine optimization
- for the NASS, inertia used for experiments will be very broad, which makes the optimization impossible
- Specific geometry is not found to have a huge impact on performances, especially when considering control in the frame of the struts
* Bibliography :ignore:
#+latex: \printbibliography[heading=bibintoc,title={Bibliography}]

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2025-04-01 Tue 17:49
% Created 2025-04-02 Wed 10:56
% Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
@ -544,7 +544,7 @@ Coordinates of the cube's vertices relevant for the top joints, expressed with r
\end{center}
\subcaption{\label{fig:detail_kinematics_cubic_schematic}Cube's portion}
\end{subfigure}
\caption{\label{fig:detail_kinematics_cubic_schematic_cases}Struts are represented un blue. The cube's center by a dot.}
\caption{\label{fig:detail_kinematics_cubic_schematic_cases}Cubic architecture. Struts are represented un blue. The cube's center by a black dot. The Struts can match the cube's edges (\subref{fig:detail_kinematics_cubic_schematic_full}) or just take a portion of the edge (\subref{fig:detail_kinematics_cubic_schematic})}
\end{figure}
In that case (top joints at the cube's vertices), a diagonal stiffness matrix is obtained \eqref{eq:detail_kinematics_cubic_stiffness}.
@ -570,11 +570,8 @@ But the computed stiffness matrix is the same \eqref{eq:detail_kinematics_cubic_
\end{equation}
The Stiffness matrix is therefore diagonal when the considered \{B\} frame is located at the center of the cube.
for forces and torques applied on the top platform, but expressed at the center of the cube, and for translations and rotations of the top platform expressed with respect to the cube's center.
\begin{itemize}
\item[{$\square$}] Should I introduce the term ``center of stiffness'' here?
\end{itemize}
This corresponds to forces and torques applied on the top platform, but expressed at the center of the cube, and for translations and rotations of the top platform expressed with respect to the cube's center.
We may call this specific location (where the Stiffness matrix is diagonal) the ``Center of Stiffness'' (in analogy with the ``Center of Mass'' where the mass matrix is diagonal).
\paragraph{Effect of having frame \(\{B\}\) off-centered}
@ -599,29 +596,27 @@ Off diagonal elements are increasing with the height difference between the cube
Such structure of the stiffness matrix is very typical with Stewart platform that have some symmetry, but not necessary only for cubic architectures.
Therefore, the stiffness of the cubic architecture is special only when considering a frame located at the center of the cube.
This is not very convenient, as in the vast majority of cases, the interesting frame is located about the top platform.
This is not very convenient, as in the vast majority of cases, the interesting frame (where motion are relevant and forces are applied) is located about the top platform.
Note that the cube's center needs not to be at the ``center'' of the Stewart platform.
This can lead to interesting architectures shown in Section \ref{ssec:detail_kinematics_cubic_design}.
\paragraph{Uniform Mobility}
Uniform mobility in X,Y,Z directions (Figure \ref{fig:detail_kinematics_cubic_mobility_translations})
The mobility in translation of the Stewart platform is studied with constant orientation.
Considering limited actuator stroke (i.e. elongation of each strut), the maximum XYZ position that can be reached can be estimated.
The obtained mobility in X,Y,Z directions for the Cubic architecture is shown in Figure \ref{fig:detail_kinematics_cubic_mobility_translations}.
\begin{itemize}
\item This is somehow more uniform than other architecture
\item A cube is obtained
\item The length of the cube's edge is equal to the strut axial stroke
\item Mobility in translation does not depend on the cube's size
\item It corresponds to a cube, whose axis are aligned with the struts, and the length of the cube's edge is equal to the strut axial stroke.
\item We can say that the mobility in not uniform in the XYZ directions, but is uniform in the directions aligned with the cube's edges.
Claims of the cubic architecture having the property of having a translational mobility of a sphere is wrong \cite{mcinroy00_desig_contr_flexur_joint_hexap}.
\item Nevertheless, it can be said that the obtained mobility is somehow more uniform than other architecture, as the ones shown in Figure \ref{fig:detail_kinematics_mobility_trans}.
\item Note that the mobility in translation does not depend on the cube's size.
\end{itemize}
Some have argue that the translational mobility of the Cubic Stewart platform is a sphere \cite{mcinroy00_desig_contr_flexur_joint_hexap}, and this is useful to be able to move equal amount in all directions.
As shown here, this is wrong.
It is possible the consider that the mobility is uniform along the directions of the struts, but usually these are not interesting directions.
Also show mobility in Rx,Ry,Rz (Figure \ref{fig:detail_kinematics_cubic_mobility_rotations}):
\begin{itemize}
\item more mobility in Rx and Ry than in Rz
\item More mobility in Rx and Ry than in Rz
\item Mobility decreases with the size of the cube
\end{itemize}
@ -643,11 +638,6 @@ Also show mobility in Rx,Ry,Rz (Figure \ref{fig:detail_kinematics_cubic_mobility
\section{Dynamical Decoupling}
\label{ssec:detail_kinematics_cubic_dynamic}
\begin{itemize}
\item[{$\square$}] \cite{mcinroy00_desig_contr_flexur_joint_hexap}
Why is this here?
\end{itemize}
In this section, the dynamics of the platform in the cartesian frame is studied.
This corresponds to the transfer function from forces and torques \(\bm{\mathcal{F}}\) to translations and rotations \(\bm{\mathcal{X}}\) of the top platform.
If relative motion sensor are located in each strut (\(\bm{\mathcal{L}}\) is measured), the pose \(\bm{\mathcal{X}}\) is computed using the Jacobian matrix as shown in Figure \ref{fig:detail_kinematics_centralized_control}.
@ -669,31 +659,30 @@ As was derived during the conceptual design phase, the dynamics from \(\bm{\math
At low frequency: the static behavior of the platform depends on the stiffness matrix \eqref{eq:detail_kinematics_transfer_function_cart_low_freq}.
In section \ref{ssec:detail_kinematics_cubic_static}, it was shown that for the cubic configuration, the stiffness matrix is diagonal if frame \(\{B\}\) is taken at the cube's center.
In that case, the ``cartesian'' plant is decoupled at low frequency.
\begin{equation}\label{eq:detail_kinematics_transfer_function_cart_low_freq}
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(j \omega) \xrightarrow[\omega \to 0]{} \bm{K}^{-1}
\end{equation}
In section \ref{ssec:detail_kinematics_cubic_static}, it was shown that for the cubic configuration, the stiffness matrix is diagonal if frame \(\{B\}\) is taken at the cube's center.
In that case, the ``cartesian'' plant is decoupled at low frequency.
At high frequency, the behavior depends on the mass matrix (evaluated at frame B) \eqref{eq:detail_kinematics_transfer_function_high_freq}.
To have the mass matrix diagonal, the center of mass of the mobile parts needs to coincide with the B frame and the principal axes of inertia of the body also needs to coincide with the axis of the B frame.
\begin{equation}\label{eq:detail_kinematics_transfer_function_high_freq}
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(j \omega) \xrightarrow[\omega \to \infty]{} - \omega^2 \bm{M}^{-1}
\end{equation}
To have the mass matrix diagonal, the center of mass of the mobile parts needs to coincide with the B frame and the principal axes of inertia of the body also needs to coincide with the axis of the B frame.
To verify that,
\begin{itemize}
\item CoM above the top platform (Figure \ref{fig:detail_kinematics_cubic_payload})
\item A cubic stewart platform is used with a cylindrical payload on top (Figure \ref{fig:detail_kinematics_cubic_payload})
\item The transfer functions from F to X are computed for two specific locations of the B frames:
\begin{itemize}
\item center of mass: coupled at low frequency due to non diagonal stiffness matrix (Figure \ref{fig:detail_kinematics_cubic_cart_coupling_com})
\item center of stiffness: coupled at high frequency due to non diagonal mass matrix (Figure \ref{fig:detail_kinematics_cubic_cart_coupling_cok})
\end{itemize}
\item In both cases, we would get similar dynamics for a non-cubic stewart platform.
\item In both cases, similar dynamics for a non-cubic stewart platform would be obtained and the cubic architecture does not show any clear advantage.
\end{itemize}
\begin{figure}[htbp]
@ -720,16 +709,12 @@ To verify that,
\paragraph{Payload's CoM at the cube's center}
It is therefore natural to try to have the cube's center and the center of mass of the moving part coincide at the same location \cite{li01_simul_fault_vibrat_isolat_point}.
It is natural to try to have the cube's center (center of stiffness) and the center of mass of the moving part coincide at the same location \cite{li01_simul_fault_vibrat_isolat_point}.
To do so, the payload is located below the top platform, such that the center of mass of the moving body is at the cube's center (Figure \ref{fig:detail_kinematics_cubic_centered_payload}).
\begin{itemize}
\item CoM at the center of the cube: Figure \ref{fig:detail_kinematics_cubic_centered_payload}
\end{itemize}
This is what is physically done in \cite{mcinroy99_dynam,mcinroy99_precis_fault_toler_point_using_stewar_platf,mcinroy00_desig_contr_flexur_joint_hexap,li01_simul_vibrat_isolat_point_contr,jafari03_orthog_gough_stewar_platf_microm} (Figure \ref{fig:detail_kinematics_uw_gsp}).
This is what is physically done in \cite{mcinroy99_dynam,mcinroy99_precis_fault_toler_point_using_stewar_platf,mcinroy00_desig_contr_flexur_joint_hexap,li01_simul_vibrat_isolat_point_contr,jafari03_orthog_gough_stewar_platf_microm}
Shown in Figure \ref{fig:detail_kinematics_uw_gsp}
The obtained dynamics is indeed well decoupled, thanks to the diagonal stiffness matrix and mass matrix as the same time.
The obtained dynamics is indeed well decoupled, thanks to the diagonal stiffness matrix and mass matrix at the same time.
The main issue with this is that usually we want the payload to be located above the top platform, as it is the case for the nano-hexapod.
Indeed, if a similar design than the one shown in Figure \ref{fig:detail_kinematics_cubic_centered_payload} was used, the x-ray beam will hit the different struts during the rotation of the spindle.
@ -752,27 +737,24 @@ Indeed, if a similar design than the one shown in Figure \ref{fig:detail_kinemat
\paragraph{Conclusion}
\begin{itemize}
\item Some work to still be decoupled when considering flexible joint stiffness
\begin{itemize}
\item[{$\square$}] Find the reference
\end{itemize}
\item Better decoupling between the struts? Next section
\end{itemize}
Some conclusions can be drawn from the above analysis:
\begin{itemize}
\item Static Decoupling <=> Diagonal Stiffness matrix <=> \{A\} and \{B\} at the cube's center
Can also have static decoupling with non-cubic architecture, if there is some symmetry between the struts.
\item Dynamic Decoupling <=> Static Decoupling + CoM of mobile platform coincident with \{A\} and \{B\}.
\item Not specific to the cubic architecture
\item Same stiffness in XYZ => Possible to have dynamic isotropy
This is very powerful, but requires to have the payload at the cube's center which is very restrictive and often not possible.
This is also not specific to the cubic architecture.
\item Same stiffness in XYZ, which can be interesting for some applications.
\end{itemize}
\section{Decentralized Control}
\label{ssec:detail_kinematics_decentralized_control}
From \cite{preumont07_six_axis_singl_stage_activ}, the cubic configuration ``\emph{minimizes the cross-coupling amongst actuators and sensors of different legs (being orthogonal to each other)}''.
This would facilitate the use of decentralized control.
This is reasonable to think that as the struts are orthogonal to each other for the cubic architecture, the coupling between the struts should be minimized and it should therefore be especially interesting for decentralized control.
In this section, we wish to see if the cubic architecture has indeed some interesting properties related to decentralized control in the frame of the struts.
Here two sensors integrated in the struts are considered: a displacement sensor and a force sensor.
The control architecture is shown in Figure \ref{fig:detail_kinematics_decentralized_control} where \(\bm{K}_{\mathcal{L}}\) is a diagonal transfer function matrix.
\begin{figure}[htbp]
\centering
@ -780,13 +762,6 @@ This would facilitate the use of decentralized control.
\caption{\label{fig:detail_kinematics_decentralized_control}From Strut coordinate to Cartesian coordinate using the Jacobian matrix}
\end{figure}
In this section, we wish to study such properties of the cubic architecture.
Here, the plant output are sensors integrated in the Stewart platform struts.
Two sensors are considered: a displacement sensor and a force sensor.
We will compare the transfer function from sensors to actuators in each strut for a cubic architecture and for a non-cubic architecture (where the struts are not orthogonal with each other).
The ``strut plant'' are compared for two Stewart platforms:
\begin{itemize}
\item with cubic architecture shown in Figure \ref{fig:detail_kinematics_cubic_payload} (page \pageref{fig:detail_kinematics_cubic_payload})
@ -829,9 +804,11 @@ Note that the resonance frequencies are not the same in both cases as having the
\paragraph{Force Sensors}
Similarly, the transfer functions from actuator force to force sensors included in each strut are extracted both for the cubic and non-cubic Stewart platforms.
The results are shown in Figure \ref{fig:detail_kinematics_decentralized_fn}.
The system is well decoupled at high frequency in both cases.
There are no evidence of an advantage of the cubic architecture.
\begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
@ -851,6 +828,7 @@ The results are shown in Figure \ref{fig:detail_kinematics_decentralized_fn}.
\paragraph{Conclusion}
The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut and thus provides no advantages for decentralized control.
No evidence of specific advantages of the cubic architecture for decentralized control has been found in the literature, despite many claims.
\section{Cubic architecture with Cube's center above the top platform}
\label{ssec:detail_kinematics_cubic_design}
@ -863,17 +841,19 @@ Or, typically the \(\{B\}\) frame is taken above the top platform where forces a
In this section, modifications of the Cubic architectures are proposed in order to be able to have the payload above the top platform while still benefiting from interesting dynamical properties of the cubic architecture.
There are three key parameters:
There are three key parameters for the geometry of the Cubic Stewart platform:
\begin{itemize}
\item \(H\) height of the Stewart platform (distance from fix base to mobile platform)
\item \(H_c\) height of the cube, as shown in Figure \ref{fig:detail_kinematics_cubic_schematic_full}
\item \(H_{CoM}\) height of the center of mass with respect to the mobile platform. It is also the cube's center.
\end{itemize}
The obtained design depends on the considered size of the cube \(H_c\) with respect to \(H\) and \(H_{CoM}\).
Depending on the considered cube's size \(H_c\) compared to \(H\) and \(H_{CoM}\), different designs are obtained.
In the three examples shows bellow, \(H = 100\,mm\) and \(H_{CoM} = 20\,mm\).
\paragraph{Small cube}
When the considered cube size is smaller than twice the height of the CoM, the obtained design looks like Figure \ref{fig:detail_kinematics_cubic_above_small}.
When the considered cube size \(H_c\) is smaller than twice the height of the CoM \(H_{CoM}\), the obtained design looks like Figure \ref{fig:detail_kinematics_cubic_above_small}.
\begin{equation}\label{eq:detail_kinematics_cube_small}
H_c < 2 H_{CoM}
@ -882,6 +862,8 @@ When the considered cube size is smaller than twice the height of the CoM, the o
This is similar to \cite{furutani04_nanom_cuttin_machin_using_stewar}, even though it is not mentioned that the system has a cubic configuration.
Adjacent struts are parallel to each other, which is quite different from the typical architecture in which parallel struts are opposite to each other.
This lead to a compact architecture, but as the cube's size is small, the rotational stiffness may be too low.
\begin{figure}[htbp]
\begin{subfigure}{0.36\textwidth}
\begin{center}
@ -986,91 +968,99 @@ Then, using \eqref{eq:detail_kinematics_cube_joints}, the size of the top and bo
\paragraph{Conclusion}
For each of the configuration, the Stiffness matrix is diagonal with \(k_x = k_y = k_y = 2k\) with \(k\) is the stiffness of each strut.
For each of the proposed configuration, the Stiffness matrix is diagonal with \(k_x = k_y = k_y = 2k\) with \(k\) is the stiffness of each strut.
However, the rotational stiffnesses are increasing with the cube's size but the required size of the platform is also increasing, so there is a trade-off here.
We found that we can have a diagonal stiffness matrix using the cubic architecture when \(\{A\}\) and \(\{B\}\) are located above the top platform.
Depending on the cube's size, we obtain 3 different configurations.
Depending on the cube's size, 3 different configurations were obtained.
\section*{Conclusion}
Cubic architecture can be interesting when specific payloads are being used.
In that case, the center of mass of the payload should be placed at the center of the cube.
For the classical architecture, it is often not possible.
For the classical cubic architecture, it is often not possible.
Architectures with the center of the cube about the top platform are proposed to overcome this issue.
Cubic architecture are attributed a number of properties that were found to be incorrect:
\begin{itemize}
\item Uniform mobility
\item Easy for decentralized control
\end{itemize}
This study was necessary to determine if the Cubic configuration has specific properties that would be interesting for the nano-hexapod.
During this study, it was found that some properties attributed to the cubic configuration (such as uniform mobility and natural decoupling between the struts) were not verified or require more nuances than typically done.
\chapter{Nano Hexapod}
\label{sec:detail_kinematics_nano_hexapod}
For the NASS, the chosen frame \(\{A\}\) and \(\{B\}\) coincide with the sample's point of interest, which is \(150\,mm\) above the top platform.
This is where we want to control the sample's position.
Requirements:
\begin{itemize}
\item The nano-hexapod should fit within a cylinder with radius of \(120\,mm\) and with a height of \(95\,mm\).
\item In terms of mobility: uniform mobility in XYZ directions (100um)
\item In terms of stiffness: ??
\item Based on the measured errors of all the stages of the micro-stations, the required mobility of the nano-hexapod should be (with some safety margins):
It should be able to perform combined translation in any direction of +/-50um.
At any position, it should be able to perform Rx and Ry rotations of +/-50urad
\item In terms of stiffness:
Having the resonance frequencies well above the maximum rotational velocity of \(2\pi\,\text{rad/s}\) to limit the gyroscopic effects.
Having the resonance below the problematic modes of the micro-station to decouple from the micro-station complex dynamics.
\item In terms of dynamics:
\begin{itemize}
\item be able to apply IFF in a decentralized way with good robustness and performances (good damping of modes)
\item good decoupling for the HAC
\item Be able to apply IFF in a decentralized way with good robustness and performances (good damping of modes)
\item Having good decoupling for the High authority controller
\end{itemize}
\end{itemize}
The main difficulty for the design optimization of the nano-hexapod, is that the payloads will have various inertia, with masses ranging from 1 to 50kg.
It is therefore not possible to have one geometry that gives good dynamical properties for all the payloads.
It could have been an option to have a cubic architecture as proposed in section \ref{ssec:detail_kinematics_cubic_design}, but having the cube's center 150mm above the top platform would have lead to platforms well exceeding the maximum available size.
In that case, each payload would have to be calibrated in inertia before placing on top of the nano-hexapod, which would require a lot of work from the future users.
Considering the fact that it would not be possible to have the center of mass at the cube's center, the cubic architecture is not of great value here.
Considering the fact that it would not be possible to have the center of mass at the cube's center, the cubic architecture was considered not interesting for the nano-hexapod.
\section{Obtained Geometry}
\label{ssec:detail_kinematics_nano_hexapod_geometry}
Take both platforms at maximum size.
Make reasonable choice (close to the final choice).
Say that it is good enough to make all the calculations.
The geometry will be slightly refined during the detailed mechanical design for several reason: easy of mount, manufacturability, \ldots{}
Based on previous analysis:
\begin{itemize}
\item The geometry can be optimized to have the wanted trade-off between stiffness in different directions and mobility in different directions
\item But as the payloads will be so different in terms of inertia, it was found difficult to optimize the geometry so that the wanted dynamical properties of the nano-hexapod are obtained for all the payloads.
\end{itemize}
Therefore, the geometry was chosen by:
\begin{itemize}
\item Height between the two plates is 95mm
\item Taking both platforms with the maximum size available:
Joints are offset by 15mm from the plate surfaces, and are positioned along a circle with radius 120mm for the fixed joints and 110mm for the mobile joints.
\item Make reasonable choice of the angles of the struts.
The positioning angles (Figure \ref{fig:detail_kinematics_nano_hexapod_top}) are \([255, 285, 15, 45, 135, 165]\) degrees for the top joints and \([220, 320, 340, 80, 100, 200]\) degrees for the bottom joints.
\end{itemize}
Obtained geometry is shown in Figure \ref{fig:detail_kinematics_nano_hexapod}.
Height between the top plates is 95mm.
Joints are offset by 15mm from the plate surfaces, and are positioned along a circle with radius 120mm for the fixed joints and 110mm for the mobile joints.
The positioning angles (Figure \ref{fig:detail_kinematics_nano_hexapod_top}) are \([255, 285, 15, 45, 135, 165]\) degrees for the top joints and \([220, 320, 340, 80, 100, 200]\) degrees for the bottom joints.
The geometry will be slightly refined during the detailed mechanical design for several reason: easy of mount, manufacturability, \ldots{} but will stay close to the defined geometry.
This geometry will be used for:
\begin{itemize}
\item Estimate required actuator stroke (Section \ref{ssec:detail_kinematics_nano_hexapod_actuator_stroke})
\item Estimate flexible joint stroke (Section \ref{ssec:detail_kinematics_nano_hexapod_joint_stroke})
\item When performing noise budgeting for the choice of instrumentation
\item For control purposes
\end{itemize}
\begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_nano_hexapod_iso.png}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_nano_hexapod_iso.png}
\end{center}
\subcaption{\label{fig:detail_kinematics_nano_hexapod_iso}Isometric view}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_nano_hexapod_top.png}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_nano_hexapod_top.png}
\end{center}
\subcaption{\label{fig:detail_kinematics_nano_hexapod_top}Top view}
\end{subfigure}
\caption{\label{fig:detail_kinematics_nano_hexapod}Obtained architecture for the Nano Hexapod}
\end{figure}
This geometry will be used for:
\begin{itemize}
\item estimate required actuator stroke
\item estimate flexible joint stroke
\item when performing noise budgeting for the choice of instrumentation
\item for control purposes
\end{itemize}
It is only when the complete mechanical design is finished (Section \ldots{}), that the model will be updated.
\section{Required Actuator stroke}
\label{ssec:detail_kinematics_nano_hexapod_actuator_stroke}
The actuator stroke to have the wanted mobility is computed.
Now that the geometry is fixed, the required actuator stroke to have the wanted mobility can be computed.
Wanted mobility:
\begin{itemize}
@ -1088,9 +1078,16 @@ Considering combined rotations and translations, the wanted mobility and the obt
It can be seen that just wanted mobility (displayed as a cube), just fits inside the obtained mobility.
Here the worst case scenario is considered, meaning that whatever the angular position in Rx and Ry (in the range +/-50urad), the top platform can be positioned anywhere inside the cube.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/detail_kinematics_nano_hexapod_mobility.png}
\caption{\label{fig:detail_kinematics_nano_hexapod_mobility}Wanted translation mobility of the Nano-Hexapod and computed Mobility}
\end{figure}
Therefore, in Section \ldots{}, the specification for actuator stroke is +/-100um
\section{Required Joint angular stroke}
\label{ssec:detail_kinematics_nano_hexapod_joint_stroke}
Now that the mobility of the Stewart platform is know, the corresponding flexible joint stroke can be estimated.