nass-micro-station-measurem.../2017-11-17 - Marc/index.org
Thomas Dehaeze 6e3677eb29 [WIP] Breaking Change - Use Update
Folder name is changed, rework the html templates
Change the organisation.
2019-05-10 16:06:43 +02:00

278 lines
9.9 KiB
Org Mode

#+TITLE: Measurements
#+SETUPFILE: ../config.org
* Experimental conditions
- Measurement made in a metrology lab
- The granite is not glued to the floor
- The Y-Translation stage is powered and in closed-loop
- The spindle is not powered
- Mass is placed on top of the Hexapod (*how much?*) (figure [[fig:accelerometers]]).
- Made by Marc Lesourd on the 17th of November 2017
#+name: fig:accelerometers
#+caption: Accelerometers position
#+attr_html: :width 500px
[[file:./figs/accelerometers.png]]
#+name: fig:instrumented_hammer
#+caption: Instrumented Hammer used
#+attr_html: :width 500px
[[file:./figs/instrumented_hammer.png]]
* Measurements procedure
*3-axis Accelerometers* (specifications table [[tab:accelerometer]]) are glued on (see figure [[fig:accelerometers]]):
- Marble
- Y-Translation stage
- Tilt stage
- top of Hexapod
#+NAME: tab:accelerometer
#+CAPTION: Pieozoelectric acc. 356b18 - 3 axis
| Sensitivity | 0.102 V/(m/s2) |
| Measurement Range | 4.9 m/s2 pk |
| Frequency Range | 0.5 to 3000 Hz |
| resonant frequency | >20000 Hz |
| broadband resolution | 0.0005 m/s2 rms |
The structure is excited using an *instrumented hammer* with impacts on (see figure [[fig:instrumented_hammer]]):
- Marble
- Hexapod
* Measurement Files
Two measurements files are:
- =id31_microstation_2017_11_17_frf.mat= that contains:
- =freq_frf= the frequency vector in Hz
- Computed frequency response functions (see table [[tab:data_name]])
- =id31_microstation_2017_11_17_coh.mat=
- Computed coherence
For each of the measurement, the measured channels are shown on table [[tab:meas_channels]].
#+NAME: tab:data_name
#+CAPTION: Description of the location of direction of the excitation for each measurement
| Object name | Location | Direction |
|--------------+----------+-----------|
| frf_hexa_x | Hexapod | X |
| frf_hexa_y | Hexapod | Y |
| frf_hexa_z | Hexapod | Z |
| frf_marble_x | Marble | X |
| frf_marble_y | Marble | Y |
| frf_marble_z | Marble | Z |
#+NAME: tab:meas_channels
#+CAPTION: Description of each measurement channel
| Ch. nb | Element | Location | Direction |
|--------+---------------+----------+-----------|
| 1 | Not wired | na | na |
| 2 | Accelerometer | Marble | X |
| 3 | Accelerometer | Marble | Y |
| 4 | Accelerometer | Marble | Z |
| 5 | Accelerometer | Ty | X |
| 6 | Accelerometer | Ty | Y |
| 7 | Accelerometer | Ty | Z |
| 8 | Accelerometer | Tilt | X |
| 9 | Accelerometer | Tilt | Y |
| 10 | Accelerometer | Tilt | Z |
| 11 | Accelerometer | Hexapod | X |
| 12 | Accelerometer | Hexapod | Y |
| 13 | Accelerometer | Hexapod | Z |
* Data Analysis
** Loading of the data
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
#+begin_src matlab :exports code :results none
load('./raw_data/id31_microstation_2017_11_17_coh.mat',...
'coh_hexa_x',...
'coh_hexa_y',...
'coh_hexa_z',...
'coh_marble_x',...
'coh_marble_y',...
'coh_marble_z');
load('./raw_data/id31_microstation_2017_11_17_frf.mat',...
'freq_frf',...
'frf_hexa_x',...
'frf_hexa_y',...
'frf_hexa_z',...
'frf_marble_x',...
'frf_marble_y',...
'frf_marble_z');
#+end_src
** Pre-processing of the data
The FRF data are scaled with the sensitivity of the accelerometer and integrated two times to have the displacement instead of the acceleration.
#+begin_src matlab :results none
accel_sensitivity = 0.102; % [V/(m/s2)]
w = j*2*pi*freq_frf; % j.omega in [rad/s]
frf_hexa_x = 1/accel_sensitivity*frf_hexa_x./(w.^2);
frf_hexa_y = -1/accel_sensitivity*frf_hexa_y./(w.^2);
frf_hexa_z = -1/accel_sensitivity*frf_hexa_z./(w.^2);
frf_marble_x = 1/accel_sensitivity*frf_marble_x./(w.^2);
frf_marble_y = 1/accel_sensitivity*frf_marble_y./(w.^2);
frf_marble_z = -1/accel_sensitivity*frf_marble_z./(w.^2);
#+end_src
** X-direction FRF
#+begin_src matlab :exports none :results none
figure;
hold on;
plot(freq_frf, abs(frf_marble_x(:, 2)), 'DisplayName', 'Marble - X');
plot(freq_frf, abs(frf_marble_x(:, 5)), 'DisplayName', 'Ty - X');
plot(freq_frf, abs(frf_marble_x(:, 8)), 'DisplayName', 'Ry - X');
plot(freq_frf, abs(frf_marble_x(:, 11)), 'DisplayName', 'Hexa - X');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([20, 200]); xticks([20, 50, 100, 200]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:marble_x_frf
#+HEADER: :tangle no :exports results :results raw :noweb yes
#+begin_src matlab :var filepath="figs/marble_x_frf.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:marble_x_frf
#+CAPTION: Response to a force applied on the marble in the X direction
#+RESULTS: fig:marble_x_frf
[[file:figs/marble_x_frf.png]]
#+begin_src matlab :exports none :results none
figure;
hold on;
plot(freq_frf, abs(frf_hexa_x(:, 2)), 'DisplayName', 'Marble - X');
plot(freq_frf, abs(frf_hexa_x(:, 5)), 'DisplayName', 'Ty - X');
plot(freq_frf, abs(frf_hexa_x(:, 8)), 'DisplayName', 'Ry - X');
plot(freq_frf, abs(frf_hexa_x(:, 11)), 'DisplayName', 'Hexa - X');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([20, 200]); xticks([20, 50, 100, 200]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:hexa_x_frf
#+HEADER: :tangle no :exports results :results raw :noweb yes
#+begin_src matlab :var filepath="figs/hexa_x_frf.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:hexa_x_frf
#+CAPTION: Response to a force applied on the hexa in the X direction
#+RESULTS: fig:hexa_x_frf
[[file:figs/hexa_x_frf.png]]
** Y-direction FRF
#+begin_src matlab :exports none :results none
figure;
hold on;
plot(freq_frf, abs(frf_marble_y(:, 3)), 'DisplayName', 'Marble - Y');
plot(freq_frf, abs(frf_marble_y(:, 6)), 'DisplayName', 'Ty - Y');
plot(freq_frf, abs(frf_marble_y(:, 9)), 'DisplayName', 'Ry - Y');
plot(freq_frf, abs(frf_marble_y(:, 12)), 'DisplayName', 'Hexa - Y');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([20, 200]); xticks([20, 50, 100, 200]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:marble_y_frf
#+HEADER: :tangle no :exports results :results raw :noweb yes
#+begin_src matlab :var filepath="figs/marble_y_frf.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:marble_y_frf
#+CAPTION: Response to a force applied on the marble in the Y direction
#+RESULTS: fig:marble_y_frf
[[file:figs/marble_y_frf.png]]
#+begin_src matlab :exports none :results none
figure;
hold on;
plot(freq_frf, abs(frf_hexa_y(:, 3)), 'DisplayName', 'Marble - Y');
plot(freq_frf, abs(frf_hexa_y(:, 6)), 'DisplayName', 'Ty - Y');
plot(freq_frf, abs(frf_hexa_y(:, 9)), 'DisplayName', 'Ry - Y');
plot(freq_frf, abs(frf_hexa_y(:, 12)), 'DisplayName', 'Hexa - Y');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([20, 200]); xticks([20, 50, 100, 200]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:hexa_y_frf
#+HEADER: :tangle no :exports results :results raw :noweb yes
#+begin_src matlab :var filepath="figs/hexa_y_frf.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:hexa_y_frf
#+CAPTION: Response to a force applied on the hexa in the Y direction
#+RESULTS: fig:hexa_y_frf
[[file:figs/hexa_y_frf.png]]
** Z-direction FRF
#+begin_src matlab :exports none :results none
figure;
hold on;
plot(freq_frf, abs(frf_marble_z(:, 4)), 'DisplayName', 'Marble - Z');
plot(freq_frf, abs(frf_marble_z(:, 7)), 'DisplayName', 'Ty - Z');
plot(freq_frf, abs(frf_marble_z(:, 10)), 'DisplayName', 'Ry - Z');
plot(freq_frf, abs(frf_marble_z(:, 13)), 'DisplayName', 'Hexa - Z');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([20, 200]); xticks([20, 50, 100, 200]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:marble_z_frf
#+HEADER: :tangle no :exports results :results raw :noweb yes
#+begin_src matlab :var filepath="figs/marble_z_frf.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:marble_z_frf
#+CAPTION: Response to a force applied on the marble in the Z direction
#+RESULTS: fig:marble_z_frf
[[file:figs/marble_z_frf.png]]
#+begin_src matlab :exports none :results none
figure;
hold on;
plot(freq_frf, abs(frf_hexa_z(:, 4)), 'DisplayName', 'Marble - Z');
plot(freq_frf, abs(frf_hexa_z(:, 7)), 'DisplayName', 'Ty - Z');
plot(freq_frf, abs(frf_hexa_z(:, 10)), 'DisplayName', 'Ry - Z');
plot(freq_frf, abs(frf_hexa_z(:, 13)), 'DisplayName', 'Hexa - Z');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([20, 200]); xticks([20, 50, 100, 200]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:hexa_z_frf
#+HEADER: :tangle no :exports results :results raw :noweb yes
#+begin_src matlab :var filepath="figs/hexa_z_frf.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:hexa_z_frf
#+CAPTION: Response to a force applied on the hexa in the Z direction
#+RESULTS: fig:hexa_z_frf
[[file:figs/hexa_z_frf.png]]