Add analysis about simultaneous rotation and translation
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 154 KiB |
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 159 KiB |
@ -97,11 +97,12 @@ A movie showing the experiment is shown on figure [[fig:exp_sl_sp_gif]].
|
||||
|
||||
** 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>>
|
||||
<<matlab-dir>>
|
||||
addpath('../src');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
<<matlab-init>>
|
||||
<<matlab-init>>
|
||||
#+end_src
|
||||
|
||||
** Load data
|
||||
@ -111,6 +112,19 @@ A movie showing the experiment is shown on figure [[fig:exp_sl_sp_gif]].
|
||||
sp = load('mat/data_026.mat', 'data'); sp = sp.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
|
||||
of(:, 1) = voltageToVelocityL22(of(:, 1), of(:, 3), 60);
|
||||
sr(:, 1) = voltageToVelocityL22(sr(:, 1), sr(:, 3), 60);
|
||||
sp(:, 1) = voltageToVelocityL22(sp(:, 1), sp(:, 3), 60);
|
||||
|
||||
of(:, 2) = voltageToVelocityL22(of(:, 2), of(:, 3), 60);
|
||||
sr(:, 2) = voltageToVelocityL22(sr(:, 2), sr(:, 3), 60);
|
||||
sp(:, 2) = voltageToVelocityL22(sp(:, 2), sp(:, 3), 60);
|
||||
#+end_src
|
||||
|
||||
** Time domain plots
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
@ -119,8 +133,8 @@ A movie showing the experiment is shown on figure [[fig:exp_sl_sp_gif]].
|
||||
plot(sr(:, 3), sr(:, 1), 'DisplayName', 'Slip-Ring - 6rpm');
|
||||
plot(of(:, 3), of(:, 1), 'DisplayName', 'OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-10 10]);
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 100]);
|
||||
legend('Location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
@ -131,7 +145,7 @@ A movie showing the experiment is shown on figure [[fig:exp_sl_sp_gif]].
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:slip_ring_spindle_marble_time
|
||||
#+CAPTION: Measurement of the geophone located on the marble - Time domain
|
||||
#+CAPTION: Velocity as measured by the geophone located on the marble - Time domain
|
||||
#+RESULTS: fig:slip_ring_spindle_marble_time
|
||||
[[file:figs/slip_ring_spindle_marble_time.png]]
|
||||
|
||||
@ -142,8 +156,8 @@ A movie showing the experiment is shown on figure [[fig:exp_sl_sp_gif]].
|
||||
plot(sr(:, 3), sr(:, 2), 'DisplayName', 'Only Slip-Ring');
|
||||
plot(of(:, 3), of(:, 2), 'DisplayName', 'OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-10 10]);
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 100]);
|
||||
legend('Location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
@ -154,7 +168,7 @@ A movie showing the experiment is shown on figure [[fig:exp_sl_sp_gif]].
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:slip_ring_spindle_sample_time
|
||||
#+CAPTION: Measurement of the geophone at the sample location - Time domain
|
||||
#+CAPTION: Velocity as measured by the geophone at the sample location - Time domain
|
||||
#+RESULTS: fig:slip_ring_spindle_sample_time
|
||||
[[file:figs/slip_ring_spindle_sample_time.png]]
|
||||
|
||||
@ -184,7 +198,7 @@ And for the geophone located at the sample position.
|
||||
[pxsp_s, ~] = pwelch(sp(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
And we plot the ASD of the measured signals:
|
||||
And we plot the ASD of the measured velocities:
|
||||
- figure [[fig:sr_sp_psd_marble_compare]] for the geophone located on the marble
|
||||
- figure [[fig:sr_sp_psd_sample_compare]] for the geophone at the sample position
|
||||
|
||||
@ -197,9 +211,9 @@ And we plot the ASD of the measured signals:
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([0.1, 500]);
|
||||
xlim([2, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:sr_sp_psd_marble_compare
|
||||
@ -209,7 +223,7 @@ And we plot the ASD of the measured signals:
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:sr_sp_psd_marble_compare
|
||||
#+CAPTION: Comparison of the ASD of the measured voltage from the Geophone on the marble
|
||||
#+CAPTION: Comparison of the ASD of the measured velocities from the Geophone on the marble
|
||||
#+RESULTS: fig:sr_sp_psd_marble_compare
|
||||
[[file:figs/sr_sp_psd_marble_compare.png]]
|
||||
|
||||
@ -222,9 +236,9 @@ And we plot the ASD of the measured signals:
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([0.1, 500]);
|
||||
xlim([2, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:sr_sp_psd_sample_compare
|
||||
@ -234,14 +248,15 @@ And we plot the ASD of the measured signals:
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:sr_sp_psd_sample_compare
|
||||
#+CAPTION: Comparison of the ASD of the measured voltage from the Geophone at the sample location
|
||||
#+CAPTION: Comparison of the ASD of the measured velocities from the Geophone at the sample location
|
||||
#+RESULTS: fig:sr_sp_psd_sample_compare
|
||||
[[file:figs/sr_sp_psd_sample_compare.png]]
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
The slip-ring rotation induces almost no vibrations on the marble, and only a little vibrations on the sample above 100Hz.
|
||||
- The slip-ring rotation induces almost no vibrations on the marble, and only a little vibrations on the sample above 100Hz.
|
||||
|
||||
The spindle rotation induces a lot of vibrations of the sample as well as on the granite.
|
||||
There is a huge peak at 24Hz on the sample vibration but not on the granite vibration.
|
||||
- The spindle rotation induces a lot of vibrations of the sample as well as on the granite.
|
||||
- There is a huge peak at 24Hz on the sample vibration but not on the granite vibration. The peak is really sharp, could this be due to magnetic effect?
|
||||
- Should redo the measurement with piezo accelerometers
|
||||
#+end_important
|
||||
|
BIN
disturbance-ty-sr/figs/current_time.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
disturbance-ty-sr/figs/psd_marble_compare.png
Normal file
After Width: | Height: | Size: 179 KiB |
BIN
disturbance-ty-sr/figs/psd_relative_compare.png
Normal file
After Width: | Height: | Size: 195 KiB |
BIN
disturbance-ty-sr/figs/psd_sample_compare.png
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
disturbance-ty-sr/figs/ty_current_time.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
disturbance-ty-sr/figs/ty_marble_time.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
disturbance-ty-sr/figs/ty_marble_time_zoom.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
disturbance-ty-sr/figs/ty_position_time.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
disturbance-ty-sr/figs/ty_relative_disp_time.png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
disturbance-ty-sr/figs/ty_relative_time.png
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
disturbance-ty-sr/figs/ty_relative_time_zoom.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
disturbance-ty-sr/figs/ty_sample_time.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
disturbance-ty-sr/figs/ty_sample_time_zoom.png
Normal file
After Width: | Height: | Size: 86 KiB |
@ -93,6 +93,7 @@ Each of the measurement =mat= file contains one =data= array with 3 columns:
|
||||
** 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>>
|
||||
addpath('../src');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
@ -101,40 +102,351 @@ Each of the measurement =mat= file contains one =data= array with 3 columns:
|
||||
|
||||
** Load data
|
||||
#+begin_src matlab
|
||||
ty_off = load('mat/data_050.mat', 'data'); ty_off = ty_off.data;
|
||||
ty_on = load('mat/data_051.mat', 'data'); ty_on = ty_on.data;
|
||||
ty_1hz = load('mat/data_052.mat', 'data'); ty_1hz = ty_1hz.data;
|
||||
ty_of = load('mat/data_050.mat', 'data'); ty_of = ty_of.data;
|
||||
ty_on = load('mat/data_051.mat', 'data'); ty_on = ty_on.data;
|
||||
ty_1h = load('mat/data_052.mat', 'data'); ty_1h = ty_1h.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 = 40; % [dB]
|
||||
|
||||
ty_of(:, 1) = voltageToVelocityL22(ty_of(:, 1), ty_of(:, 3), gain);
|
||||
ty_on(:, 1) = voltageToVelocityL22(ty_on(:, 1), ty_on(:, 3), gain);
|
||||
ty_1h(:, 1) = voltageToVelocityL22(ty_1h(:, 1), ty_1h(:, 3), gain);
|
||||
|
||||
ty_of(:, 2) = voltageToVelocityL22(ty_of(:, 2), ty_of(:, 3), gain);
|
||||
ty_on(:, 2) = voltageToVelocityL22(ty_on(:, 2), ty_on(:, 3), gain);
|
||||
ty_1h(:, 2) = voltageToVelocityL22(ty_1h(:, 2), ty_1h(:, 3), gain);
|
||||
#+end_src
|
||||
|
||||
** Time domain plots
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1hz(:, 3), ty_1hz(:, 1), 'DisplayName', 'Marble - Z');
|
||||
plot(ty_on(:, 3), ty_on(:, 1), 'DisplayName', 'Marble - Z');
|
||||
plot(ty_off(:, 3), ty_off(:, 1), 'DisplayName', 'Marble - Z');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-5, 5]);
|
||||
legend('Location', 'northeast');
|
||||
#+end_src
|
||||
We plot the measured velocity of the marble (figure [[fig:ty_marble_time]]), sample (figure [[fig:ty_sample_time]]) and the relative velocity of the sample with respect to the marble (figure [[fig:ty_relative_time]]).
|
||||
|
||||
#+begin_src matlab
|
||||
xlim([0, 1]);
|
||||
#+end_src
|
||||
We also integrate the relative velocity to obtain the relative displacement (figure [[fig:ty_relative_disp_time]]).
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1hz(:, 3), ty_1hz(:, 2), 'DisplayName', 'Marble - Z');
|
||||
plot(ty_on(:, 3), ty_on(:, 2), 'DisplayName', 'Marble - Z');
|
||||
plot(ty_off(:, 3), ty_off(:, 2), 'DisplayName', 'Marble - Z');
|
||||
plot(ty_1h(:, 3), ty_1h(:, 1), 'DisplayName', 'Marble - Ty 1Hz');
|
||||
plot(ty_on(:, 3), ty_on(:, 1), 'DisplayName', 'Marble - Ty ON');
|
||||
plot(ty_of(:, 3), ty_of(:, 1), 'DisplayName', 'Marble - Ty OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-5, 5]);
|
||||
legend('Location', 'northeast');
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 2]);
|
||||
legend('Location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
xlim([0, 1]);
|
||||
#+NAME: fig:ty_marble_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_marble_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_marble_time
|
||||
#+CAPTION: Velocity of the marble in the vertical direction
|
||||
#+RESULTS: fig:ty_marble_time
|
||||
[[file:figs/ty_marble_time.png]]
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1h(:, 3), ty_1h(:, 2), 'DisplayName', 'Sample - Ty - 1Hz');
|
||||
plot(ty_on(:, 3), ty_on(:, 2), 'DisplayName', 'Sample - Ty - ON');
|
||||
plot(ty_of(:, 3), ty_of(:, 2), 'DisplayName', 'Sample - Ty - OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 2]);
|
||||
legend('Location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_sample_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_sample_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_sample_time
|
||||
#+CAPTION: Velocity of the sample in the vertical direction
|
||||
#+RESULTS: fig:ty_sample_time
|
||||
[[file:figs/ty_sample_time.png]]
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1h(:, 3), ty_1h(:, 2)-ty_1h(:, 1), 'DisplayName', 'Relative Velocity - Ty - 1Hz');
|
||||
plot(ty_on(:, 3), ty_on(:, 2)-ty_on(:, 1), 'DisplayName', 'Relative Velocity - Ty - ON');
|
||||
plot(ty_of(:, 3), ty_of(:, 2)-ty_of(:, 1), 'DisplayName', 'Relative Velocity - Ty - OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 2]);
|
||||
legend('Location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_relative_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_relative_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_relative_time
|
||||
#+CAPTION: Relative velocity of the sample with respect to the marble
|
||||
#+RESULTS: fig:ty_relative_time
|
||||
[[file:figs/ty_relative_time.png]]
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1h(:, 3), lsim(1/s, ty_1h(:, 2)-ty_1h(:, 1), ty_1h(:, 3)), 'DisplayName', 'Relative Displacement- Ty - 1Hz');
|
||||
plot(ty_on(:, 3), lsim(1/s, ty_on(:, 2)-ty_on(:, 1), ty_on(:, 3)), 'DisplayName', 'Relative Displacement- Ty - ON');
|
||||
plot(ty_of(:, 3), lsim(1/s, ty_of(:, 2)-ty_of(:, 1), ty_of(:, 3)), 'DisplayName', 'Relative Displacement- Ty - OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
xlim([0, 2]);
|
||||
legend('Location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_relative_disp_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_relative_disp_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_relative_disp_time
|
||||
#+CAPTION: Relative Displacement of the sample with respect to the marble
|
||||
#+RESULTS: fig:ty_relative_disp_time
|
||||
[[file:figs/ty_relative_disp_time.png]]
|
||||
|
||||
** Frequency Domain
|
||||
We first compute some parameters that will be used for the PSD computation.
|
||||
#+begin_src matlab :results none
|
||||
dt = ty_of(2, 3)-ty_of(1, 3);
|
||||
|
||||
Fs = 1/dt; % [Hz]
|
||||
|
||||
win = hanning(ceil(10*Fs));
|
||||
#+end_src
|
||||
|
||||
Then we compute the Power Spectral Density using =pwelch= function.
|
||||
|
||||
First for the geophone located on the marble
|
||||
#+begin_src matlab
|
||||
[pxof_m, f] = pwelch(ty_of(:, 1), win, [], [], Fs);
|
||||
[pxon_m, ~] = pwelch(ty_on(:, 1), win, [], [], Fs);
|
||||
[px1h_m, ~] = pwelch(ty_1h(:, 1), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
And for the geophone located at the sample position.
|
||||
#+begin_src matlab
|
||||
[pxof_s, f] = pwelch(ty_of(:, 2), win, [], [], Fs);
|
||||
[pxon_s, ~] = pwelch(ty_on(:, 2), win, [], [], Fs);
|
||||
[px1h_s, ~] = pwelch(ty_1h(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
Finally, for the relative velocity.
|
||||
#+begin_src matlab
|
||||
[pxof_r, f] = pwelch(ty_of(:, 2)-ty_of(:, 1), win, [], [], Fs);
|
||||
[pxon_r, ~] = pwelch(ty_on(:, 2)-ty_on(:, 1), win, [], [], Fs);
|
||||
[px1h_r, ~] = pwelch(ty_1h(:, 2)-ty_1h(:, 1), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
And we plot the ASD of the measured velocities:
|
||||
- figure [[fig:psd_marble_compare]] for the geophone located on the marble
|
||||
- figure [[fig:psd_sample_compare]] for the geophone at the sample position
|
||||
- figure [[fig:psd_relative_compare]] for the relative velocity
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(px1h_m), 'DisplayName', 'Marble - Ty 1Hz');
|
||||
plot(f, sqrt(pxon_m), 'DisplayName', 'Marble - Ty ON');
|
||||
plot(f, sqrt(pxof_m), 'DisplayName', 'Marble - Ty OFF');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([1, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_marble_compare
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/psd_marble_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_marble_compare
|
||||
#+CAPTION: Comparison of the ASD of the measured velocities from the Geophone on the marble
|
||||
#+RESULTS: fig:psd_marble_compare
|
||||
[[file:figs/psd_marble_compare.png]]
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(px1h_s), 'DisplayName', 'Sample - Ty 1Hz');
|
||||
plot(f, sqrt(pxon_s), 'DisplayName', 'Sample - Ty ON');
|
||||
plot(f, sqrt(pxof_s), 'DisplayName', 'Sample - Ty OFF');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([1, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_sample_compare
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/psd_sample_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_sample_compare
|
||||
#+CAPTION: Comparison of the ASD of the measured velocities from the Geophone at the sample location
|
||||
#+RESULTS: fig:psd_sample_compare
|
||||
[[file:figs/psd_sample_compare.png]]
|
||||
|
||||
#+begin_src matlab :results none
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(px1h_r), 'DisplayName', 'Relative - Ty 1Hz');
|
||||
plot(f, sqrt(pxon_r), 'DisplayName', 'Relative - Ty ON');
|
||||
plot(f, sqrt(pxof_r), 'DisplayName', 'Relative - Ty OFF');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([1, 500]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_relative_compare
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/psd_relative_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:psd_relative_compare
|
||||
#+CAPTION: Comparison of the ASD of the relative velocity
|
||||
#+RESULTS: fig:psd_relative_compare
|
||||
[[file:figs/psd_relative_compare.png]]
|
||||
|
||||
** Ty motion and current
|
||||
The position of the translation stage and current flowing in its actuator are measured using the elmo software and saved as an csv file.
|
||||
|
||||
*** Data pre-processing
|
||||
Let's look at at the start of the csv file.
|
||||
|
||||
#+begin_src bash :results output
|
||||
sed -n 1,30p mat/Ty-when-Rz-1Hz-and-Ty-1Hz.csv | nl -ba -
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
1 Elmo txt chart ver 2.0
|
||||
2
|
||||
3 [File Properties]
|
||||
4 Creation Time,2019-05-13 05:33:43
|
||||
5 Last Updated,2019-05-13 05:33:43
|
||||
6 Resolution,0.001
|
||||
7 Sampling Time,5E-05
|
||||
8 Recording Time,5.461
|
||||
9
|
||||
10 [Chart Properties]
|
||||
11 No.,Name,X Linear,X No.
|
||||
12 1,Chart #1,True,0
|
||||
13 2,Chart #2,True,0
|
||||
14
|
||||
15 [Chart Data]
|
||||
16 Display No.,X No.,Y No.,X Unit,Y Unit,Color,Style,Width
|
||||
17 1,1,2,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
18 2,1,3,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
19 2,1,4,sec,N/A,ff007f00,Solid,TwoPoint
|
||||
20
|
||||
21 [Signal Names]
|
||||
22 1,Time (sec)
|
||||
23 2,Position [cnt]
|
||||
24 3,Current Command [A]
|
||||
25 4,Total Current Command [A]
|
||||
26
|
||||
27 [Signals Data Group 1]
|
||||
28 1,2,3,4,
|
||||
29 0,-141044,-0.537239575086517,-0.537239575086517,
|
||||
30 0.001,-143127,-0.530803752974691,-0.530803752974691,
|
||||
#+end_example
|
||||
|
||||
The real data starts at line 29.
|
||||
We then load this =cvs= file starting at line 29.
|
||||
|
||||
#+begin_src matlab
|
||||
tye_on = csvread("mat/Ty-when-Rz-1Hz.csv", 29, 0);
|
||||
tye_1h = csvread("mat/Ty-when-Rz-1Hz-and-Ty-1Hz.csv", 29, 0);
|
||||
#+end_src
|
||||
|
||||
*** Time domain data
|
||||
We plot the position of the translation stage measured by the encoders.
|
||||
|
||||
There is 200000 encoder count for each mm, we then divide by 200000 to obtain mm.
|
||||
|
||||
The result is shown on figure [[fig:ty_position_time]].
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
subplot(1, 2, 1);
|
||||
plot(tye_on(:, 1), (tye_on(:, 2)-mean(tye_on(:, 2)))/200000);
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Position [mm]');
|
||||
legend({'Ty - ON'}, 'Location', 'northeast');
|
||||
|
||||
subplot(1, 2, 2);
|
||||
plot(tye_1h(:, 1), (tye_1h(:, 2)-mean(tye_1h(:, 2)))/200000);
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Position [mm]');
|
||||
legend({'Ty - 1Hz'}, 'Location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_position_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_position_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_position_time
|
||||
#+CAPTION: Y position of the translation stage measured by the encoders
|
||||
#+RESULTS: fig:ty_position_time
|
||||
[[file:figs/ty_position_time.png]]
|
||||
|
||||
|
||||
We also plot the current as function of the time on figure [[fig:ty_current_time]].
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
subplot(1, 2, 1);
|
||||
plot(tye_on(:, 1), tye_on(:, 3)-mean(tye_on(:, 3)));
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Current [A]');
|
||||
legend({'Ty - ON'}, 'Location', 'northeast');
|
||||
|
||||
subplot(1, 2, 2);
|
||||
plot(tye_1h(:, 1), tye_1h(:, 3)-mean(tye_1h(:, 3)));
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Current [A]');
|
||||
legend({'Ty - 1Hz'}, 'Location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_current_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_current_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_current_time
|
||||
#+CAPTION: Current going through the actuator of the translation stage
|
||||
#+RESULTS: fig:ty_current_time
|
||||
[[file:figs/ty_current_time.png]]
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
-
|
||||
#+end_important
|
||||
|
250
disturbance-ty-sr/matlab/disturbance_ty_sr.m
Normal file
@ -0,0 +1,250 @@
|
||||
%% Clear Workspace and Close figures
|
||||
clear; close all; clc;
|
||||
|
||||
%% Intialize Laplace variable
|
||||
s = zpk('s');
|
||||
|
||||
% Load data
|
||||
|
||||
ty_of = load('mat/data_050.mat', 'data'); ty_of = ty_of.data;
|
||||
ty_on = load('mat/data_051.mat', 'data'); ty_on = ty_on.data;
|
||||
ty_1h = load('mat/data_052.mat', 'data'); ty_1h = ty_1h.data;
|
||||
|
||||
% Voltage to Velocity
|
||||
% We convert the measured voltage to velocity using the function =voltageToVelocityL22= (accessible [[file:~/MEGA/These/meas/src/index.org][here]]).
|
||||
|
||||
|
||||
gain = 40; % [dB]
|
||||
|
||||
ty_of(:, 1) = voltageToVelocityL22(ty_of(:, 1), ty_of(:, 3), gain);
|
||||
ty_on(:, 1) = voltageToVelocityL22(ty_on(:, 1), ty_on(:, 3), gain);
|
||||
ty_1h(:, 1) = voltageToVelocityL22(ty_1h(:, 1), ty_1h(:, 3), gain);
|
||||
|
||||
ty_of(:, 2) = voltageToVelocityL22(ty_of(:, 2), ty_of(:, 3), gain);
|
||||
ty_on(:, 2) = voltageToVelocityL22(ty_on(:, 2), ty_on(:, 3), gain);
|
||||
ty_1h(:, 2) = voltageToVelocityL22(ty_1h(:, 2), ty_1h(:, 3), gain);
|
||||
|
||||
% Time domain plots
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1h(:, 3), ty_1h(:, 1), 'DisplayName', 'Marble - Ty 1Hz');
|
||||
plot(ty_on(:, 3), ty_on(:, 1), 'DisplayName', 'Marble - Ty ON');
|
||||
plot(ty_of(:, 3), ty_of(:, 1), 'DisplayName', 'Marble - Ty OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 100]);
|
||||
legend('Location', 'southwest');
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:ty_marble_time_zoom
|
||||
% #+CAPTION: caption
|
||||
% #+RESULTS: fig:ty_marble_time_zoom
|
||||
% [[file:figs/ty_marble_time_zoom.png]]
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1h(:, 3), ty_1h(:, 2), 'DisplayName', 'Sample - Ty - 1Hz');
|
||||
plot(ty_on(:, 3), ty_on(:, 2), 'DisplayName', 'Sample - Ty - ON');
|
||||
plot(ty_of(:, 3), ty_of(:, 2), 'DisplayName', 'Sample - Ty - OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 100]);
|
||||
legend('Location', 'southwest');
|
||||
|
||||
% Relative Velocity
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(ty_1h(:, 3), ty_1h(:, 2)-ty_1h(:, 1), 'DisplayName', 'Relative Velocity - Ty - 1Hz');
|
||||
plot(ty_on(:, 3), ty_on(:, 2)-ty_on(:, 1), 'DisplayName', 'Relative Velocity - Ty - ON');
|
||||
plot(ty_of(:, 3), ty_of(:, 2)-ty_of(:, 1), 'DisplayName', 'Relative Velocity - Ty - OFF');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
xlim([0, 100]);
|
||||
legend('Location', 'southwest');
|
||||
|
||||
% Frequency Domain
|
||||
% We first compute some parameters that will be used for the PSD computation.
|
||||
|
||||
dt = ty_of(2, 3)-ty_of(1, 3);
|
||||
|
||||
Fs = 1/dt; % [Hz]
|
||||
|
||||
win = hanning(ceil(10*Fs));
|
||||
|
||||
|
||||
|
||||
% Then we compute the Power Spectral Density using =pwelch= function.
|
||||
|
||||
% First for the geophone located on the marble
|
||||
|
||||
[pxof_m, f] = pwelch(ty_of(:, 1), win, [], [], Fs);
|
||||
[pxon_m, ~] = pwelch(ty_on(:, 1), win, [], [], Fs);
|
||||
[px1h_m, ~] = pwelch(ty_1h(:, 1), win, [], [], Fs);
|
||||
|
||||
|
||||
|
||||
% And for the geophone located at the sample position.
|
||||
|
||||
[pxof_s, f] = pwelch(ty_of(:, 2), win, [], [], Fs);
|
||||
[pxon_s, ~] = pwelch(ty_on(:, 2), win, [], [], Fs);
|
||||
[px1h_s, ~] = pwelch(ty_1h(:, 2), win, [], [], Fs);
|
||||
|
||||
|
||||
|
||||
% Finally, for the relative velocity.
|
||||
|
||||
[pxof_r, f] = pwelch(ty_of(:, 2)-ty_of(:, 1), win, [], [], Fs);
|
||||
[pxon_r, ~] = pwelch(ty_on(:, 2)-ty_on(:, 1), win, [], [], Fs);
|
||||
[px1h_r, ~] = pwelch(ty_1h(:, 2)-ty_1h(:, 1), win, [], [], Fs);
|
||||
|
||||
|
||||
|
||||
% And we plot the ASD of the measured velocities:
|
||||
% - figure [[fig:psd_marble_compare]] for the geophone located on the marble
|
||||
% - figure [[fig:psd_sample_compare]] for the geophone at the sample position
|
||||
% - figure [[fig:psd_relative_compare]] for the relative velocity
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(px1h_m), 'DisplayName', 'Marble - Ty 1Hz');
|
||||
plot(f, sqrt(pxon_m), 'DisplayName', 'Marble - Ty ON');
|
||||
plot(f, sqrt(pxof_m), 'DisplayName', 'Marble - Ty OFF');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([1, 500]);
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:psd_marble_compare
|
||||
% #+CAPTION: Comparison of the ASD of the measured velocities from the Geophone on the marble
|
||||
% #+RESULTS: fig:psd_marble_compare
|
||||
% [[file:figs/psd_marble_compare.png]]
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(px1h_s), 'DisplayName', 'Sample - Ty 1Hz');
|
||||
plot(f, sqrt(pxon_s), 'DisplayName', 'Sample - Ty ON');
|
||||
plot(f, sqrt(pxof_s), 'DisplayName', 'Sample - Ty OFF');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([2, 500]);
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:psd_sample_compare
|
||||
% #+CAPTION: Comparison of the ASD of the measured velocities from the Geophone at the sample location
|
||||
% #+RESULTS: fig:psd_sample_compare
|
||||
% [[file:figs/psd_sample_compare.png]]
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(px1h_r), 'DisplayName', 'Relative - Ty 1Hz');
|
||||
plot(f, sqrt(pxon_r), 'DisplayName', 'Relative - Ty ON');
|
||||
plot(f, sqrt(pxof_r), 'DisplayName', 'Relative - Ty OFF');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'southwest');
|
||||
xlim([2, 500]);
|
||||
|
||||
|
||||
|
||||
% #+RESULTS:
|
||||
% #+begin_example
|
||||
% 1 Elmo txt chart ver 2.0
|
||||
% 2
|
||||
% 3 [File Properties]
|
||||
% 4 Creation Time,2019-05-13 05:33:43
|
||||
% 5 Last Updated,2019-05-13 05:33:43
|
||||
% 6 Resolution,0.001
|
||||
% 7 Sampling Time,5E-05
|
||||
% 8 Recording Time,5.461
|
||||
% 9
|
||||
% 10 [Chart Properties]
|
||||
% 11 No.,Name,X Linear,X No.
|
||||
% 12 1,Chart #1,True,0
|
||||
% 13 2,Chart #2,True,0
|
||||
% 14
|
||||
% 15 [Chart Data]
|
||||
% 16 Display No.,X No.,Y No.,X Unit,Y Unit,Color,Style,Width
|
||||
% 17 1,1,2,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
% 18 2,1,3,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
% 19 2,1,4,sec,N/A,ff007f00,Solid,TwoPoint
|
||||
% 20
|
||||
% 21 [Signal Names]
|
||||
% 22 1,Time (sec)
|
||||
% 23 2,Position [cnt]
|
||||
% 24 3,Current Command [A]
|
||||
% 25 4,Total Current Command [A]
|
||||
% 26
|
||||
% 27 [Signals Data Group 1]
|
||||
% 28 1,2,3,4,
|
||||
% 29 0,-141044,-0.537239575086517,-0.537239575086517,
|
||||
% 30 0.001,-143127,-0.530803752974691,-0.530803752974691,
|
||||
% #+end_example
|
||||
|
||||
% The real data starts at line 29.
|
||||
% We then load this =cvs= file starting at line 29.
|
||||
|
||||
|
||||
ty_on = csvread("mat/Ty-when-Rz-1Hz.csv", 29, 0);
|
||||
ty_1h = csvread("mat/Ty-when-Rz-1Hz-and-Ty-1Hz.csv", 29, 0);
|
||||
|
||||
% Time domain data
|
||||
% We plot the position of the translation stage measured by the encoders.
|
||||
|
||||
% There is 200000 encoder count for each mm, we then divide by 200000 to obtain mm.
|
||||
|
||||
% The result is shown on figure [[fig:ty_position_time]].
|
||||
|
||||
|
||||
figure;
|
||||
subplot(1, 2, 1);
|
||||
plot(ty_on(:, 1), (ty_on(:, 2)-mean(ty_on(:, 2)))/200000);
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Position [mm]');
|
||||
legend({'Ty - ON'}, 'Location', 'northeast');
|
||||
|
||||
subplot(1, 2, 2);
|
||||
plot(ty_1h(:, 1), (ty_1h(:, 2)-mean(ty_1h(:, 2)))/200000);
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Position [mm]');
|
||||
legend({'Ty - 1Hz'}, 'Location', 'northeast');
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:ty_position_time
|
||||
% #+CAPTION: Y position of the translation stage measured by the encoders
|
||||
% #+RESULTS: fig:ty_position_time
|
||||
% [[file:figs/ty_position_time.png]]
|
||||
|
||||
|
||||
% We also plot the current as function of the time on figure [[fig:ty_current_time]].
|
||||
|
||||
|
||||
figure;
|
||||
subplot(1, 2, 1);
|
||||
plot(ty_on(:, 1), ty_on(:, 3)-mean(ty_on(:, 3)));
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Current [A]');
|
||||
legend({'Ty - ON'}, 'Location', 'northeast');
|
||||
|
||||
subplot(1, 2, 2);
|
||||
plot(ty_1h(:, 1), ty_1h(:, 3)-mean(ty_1h(:, 3)));
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Current [A]');
|
||||
legend({'Ty - 1Hz'}, 'Location', 'northeast');
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 188 KiB |
1
disturbance-ty/index.aux
Normal file
@ -0,0 +1 @@
|
||||
\relax
|
@ -103,6 +103,7 @@ Each of the measurement =mat= file contains one =data= array with 3 columns:
|
||||
** 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>>
|
||||
addpath('../src');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
@ -191,7 +192,7 @@ We convert the measured voltage to velocity using the function =voltageToVelocit
|
||||
[[file:figs/ty_e_time.png]]
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
xlim([0, 1])
|
||||
xlim([0, 1]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_e_time_zoom
|
||||
@ -302,7 +303,7 @@ And we plot the ASD of the measured velocities:
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'northwest');
|
||||
xlim([0.1, 500]);
|
||||
#+end_src
|
||||
@ -314,7 +315,7 @@ And we plot the ASD of the measured velocities:
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:asd_z_direction
|
||||
#+CAPTION: Amplitude spectral density of the measure voltage corresponding to the geophone in the vertical direction located on the granite and at the sample location when the translation stage is scanning at 1Hz
|
||||
#+CAPTION: Amplitude spectral density of the measure velocity corresponding to the geophone in the vertical direction located on the granite and at the sample location when the translation stage is scanning at 1Hz
|
||||
#+RESULTS: fig:asd_z_direction
|
||||
[[file:figs/asd_z_direction.png]]
|
||||
|
||||
|