Add analysis about simultaneous rotation and translation

This commit is contained in:
Thomas Dehaeze 2019-05-15 15:49:48 +02:00
parent dd484e8a3b
commit df4d100ddf
25 changed files with 625 additions and 46 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 159 KiB

View File

@ -98,6 +98,7 @@ 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>>
addpath('../src');
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

View File

@ -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_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_1hz = load('mat/data_052.mat', 'data'); ty_1hz = ty_1hz.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

View 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');

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 188 KiB

1
disturbance-ty/index.aux Normal file
View File

@ -0,0 +1 @@
\relax

Binary file not shown.

View File

@ -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]]