Change one measurement of folder
This commit is contained in:
1 parent
8f0cd2d3c0
commit
65b83cfb48
24 files changed
+1370
-962
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 137 KiB |
File diff suppressed because it is too large.
Load diff
@@ -1,4 +1,4 @@
|
||||
#+TITLE:Measurements
|
||||
#+TITLE:Effect on the control system of each stages on the vibration of the station
|
||||
:DRAWER:
|
||||
#+STARTUP: overview
|
||||
|
||||
@@ -398,7 +398,11 @@ All the control systems are turned OFF, then, they are turned on one at a time.
|
||||
|
||||
Each measurement are done during 100s.
|
||||
|
||||
The settings of the voltage amplifier are shown on figure [[fig:amplifier_settings]].
|
||||
The settings of the voltage amplifier are shown on figure [[fig:amplifier_settings]]:
|
||||
- gain of 60dB
|
||||
- AC/DC option set on DC
|
||||
- Low pass filter set at 1kHz
|
||||
|
||||
A first order low pass filter with a cut-off frequency of 1kHz is added before the voltage amplifier.
|
||||
|
||||
#+name: tab:control_system_on_off
|
||||
@@ -444,22 +448,44 @@ We load the data of the z axis of two geophones.
|
||||
d_he = load('mat/data_018.mat', 'data'); d_he = d_he.data;
|
||||
#+end_src
|
||||
|
||||
** Voltage to Velocity
|
||||
We convert the measured voltage to velocity using the function =voltageToVelocityL22= (accessible [[file:~/MEGA/These/meas/src/index.org][here]]).
|
||||
|
||||
#+begin_src matlab
|
||||
gain = 60; % [dB]
|
||||
|
||||
d_of(:, 1) = voltageToVelocityL22(d_of(:, 1), d_of(:, 3), gain);
|
||||
d_ty(:, 1) = voltageToVelocityL22(d_ty(:, 1), d_ty(:, 3), gain);
|
||||
d_ry(:, 1) = voltageToVelocityL22(d_ry(:, 1), d_ry(:, 3), gain);
|
||||
d_sr(:, 1) = voltageToVelocityL22(d_sr(:, 1), d_sr(:, 3), gain);
|
||||
d_rz(:, 1) = voltageToVelocityL22(d_rz(:, 1), d_rz(:, 3), gain);
|
||||
d_he(:, 1) = voltageToVelocityL22(d_he(:, 1), d_he(:, 3), gain);
|
||||
|
||||
d_of(:, 2) = voltageToVelocityL22(d_of(:, 2), d_of(:, 3), gain);
|
||||
d_ty(:, 2) = voltageToVelocityL22(d_ty(:, 2), d_ty(:, 3), gain);
|
||||
d_ry(:, 2) = voltageToVelocityL22(d_ry(:, 2), d_ry(:, 3), gain);
|
||||
d_sr(:, 2) = voltageToVelocityL22(d_sr(:, 2), d_sr(:, 3), gain);
|
||||
d_rz(:, 2) = voltageToVelocityL22(d_rz(:, 2), d_rz(:, 3), gain);
|
||||
d_he(:, 2) = voltageToVelocityL22(d_he(:, 2), d_he(:, 3), gain);
|
||||
#+end_src
|
||||
|
||||
** Analysis - Time Domain
|
||||
First, we can look at the time domain data and compare all the measurements:
|
||||
- comparison for the geophone at the sample location (figure [[fig:time_domain_sample_lpf]])
|
||||
- comparison for the geophone on the granite (figure [[fig:time_domain_marble_lpf]])
|
||||
- relative displacement of the sample with respect to the marble (figure [[fig:time_domain_marble_lpf]])
|
||||
|
||||
#+begin_src matlab :results none
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(d_of(:, 3), d_of(:, 2), 'DisplayName', 'All OFF';
|
||||
plot(d_of(:, 3), d_of(:, 2), 'DisplayName', 'All OFF');
|
||||
plot(d_ty(:, 3), d_ty(:, 2), 'DisplayName', 'Ty ON');
|
||||
plot(d_ry(:, 3), d_ry(:, 2), 'DisplayName', 'Ry ON');
|
||||
plot(d_sr(:, 3), d_sr(:, 2), 'DisplayName', 'S-R ON');
|
||||
plot(d_rz(:, 3), d_rz(:, 2), 'DisplayName', 'Rz ON');
|
||||
plot(d_he(:, 3), d_he(:, 2), 'DisplayName', 'Hexa ON');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 50]);
|
||||
legend('Location', 'bestoutside');
|
||||
#+end_src
|
||||
@@ -476,7 +502,7 @@ First, we can look at the time domain data and compare all the measurements:
|
||||
[[file:figs/time_domain_sample_lpf.png]]
|
||||
|
||||
|
||||
#+begin_src matlab :results none
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(d_of(:, 3), d_of(:, 1), 'DisplayName', 'All OFF');
|
||||
@@ -486,7 +512,7 @@ First, we can look at the time domain data and compare all the measurements:
|
||||
plot(d_rz(:, 3), d_rz(:, 1), 'DisplayName', 'Rz ON');
|
||||
plot(d_he(:, 3), d_he(:, 1), 'DisplayName', 'Hexa ON');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 50]);
|
||||
legend('Location', 'bestoutside');
|
||||
#+end_src
|
||||
@@ -502,6 +528,32 @@ First, we can look at the time domain data and compare all the measurements:
|
||||
#+RESULTS: fig:time_domain_marble_lpf
|
||||
[[file:figs/time_domain_marble_lpf.png]]
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(d_of(:, 3), 1e6*lsim(1/(1+s/(2*pi*0.5)), d_of(:, 2)-d_of(:, 1), d_of(:, 3)), 'DisplayName', 'All OFF');
|
||||
plot(d_ty(:, 3), 1e6*lsim(1/(1+s/(2*pi*0.5)), d_ty(:, 2)-d_ty(:, 1), d_ty(:, 3)), 'DisplayName', 'Ty ON');
|
||||
plot(d_ry(:, 3), 1e6*lsim(1/(1+s/(2*pi*0.5)), d_ry(:, 2)-d_ry(:, 1), d_ry(:, 3)), 'DisplayName', 'Ry ON');
|
||||
plot(d_sr(:, 3), 1e6*lsim(1/(1+s/(2*pi*0.5)), d_sr(:, 2)-d_sr(:, 1), d_sr(:, 3)), 'DisplayName', 'S-R ON');
|
||||
plot(d_rz(:, 3), 1e6*lsim(1/(1+s/(2*pi*0.5)), d_rz(:, 2)-d_rz(:, 1), d_rz(:, 3)), 'DisplayName', 'Rz ON');
|
||||
plot(d_he(:, 3), 1e6*lsim(1/(1+s/(2*pi*0.5)), d_he(:, 2)-d_he(:, 1), d_he(:, 3)), 'DisplayName', 'Hexa ON');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Relative Displacement [$\mu m$]');
|
||||
xlim([0, 50]);
|
||||
legend('Location', 'bestoutside');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_relative_disp
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_relative_disp.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_relative_disp
|
||||
#+CAPTION: Relative displacement of the sample with respect to the marble
|
||||
#+RESULTS: fig:time_domain_relative_disp
|
||||
[[file:figs/time_domain_relative_disp.png]]
|
||||
|
||||
** Analysis - Frequency Domain
|
||||
#+begin_src matlab :results none
|
||||
dt = d_of(2, 3) - d_of(1, 3);
|
||||
@@ -534,7 +586,7 @@ And we compare all the signals (figures [[fig:psd_sample_comp_lpf]] and [[fig:ps
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
xlim([0.1, 500]);
|
||||
legend('Location', 'southwest');
|
||||
#+end_src
|
||||
@@ -546,7 +598,7 @@ And we compare all the signals (figures [[fig:psd_sample_comp_lpf]] and [[fig:ps
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_sample_comp_lpf
|
||||
#+CAPTION: Amplitude Spectral Density of the signal coming from the top geophone
|
||||
#+CAPTION: Amplitude Spectral Density of the sample velocity
|
||||
#+RESULTS: fig:psd_sample_comp_lpf
|
||||
[[file:figs/psd_sample_comp_lpf.png]]
|
||||
|
||||
@@ -562,7 +614,7 @@ And we compare all the signals (figures [[fig:psd_sample_comp_lpf]] and [[fig:ps
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_sample_comp_high_freq_lpf
|
||||
#+CAPTION: Amplitude Spectral Density of the signal coming from the top geophone (zoom at high frequencies)
|
||||
#+CAPTION: Amplitude Spectral Density of the sample velocity (zoom at high frequencies)
|
||||
#+RESULTS: fig:psd_sample_comp_high_freq_lpf
|
||||
[[file:figs/psd_sample_comp_high_freq_lpf.png]]
|
||||
|
||||
@@ -590,7 +642,7 @@ And we compare the Amplitude Spectral Densities (figures [[fig:psd_marble_comp_l
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
xlim([0.1, 500]);
|
||||
legend('Location', 'northeast');
|
||||
#+end_src
|
||||
@@ -602,7 +654,7 @@ And we compare the Amplitude Spectral Densities (figures [[fig:psd_marble_comp_l
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_marble_comp_lpf
|
||||
#+CAPTION: Amplitude Spectral Density of the signal coming from geophone located on the marble
|
||||
#+CAPTION: Amplitude Spectral Density of the marble velocity
|
||||
#+RESULTS: fig:psd_marble_comp_lpf
|
||||
[[file:figs/psd_marble_comp_lpf.png]]
|
||||
|
||||
@@ -619,7 +671,7 @@ And we compare the Amplitude Spectral Densities (figures [[fig:psd_marble_comp_l
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_marble_comp_lpf_high_freq
|
||||
#+CAPTION: Amplitude Spectral Density of the signal coming from the geophone located on the marble (zoom at high frequencies)
|
||||
#+CAPTION: Amplitude Spectral Density of the marble velocity (zoom at high frequencies)
|
||||
#+RESULTS: fig:psd_marble_comp_lpf_high_freq
|
||||
[[file:figs/psd_marble_comp_lpf_high_freq.png]]
|
||||
|
||||
@@ -779,404 +831,3 @@ First, we compute the Power Spectral Density of the signals coming from the Geop
|
||||
#+begin_important
|
||||
Even tough the Hexapod's driver vibrates quite a lot, it does not generate significant vibrations of the granite when either placed on the granite or on the ground.
|
||||
#+end_important
|
||||
|
||||
* Transfer function from one stage to the other
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle matlab/tf_stages_geophone.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:tf_stages_geophone>>
|
||||
|
||||
** ZIP file containing the data and matlab files :ignore:
|
||||
#+begin_src bash :exports none :results none
|
||||
if [ matlab/tf_stages_geophone.m -nt data/tf_stages_geophone.zip ]; then
|
||||
cp matlab/tf_stages_geophone.m tf_stages_geophone.m;
|
||||
zip data/tf_stages_geophone \
|
||||
mat/data_010.mat \
|
||||
mat/data_011.mat \
|
||||
mat/data_012.mat \
|
||||
tf_stages_geophone.m
|
||||
rm tf_stages_geophone.m;
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
#+begin_note
|
||||
All the files (data and Matlab scripts) are accessible [[file:data/tf_stages_geophone.zip][here]].
|
||||
#+end_note
|
||||
|
||||
** Experimental Setup
|
||||
For all the measurements in this section:
|
||||
- all the control stages are OFF.
|
||||
- the measurements are on the $z$ direction
|
||||
|
||||
*** From Marble to Ty - =mat/meas_010.mat=
|
||||
One geophone is on the marble, one is on the Ty stage (see figures [[fig:setup_m_ty]], [[fig:setup_m_ty_zoom]] and [[fig:setup_m_ty_top]]).
|
||||
|
||||
The =data= array contains the following columns:
|
||||
| Column | Description |
|
||||
|--------+-------------|
|
||||
| 1 | Ground |
|
||||
| 2 | Ty |
|
||||
| 3 | Time |
|
||||
|
||||
#+name: fig:setup_m_ty
|
||||
#+caption: Setup with one geophone on the marble and one on top of the translation stage
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_155330.jpg]]
|
||||
|
||||
#+name: fig:setup_m_ty_zoom
|
||||
#+caption: Setup with one geophone on the marble and one on top of the translation stage - Close up view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_155335.jpg]]
|
||||
|
||||
#+name: fig:setup_m_ty_top
|
||||
#+caption: Setup with one geophone on the marble and one on top of the translation stage - Top view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_155342.jpg]]
|
||||
|
||||
*** From Marble to Ry - =mat/meas_011.mat=
|
||||
One geophone is on the marble, one is on the Ry stage (see figure [[fig:setup_m_ry]])
|
||||
|
||||
The =data= array contains the following columns:
|
||||
| Column | Description |
|
||||
|--------+-------------|
|
||||
| 1 | Ground |
|
||||
| 2 | Ry |
|
||||
| 3 | Time |
|
||||
|
||||
#+name: fig:setup_m_ry
|
||||
#+caption: Setup with one geophone on the marble and one on top of the Tilt Stage
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_163919.jpg]]
|
||||
|
||||
*** From Ty to Ry - =mat/meas_012.mat=
|
||||
One geophone is on the Ty stage, one is on the Ry stage (see figures [[fig:setup_ty_ry]], [[fig:setup_ty_ry_top]] and [[fig:setup_ty_ry_zoom]])
|
||||
One geophone on the Ty stage, one geophone on the Ry stage.
|
||||
|
||||
The =data= array contains the following columns:
|
||||
| Column | Description |
|
||||
|--------+-------------|
|
||||
| 1 | Ty |
|
||||
| 2 | Ry |
|
||||
| 3 | Time |
|
||||
|
||||
#+name: fig:setup_ty_ry
|
||||
#+caption: Setup with one geophone on the translation stage and one on top of the Tilt Stage
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_170405.jpg]]
|
||||
|
||||
#+name: fig:setup_ty_ry_top
|
||||
#+caption: Setup with one geophone on the translation stage and one on top of the Tilt Stage - Top view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_170418.jpg]]
|
||||
|
||||
#+name: fig:setup_ty_ry_zoom
|
||||
#+caption: Setup with one geophone on the translation stage and one on top of the Tilt Stage - Close up view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_170425.jpg]]
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+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
|
||||
|
||||
** Load data
|
||||
We load the data of the z axis of two geophones.
|
||||
#+begin_src matlab :results none
|
||||
m_ty = load('mat/data_010.mat', 'data'); m_ty = m_ty.data;
|
||||
m_ry = load('mat/data_011.mat', 'data'); m_ry = m_ry.data;
|
||||
ty_ry = load('mat/data_012.mat', 'data'); ty_ry = ty_ry.data;
|
||||
#+end_src
|
||||
|
||||
** Analysis - Time Domain
|
||||
First, we can look at the time domain data.
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(m_ty(:, 3), m_ty(:, 1), 'DisplayName', 'Marble');
|
||||
plot(m_ty(:, 3), m_ty(:, 2), 'DisplayName', 'Ty');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ty
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_m_ty.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ty
|
||||
#+CAPTION: Time domain - Marble and translation stage
|
||||
#+RESULTS: fig:time_domain_m_ty
|
||||
[[file:figs/time_domain_m_ty.png]]
|
||||
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(m_ry(:, 3), m_ry(:, 1), 'DisplayName', 'Marble');
|
||||
plot(m_ry(:, 3), m_ry(:, 2), 'DisplayName', 'Ty');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ry
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_m_ry.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ry
|
||||
#+CAPTION: Time domain - Marble and tilt stage
|
||||
#+RESULTS: fig:time_domain_m_ry
|
||||
[[file:figs/time_domain_m_ry.png]]
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_ry(:, 3), ty_ry(:, 1), 'DisplayName', 'Ty');
|
||||
plot(ty_ry(:, 3), ty_ry(:, 2), 'DisplayName', 'Ry');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_ty_ry
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_ty_ry.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_ty_ry
|
||||
#+CAPTION: Time domain - Translation stage and tilt stage
|
||||
#+RESULTS: fig:time_domain_ty_ry
|
||||
[[file:figs/time_domain_ty_ry.png]]
|
||||
|
||||
** Analysis - Frequency Domain
|
||||
#+begin_src matlab :results none
|
||||
dt = m_ty(2, 3) - m_ty(1, 3);
|
||||
|
||||
Fs = 1/dt;
|
||||
win = hanning(ceil(1*Fs));
|
||||
#+end_src
|
||||
|
||||
First, we compute the transfer function estimate between the two geophones for the 3 experiments (figure [[fig:compare_tf_geophones]]). We also plot their coherence (figure [[fig:coherence_two_geophones]]).
|
||||
#+begin_src matlab :results none
|
||||
[T_m_ty, f] = tfestimate(m_ty(:, 1), m_ty(:, 2), win, [], [], Fs);
|
||||
[T_m_ry, ~] = tfestimate(m_ry(:, 1), m_ry(:, 2), win, [], [], Fs);
|
||||
[T_ty_ry, ~] = tfestimate(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
ax1 = subplot(2, 1, 1);
|
||||
hold on;
|
||||
plot(f, abs(T_m_ty), 'DisplayName', 'Marble - Ty');
|
||||
plot(f, abs(T_m_ry), 'DisplayName', 'Marble - Ry');
|
||||
plot(f, abs(T_ty_ry), 'DisplayName', 'Ty - Ry');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
legend('Location', 'northwest');
|
||||
|
||||
ax2 = subplot(2, 1, 2);
|
||||
hold on;
|
||||
plot(f, mod(180+180/pi*phase(T_m_ty), 360)-180);
|
||||
plot(f, mod(180+180/pi*phase(T_m_ry), 360)-180);
|
||||
plot(f, mod(180+180/pi*phase(T_ty_ry), 360)-180);
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase');
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([10, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:compare_tf_geophones
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/compare_tf_geophones.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:compare_tf_geophones
|
||||
#+CAPTION: Transfer function from the first geophone to the second geophone for the three experiments
|
||||
#+RESULTS: fig:compare_tf_geophones
|
||||
[[file:figs/compare_tf_geophones.png]]
|
||||
|
||||
|
||||
#+begin_src matlab :results none
|
||||
[coh_m_ty, f] = mscohere(m_ty(:, 1), m_ty(:, 2), win, [], [], Fs);
|
||||
[coh_m_ry, ~] = mscohere(m_ry(:, 1), m_ry(:, 2), win, [], [], Fs);
|
||||
[coh_ty_ry, ~] = mscohere(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, coh_m_ty, 'DisplayName', 'Marble - Ty');
|
||||
plot(f, coh_m_ry, 'DisplayName', 'Marble - Ry');
|
||||
plot(f, coh_ty_ry, 'DisplayName', 'Ty - Ry');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Coherence');
|
||||
ylim([0, 1]); xlim([1, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:coherence_two_geophones
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/coherence_two_geophones.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:coherence_two_geophones
|
||||
#+CAPTION: Coherence between the two geophones for the three experiments
|
||||
#+RESULTS: fig:coherence_two_geophones
|
||||
[[file:figs/coherence_two_geophones.png]]
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
These measurements are not relevant.
|
||||
#+end_important
|
||||
|
||||
* Effect of the Ty Control System on the vibration of the Sample :noexport:ignore:
|
||||
** Experimental Setup
|
||||
One geophone is on the marble, the other at the sample location (see figures [[fig:setup_ty]]).
|
||||
|
||||
The signal from the top geophone goes through the slip-ring.
|
||||
|
||||
#+name: fig:setup_ty
|
||||
#+caption: Experimental Setup
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_112615.jpg]]
|
||||
|
||||
Two measurements are done:
|
||||
| Setup | Data File |
|
||||
|----------------------+--------------------|
|
||||
| Control of Ty is on | =mat/data_001.mat= |
|
||||
| Control of Ty is off | =mat/data_002.mat= |
|
||||
|
||||
For each of the measurements, the data are:
|
||||
| Variable | Description |
|
||||
|----------+--------------------------------------------------------------------|
|
||||
| =t= | Time Vector |
|
||||
| =x1= | Voltage measured across the geophone placed on the marble |
|
||||
| =x2= | Voltage measured across the geophone placed at the sample location |
|
||||
|
||||
Measurements are 50s long.
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+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
|
||||
|
||||
** Load data
|
||||
We load the data of the z axis of two geophones.
|
||||
#+begin_src matlab :results none
|
||||
tyOn = load('mat/data_001.mat', 't', 'x1', 'x2');
|
||||
tyOff = load('mat/data_002.mat', 't', 'x1', 'x2');
|
||||
#+end_src
|
||||
|
||||
** Analysis - Time Domain
|
||||
#+begin_src matlab :results none
|
||||
dt = tyOn.t(2)-tyOn.t(1);
|
||||
Fs = 1/dt;
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
subplot(1, 2, 1);
|
||||
hold on;
|
||||
plot(tyOn.t, tyOn.x1, 'DisplayName', 'Ty ON - Marble');
|
||||
plot(tyOff.t, tyOff.x1, 'DisplayName', 'Ty OFF - Marble');
|
||||
hold off;
|
||||
legend();
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 50]);
|
||||
|
||||
subplot(1, 2, 2);
|
||||
hold on;
|
||||
plot(tyOn.t, tyOn.x2, 'DisplayName', 'Ty ON - Sample');
|
||||
plot(tyOff.t, tyOff.x2, 'DisplayName', 'Ty OFF - Sample');
|
||||
hold off;
|
||||
legend();
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 50]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_effect_ty
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_effect_ty.pdf" :var figsize="full-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_effect_ty
|
||||
#+CAPTION: Effect of the Ty control system on the vibrations of the marble and sample
|
||||
#+RESULTS: fig:time_domain_effect_ty
|
||||
[[file:figs/time_domain_effect_ty.png]]
|
||||
|
||||
** Analysis - Frequency Domain
|
||||
#+begin_src matlab :results none
|
||||
Fs = 1/dt;
|
||||
win = hanning(ceil(10*Fs));
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none
|
||||
[pxOn1, f] = pwelch(tyOn.x1, win, [], [], Fs);
|
||||
[pxOn2, ~] = pwelch(tyOn.x2, win, [], [], Fs);
|
||||
|
||||
[pxOff1, ~] = pwelch(tyOff.x1, win, [], [], Fs);
|
||||
[pxOff2, ~] = pwelch(tyOff.x2, win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
subplot(1, 2, 1);
|
||||
hold on;
|
||||
plot(f, sqrt(pxOn1), 'DisplayName', 'Ty ON - Marble');
|
||||
plot(f, sqrt(pxOff1), 'DisplayName', 'Ty OFF - Marble');
|
||||
hold off;
|
||||
legend();
|
||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||||
xlim([0.1, 500]); ylim([1e-4, 1]);
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
|
||||
subplot(1, 2, 2);
|
||||
hold on;
|
||||
plot(f, sqrt(pxOn2), 'DisplayName', 'Ty ON - Sample');
|
||||
plot(f, sqrt(pxOff2), 'DisplayName', 'Ty OFF - Sample');
|
||||
hold off;
|
||||
legend();
|
||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
xlim([0.1, 500]); ylim([1e-4, 1]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_effect_ty
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/psd_effect_ty.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_effect_ty
|
||||
#+CAPTION: Amplitude Spectral Density - Effect of the Ty control system
|
||||
#+RESULTS: fig:psd_effect_ty
|
||||
[[file:figs/psd_effect_ty.png]]
|
||||
|
||||
** Conclusion
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,124 @@
|
||||
%% Clear Workspace and Close figures
|
||||
clear; close all; clc;
|
||||
|
||||
%% Intialize Laplace variable
|
||||
s = zpk('s');
|
||||
|
||||
% Load data
|
||||
% We load the data of the z axis of two geophones.
|
||||
|
||||
m_ty = load('mat/data_010.mat', 'data'); m_ty = m_ty.data;
|
||||
m_ry = load('mat/data_011.mat', 'data'); m_ry = m_ry.data;
|
||||
ty_ry = load('mat/data_012.mat', 'data'); ty_ry = ty_ry.data;
|
||||
|
||||
% Analysis - Time Domain
|
||||
% First, we can look at the time domain data.
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(m_ty(:, 3), m_ty(:, 1), 'DisplayName', 'Marble');
|
||||
plot(m_ty(:, 3), m_ty(:, 2), 'DisplayName', 'Ty');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:time_domain_m_ty
|
||||
% #+CAPTION: Time domain - Marble and translation stage
|
||||
% #+RESULTS: fig:time_domain_m_ty
|
||||
% [[file:figs/time_domain_m_ty.png]]
|
||||
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(m_ry(:, 3), m_ry(:, 1), 'DisplayName', 'Marble');
|
||||
plot(m_ry(:, 3), m_ry(:, 2), 'DisplayName', 'Ty');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:time_domain_m_ry
|
||||
% #+CAPTION: Time domain - Marble and tilt stage
|
||||
% #+RESULTS: fig:time_domain_m_ry
|
||||
% [[file:figs/time_domain_m_ry.png]]
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_ry(:, 3), ty_ry(:, 1), 'DisplayName', 'Ty');
|
||||
plot(ty_ry(:, 3), ty_ry(:, 2), 'DisplayName', 'Ry');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
|
||||
% Analysis - Frequency Domain
|
||||
|
||||
dt = m_ty(2, 3) - m_ty(1, 3);
|
||||
|
||||
Fs = 1/dt;
|
||||
win = hanning(ceil(1*Fs));
|
||||
|
||||
|
||||
|
||||
% First, we compute the transfer function estimate between the two geophones for the 3 experiments (figure [[fig:compare_tf_geophones]]). We also plot their coherence (figure [[fig:coherence_two_geophones]]).
|
||||
|
||||
[T_m_ty, f] = tfestimate(m_ty(:, 1), m_ty(:, 2), win, [], [], Fs);
|
||||
[T_m_ry, ~] = tfestimate(m_ry(:, 1), m_ry(:, 2), win, [], [], Fs);
|
||||
[T_ty_ry, ~] = tfestimate(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);
|
||||
|
||||
figure;
|
||||
ax1 = subplot(2, 1, 1);
|
||||
hold on;
|
||||
plot(f, abs(T_m_ty), 'DisplayName', 'Marble - Ty');
|
||||
plot(f, abs(T_m_ry), 'DisplayName', 'Marble - Ry');
|
||||
plot(f, abs(T_ty_ry), 'DisplayName', 'Ty - Ry');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
legend('Location', 'northwest');
|
||||
|
||||
ax2 = subplot(2, 1, 2);
|
||||
hold on;
|
||||
plot(f, mod(180+180/pi*phase(T_m_ty), 360)-180);
|
||||
plot(f, mod(180+180/pi*phase(T_m_ry), 360)-180);
|
||||
plot(f, mod(180+180/pi*phase(T_ty_ry), 360)-180);
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase');
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([10, 500]);
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:compare_tf_geophones
|
||||
% #+CAPTION: Transfer function from the first geophone to the second geophone for the three experiments
|
||||
% #+RESULTS: fig:compare_tf_geophones
|
||||
% [[file:figs/compare_tf_geophones.png]]
|
||||
|
||||
|
||||
|
||||
[coh_m_ty, f] = mscohere(m_ty(:, 1), m_ty(:, 2), win, [], [], Fs);
|
||||
[coh_m_ry, ~] = mscohere(m_ry(:, 1), m_ry(:, 2), win, [], [], Fs);
|
||||
[coh_ty_ry, ~] = mscohere(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, coh_m_ty, 'DisplayName', 'Marble - Ty');
|
||||
plot(f, coh_m_ry, 'DisplayName', 'Marble - Ry');
|
||||
plot(f, coh_ty_ry, 'DisplayName', 'Ty - Ry');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Coherence');
|
||||
ylim([0, 1]); xlim([1, 500]);
|
||||
@@ -0,0 +1,686 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2019-05-15 mer. 17:22 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Transfer function from velocity of one stage to the velocity of another stage using geophones</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="Dehaeze Thomas" />
|
||||
<style type="text/css">
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
.title { text-align: center;
|
||||
margin-bottom: .2em; }
|
||||
.subtitle { text-align: center;
|
||||
font-size: medium;
|
||||
font-weight: bold;
|
||||
margin-top:0; }
|
||||
.todo { font-family: monospace; color: red; }
|
||||
.done { font-family: monospace; color: green; }
|
||||
.priority { font-family: monospace; color: orange; }
|
||||
.tag { background-color: #eee; font-family: monospace;
|
||||
padding: 2px; font-size: 80%; font-weight: normal; }
|
||||
.timestamp { color: #bebebe; }
|
||||
.timestamp-kwd { color: #5f9ea0; }
|
||||
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
|
||||
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
|
||||
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
|
||||
.underline { text-decoration: underline; }
|
||||
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
|
||||
p.verse { margin-left: 3%; }
|
||||
pre {
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 3px 3px 3px #eee;
|
||||
padding: 8pt;
|
||||
font-family: monospace;
|
||||
overflow: auto;
|
||||
margin: 1.2em;
|
||||
}
|
||||
pre.src {
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
padding-top: 1.2em;
|
||||
}
|
||||
pre.src:before {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
top: -10px;
|
||||
right: 10px;
|
||||
padding: 3px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
pre.src:hover:before { display: inline;}
|
||||
/* Languages per Org manual */
|
||||
pre.src-asymptote:before { content: 'Asymptote'; }
|
||||
pre.src-awk:before { content: 'Awk'; }
|
||||
pre.src-C:before { content: 'C'; }
|
||||
/* pre.src-C++ doesn't work in CSS */
|
||||
pre.src-clojure:before { content: 'Clojure'; }
|
||||
pre.src-css:before { content: 'CSS'; }
|
||||
pre.src-D:before { content: 'D'; }
|
||||
pre.src-ditaa:before { content: 'ditaa'; }
|
||||
pre.src-dot:before { content: 'Graphviz'; }
|
||||
pre.src-calc:before { content: 'Emacs Calc'; }
|
||||
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
|
||||
pre.src-fortran:before { content: 'Fortran'; }
|
||||
pre.src-gnuplot:before { content: 'gnuplot'; }
|
||||
pre.src-haskell:before { content: 'Haskell'; }
|
||||
pre.src-hledger:before { content: 'hledger'; }
|
||||
pre.src-java:before { content: 'Java'; }
|
||||
pre.src-js:before { content: 'Javascript'; }
|
||||
pre.src-latex:before { content: 'LaTeX'; }
|
||||
pre.src-ledger:before { content: 'Ledger'; }
|
||||
pre.src-lisp:before { content: 'Lisp'; }
|
||||
pre.src-lilypond:before { content: 'Lilypond'; }
|
||||
pre.src-lua:before { content: 'Lua'; }
|
||||
pre.src-matlab:before { content: 'MATLAB'; }
|
||||
pre.src-mscgen:before { content: 'Mscgen'; }
|
||||
pre.src-ocaml:before { content: 'Objective Caml'; }
|
||||
pre.src-octave:before { content: 'Octave'; }
|
||||
pre.src-org:before { content: 'Org mode'; }
|
||||
pre.src-oz:before { content: 'OZ'; }
|
||||
pre.src-plantuml:before { content: 'Plantuml'; }
|
||||
pre.src-processing:before { content: 'Processing.js'; }
|
||||
pre.src-python:before { content: 'Python'; }
|
||||
pre.src-R:before { content: 'R'; }
|
||||
pre.src-ruby:before { content: 'Ruby'; }
|
||||
pre.src-sass:before { content: 'Sass'; }
|
||||
pre.src-scheme:before { content: 'Scheme'; }
|
||||
pre.src-screen:before { content: 'Gnu Screen'; }
|
||||
pre.src-sed:before { content: 'Sed'; }
|
||||
pre.src-sh:before { content: 'shell'; }
|
||||
pre.src-sql:before { content: 'SQL'; }
|
||||
pre.src-sqlite:before { content: 'SQLite'; }
|
||||
/* additional languages in org.el's org-babel-load-languages alist */
|
||||
pre.src-forth:before { content: 'Forth'; }
|
||||
pre.src-io:before { content: 'IO'; }
|
||||
pre.src-J:before { content: 'J'; }
|
||||
pre.src-makefile:before { content: 'Makefile'; }
|
||||
pre.src-maxima:before { content: 'Maxima'; }
|
||||
pre.src-perl:before { content: 'Perl'; }
|
||||
pre.src-picolisp:before { content: 'Pico Lisp'; }
|
||||
pre.src-scala:before { content: 'Scala'; }
|
||||
pre.src-shell:before { content: 'Shell Script'; }
|
||||
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
|
||||
/* additional language identifiers per "defun org-babel-execute"
|
||||
in ob-*.el */
|
||||
pre.src-cpp:before { content: 'C++'; }
|
||||
pre.src-abc:before { content: 'ABC'; }
|
||||
pre.src-coq:before { content: 'Coq'; }
|
||||
pre.src-groovy:before { content: 'Groovy'; }
|
||||
/* additional language identifiers from org-babel-shell-names in
|
||||
ob-shell.el: ob-shell is the only babel language using a lambda to put
|
||||
the execution function name together. */
|
||||
pre.src-bash:before { content: 'bash'; }
|
||||
pre.src-csh:before { content: 'csh'; }
|
||||
pre.src-ash:before { content: 'ash'; }
|
||||
pre.src-dash:before { content: 'dash'; }
|
||||
pre.src-ksh:before { content: 'ksh'; }
|
||||
pre.src-mksh:before { content: 'mksh'; }
|
||||
pre.src-posh:before { content: 'posh'; }
|
||||
/* Additional Emacs modes also supported by the LaTeX listings package */
|
||||
pre.src-ada:before { content: 'Ada'; }
|
||||
pre.src-asm:before { content: 'Assembler'; }
|
||||
pre.src-caml:before { content: 'Caml'; }
|
||||
pre.src-delphi:before { content: 'Delphi'; }
|
||||
pre.src-html:before { content: 'HTML'; }
|
||||
pre.src-idl:before { content: 'IDL'; }
|
||||
pre.src-mercury:before { content: 'Mercury'; }
|
||||
pre.src-metapost:before { content: 'MetaPost'; }
|
||||
pre.src-modula-2:before { content: 'Modula-2'; }
|
||||
pre.src-pascal:before { content: 'Pascal'; }
|
||||
pre.src-ps:before { content: 'PostScript'; }
|
||||
pre.src-prolog:before { content: 'Prolog'; }
|
||||
pre.src-simula:before { content: 'Simula'; }
|
||||
pre.src-tcl:before { content: 'tcl'; }
|
||||
pre.src-tex:before { content: 'TeX'; }
|
||||
pre.src-plain-tex:before { content: 'Plain TeX'; }
|
||||
pre.src-verilog:before { content: 'Verilog'; }
|
||||
pre.src-vhdl:before { content: 'VHDL'; }
|
||||
pre.src-xml:before { content: 'XML'; }
|
||||
pre.src-nxml:before { content: 'XML'; }
|
||||
/* add a generic configuration mode; LaTeX export needs an additional
|
||||
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
|
||||
pre.src-conf:before { content: 'Configuration File'; }
|
||||
|
||||
table { border-collapse:collapse; }
|
||||
caption.t-above { caption-side: top; }
|
||||
caption.t-bottom { caption-side: bottom; }
|
||||
td, th { vertical-align:top; }
|
||||
th.org-right { text-align: center; }
|
||||
th.org-left { text-align: center; }
|
||||
th.org-center { text-align: center; }
|
||||
td.org-right { text-align: right; }
|
||||
td.org-left { text-align: left; }
|
||||
td.org-center { text-align: center; }
|
||||
dt { font-weight: bold; }
|
||||
.footpara { display: inline; }
|
||||
.footdef { margin-bottom: 1em; }
|
||||
.figure { padding: 1em; }
|
||||
.figure p { text-align: center; }
|
||||
.equation-container {
|
||||
display: table;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
.equation {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.equation-label {
|
||||
display: table-cell;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.inlinetask {
|
||||
padding: 10px;
|
||||
border: 2px solid gray;
|
||||
margin: 10px;
|
||||
background: #ffffcc;
|
||||
}
|
||||
#org-div-home-and-up
|
||||
{ text-align: right; font-size: 70%; white-space: nowrap; }
|
||||
textarea { overflow-x: auto; }
|
||||
.linenr { font-size: smaller }
|
||||
.code-highlighted { background-color: #ffff00; }
|
||||
.org-info-js_info-navigation { border-style: none; }
|
||||
#org-info-js_console-label
|
||||
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
|
||||
.org-info-js_search-highlight
|
||||
{ background-color: #ffff00; color: #000000; font-weight: bold; }
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</style>
|
||||
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
|
||||
<script type="text/javascript" src="../js/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="../js/readtheorg.js"></script>
|
||||
<script type="text/javascript">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this tag.
|
||||
|
||||
Copyright (C) 2012-2019 Free Software Foundation, Inc.
|
||||
|
||||
The JavaScript code in this tag is free software: you can
|
||||
redistribute it and/or modify it under the terms of the GNU
|
||||
General Public License (GNU GPL) as published by the Free Software
|
||||
Foundation, either version 3 of the License, or (at your option)
|
||||
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
||||
|
||||
As additional permission under GNU GPL version 3 section 7, you
|
||||
may distribute non-source (e.g., minimized or compacted) forms of
|
||||
that code without the copy of the GNU GPL normally required by
|
||||
section 4, provided you include this license notice and a URL
|
||||
through which recipients can access the Corresponding Source.
|
||||
|
||||
|
||||
@licend The above is the entire license notice
|
||||
for the JavaScript code in this tag.
|
||||
*/
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
function CodeHighlightOn(elem, id)
|
||||
{
|
||||
var target = document.getElementById(id);
|
||||
if(null != target) {
|
||||
elem.cacheClassElem = elem.className;
|
||||
elem.cacheClassTarget = target.className;
|
||||
target.className = "code-highlighted";
|
||||
elem.className = "code-highlighted";
|
||||
}
|
||||
}
|
||||
function CodeHighlightOff(elem, id)
|
||||
{
|
||||
var target = document.getElementById(id);
|
||||
if(elem.cacheClassElem)
|
||||
elem.className = elem.cacheClassElem;
|
||||
if(elem.cacheClassTarget)
|
||||
target.className = elem.cacheClassTarget;
|
||||
}
|
||||
/*]]>*///-->
|
||||
</script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
displayAlign: "center",
|
||||
displayIndent: "0em",
|
||||
|
||||
"HTML-CSS": { scale: 100,
|
||||
linebreaks: { automatic: "false" },
|
||||
webFont: "TeX"
|
||||
},
|
||||
SVG: {scale: 100,
|
||||
linebreaks: { automatic: "false" },
|
||||
font: "TeX"},
|
||||
NativeMML: {scale: 100},
|
||||
TeX: { equationNumbers: {autoNumber: "AMS"},
|
||||
MultLineWidth: "85%",
|
||||
TagSide: "right",
|
||||
TagIndent: ".8em"
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="org-div-home-and-up">
|
||||
<a accesskey="h" href="../index.html"> UP </a>
|
||||
|
|
||||
<a accesskey="H" href="../index.html"> HOME </a>
|
||||
</div><div id="content">
|
||||
<h1 class="title">Transfer function from velocity of one stage to the velocity of another stage using geophones</h1>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#orgbdb27eb">1. Experimental Setup</a>
|
||||
<ul>
|
||||
<li><a href="#org8dbd49b">1.1. From Marble to Ty - <code>mat/meas_010.mat</code></a></li>
|
||||
<li><a href="#orgf538b5e">1.2. From Marble to Ry - <code>mat/meas_011.mat</code></a></li>
|
||||
<li><a href="#orga48e2bc">1.3. From Ty to Ry - <code>mat/meas_012.mat</code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org3ea309e">2. Measurement Analysis</a>
|
||||
<ul>
|
||||
<li><a href="#org1638277">2.1. Load data</a></li>
|
||||
<li><a href="#org0d3cc48">2.2. Analysis - Time Domain</a></li>
|
||||
<li><a href="#org65a5a79">2.3. Analysis - Frequency Domain</a></li>
|
||||
<li><a href="#orgbbc525b">2.4. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbdb27eb" class="outline-2">
|
||||
<h2 id="orgbdb27eb"><span class="section-number-2">1</span> Experimental Setup</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
For all the measurements in this section:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>all the control stages are OFF.</li>
|
||||
<li>the measurements are on the \(z\) direction</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8dbd49b" class="outline-3">
|
||||
<h3 id="org8dbd49b"><span class="section-number-3">1.1</span> From Marble to Ty - <code>mat/meas_010.mat</code></h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
One geophone is on the marble, one is on the Ty stage (see figures <a href="#orgee9d1f3">1</a>, <a href="#org0acaa0d">2</a> and <a href="#orgec4ad6b">3</a>).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <code>data</code> array contains the following columns:
|
||||
</p>
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-right">Column</th>
|
||||
<th scope="col" class="org-left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">1</td>
|
||||
<td class="org-left">Ground</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">2</td>
|
||||
<td class="org-left">Ty</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">3</td>
|
||||
<td class="org-left">Time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<div id="orgee9d1f3" class="figure">
|
||||
<p><img src="./img/IMG_20190430_155330.jpg" alt="IMG_20190430_155330.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Setup with one geophone on the marble and one on top of the translation stage</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org0acaa0d" class="figure">
|
||||
<p><img src="./img/IMG_20190430_155335.jpg" alt="IMG_20190430_155335.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Setup with one geophone on the marble and one on top of the translation stage - Close up view</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgec4ad6b" class="figure">
|
||||
<p><img src="./img/IMG_20190430_155342.jpg" alt="IMG_20190430_155342.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Setup with one geophone on the marble and one on top of the translation stage - Top view</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf538b5e" class="outline-3">
|
||||
<h3 id="orgf538b5e"><span class="section-number-3">1.2</span> From Marble to Ry - <code>mat/meas_011.mat</code></h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
One geophone is on the marble, one is on the Ry stage (see figure <a href="#orgd643390">4</a>)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <code>data</code> array contains the following columns:
|
||||
</p>
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-right">Column</th>
|
||||
<th scope="col" class="org-left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">1</td>
|
||||
<td class="org-left">Ground</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">2</td>
|
||||
<td class="org-left">Ry</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">3</td>
|
||||
<td class="org-left">Time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<div id="orgd643390" class="figure">
|
||||
<p><img src="./img/IMG_20190430_163919.jpg" alt="IMG_20190430_163919.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Setup with one geophone on the marble and one on top of the Tilt Stage</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga48e2bc" class="outline-3">
|
||||
<h3 id="orga48e2bc"><span class="section-number-3">1.3</span> From Ty to Ry - <code>mat/meas_012.mat</code></h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<p>
|
||||
One geophone is on the Ty stage, one is on the Ry stage (see figures <a href="#org4038125">5</a>, <a href="#orge841934">6</a> and <a href="#org7715257">7</a>)
|
||||
One geophone on the Ty stage, one geophone on the Ry stage.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <code>data</code> array contains the following columns:
|
||||
</p>
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-right">Column</th>
|
||||
<th scope="col" class="org-left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">1</td>
|
||||
<td class="org-left">Ty</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">2</td>
|
||||
<td class="org-left">Ry</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">3</td>
|
||||
<td class="org-left">Time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<div id="org4038125" class="figure">
|
||||
<p><img src="./img/IMG_20190430_170405.jpg" alt="IMG_20190430_170405.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>Setup with one geophone on the translation stage and one on top of the Tilt Stage</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orge841934" class="figure">
|
||||
<p><img src="./img/IMG_20190430_170418.jpg" alt="IMG_20190430_170418.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Setup with one geophone on the translation stage and one on top of the Tilt Stage - Top view</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org7715257" class="figure">
|
||||
<p><img src="./img/IMG_20190430_170425.jpg" alt="IMG_20190430_170425.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>Setup with one geophone on the translation stage and one on top of the Tilt Stage - Close up view</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3ea309e" class="outline-2">
|
||||
<h2 id="org3ea309e"><span class="section-number-2">2</span> Measurement Analysis</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
<a id="org88007a9"></a>
|
||||
</p>
|
||||
<div class="note">
|
||||
<p>
|
||||
All the files (data and Matlab scripts) are accessible <a href="data/tf_stages_geophone.zip">here</a>.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1638277" class="outline-3">
|
||||
<h3 id="org1638277"><span class="section-number-3">2.1</span> Load data</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
We load the data of the z axis of two geophones.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m_ty = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_010.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; m_ty = m_ty.data;
|
||||
m_ry = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_011.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; m_ry = m_ry.data;
|
||||
ty_ry = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_012.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; ty_ry = ty_ry.data;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0d3cc48" class="outline-3">
|
||||
<h3 id="org0d3cc48"><span class="section-number-3">2.2</span> Analysis - Time Domain</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
First, we can look at the time domain data.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Marble'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Ty'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Voltage </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">V</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org6d8a0eb" class="figure">
|
||||
<p><img src="figs/time_domain_m_ty.png" alt="time_domain_m_ty.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Time domain - Marble and translation stage</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Marble'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Ty'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Voltage </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">V</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org8700a74" class="figure">
|
||||
<p><img src="figs/time_domain_m_ry.png" alt="time_domain_m_ry.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 9: </span>Time domain - Marble and tilt stage</p>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Ty'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Ry'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Voltage </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">V</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgcb2e12d" class="figure">
|
||||
<p><img src="figs/time_domain_ty_ry.png" alt="time_domain_ty_ry.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 10: </span>Time domain - Translation stage and tilt stage</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org65a5a79" class="outline-3">
|
||||
<h3 id="org65a5a79"><span class="section-number-3">2.3</span> Analysis - Frequency Domain</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dt = m_ty<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> m_ty<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt;
|
||||
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">1</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
First, we compute the transfer function estimate between the two geophones for the 3 experiments (figure <a href="#orgc25589d">11</a>). We also plot their coherence (figure <a href="#org6b84c12">12</a>).
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>T_m_ty, f<span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>T_m_ry, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>T_ty_ry, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
ax1 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>T_m_ty<span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Marble - Ty'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>T_m_ry<span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Marble - Ry'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>T_ty_ry<span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Ty - Ry'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,<span class="org-rainbow-delimiters-depth-2">[]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Magnitude'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northwest'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
ax2 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>T_m_ty<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>T_m_ry<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>T_ty_ry<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
yticks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Phase'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
linkaxes<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>ax1,ax2<span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-string">'x'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">10</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgc25589d" class="figure">
|
||||
<p><img src="figs/compare_tf_geophones.png" alt="compare_tf_geophones.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 11: </span>Transfer function from the first geophone to the second geophone for the three experiments</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>coh_m_ty, f<span class="org-rainbow-delimiters-depth-1">]</span> = mscohere<span class="org-rainbow-delimiters-depth-1">(</span>m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>coh_m_ry, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = mscohere<span class="org-rainbow-delimiters-depth-1">(</span>m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, m_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>coh_ty_ry, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = mscohere<span class="org-rainbow-delimiters-depth-1">(</span>ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, ty_ry<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org6b84c12" class="figure">
|
||||
<p><img src="figs/coherence_two_geophones.png" alt="coherence_two_geophones.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 12: </span>Coherence between the two geophones for the three experiments</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbbc525b" class="outline-3">
|
||||
<h3 id="orgbbc525b"><span class="section-number-3">2.4</span> Conclusion</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<div class="important">
|
||||
<p>
|
||||
These measurements are not relevant.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2019-05-15 mer. 17:22</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,301 @@
|
||||
#+TITLE: Transfer function from velocity of one stage to the velocity of another stage using geophones
|
||||
:DRAWER:
|
||||
#+STARTUP: overview
|
||||
|
||||
#+LANGUAGE: en
|
||||
#+EMAIL: dehaeze.thomas@gmail.com
|
||||
#+AUTHOR: Dehaeze Thomas
|
||||
|
||||
#+HTML_LINK_HOME: ../index.html
|
||||
#+HTML_LINK_UP: ../index.html
|
||||
|
||||
#+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: <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script>
|
||||
|
||||
#+HTML_MATHJAX: align: center tagside: right font: TeX
|
||||
|
||||
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||||
#+PROPERTY: header-args:matlab+ :comments org
|
||||
#+PROPERTY: header-args:matlab+ :results none
|
||||
#+PROPERTY: header-args:matlab+ :exports both
|
||||
#+PROPERTY: header-args:matlab+ :eval no-export
|
||||
#+PROPERTY: header-args:matlab+ :output-dir figs
|
||||
|
||||
#+PROPERTY: header-args:shell :eval no-export
|
||||
:END:
|
||||
|
||||
* Experimental Setup
|
||||
For all the measurements in this section:
|
||||
- all the control stages are OFF.
|
||||
- the measurements are on the $z$ direction
|
||||
|
||||
** From Marble to Ty - =mat/meas_010.mat=
|
||||
One geophone is on the marble, one is on the Ty stage (see figures [[fig:setup_m_ty]], [[fig:setup_m_ty_zoom]] and [[fig:setup_m_ty_top]]).
|
||||
|
||||
The =data= array contains the following columns:
|
||||
| Column | Description |
|
||||
|--------+-------------|
|
||||
| 1 | Ground |
|
||||
| 2 | Ty |
|
||||
| 3 | Time |
|
||||
|
||||
#+name: fig:setup_m_ty
|
||||
#+caption: Setup with one geophone on the marble and one on top of the translation stage
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_155330.jpg]]
|
||||
|
||||
#+name: fig:setup_m_ty_zoom
|
||||
#+caption: Setup with one geophone on the marble and one on top of the translation stage - Close up view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_155335.jpg]]
|
||||
|
||||
#+name: fig:setup_m_ty_top
|
||||
#+caption: Setup with one geophone on the marble and one on top of the translation stage - Top view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_155342.jpg]]
|
||||
|
||||
** From Marble to Ry - =mat/meas_011.mat=
|
||||
One geophone is on the marble, one is on the Ry stage (see figure [[fig:setup_m_ry]])
|
||||
|
||||
The =data= array contains the following columns:
|
||||
| Column | Description |
|
||||
|--------+-------------|
|
||||
| 1 | Ground |
|
||||
| 2 | Ry |
|
||||
| 3 | Time |
|
||||
|
||||
#+name: fig:setup_m_ry
|
||||
#+caption: Setup with one geophone on the marble and one on top of the Tilt Stage
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_163919.jpg]]
|
||||
|
||||
** From Ty to Ry - =mat/meas_012.mat=
|
||||
One geophone is on the Ty stage, one is on the Ry stage (see figures [[fig:setup_ty_ry]], [[fig:setup_ty_ry_top]] and [[fig:setup_ty_ry_zoom]])
|
||||
One geophone on the Ty stage, one geophone on the Ry stage.
|
||||
|
||||
The =data= array contains the following columns:
|
||||
| Column | Description |
|
||||
|--------+-------------|
|
||||
| 1 | Ty |
|
||||
| 2 | Ry |
|
||||
| 3 | Time |
|
||||
|
||||
#+name: fig:setup_ty_ry
|
||||
#+caption: Setup with one geophone on the translation stage and one on top of the Tilt Stage
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_170405.jpg]]
|
||||
|
||||
#+name: fig:setup_ty_ry_top
|
||||
#+caption: Setup with one geophone on the translation stage and one on top of the Tilt Stage - Top view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_170418.jpg]]
|
||||
|
||||
#+name: fig:setup_ty_ry_zoom
|
||||
#+caption: Setup with one geophone on the translation stage and one on top of the Tilt Stage - Close up view
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190430_170425.jpg]]
|
||||
|
||||
* Measurement Analysis
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle matlab/tf_stages_geophone.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:tf_stages_geophone>>
|
||||
|
||||
** ZIP file containing the data and matlab files :ignore:
|
||||
#+begin_src bash :exports none :results none
|
||||
if [ matlab/tf_stages_geophone.m -nt data/tf_stages_geophone.zip ]; then
|
||||
cp matlab/tf_stages_geophone.m tf_stages_geophone.m;
|
||||
zip data/tf_stages_geophone \
|
||||
mat/data_010.mat \
|
||||
mat/data_011.mat \
|
||||
mat/data_012.mat \
|
||||
tf_stages_geophone.m
|
||||
rm tf_stages_geophone.m;
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
#+begin_note
|
||||
All the files (data and Matlab scripts) are accessible [[file:data/tf_stages_geophone.zip][here]].
|
||||
#+end_note
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+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
|
||||
|
||||
** Load data
|
||||
We load the data of the z axis of two geophones.
|
||||
#+begin_src matlab :results none
|
||||
m_ty = load('mat/data_010.mat', 'data'); m_ty = m_ty.data;
|
||||
m_ry = load('mat/data_011.mat', 'data'); m_ry = m_ry.data;
|
||||
ty_ry = load('mat/data_012.mat', 'data'); ty_ry = ty_ry.data;
|
||||
#+end_src
|
||||
|
||||
** Analysis - Time Domain
|
||||
First, we can look at the time domain data.
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(m_ty(:, 3), m_ty(:, 1), 'DisplayName', 'Marble');
|
||||
plot(m_ty(:, 3), m_ty(:, 2), 'DisplayName', 'Ty');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ty
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_m_ty.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ty
|
||||
#+CAPTION: Time domain - Marble and translation stage
|
||||
#+RESULTS: fig:time_domain_m_ty
|
||||
[[file:figs/time_domain_m_ty.png]]
|
||||
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(m_ry(:, 3), m_ry(:, 1), 'DisplayName', 'Marble');
|
||||
plot(m_ry(:, 3), m_ry(:, 2), 'DisplayName', 'Ty');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ry
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_m_ry.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_m_ry
|
||||
#+CAPTION: Time domain - Marble and tilt stage
|
||||
#+RESULTS: fig:time_domain_m_ry
|
||||
[[file:figs/time_domain_m_ry.png]]
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_ry(:, 3), ty_ry(:, 1), 'DisplayName', 'Ty');
|
||||
plot(ty_ry(:, 3), ty_ry(:, 2), 'DisplayName', 'Ry');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
legend('Location', 'northeast');
|
||||
xlim([0, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_ty_ry
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/time_domain_ty_ry.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:time_domain_ty_ry
|
||||
#+CAPTION: Time domain - Translation stage and tilt stage
|
||||
#+RESULTS: fig:time_domain_ty_ry
|
||||
[[file:figs/time_domain_ty_ry.png]]
|
||||
|
||||
** Analysis - Frequency Domain
|
||||
#+begin_src matlab :results none
|
||||
dt = m_ty(2, 3) - m_ty(1, 3);
|
||||
|
||||
Fs = 1/dt;
|
||||
win = hanning(ceil(1*Fs));
|
||||
#+end_src
|
||||
|
||||
First, we compute the transfer function estimate between the two geophones for the 3 experiments (figure [[fig:compare_tf_geophones]]). We also plot their coherence (figure [[fig:coherence_two_geophones]]).
|
||||
#+begin_src matlab :results none
|
||||
[T_m_ty, f] = tfestimate(m_ty(:, 1), m_ty(:, 2), win, [], [], Fs);
|
||||
[T_m_ry, ~] = tfestimate(m_ry(:, 1), m_ry(:, 2), win, [], [], Fs);
|
||||
[T_ty_ry, ~] = tfestimate(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
ax1 = subplot(2, 1, 1);
|
||||
hold on;
|
||||
plot(f, abs(T_m_ty), 'DisplayName', 'Marble - Ty');
|
||||
plot(f, abs(T_m_ry), 'DisplayName', 'Marble - Ry');
|
||||
plot(f, abs(T_ty_ry), 'DisplayName', 'Ty - Ry');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
legend('Location', 'northwest');
|
||||
|
||||
ax2 = subplot(2, 1, 2);
|
||||
hold on;
|
||||
plot(f, mod(180+180/pi*phase(T_m_ty), 360)-180);
|
||||
plot(f, mod(180+180/pi*phase(T_m_ry), 360)-180);
|
||||
plot(f, mod(180+180/pi*phase(T_ty_ry), 360)-180);
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase');
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([10, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:compare_tf_geophones
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/compare_tf_geophones.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:compare_tf_geophones
|
||||
#+CAPTION: Transfer function from the first geophone to the second geophone for the three experiments
|
||||
#+RESULTS: fig:compare_tf_geophones
|
||||
[[file:figs/compare_tf_geophones.png]]
|
||||
|
||||
|
||||
#+begin_src matlab :results none
|
||||
[coh_m_ty, f] = mscohere(m_ty(:, 1), m_ty(:, 2), win, [], [], Fs);
|
||||
[coh_m_ry, ~] = mscohere(m_ry(:, 1), m_ry(:, 2), win, [], [], Fs);
|
||||
[coh_ty_ry, ~] = mscohere(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, coh_m_ty, 'DisplayName', 'Marble - Ty');
|
||||
plot(f, coh_m_ry, 'DisplayName', 'Marble - Ry');
|
||||
plot(f, coh_ty_ry, 'DisplayName', 'Ty - Ry');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Coherence');
|
||||
ylim([0, 1]); xlim([1, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:coherence_two_geophones
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/coherence_two_geophones.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:coherence_two_geophones
|
||||
#+CAPTION: Coherence between the two geophones for the three experiments
|
||||
#+RESULTS: fig:coherence_two_geophones
|
||||
[[file:figs/coherence_two_geophones.png]]
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
These measurements are not relevant.
|
||||
#+end_important
|
||||
+1
-1
@@ -76,7 +76,7 @@ This Matlab function is accessible [[file:voltageToDisplacementL22.m][here]].
|
||||
#+begin_src matlab
|
||||
velocity = voltageToVelocityL22(voltage, time, gain);
|
||||
|
||||
disp = lsim(1/s, velocity, time);
|
||||
disp = lsim(1/(1+s/(2*pi*0.5)), velocity, time);
|
||||
#+end_src
|
||||
* getGroundVelocity
|
||||
:PROPERTIES:
|
||||
|
||||
@@ -15,4 +15,4 @@ s = zpk('s');
|
||||
|
||||
velocity = voltageToVelocityL22(voltage, time, gain);
|
||||
|
||||
disp = lsim(1/s, velocity, time);
|
||||
disp = lsim(1/(1+s/(2*pi*0.5)), velocity, time);
|
||||
Reference in new issue
Block a user