Work suspension table part

This commit is contained in:
Thomas Dehaeze 2024-10-27 14:50:01 +01:00
parent 94bfca04cf
commit 6e2341f2aa
14 changed files with 201 additions and 389 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -105,6 +105,9 @@ Add these documents:
- [X] [[file:~/Cloud/work-projects/ID31-NASS/matlab/test-bench-vibration-table/vibration-table.org][test-bench-vibration-table]] - [X] [[file:~/Cloud/work-projects/ID31-NASS/matlab/test-bench-vibration-table/vibration-table.org][test-bench-vibration-table]]
- [ ] *Use corrected APA parameters in the initialization script* - [ ] *Use corrected APA parameters in the initialization script*
Suspended table EPDM: ID00/test_bench/table_dyn
*Goal of this test bench*: *Goal of this test bench*:
- Properly mount the nano-hexapod - Properly mount the nano-hexapod
- Verify all is working - Verify all is working
@ -141,6 +144,8 @@ Maybe the rest is not so interesting here as it will be presented again in the n
- [ ] Modes of the encoder supports - [ ] Modes of the encoder supports
- [ ] ... - [ ] ...
** TODO [#C] Remove un-used matlab scripts and src files
** TODO [#B] Make nice subfigures for identified modes ** TODO [#B] Make nice subfigures for identified modes
SCHEDULED: <2024-10-26 Sat> SCHEDULED: <2024-10-26 Sat>
@ -4111,94 +4116,24 @@ After all six struts are mounted, the mounting tool (Figure ref:fig:test_nhexa_c
<<sec:test_nhexa_table>> <<sec:test_nhexa_table>>
** Introduction ** Introduction
# In EPDM: ID00/test_bench/table_dyn When a dynamical system is fixed to a support (such as a granite or an optical table), its dynamics will couple to the support dynamics.
This may results in additional modes appearing in the system dynamics, which are difficult to predict and model.
Two prevent this issue, strategy adopted here is to mount the nano-hexapod on top a suspended table with low frequency suspension modes.
This document is divided as follows: In such a case, the modes of the suspended table are chosen to be at much lower frequency than those of the nano-hexapod such that they are well decoupled.
- Section ref:ssec:test_nhexa_table_setup: the experimental setup and all the instrumentation are described An other key advantage is that the suspension modes of the suspended table can be easily modelled using Simscape.
- Section ref:ssec:test_nhexa_table_identification: the table dynamics is identified Therefore, the measured dynamics of the nano-hexapod on top of the suspended table can be compared to a simscape model representing the same experimental conditions.
- Section ref:ssec:test_nhexa_table_model: a Simscape model of the vibration table is developed and tuned from the measurements The model of the Nano-Hexapod can thus be precisely tuned to match the measured dynamics.
** Experimental Setup The developed suspended table is presented in Section ref:ssec:test_nhexa_table_setup.
<<ssec:test_nhexa_table_setup>> The modal analysis of the table is done in ref:ssec:test_nhexa_table_identification.
*** Introduction :ignore: Finally, the Simscape model representing the suspended table is tuned to match the measured modes (Section ref:ssec:test_nhexa_table_model).
- [ ] Redo the CAD view ** Matlab Init :noexport:ignore:
#+begin_src matlab
%% test_nhexa_table.m
#+end_src
#+name: fig:vibration-table-cad-view
#+caption: CAD View of the vibration table
#+attr_latex: :width 0.8\linewidth
[[file:figs/vibration-table-cad-view.png]]
*** Suspended table
- Dimensions :: 450 mm x 450 mm x 60 mm
- Mass :: 21.3 kg (bot=7.8, top=7.6, mid=5.9kg)
- Interface plate :: 3.2kg
#+name: fig:compliance_optical_table
#+caption: Compliance of the B4545A optical table
#+attr_latex: :width 0.8\linewidth
[[file:figs/test_nhexa_compliance_table.png]]
If we include including the bottom interface plate:
- Total mass: 24.5 kg
- CoM: 42mm below Center of optical table
- Ix = 0.54, Iy = 0.54, Iz = 1.07 (with respect to CoM)
*** Springs
Helical compression spring
make of steel wire (52SiCrNi5) with rectangular cross section
SZ8005 20 x 044 from Steinel
L0 = 44mm
Spring rate = 17.8 N/mm
[[file:figs/test_nhexa_table_springs.jpg]]
** Identification of the table's response
<<ssec:test_nhexa_table_identification>>
(4x) 3D accelerometer [[https://www.pcbpiezotronics.fr/produit/accelerometres/356b18/][PCB 356B18]]
#+name: tab:list_modes
#+caption: List of the identified modes
#+attr_latex: :environment tabularx :width 0.5\linewidth :align ccX
#+attr_latex: :center t :booktabs t :float t
| | Freq. [Hz] | Description |
|---+------------+---------------|
| 1 | 1.3 | X-translation |
| 2 | 1.3 | Y-translation |
| 3 | 1.95 | Z-rotation |
| 4 | 6.85 | Z-translation |
| 5 | 8.9 | Tilt |
| 6 | 8.9 | Tilt |
| 7 | 700 | Flexible Mode |
#+name: fig:test_nhexa_mode_shapes_rigid_table
#+caption: Mode shapes of the 6 suspension modes (from 1Hz to 9Hz)
#+attr_latex: :width \linewidth
[[file:figs/test_nhexa_mode_shapes_rigid_table.png]]
#+name: fig:ModeShapeHF1_crop
#+caption: First flexible mode of the table at 700Hz
#+attr_latex: :width 0.3\linewidth
[[file:figs/ModeShapeHF1_crop.gif]]
** Simscape Model of the suspended table
:PROPERTIES:
:header-args:matlab+: :tangle matlab/simscape_model.m
:END:
<<ssec:test_nhexa_table_model>>
*** Introduction :ignore:
In this section, the Simscape model of the vibration table is described.
#+name: fig:simscape_vibration_table
#+caption: 3D representation of the simscape model
#+attr_latex: :width 0.8\linewidth
[[file:figs/simscape_vibration_table.png]]
*** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>> <<matlab-dir>>
#+end_src #+end_src
@ -4223,79 +4158,101 @@ In this section, the Simscape model of the vibration table is described.
<<m-init-other>> <<m-init-other>>
#+end_src #+end_src
*** Simscape Sub-systems ** Experimental Setup
<<sec:simscape_parameters>> <<ssec:test_nhexa_table_setup>>
Parameters for sub-components of the simscape model are defined below. The design of the suspended table is quite straightforward.
First, an optical table with high frequency flexible mode was selected[fn:5].
Then, four springs[fn:6] were selected with low enough spring rate such that the suspension modes are below 10Hz.
Finally, some interface elements were designed, and mechanical lateral mechanical stops were added (Figure ref:fig:test_nhexa_suspended_table_cad).
**** Springs #+name: fig:test_nhexa_suspended_table_cad
<<sec:simscape_springs>> #+caption: CAD View of the vibration table. Purple cylinders are representing the soft springs.
#+attr_latex: :width 0.7\linewidth
[[file:figs/test_nhexa_suspended_table_cad.jpg]]
The 4 springs supporting the suspended optical table are modelled with "bushing joints" having stiffness and damping in the x-y-z directions: ** Modal analysis of the suspended table
<<ssec:test_nhexa_table_identification>>
#+begin_src matlab In order to perform a modal analysis of the suspended table, a total of 15 3-axis accelerometers[fn:7] were fixed to the breadboard.
%% This parameters are defined in the Mask of the suspended table Using an instrumented hammer, the first 9 modes could be identified and are summarized in Table ref:tab:test_nhexa_suspended_table_modes.
% spring.kx = 0.5e3; % X- Stiffness [N/m] The first 6 modes are suspension modes (i.e. rigid body mode of the breadboard) and are located below 10Hz.
% spring.cx = 15; % X- Damping [N/(m/s)] The next modes are flexible modes of the breadboard as shown in Figure ref:fig:test_nhexa_table_flexible_modes, and located above 700Hz.
% spring.ky = 0.5e3; % Y- Stiffness [N/m] #+attr_latex: :options [t]{0.45\linewidth}
% spring.cy = 15; % Y- Damping [N/(m/s)] #+begin_minipage
#+name: fig:test_nhexa_suspended_table
#+caption: Mounted suspended table. Only 1 or the 15 accelerometer is mounted on top
#+attr_latex: :width 0.99\linewidth :float nil
[[file:figs/test_nhexa_suspended_table.jpg]]
#+end_minipage
\hfill
#+attr_latex: :options [b]{0.45\linewidth}
#+begin_minipage
#+begin_scriptsize
#+name: tab:test_nhexa_suspended_table_modes
#+caption: Obtained modes of the suspended table
#+attr_latex: :environment tabularx :width 0.9\linewidth :placement [b] :align clX
#+attr_latex: :booktabs t :float nil :center t
#+RESULTS:
| *Modes* | *Frequency* | *Description* |
|---------+-------------+------------------|
| 1,2 | 1.3 Hz | X-Y translations |
| 3 | 2.0 Hz | Z rotation |
| 4 | 6.9 Hz | Z translation |
| 5,6 | 9.5 Hz | X-Y rotations |
|---------+-------------+------------------|
| 7 | 701 Hz | "Membrane" Mode |
| 8 | 989 Hz | Complex mode |
| 9 | 1025 Hz | Complex mode |
#+end_scriptsize
#+end_minipage
% spring.kz = 1e3; % Z- Stiffness [N/m]
% spring.cz = 50; % Z- Damping [N/(m/s)]
% spring.z0 = 32e-3; % Equilibrium z-length [m] #+name: fig:test_nhexa_table_flexible_modes
#+end_src #+caption: Three identified flexible modes of the suspended table
#+attr_latex: :options [htbp]
#+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:test_nhexa_table_flexible_mode_1}Flexible mode at 701Hz}
#+attr_latex: :options {\textwidth}
#+begin_subfigure
#+attr_latex: :width \linewidth
[[file:figs/test_nhexa_table_flexible_mode_1.jpg]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:test_nhexa_table_flexible_mode_2}Flexible mode at 989Hz}
#+attr_latex: :options {\textwidth}
#+begin_subfigure
#+attr_latex: :width \linewidth
[[file:figs/test_nhexa_table_flexible_mode_2.jpg]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:test_nhexa_table_flexible_mode_3}Flexible mode at 1025Hz}
#+attr_latex: :options {\textwidth}
#+begin_subfigure
#+attr_latex: :width \linewidth
[[file:figs/test_nhexa_table_flexible_mode_3.jpg]]
#+end_subfigure
#+end_figure
**** Inertial Shaker (IS20) ** Simscape Model of the suspended table
<<sec:simscape_inertial_shaker>> :PROPERTIES:
:header-args:matlab+: :tangle matlab/simscape_model.m
:END:
<<ssec:test_nhexa_table_model>>
The inertial shaker is defined as two solid bodies: The Simscape model of the suspended table simply consists of two solid bodies connected by 4 springs.
- the "housing" that is fixed to the element that we want to excite The 4 springs are here modelled with "bushing joints" that have stiffness and damping properties in x, y and z directions.
- the "inertial mass" that is suspended inside the housing The 3D representation of the model is displayed in Figure ref:fig:test_nhexa_suspended_table_simscape where the 4 "bushing joints" are represented by the blue cylinders.
The inertial mass is guided inside the housing and an actuator (coil and magnet) can be used to apply a force between the inertial mass and the support. #+name: fig:test_nhexa_suspended_table_simscape
The "reacting" force on the support is then used as an excitation. #+caption: 3D representation of the simscape model
#+attr_latex: :width 0.8\linewidth
[[file:figs/test_nhexa_suspended_table_simscape.png]]
#+name: tab:is20_characteristics The model order is 12, and it represents the 6 suspension modes.
#+caption: Summary of the IS20 datasheet The inertia properties of the parts are set from the geometry and material densities.
#+attr_latex: :environment tabularx :width 0.4\linewidth :align lX The stiffness of the springs was initially set from the datasheet nominal value of $17.8\,N/mm$ and then reduced down to $14\,N/mm$ to better match the measured suspension modes.
#+attr_latex: :center t :booktabs t :float t The stiffness of the springs in the horizontal plane is set at $0.5\,N/mm$.
| Characteristic | Value | The obtained suspension modes of the simscape model are compared with the measured ones in Table ref:tab:test_nhexa_suspended_table_simscape_modes.
|-----------------+------------|
| Output Force | 20 N |
| Frequency Range | 10-3000 Hz |
| Moving Mass | 0.1 kg |
| Total Mass | 0.3 kg |
From the datasheet in Table ref:tab:is20_characteristics, we can estimate the parameters of the physical shaker.
These parameters are defined below
**** 3D accelerometer (356B18)
<<sec:simscape_accelerometers>>
An accelerometer consists of 2 solids:
- a "housing" rigidly fixed to the measured body
- an "inertial mass" suspended inside the housing by springs and guided in the measured direction
The relative motion between the housing and the inertial mass gives a measurement of the acceleration of the measured body (up to the suspension mode of the inertial mass).
#+name: tab:356b18_characteristics
#+caption: Summary of the 356B18 datasheet
#+attr_latex: :environment tabularx :width 0.5\linewidth :align lX
#+attr_latex: :center t :booktabs t :float t
| Characteristic | Value |
|---------------------+---------------------|
| Sensitivity | 0.102 V/(m/s2) |
| Frequency Range | 0.5 to 3000 Hz |
| Resonance Frequency | > 20 kHz |
| Resolution | 0.0005 m/s2 rms |
| Weight | 0.025 kg |
| Size | 20.3x26.1x20.3 [mm] |
*** Identification
<<sec:simscape_parameters>>
Let's now identify the resonance frequency and mode shapes associated with the suspension modes of the optical table.
#+begin_src matlab #+begin_src matlab
%% Configure Simscape Model %% Configure Simscape Model
@ -4312,79 +4269,20 @@ io(io_i) = linio([mdl, '/F_v'], 1, 'openoutput'); io_i = io_i + 1;
G = linearize(mdl, io); G = linearize(mdl, io);
G.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}; G.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
G.OutputName = {'Vdx', 'Vdy', 'Vdz', 'Vrx', 'Vry', 'Vrz'}; G.OutputName = {'Vdx', 'Vdy', 'Vdz', 'Vrx', 'Vry', 'Vrz'};
#+end_src
#+begin_src matlab %% Compute the resonance frequencies
freqs = logspace(0, 2, 1000);
figure;
hold on;
plot(freqs, abs(squeeze(freqresp(G(1,1), freqs, 'Hz'))), 'DisplayName', '$x$');
plot(freqs, abs(squeeze(freqresp(G(2,2), freqs, 'Hz'))), 'DisplayName', '$y$');
plot(freqs, abs(squeeze(freqresp(G(3,3), freqs, 'Hz'))), 'DisplayName', '$z$');
plot(freqs, abs(squeeze(freqresp(G(4,4), freqs, 'Hz'))), 'DisplayName', '$R_x$');
plot(freqs, abs(squeeze(freqresp(G(5,5), freqs, 'Hz'))), 'DisplayName', '$R_y$');
plot(freqs, abs(squeeze(freqresp(G(6,6), freqs, 'Hz'))), 'DisplayName', '$R_z$');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude [$m/s/N$]');
legend('location', 'northeast');
#+end_src
#+begin_src matlab :results output replace :exports results :tangle no
size(G)
#+end_src
#+RESULTS:
: size(G)
: State-space model with 6 outputs, 6 inputs, and 12 states.
Compute the resonance frequencies
#+begin_src matlab
ws = eig(G.A); ws = eig(G.A);
ws = ws(imag(ws) > 0); ws = ws(imag(ws) > 0);
#+end_src #+end_src
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) #+name: tab:test_nhexa_suspended_table_simscape_modes
data2orgtable([sort(imag(ws))'/2/pi; 1.3, 1.3, 1.95, 6.85, 8.9, 9.5], {'Simscape', 'Experimental'}, {'x', 'y', 'Rz', 'Dz', 'Rx', 'Ry'}, ' %.2f '); #+caption: Comparison of the identified suspension modes with the Simscape model and measured experimentally
#+end_src #+attr_latex: :environment tabularx :width 0.6\linewidth :align Xcccc
#+attr_latex: :center t :booktabs t
#+RESULTS: | Directions | $D_x$, $D_y$ | $R_z$ | $D_z$ | $R_x$, $R_y$ |
| | x | y | Rz | Dz | Rx | Ry | |--------------+--------------+--------+--------+--------------|
|--------------+------+------+------+------+------+------| | Experimental | 1.3 Hz | 2.0 Hz | 6.9 Hz | 9.5 Hz |
| Simscape | 1.28 | 1.28 | 1.82 | 6.78 | 9.47 | 9.47 | | Simscape | 1.3 Hz | 1.8 Hz | 6.8 Hz | 9.5 Hz |
| Experimental | 1.3 | 1.3 | 1.95 | 6.85 | 8.9 | 9.5 |
And the associated response of the optical table
#+begin_src matlab
x_mod = zeros(6, 6); % 6 modes, 6 outputs
for i = 1:length(ws)
xi = evalfr(G(1,:), ws(i));
x_mod(:,i) = xi./norm(xi);
end
#+end_src
The results are shown in Table ref:tab:mode_shapes.
The motion associated to the mode shapes are just indicative.
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
data2orgtable([flip(imag(ws)/2/pi)'; flip(abs(x_mod),2)], {'$\omega_0$ [Hz]', 'x', 'y', 'z', 'Rx', 'Ry', 'Rz'}, {}, ' %.1f ');
#+end_src
#+name: tab:mode_shapes
#+caption: Resonance frequency and approximation of the mode shapes
#+attr_latex: :environment tabularx :width 0.4\linewidth :align Xcccccc
#+attr_latex: :center t :booktabs t :float t
#+RESULTS:
| $\omega_0$ [Hz] | 8.2 | 8.2 | 8.2 | 5.8 | 5.6 | 5.6 |
|-----------------+-----+-----+-----+-----+-----+-----|
| x | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 0.5 |
| y | 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 |
| z | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
| Rx | 1.0 | 0.0 | 0.0 | 0.0 | 0.8 | 0.0 |
| Ry | 0.0 | 1.0 | 0.0 | 0.0 | 0.2 | 0.9 |
| Rz | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 |
* Nano-Hexapod Dynamics * Nano-Hexapod Dynamics
<<sec:test_nhexa_dynamics>> <<sec:test_nhexa_dynamics>>
@ -5899,6 +5797,10 @@ freqs = 2*logspace(1, 3, 1000);
#+END_SRC #+END_SRC
* Footnotes * Footnotes
[fn:7]PCB 356B18. Sensitivity is $1\,V/g$, measurement range is $\pm 5\,g$ and bandwidth is $0.5$ to $5\,\text{kHz}$.
[fn:6]"SZ8005 20 x 044" from Steinel. The spring rate is specified at $17.8\,N/mm$
[fn:5]The 450 mm x 450 mm x 60 mm Nexus B4545A from Thorlabs.
[fn:4]As the accuracy of the FARO arm is $\pm 13\,\mu m$, the true straightness is probably better than the values indicated. The limitation of the instrument is here reached. [fn:4]As the accuracy of the FARO arm is $\pm 13\,\mu m$, the true straightness is probably better than the values indicated. The limitation of the instrument is here reached.
[fn:3]The height dimension is better than $40\,\mu m$. The diameter fit of 182g6 and 24g6 with the two plates is verified. [fn:3]The height dimension is better than $40\,\mu m$. The diameter fit of 182g6 and 24g6 with the two plates is verified.
[fn:2]Location of all the interface surfaces with the flexible joints are checked. The fits (182H7 and 24H8) with the interface element are checked. [fn:2]Location of all the interface surfaces with the flexible joints are checked. The fits (182H7 and 24H8) with the interface element are checked.

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2024-10-27 Sun 11:12 % Created 2024-10-27 Sun 14:49
% 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}
@ -133,214 +133,124 @@ After all six struts are mounted, the mounting tool (Figure \ref{fig:test_nhexa_
\label{sec:test_nhexa_table} \label{sec:test_nhexa_table}
\section{Introduction} \section{Introduction}
This document is divided as follows: When a dynamical system is fixed to a support (such as a granite or an optical table), its dynamics will couple to the support dynamics.
\begin{itemize} This may results in additional modes appearing in the system dynamics, which are difficult to predict and model.
\item Section \ref{ssec:test_nhexa_table_setup}: the experimental setup and all the instrumentation are described Two prevent this issue, strategy adopted here is to mount the nano-hexapod on top a suspended table with low frequency suspension modes.
\item Section \ref{ssec:test_nhexa_table_identification}: the table dynamics is identified
\item Section \ref{ssec:test_nhexa_table_model}: a Simscape model of the vibration table is developed and tuned from the measurements In such a case, the modes of the suspended table are chosen to be at much lower frequency than those of the nano-hexapod such that they are well decoupled.
\end{itemize} An other key advantage is that the suspension modes of the suspended table can be easily modelled using Simscape.
Therefore, the measured dynamics of the nano-hexapod on top of the suspended table can be compared to a simscape model representing the same experimental conditions.
The model of the Nano-Hexapod can thus be precisely tuned to match the measured dynamics.
The developed suspended table is presented in Section \ref{ssec:test_nhexa_table_setup}.
The modal analysis of the table is done in \ref{ssec:test_nhexa_table_identification}.
Finally, the Simscape model representing the suspended table is tuned to match the measured modes (Section \ref{ssec:test_nhexa_table_model}).
\section{Experimental Setup} \section{Experimental Setup}
\label{ssec:test_nhexa_table_setup} \label{ssec:test_nhexa_table_setup}
\begin{itemize}
\item[{$\square$}] Redo the CAD view The design of the suspended table is quite straightforward.
\end{itemize} First, an optical table with high frequency flexible mode was selected\footnote{The 450 mm x 450 mm x 60 mm Nexus B4545A from Thorlabs.}.
Then, four springs\footnote{``SZ8005 20 x 044'' from Steinel. The spring rate is specified at \(17.8\,N/mm\)} were selected with low enough spring rate such that the suspension modes are below 10Hz.
Finally, some interface elements were designed, and mechanical lateral mechanical stops were added (Figure \ref{fig:test_nhexa_suspended_table_cad}).
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,width=0.8\linewidth]{figs/vibration-table-cad-view.png} \includegraphics[scale=1,width=0.7\linewidth]{figs/test_nhexa_suspended_table_cad.jpg}
\caption{\label{fig:vibration-table-cad-view}CAD View of the vibration table} \caption{\label{fig:test_nhexa_suspended_table_cad}CAD View of the vibration table. Purple cylinders are representing the soft springs.}
\end{figure}
\subsection{Suspended table}
\begin{description}
\item[{Dimensions}] 450 mm x 450 mm x 60 mm
\item[{Mass}] 21.3 kg (bot=7.8, top=7.6, mid=5.9kg)
\item[{Interface plate}] 3.2kg
\end{description}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=0.8\linewidth]{figs/test_nhexa_compliance_table.png}
\caption{\label{fig:compliance_optical_table}Compliance of the B4545A optical table}
\end{figure} \end{figure}
If we include including the bottom interface plate: \section{Modal analysis of the suspended table}
\begin{itemize}
\item Total mass: 24.5 kg
\item CoM: 42mm below Center of optical table
\item Ix = 0.54, Iy = 0.54, Iz = 1.07 (with respect to CoM)
\end{itemize}
\subsection{Springs}
Helical compression spring
make of steel wire (52SiCrNi5) with rectangular cross section
SZ8005 20 x 044 from Steinel
L0 = 44mm
Spring rate = 17.8 N/mm
\begin{center}
\includegraphics[scale=1]{figs/test_nhexa_table_springs.jpg}
\end{center}
\section{Identification of the table's response}
\label{ssec:test_nhexa_table_identification} \label{ssec:test_nhexa_table_identification}
(4x) 3D accelerometer \href{https://www.pcbpiezotronics.fr/produit/accelerometres/356b18/}{PCB 356B18} In order to perform a modal analysis of the suspended table, a total of 15 3-axis accelerometers\footnote{PCB 356B18. Sensitivity is \(1\,V/g\), measurement range is \(\pm 5\,g\) and bandwidth is \(0.5\) to \(5\,\text{kHz}\).} were fixed to the breadboard.
Using an instrumented hammer, the first 9 modes could be identified and are summarized in Table \ref{tab:test_nhexa_suspended_table_modes}.
The first 6 modes are suspension modes (i.e. rigid body mode of the breadboard) and are located below 10Hz.
The next modes are flexible modes of the breadboard as shown in Figure \ref{fig:test_nhexa_table_flexible_modes}, and located above 700Hz.
\begin{table}[htbp] \begin{minipage}[t]{0.45\linewidth}
\centering \begin{center}
\begin{tabularx}{0.5\linewidth}{ccX} \includegraphics[scale=1,width=0.99\linewidth]{figs/test_nhexa_suspended_table.jpg}
\captionof{figure}{\label{fig:test_nhexa_suspended_table}Mounted suspended table. Only 1 or the 15 accelerometer is mounted on top}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[b]{0.45\linewidth}
\begin{scriptsize}
\begin{center}
\begin{tabularx}{0.9\linewidth}{clX}
\toprule \toprule
& Freq. [Hz] & Description\\ \textbf{Modes} & \textbf{Frequency} & \textbf{Description}\\
\midrule \midrule
1 & 1.3 & X-translation\\ 1,2 & 1.3 Hz & X-Y translations\\
2 & 1.3 & Y-translation\\ 3 & 2.0 Hz & Z rotation\\
3 & 1.95 & Z-rotation\\ 4 & 6.9 Hz & Z translation\\
4 & 6.85 & Z-translation\\ 5,6 & 9.5 Hz & X-Y rotations\\
5 & 8.9 & Tilt\\ \midrule
6 & 8.9 & Tilt\\ 7 & 701 Hz & ``Membrane'' Mode\\
7 & 700 & Flexible Mode\\ 8 & 989 Hz & Complex mode\\
9 & 1025 Hz & Complex mode\\
\bottomrule \bottomrule
\end{tabularx} \end{tabularx}
\caption{\label{tab:list_modes}List of the identified modes} \captionof{table}{\label{tab:test_nhexa_suspended_table_modes}Obtained modes of the suspended table}
\end{center}
\end{scriptsize}
\end{minipage}
\end{table}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \begin{subfigure}{\textwidth}
\includegraphics[scale=1,width=\linewidth]{figs/test_nhexa_mode_shapes_rigid_table.png} \begin{center}
\caption{\label{fig:test_nhexa_mode_shapes_rigid_table}Mode shapes of the 6 suspension modes (from 1Hz to 9Hz)} \includegraphics[scale=1,width=\linewidth]{figs/test_nhexa_table_flexible_mode_1.jpg}
\end{center}
\subcaption{\label{fig:test_nhexa_table_flexible_mode_1}Flexible mode at 701Hz}
\end{subfigure}
\begin{subfigure}{\textwidth}
\begin{center}
\includegraphics[scale=1,width=\linewidth]{figs/test_nhexa_table_flexible_mode_2.jpg}
\end{center}
\subcaption{\label{fig:test_nhexa_table_flexible_mode_2}Flexible mode at 989Hz}
\end{subfigure}
\begin{subfigure}{\textwidth}
\begin{center}
\includegraphics[scale=1,width=\linewidth]{figs/test_nhexa_table_flexible_mode_3.jpg}
\end{center}
\subcaption{\label{fig:test_nhexa_table_flexible_mode_3}Flexible mode at 1025Hz}
\end{subfigure}
\caption{\label{fig:test_nhexa_table_flexible_modes}Three identified flexible modes of the suspended table}
\end{figure} \end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1,width=0.3\linewidth]{figs/ModeShapeHF1_crop.gif}
\caption{\label{fig:ModeShapeHF1_crop}First flexible mode of the table at 700Hz}
\end{figure}
\section{Simscape Model of the suspended table} \section{Simscape Model of the suspended table}
\label{ssec:test_nhexa_table_model} \label{ssec:test_nhexa_table_model}
In this section, the Simscape model of the vibration table is described.
The Simscape model of the suspended table simply consists of two solid bodies connected by 4 springs.
The 4 springs are here modelled with ``bushing joints'' that have stiffness and damping properties in x, y and z directions.
The 3D representation of the model is displayed in Figure \ref{fig:test_nhexa_suspended_table_simscape} where the 4 ``bushing joints'' are represented by the blue cylinders.
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,width=0.8\linewidth]{figs/simscape_vibration_table.png} \includegraphics[scale=1,width=0.8\linewidth]{figs/test_nhexa_suspended_table_simscape.png}
\caption{\label{fig:simscape_vibration_table}3D representation of the simscape model} \caption{\label{fig:test_nhexa_suspended_table_simscape}3D representation of the simscape model}
\end{figure} \end{figure}
\subsection{Simscape Sub-systems}
\label{sec:simscape_parameters}
Parameters for sub-components of the simscape model are defined below. The model order is 12, and it represents the 6 suspension modes.
The inertia properties of the parts are set from the geometry and material densities.
\paragraph{Springs} The stiffness of the springs was initially set from the datasheet nominal value of \(17.8\,N/mm\) and then reduced down to \(14\,N/mm\) to better match the measured suspension modes.
\label{sec:simscape_springs} The stiffness of the springs in the horizontal plane is set at \(0.5\,N/mm\).
The obtained suspension modes of the simscape model are compared with the measured ones in Table \ref{tab:test_nhexa_suspended_table_simscape_modes}.
The 4 springs supporting the suspended optical table are modelled with ``bushing joints'' having stiffness and damping in the x-y-z directions:
\paragraph{Inertial Shaker (IS20)}
\label{sec:simscape_inertial_shaker}
The inertial shaker is defined as two solid bodies:
\begin{itemize}
\item the ``housing'' that is fixed to the element that we want to excite
\item the ``inertial mass'' that is suspended inside the housing
\end{itemize}
The inertial mass is guided inside the housing and an actuator (coil and magnet) can be used to apply a force between the inertial mass and the support.
The ``reacting'' force on the support is then used as an excitation.
\begin{table}[htbp] \begin{table}[htbp]
\centering \centering
\begin{tabularx}{0.4\linewidth}{lX} \begin{tabularx}{0.6\linewidth}{Xcccc}
\toprule \toprule
Characteristic & Value\\ Directions & \(D_x\), \(D_y\) & \(R_z\) & \(D_z\) & \(R_x\), \(R_y\)\\
\midrule \midrule
Output Force & 20 N\\ Experimental & 1.3 Hz & 2.0 Hz & 6.9 Hz & 9.5 Hz\\
Frequency Range & 10-3000 Hz\\ Simscape & 1.3 Hz & 1.8 Hz & 6.8 Hz & 9.5 Hz\\
Moving Mass & 0.1 kg\\
Total Mass & 0.3 kg\\
\bottomrule \bottomrule
\end{tabularx} \end{tabularx}
\caption{\label{tab:is20_characteristics}Summary of the IS20 datasheet} \caption{\label{tab:test_nhexa_suspended_table_simscape_modes}Comparison of the identified suspension modes with the Simscape model and measured experimentally}
\end{table}
From the datasheet in Table \ref{tab:is20_characteristics}, we can estimate the parameters of the physical shaker.
These parameters are defined below
\paragraph{3D accelerometer (356B18)}
\label{sec:simscape_accelerometers}
An accelerometer consists of 2 solids:
\begin{itemize}
\item a ``housing'' rigidly fixed to the measured body
\item an ``inertial mass'' suspended inside the housing by springs and guided in the measured direction
\end{itemize}
The relative motion between the housing and the inertial mass gives a measurement of the acceleration of the measured body (up to the suspension mode of the inertial mass).
\begin{table}[htbp]
\centering
\begin{tabularx}{0.5\linewidth}{lX}
\toprule
Characteristic & Value\\
\midrule
Sensitivity & 0.102 V/(m/s2)\\
Frequency Range & 0.5 to 3000 Hz\\
Resonance Frequency & > 20 kHz\\
Resolution & 0.0005 m/s2 rms\\
Weight & 0.025 kg\\
Size & 20.3x26.1x20.3 [mm]\\
\bottomrule
\end{tabularx}
\caption{\label{tab:356b18_characteristics}Summary of the 356B18 datasheet}
\end{table}
\subsection{Identification}
\label{sec:simscape_parameters}
Let's now identify the resonance frequency and mode shapes associated with the suspension modes of the optical table.
\begin{verbatim}
size(G)
State-space model with 6 outputs, 6 inputs, and 12 states.
\end{verbatim}
Compute the resonance frequencies
\begin{center}
\begin{tabular}{lrrrrrr}
& x & y & Rz & Dz & Rx & Ry\\
\hline
Simscape & 1.28 & 1.28 & 1.82 & 6.78 & 9.47 & 9.47\\
Experimental & 1.3 & 1.3 & 1.95 & 6.85 & 8.9 & 9.5\\
\end{tabular}
\end{center}
And the associated response of the optical table
The results are shown in Table \ref{tab:mode_shapes}.
The motion associated to the mode shapes are just indicative.
\begin{table}[htbp]
\centering
\begin{tabularx}{0.4\linewidth}{Xcccccc}
\toprule
\(\omega_0\) [Hz] & 8.2 & 8.2 & 8.2 & 5.8 & 5.6 & 5.6\\
\midrule
x & 0.0 & 0.0 & 0.0 & 0.0 & 0.1 & 0.5\\
y & 0.0 & 0.0 & 0.0 & 0.0 & 0.5 & 0.0\\
z & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\
Rx & 1.0 & 0.0 & 0.0 & 0.0 & 0.8 & 0.0\\
Ry & 0.0 & 1.0 & 0.0 & 0.0 & 0.2 & 0.9\\
Rz & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\
\bottomrule
\end{tabularx}
\caption{\label{tab:mode_shapes}Resonance frequency and approximation of the mode shapes}
\end{table} \end{table}