nass-micro-station-measurem.../2018-01-12 - Marc/index.org

307 lines
11 KiB
Org Mode
Raw Normal View History

2019-03-14 16:40:28 +01:00
#+TITLE: Measurements
:drawer:
#+STARTUP: overview
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
#+HTML_HEAD: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:end:
* Experimental conditions
- The granite is not glued to the floor
- FS = 512Hz
- Made by Marc Lesourd on the 12 of January 2018
* Measurements procedure
*Geophones*
L-28LB geophones (table [[tab:L-28LB]]) are placed on
- Marle
- Tilt Stage
- Top of Hexapod
#+NAME: tab:L-28LB
#+CAPTION: L-28LB Geophone characteristics
| Natural Frequency [Hz] | 4.5 |
| Weight [g] | 140 |
| Sensitivity [V/(m/s)] | 31.3 |
The structure is excited using an *instrumented hammer* with impacts on
- Marble X-Y-Z
- Hexapod X-Y-Z
* Measurement Channels
#+NAME: tab:meas_channels
#+CAPTION: Description of each measurement channel
| Ch. nb | Element | Location | Direction |
|--------+----------+----------------+-----------|
| 1 | Hammer | variable | |
|--------+----------+----------------+-----------|
| 2 | Geophone | Marble | X-Y-Z |
| 3 | Geophone | Tilt stage | X-Y-Z |
| 4 | Geophone | Top of Hexapod | X-Y-Z |
* Experiments
#+NAME: tab:experiments
#+CAPTION: Description of the location of direction of the excitation for each measurement
| Meas. nb | Location | Direction |
|----------+----------+-----------|
| 1 | Marble | X |
| 2 | Hexapod | X |
|----------+----------+-----------|
| 3 | Marble | Y |
| 4 | Hexapod | Y |
|----------+----------+-----------|
| 5 | Marble | Z |
| 6 | Hexapod | Z |
* Data Analysis
** Loading and pre-processing of the data
#+begin_src matlab :exports none :results silent
<<matlab-init>>
#+end_src
Data is scaled and integrated one time to go from velocity to displacement.
#+begin_src matlab :exports code :results none
load('./raw_data/freq_frf.mat') % freq_frf
w = j*2*pi*freq_frf; % j.omega in [rad/s]
scale_factor = 1;
load('./raw_data/frf_marble_x.mat') % ReIm1
frf_marble_x = zeros(size(ReIm1, 1), 3);
frf_marble_x(:, 1) = -scale_factor*ReIm1(:, 2)./w; % marble_x
frf_marble_x(:, 2) = -scale_factor*ReIm1(:, 3)./w; % tilt_x
frf_marble_x(:, 3) = -scale_factor*ReIm1(:, 4)./w; % hexa_x
load('./raw_data/frf_hexa_x.mat') % ReIm2
frf_hexa_x = zeros(size(ReIm2, 1), 3);
frf_hexa_x(:, 1) = -scale_factor*ReIm2(:, 2)./w; % marble_x
frf_hexa_x(:, 2) = -scale_factor*ReIm2(:, 3)./w; % tilt_x
frf_hexa_x(:, 3) = -scale_factor*ReIm2(:, 4)./w; % hexa_x
load('./raw_data/frf_marble_y.mat') % ReIm3
frf_marble_y = zeros(size(ReIm3, 1), 3);
frf_marble_y(:, 1) = -scale_factor*ReIm3(:, 2)./w; % marble_y
frf_marble_y(:, 2) = -scale_factor*ReIm3(:, 3)./w; % tilt_y
frf_marble_y(:, 3) = -scale_factor*ReIm3(:, 4)./w; % hexa_y
load('./raw_data/frf_hexa_y.mat') % ReIm4
frf_hexa_y = zeros(size(ReIm4, 1), 3);
frf_hexa_y(:, 1) = scale_factor*ReIm4(:, 2)./w; % marble_y
frf_hexa_y(:, 2) = scale_factor*ReIm4(:, 3)./w; % tilt_y
frf_hexa_y(:, 3) = scale_factor*ReIm4(:, 4)./w; % hexa_y
load('./raw_data/frf_marble_z.mat') % ReIm5
frf_marble_z = zeros(size(ReIm5, 1), 3);
frf_marble_z(:, 1) = scale_factor*ReIm5(:, 2)./w; % marble_z
frf_marble_z(:, 2) = scale_factor*ReIm5(:, 3)./w; % tilt_z
frf_marble_z(:, 3) = scale_factor*ReIm5(:, 4)./w; % hexa_z
load('./raw_data/frf_hexa_z.mat') % ReIm6
frf_hexa_z = zeros(size(ReIm6, 1), 3);
frf_hexa_z(:, 1) = scale_factor*ReIm6(:, 2)./w; % marble_z
frf_hexa_z(:, 2) = scale_factor*ReIm6(:, 3)./w; % tilt_z
frf_hexa_z(:, 3) = scale_factor*ReIm6(:, 4)./w; % hexa_z
#+end_src
#+begin_src matlab :exports code :results none
load('./raw_data/coher_marble_x.mat') % coh1
coh_marble_x = zeros(size(coh1, 1), 3);
coh_marble_x(:, 1) = coh1(:, 2); % marble_x
coh_marble_x(:, 2) = coh1(:, 3); % tilt_x
coh_marble_x(:, 3) = coh1(:, 4); % hexa_x
load('./raw_data/coher_hexa_x.mat') % coh2
coh_hexa_x = zeros(size(coh2, 1), 3);
coh_hexa_x(:, 1) = coh2(:, 2); % marble_x
coh_hexa_x(:, 2) = coh2(:, 3); % tilt_x
coh_hexa_x(:, 3) = coh2(:, 4); % hexa_x
load('./raw_data/coher_marble_y.mat') % coh3
coh_marble_y = zeros(size(coh3, 1), 3);
coh_marble_y(:, 1) = coh3(:, 2); % marble_y
coh_marble_y(:, 2) = coh3(:, 3); % tilt_y
coh_marble_y(:, 3) = coh3(:, 4); % hexa_y
load('./raw_data/coher_hexa_y.mat') % coh4
coh_hexa_y = zeros(size(coh4, 1), 3);
coh_hexa_y(:, 1) = coh4(:, 2); % marble_y
coh_hexa_y(:, 2) = coh4(:, 3); % tilt_y
coh_hexa_y(:, 3) = coh4(:, 4); % hexa_y
load('./raw_data/coher_marble_z.mat') % coh5
coh_marble_z = zeros(size(coh5, 1), 3);
coh_marble_z(:, 1) = coh5(:, 2); % marble_z
coh_marble_z(:, 2) = coh5(:, 3); % tilt_z
coh_marble_z(:, 3) = coh5(:, 4); % hexa_z
load('./raw_data/coher_hexa_z.mat') % coh6
coh_hexa_z = zeros(size(coh6, 1), 3);
coh_hexa_z(:, 1) = coh6(:, 2); % marble_z
coh_hexa_z(:, 2) = coh6(:, 3); % tilt_z
coh_hexa_z(:, 3) = coh6(:, 4); % hexa_z
#+end_src
** X-direction FRF
#+begin_src matlab :exports none :results none
figure;
hold on;
plot(freq_frf, abs(frf_marble_x(:, 1)), 'DisplayName', 'Marble - X');
plot(freq_frf, abs(frf_marble_x(:, 2)), 'DisplayName', 'Ry - X');
plot(freq_frf, abs(frf_marble_x(:, 3)), 'DisplayName', 'Hexa - X');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 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(:, 1)), 'DisplayName', 'Marble - X');
plot(freq_frf, abs(frf_hexa_x(:, 2)), 'DisplayName', 'Ry - X');
plot(freq_frf, abs(frf_hexa_x(:, 3)), 'DisplayName', 'Hexa - X');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 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(:, 1)), 'DisplayName', 'Marble - Y');
plot(freq_frf, abs(frf_marble_y(:, 2)), 'DisplayName', 'Ry - Y');
plot(freq_frf, abs(frf_marble_y(:, 3)), 'DisplayName', 'Hexa - Y');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 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(:, 1)), 'DisplayName', 'Marble - Y');
plot(freq_frf, abs(frf_hexa_y(:, 2)), 'DisplayName', 'Ry - Y');
plot(freq_frf, abs(frf_hexa_y(:, 3)), 'DisplayName', 'Hexa - Y');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 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(:, 1)), 'DisplayName', 'Marble - Z');
plot(freq_frf, abs(frf_marble_z(:, 2)), 'DisplayName', 'Ry - Z');
plot(freq_frf, abs(frf_marble_z(:, 3)), 'DisplayName', 'Hexa - Z');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 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(:, 1)), 'DisplayName', 'Marble - Z');
plot(freq_frf, abs(frf_hexa_z(:, 2)), 'DisplayName', 'Ry - Z');
plot(freq_frf, abs(frf_hexa_z(:, 3)), 'DisplayName', 'Hexa - Z');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 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]]