diff --git a/figs/test_nhexa_compliance_table.pdf b/figs/test_nhexa_compliance_table.pdf new file mode 100644 index 0000000..96b0a48 Binary files /dev/null and b/figs/test_nhexa_compliance_table.pdf differ diff --git a/figs/test_nhexa_compliance_table.png b/figs/test_nhexa_compliance_table.png new file mode 100644 index 0000000..301a449 Binary files /dev/null and b/figs/test_nhexa_compliance_table.png differ diff --git a/figs/test_nhexa_mode_shapes_rigid_table.gif b/figs/test_nhexa_mode_shapes_rigid_table.gif new file mode 100644 index 0000000..222817f Binary files /dev/null and b/figs/test_nhexa_mode_shapes_rigid_table.gif differ diff --git a/figs/test_nhexa_mode_shapes_rigid_table.png b/figs/test_nhexa_mode_shapes_rigid_table.png new file mode 100644 index 0000000..ebdc857 Binary files /dev/null and b/figs/test_nhexa_mode_shapes_rigid_table.png differ diff --git a/figs/test_nhexa_suspended_table.jpg b/figs/test_nhexa_suspended_table.jpg new file mode 100644 index 0000000..ca5e675 Binary files /dev/null and b/figs/test_nhexa_suspended_table.jpg differ diff --git a/figs/test_nhexa_suspended_table_cad.jpg b/figs/test_nhexa_suspended_table_cad.jpg new file mode 100644 index 0000000..740f807 Binary files /dev/null and b/figs/test_nhexa_suspended_table_cad.jpg differ diff --git a/figs/test_nhexa_suspended_table_simscape.pdf b/figs/test_nhexa_suspended_table_simscape.pdf new file mode 100644 index 0000000..23319d1 Binary files /dev/null and b/figs/test_nhexa_suspended_table_simscape.pdf differ diff --git a/figs/test_nhexa_suspended_table_simscape.png b/figs/test_nhexa_suspended_table_simscape.png new file mode 100644 index 0000000..99ceedf Binary files /dev/null and b/figs/test_nhexa_suspended_table_simscape.png differ diff --git a/figs/test_nhexa_table_flexible_mode_1.jpg b/figs/test_nhexa_table_flexible_mode_1.jpg new file mode 100644 index 0000000..f773bb8 Binary files /dev/null and b/figs/test_nhexa_table_flexible_mode_1.jpg differ diff --git a/figs/test_nhexa_table_flexible_mode_2.jpg b/figs/test_nhexa_table_flexible_mode_2.jpg new file mode 100644 index 0000000..48da35c Binary files /dev/null and b/figs/test_nhexa_table_flexible_mode_2.jpg differ diff --git a/figs/test_nhexa_table_flexible_mode_3.jpg b/figs/test_nhexa_table_flexible_mode_3.jpg new file mode 100644 index 0000000..bbf999f Binary files /dev/null and b/figs/test_nhexa_table_flexible_mode_3.jpg differ diff --git a/test-bench-nano-hexapod.org b/test-bench-nano-hexapod.org index 07b91a8..8d5851a 100644 --- a/test-bench-nano-hexapod.org +++ b/test-bench-nano-hexapod.org @@ -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]] - [ ] *Use corrected APA parameters in the initialization script* + +Suspended table EPDM: ID00/test_bench/table_dyn + *Goal of this test bench*: - Properly mount the nano-hexapod - 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 - [ ] ... +** TODO [#C] Remove un-used matlab scripts and src files + ** TODO [#B] Make nice subfigures for identified modes SCHEDULED: <2024-10-26 Sat> @@ -4111,94 +4116,24 @@ After all six struts are mounted, the mounting tool (Figure ref:fig:test_nhexa_c <> ** 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: -- Section ref:ssec:test_nhexa_table_setup: the experimental setup and all the instrumentation are described -- Section ref:ssec:test_nhexa_table_identification: the table dynamics is identified -- 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. +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. -** Experimental Setup -<> -*** Introduction :ignore: +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). -- [ ] 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 -<> - -(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: -<> -*** 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) <> #+end_src @@ -4223,79 +4158,101 @@ In this section, the Simscape model of the vibration table is described. <> #+end_src -*** Simscape Sub-systems -<> +** Experimental 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 +#+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 +<> -#+begin_src matlab -%% This parameters are defined in the Mask of the suspended table -% spring.kx = 0.5e3; % X- Stiffness [N/m] -% spring.cx = 15; % X- Damping [N/(m/s)] +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. +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. -% spring.ky = 0.5e3; % Y- Stiffness [N/m] -% spring.cy = 15; % Y- Damping [N/(m/s)] +#+attr_latex: :options [t]{0.45\linewidth} +#+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] -#+end_src +#+name: fig:test_nhexa_table_flexible_modes +#+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 +:PROPERTIES: +:header-args:matlab+: :tangle matlab/simscape_model.m +:END: +<> -The inertial shaker is defined as two solid bodies: -- the "housing" that is fixed to the element that we want to excite -- the "inertial mass" that is suspended inside the housing +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. -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. +#+name: fig:test_nhexa_suspended_table_simscape +#+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 -#+caption: Summary of the IS20 datasheet -#+attr_latex: :environment tabularx :width 0.4\linewidth :align lX -#+attr_latex: :center t :booktabs t :float t -| Characteristic | Value | -|-----------------+------------| -| 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) -<> - -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 -<> -Let's now identify the resonance frequency and mode shapes associated with the suspension modes of the optical table. +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. +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. +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. #+begin_src matlab %% 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.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}; G.OutputName = {'Vdx', 'Vdy', 'Vdz', 'Vrx', 'Vry', 'Vrz'}; -#+end_src -#+begin_src matlab -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 +%% Compute the resonance frequencies ws = eig(G.A); ws = ws(imag(ws) > 0); #+end_src -#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) -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 '); -#+end_src - -#+RESULTS: -| | x | y | Rz | Dz | Rx | Ry | -|--------------+------+------+------+------+------+------| -| 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 | - - -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 | +#+name: tab:test_nhexa_suspended_table_simscape_modes +#+caption: Comparison of the identified suspension modes with the Simscape model and measured experimentally +#+attr_latex: :environment tabularx :width 0.6\linewidth :align Xcccc +#+attr_latex: :center t :booktabs t +| Directions | $D_x$, $D_y$ | $R_z$ | $D_z$ | $R_x$, $R_y$ | +|--------------+--------------+--------+--------+--------------| +| Experimental | 1.3 Hz | 2.0 Hz | 6.9 Hz | 9.5 Hz | +| Simscape | 1.3 Hz | 1.8 Hz | 6.8 Hz | 9.5 Hz | * Nano-Hexapod Dynamics <> @@ -5899,6 +5797,10 @@ freqs = 2*logspace(1, 3, 1000); #+END_SRC * 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: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. diff --git a/test-bench-nano-hexapod.pdf b/test-bench-nano-hexapod.pdf index da29cf3..498af5a 100644 Binary files a/test-bench-nano-hexapod.pdf and b/test-bench-nano-hexapod.pdf differ diff --git a/test-bench-nano-hexapod.tex b/test-bench-nano-hexapod.tex index 7555785..1dcc9f8 100644 --- a/test-bench-nano-hexapod.tex +++ b/test-bench-nano-hexapod.tex @@ -1,4 +1,4 @@ -% Created 2024-10-27 Sun 11:12 +% Created 2024-10-27 Sun 14:49 % Intended LaTeX compiler: pdflatex \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} \section{Introduction} -This document is divided as follows: -\begin{itemize} -\item Section \ref{ssec:test_nhexa_table_setup}: the experimental setup and all the instrumentation are described -\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 -\end{itemize} +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. + +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. +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} \label{ssec:test_nhexa_table_setup} -\begin{itemize} -\item[{$\square$}] Redo the CAD view -\end{itemize} + +The design of the suspended table is quite straightforward. +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] \centering -\includegraphics[scale=1,width=0.8\linewidth]{figs/vibration-table-cad-view.png} -\caption{\label{fig:vibration-table-cad-view}CAD View of the vibration table} -\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} +\includegraphics[scale=1,width=0.7\linewidth]{figs/test_nhexa_suspended_table_cad.jpg} +\caption{\label{fig:test_nhexa_suspended_table_cad}CAD View of the vibration table. Purple cylinders are representing the soft springs.} \end{figure} -If we include including the bottom interface plate: -\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} +\section{Modal analysis of the suspended table} \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] -\centering -\begin{tabularx}{0.5\linewidth}{ccX} +\begin{minipage}[t]{0.45\linewidth} +\begin{center} +\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 - & Freq. [Hz] & Description\\ +\textbf{Modes} & \textbf{Frequency} & \textbf{Description}\\ \midrule -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\\ +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\\ +\midrule +7 & 701 Hz & ``Membrane'' Mode\\ +8 & 989 Hz & Complex mode\\ +9 & 1025 Hz & Complex mode\\ \bottomrule \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] -\centering -\includegraphics[scale=1,width=\linewidth]{figs/test_nhexa_mode_shapes_rigid_table.png} -\caption{\label{fig:test_nhexa_mode_shapes_rigid_table}Mode shapes of the 6 suspension modes (from 1Hz to 9Hz)} +\begin{subfigure}{\textwidth} +\begin{center} +\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} -\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} \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] \centering -\includegraphics[scale=1,width=0.8\linewidth]{figs/simscape_vibration_table.png} -\caption{\label{fig:simscape_vibration_table}3D representation of the simscape model} +\includegraphics[scale=1,width=0.8\linewidth]{figs/test_nhexa_suspended_table_simscape.png} +\caption{\label{fig:test_nhexa_suspended_table_simscape}3D representation of the simscape model} \end{figure} -\subsection{Simscape Sub-systems} -\label{sec:simscape_parameters} -Parameters for sub-components of the simscape model are defined below. - -\paragraph{Springs} -\label{sec:simscape_springs} - -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. +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. +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. +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}. \begin{table}[htbp] \centering -\begin{tabularx}{0.4\linewidth}{lX} +\begin{tabularx}{0.6\linewidth}{Xcccc} \toprule -Characteristic & Value\\ +Directions & \(D_x\), \(D_y\) & \(R_z\) & \(D_z\) & \(R_x\), \(R_y\)\\ \midrule -Output Force & 20 N\\ -Frequency Range & 10-3000 Hz\\ -Moving Mass & 0.1 kg\\ -Total Mass & 0.3 kg\\ +Experimental & 1.3 Hz & 2.0 Hz & 6.9 Hz & 9.5 Hz\\ +Simscape & 1.3 Hz & 1.8 Hz & 6.8 Hz & 9.5 Hz\\ \bottomrule \end{tabularx} -\caption{\label{tab:is20_characteristics}Summary of the IS20 datasheet} - -\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} +\caption{\label{tab:test_nhexa_suspended_table_simscape_modes}Comparison of the identified suspension modes with the Simscape model and measured experimentally} \end{table}