Update analysis: take into account the sensitivity of the geophone

This commit is contained in:
Thomas Dehaeze 2019-04-15 13:12:59 +02:00
parent 401a6da21b
commit e6bc459e7b
10 changed files with 59 additions and 26 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

View File

@ -76,49 +76,61 @@ The structure is excited using an *instrumented hammer* with impacts on
<<matlab-init>> <<matlab-init>>
#+end_src #+end_src
Data is scaled and integrated one time to go from velocity to displacement. The Geophone sensitivity is defined below:
#+begin_src matlab :results none
w0 = 4.5*2*pi; % [rad/s]
ksi = 0.38;
G0 = 31.3; % [V/(m/s)]
G = G0*(s/w0)^2/((s/w0)^2 + 2*ksi*(s/w0) + 1); % [V/(m/s)]
#+end_src
We then:
- load the data
- add a minus sign when needed
- integrate the signal to have displacement instead of velocity
- scaled with the sensitivity of the Geophone
#+begin_src matlab :exports code :results none #+begin_src matlab :exports code :results none
load('./raw_data/freq_frf.mat') % freq_frf load('./raw_data/freq_frf.mat') % freq_frf
w = j*2*pi*freq_frf; % j.omega in [rad/s] w = j*2*pi*freq_frf; % j.omega in [rad/s]
scale_factor = 1; scaling = squeeze(freqresp(G, 2*pi*freq_frf))/G0;
load('./raw_data/frf_marble_x.mat') % ReIm1 load('./raw_data/frf_marble_x.mat') % ReIm1
frf_marble_x = zeros(size(ReIm1, 1), 3); frf_marble_x = zeros(size(ReIm1, 1), 3);
frf_marble_x(:, 1) = -scale_factor*ReIm1(:, 2)./w; % marble_x frf_marble_x(:, 1) = -ReIm1(:, 2)./w./scaling; % marble_x
frf_marble_x(:, 2) = -scale_factor*ReIm1(:, 3)./w; % tilt_x frf_marble_x(:, 2) = -ReIm1(:, 3)./w./scaling; % tilt_x
frf_marble_x(:, 3) = -scale_factor*ReIm1(:, 4)./w; % hexa_x frf_marble_x(:, 3) = -ReIm1(:, 4)./w./scaling; % hexa_x
load('./raw_data/frf_hexa_x.mat') % ReIm2 load('./raw_data/frf_hexa_x.mat') % ReIm2
frf_hexa_x = zeros(size(ReIm2, 1), 3); frf_hexa_x = zeros(size(ReIm2, 1), 3);
frf_hexa_x(:, 1) = -scale_factor*ReIm2(:, 2)./w; % marble_x frf_hexa_x(:, 1) = -ReIm2(:, 2)./w./scaling; % marble_x
frf_hexa_x(:, 2) = -scale_factor*ReIm2(:, 3)./w; % tilt_x frf_hexa_x(:, 2) = -ReIm2(:, 3)./w./scaling; % tilt_x
frf_hexa_x(:, 3) = -scale_factor*ReIm2(:, 4)./w; % hexa_x frf_hexa_x(:, 3) = -ReIm2(:, 4)./w./scaling; % hexa_x
load('./raw_data/frf_marble_y.mat') % ReIm3 load('./raw_data/frf_marble_y.mat') % ReIm3
frf_marble_y = zeros(size(ReIm3, 1), 3); frf_marble_y = zeros(size(ReIm3, 1), 3);
frf_marble_y(:, 1) = -scale_factor*ReIm3(:, 2)./w; % marble_y frf_marble_y(:, 1) = -ReIm3(:, 2)./w./scaling; % marble_y
frf_marble_y(:, 2) = -scale_factor*ReIm3(:, 3)./w; % tilt_y frf_marble_y(:, 2) = -ReIm3(:, 3)./w./scaling; % tilt_y
frf_marble_y(:, 3) = -scale_factor*ReIm3(:, 4)./w; % hexa_y frf_marble_y(:, 3) = -ReIm3(:, 4)./w./scaling; % hexa_y
load('./raw_data/frf_hexa_y.mat') % ReIm4 load('./raw_data/frf_hexa_y.mat') % ReIm4
frf_hexa_y = zeros(size(ReIm4, 1), 3); frf_hexa_y = zeros(size(ReIm4, 1), 3);
frf_hexa_y(:, 1) = scale_factor*ReIm4(:, 2)./w; % marble_y frf_hexa_y(:, 1) = ReIm4(:, 2)./w./scaling; % marble_y
frf_hexa_y(:, 2) = scale_factor*ReIm4(:, 3)./w; % tilt_y frf_hexa_y(:, 2) = ReIm4(:, 3)./w./scaling; % tilt_y
frf_hexa_y(:, 3) = scale_factor*ReIm4(:, 4)./w; % hexa_y frf_hexa_y(:, 3) = ReIm4(:, 4)./w./scaling; % hexa_y
load('./raw_data/frf_marble_z.mat') % ReIm5 load('./raw_data/frf_marble_z.mat') % ReIm5
frf_marble_z = zeros(size(ReIm5, 1), 3); frf_marble_z = zeros(size(ReIm5, 1), 3);
frf_marble_z(:, 1) = scale_factor*ReIm5(:, 2)./w; % marble_z frf_marble_z(:, 1) = ReIm5(:, 2)./w./scaling; % marble_z
frf_marble_z(:, 2) = scale_factor*ReIm5(:, 3)./w; % tilt_z frf_marble_z(:, 2) = ReIm5(:, 3)./w./scaling; % tilt_z
frf_marble_z(:, 3) = scale_factor*ReIm5(:, 4)./w; % hexa_z frf_marble_z(:, 3) = ReIm5(:, 4)./w./scaling; % hexa_z
load('./raw_data/frf_hexa_z.mat') % ReIm6 load('./raw_data/frf_hexa_z.mat') % ReIm6
frf_hexa_z = zeros(size(ReIm6, 1), 3); frf_hexa_z = zeros(size(ReIm6, 1), 3);
frf_hexa_z(:, 1) = scale_factor*ReIm6(:, 2)./w; % marble_z frf_hexa_z(:, 1) = ReIm6(:, 2)./w./scaling; % marble_z
frf_hexa_z(:, 2) = scale_factor*ReIm6(:, 3)./w; % tilt_z frf_hexa_z(:, 2) = ReIm6(:, 3)./w./scaling; % tilt_z
frf_hexa_z(:, 3) = scale_factor*ReIm6(:, 4)./w; % hexa_z frf_hexa_z(:, 3) = ReIm6(:, 4)./w./scaling; % hexa_z
#+end_src #+end_src
#+begin_src matlab :exports code :results none #+begin_src matlab :exports code :results none
@ -159,6 +171,24 @@ Data is scaled and integrated one time to go from velocity to displacement.
coh_hexa_z(:, 3) = coh6(:, 4); % hexa_z coh_hexa_z(:, 3) = coh6(:, 4); % hexa_z
#+end_src #+end_src
Finally, we save the processed data.
#+begin_src matlab :results none
save('./data/id31_microstation_2018_01_12_frf.mat', ...
'frf_marble_x', ...
'frf_marble_y', ...
'frf_marble_z', ...
'frf_hexa_x', ...
'frf_hexa_y', ...
'frf_hexa_z');
save('./data/id31_microstation_2018_01_12_frf.mat', ...
'coh_marble_x', ...
'coh_marble_y', ...
'coh_marble_z', ...
'coh_hexa_x', ...
'coh_hexa_y', ...
'coh_hexa_z');
#+end_src
** X-direction FRF ** X-direction FRF
#+begin_src matlab :exports none :results none #+begin_src matlab :exports none :results none
figure; figure;
@ -169,7 +199,7 @@ Data is scaled and integrated one time to go from velocity to displacement.
hold off; hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]'); xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 20, 50, 100, 200]); xlim([5, 200]); xticks([5, 10, 20, 50, 100, 200]);
legend('Location', 'southwest'); legend('Location', 'southwest');
#+end_src #+end_src
@ -194,7 +224,7 @@ Data is scaled and integrated one time to go from velocity to displacement.
hold off; hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]'); xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 20, 50, 100, 200]); xlim([5, 200]); xticks([5, 10, 20, 50, 100, 200]);
legend('Location', 'southwest'); legend('Location', 'southwest');
#+end_src #+end_src
@ -219,7 +249,7 @@ Data is scaled and integrated one time to go from velocity to displacement.
hold off; hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]'); xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 20, 50, 100, 200]); xlim([5, 200]); xticks([5, 10, 20, 50, 100, 200]);
legend('Location', 'southwest'); legend('Location', 'southwest');
#+end_src #+end_src
@ -243,7 +273,7 @@ Data is scaled and integrated one time to go from velocity to displacement.
hold off; hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]'); xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 20, 50, 100, 200]); xlim([5, 200]); xticks([5, 10, 20, 50, 100, 200]);
legend('Location', 'southwest'); legend('Location', 'southwest');
#+end_src #+end_src
@ -268,7 +298,7 @@ Data is scaled and integrated one time to go from velocity to displacement.
hold off; hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]'); xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 20, 50, 100, 200]); xlim([5, 200]); xticks([5, 10, 20, 50, 100, 200]);
legend('Location', 'southwest'); legend('Location', 'southwest');
#+end_src #+end_src
@ -292,7 +322,7 @@ Data is scaled and integrated one time to go from velocity to displacement.
hold off; hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]'); xlabel('Frequency [Hz]'); ylabel('Displacement/Force [m/N]');
xlim([10, 200]); xticks([10, 20, 50, 100, 200]); xlim([5, 200]); xticks([5, 10, 20, 50, 100, 200]);
legend('Location', 'southwest'); legend('Location', 'southwest');
#+end_src #+end_src

View File

@ -187,6 +187,9 @@ Its bode plot is shown on figure [[fig:L4C_bode_plot]].
#+RESULTS: fig:L4C_bode_plot #+RESULTS: fig:L4C_bode_plot
[[file:figs/L4C_bode_plot.png]] [[file:figs/L4C_bode_plot.png]]
*** L-22
- https://www.passcal.nmt.edu/content/instrumentation/sensors/short-period-sensors/l-22-sp-sensor
** Accelerometers ** Accelerometers
*** Pieozoelectric acc. 356b18 - 3 axis *** Pieozoelectric acc. 356b18 - 3 axis
- https://www.pcbpiezotronics.fr/produit/accelerometres/356b18/ - https://www.pcbpiezotronics.fr/produit/accelerometres/356b18/