Add data analysis

This commit is contained in:
Thomas Dehaeze 2019-05-02 14:06:23 +02:00
parent 8aae9e9e98
commit 6d52460f5b
26 changed files with 24723 additions and 134 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
Library/figs/trans_comp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

BIN
Library/index.html Normal file

Binary file not shown.

View File

@ -18,34 +18,671 @@
#+PROPERTY: header-args:matlab+ :output-dir figs
:END:
For all the measurements here, the geophones are L22.
The signals are amplified with voltage amplifiers with a gain of 60dB.
The voltage amplifiers include a low pass filter with a cut-off frequency at 1kHz.
* Effect of the control system of each stage
For all the measurements shown here:
- geophones used are L22 with a resonance frequency of 1Hz
- the signals are amplified with voltage amplifiers with a gain of 60dB
- the voltage amplifiers include a low pass filter with a cut-off frequency at 1kHz
* Effect of the Slip-Ring on the signal
** Experimental Setup
One geophone is on the marble, the other at the sample location (see figures below).
Two measurements are made with the control systems of all the stages turned OFF.
The signal from the top geophone goes through the slip-ring.
One geophone is located on the marble while the other is located at the sample location (figure [[fig:setup_slipring]]).
The signals from the geophones are amplified by a voltage amplifier with a gain of 60dB.
The voltage amplifier also include a low pass filter with a corner frequency of 1kHz.
#+name: fig:setup_ty_1
#+caption: Figure caption
#+attr_html: :width 500px
[[file:./img/IMG_20190430_112613.jpg]]
#+name: fig:setup_ty_2
#+caption: Figure caption
#+name: fig:setup_slipring
#+caption: Experimental Setup
#+attr_html: :width 500px
[[file:./img/IMG_20190430_112615.jpg]]
#+name: fig:setup_ty_3
#+caption: Figure caption
The two measurements are:
| Measurement File | Description |
|------------------+------------------------------------------------------------------|
| =meas_008.mat= | Signal from the top geophone does not goes through the Slip-ring |
| =meas_009.mat= | Signal goes through the Slip-ring (as shown on the figure above) |
Each of the measurement =mat= file contains one =data= array with 3 columns:
| Column number | Description |
|---------------+-------------------|
| 1 | Geophone - Marble |
| 2 | Geophone - Sample |
| 3 | Time |
** Matlab Init :noexport:ignore:
#+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
d8 = load('mat/data_008.mat', 'data'); d8 = d8.data;
d9 = load('mat/data_009.mat', 'data'); d9 = d9.data;
#+end_src
** Analysis - Time Domain
First, we compare the time domain signals for the two experiments (figure [[fig:slipring_time]]).
#+begin_src matlab :results none
figure;
hold on;
plot(d9(:, 3), d9(:, 2), 'DisplayName', 'Slip-Ring');
plot(d8(:, 3), d8(:, 2), 'DisplayName', 'Wire');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 50]);
legend('location', 'northeast');
#+end_src
#+NAME: fig:slipring_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/slipring_time.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:slipring_time
#+CAPTION: Effect of the Slip-Ring on the measured signal - Time domain
#+RESULTS: fig:slipring_time
[[file:figs/slipring_time.png]]
** Analysis - Frequency Domain
We then compute the Power Spectral Density of the two signals and we compare them (figure [[fig:slipring_asd]]).
#+begin_src matlab :results none
dt = d8(2, 3) - d8(1, 3);
Fs = 1/dt;
win = hanning(ceil(1*Fs));
#+end_src
#+begin_src matlab :results none
[pxx8, f] = pwelch(d8(:, 2), win, [], [], Fs);
[pxx9, ~] = pwelch(d9(:, 2), win, [], [], Fs);
#+end_src
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(pxx9), 'DisplayName', 'Slip-Ring');
plot(f, sqrt(pxx8), 'DisplayName', 'Wire');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [V/sqrt(Hz)]')
xlim([1, 500]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:slipring_asd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/slipring_asd.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:slipring_asd
#+CAPTION: Effect of the Slip-Ring on the measured signal - Frequency domain
#+RESULTS: fig:slipring_asd
[[file:figs/slipring_asd.png]]
** Conclusion
#+begin_important
- Connecting the geophone through the Slip-Ring seems to induce a lot of noise.
#+end_important
#+begin_note
*Remaining questions to answer*:
- Why is there a sharp peak at 300Hz?
- Why the use of the Slip-Ring does induce a noise?
- Can the capacitive/inductive properties of the wires in the Slip-ring does not play well with the geophone? (resonant RLC circuit)
#+end_note
* Effect of all the control systems on the Sample vibrations
** Experimental Setup
We here measure the signals of two geophones:
- One is located on top of the Sample platform
- One is located on the marble
The signal from the top geophone does not go trought the slip-ring.
First, all the control systems are turned ON, then, they are turned one by one.
Each measurement are done during 50s.
#+name: tab:control_system_on_off
#+caption: Summary of the measurements and the states of the control systems
| Ty | Ry | Slip Ring | Spindle | Hexapod | Meas. file |
|------+------+-----------+---------+---------+----------------|
| *ON* | *ON* | *ON* | *ON* | *ON* | =meas_003.mat= |
| OFF | *ON* | *ON* | *ON* | *ON* | =meas_004.mat= |
| OFF | OFF | *ON* | *ON* | *ON* | =meas_005.mat= |
| OFF | OFF | OFF | *ON* | *ON* | =meas_006.mat= |
| OFF | OFF | OFF | OFF | *ON* | =meas_007.mat= |
| OFF | OFF | OFF | OFF | OFF | =meas_008.mat= |
Each of the =mat= file contains one array =data= with 3 columns:
| Column number | Description |
|---------------+-------------------|
| 1 | Geophone - Marble |
| 2 | Geophone - Sample |
| 3 | Time |
** Matlab Init :noexport:ignore:
#+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
d3 = load('mat/data_003.mat', 'data'); d3 = d3.data;
d4 = load('mat/data_004.mat', 'data'); d4 = d4.data;
d5 = load('mat/data_005.mat', 'data'); d5 = d5.data;
d6 = load('mat/data_006.mat', 'data'); d6 = d6.data;
d7 = load('mat/data_007.mat', 'data'); d7 = d7.data;
d8 = load('mat/data_008.mat', 'data'); d8 = d8.data;
#+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]])
- comparison for the geophone on the granite (figure [[fig:time_domain_marble]])
#+begin_src matlab :results none
figure;
hold on;
plot(d3(:, 3), d3(:, 2), 'DisplayName', 'All ON');
plot(d4(:, 3), d4(:, 2), 'DisplayName', 'Ty OFF');
plot(d5(:, 3), d5(:, 2), 'DisplayName', 'Ry OFF');
plot(d6(:, 3), d6(:, 2), 'DisplayName', 'S-R OFF');
plot(d7(:, 3), d7(:, 2), 'DisplayName', 'Rz OFF');
plot(d8(:, 3), d8(:, 2), 'DisplayName', 'Hexa OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 50]);
legend('Location', 'bestoutside');
#+end_src
#+NAME: fig:time_domain_sample
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/time_domain_sample.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:time_domain_sample
#+CAPTION: Comparison of the time domain data when turning off the control system of the stages - Geophone at the sample location
#+RESULTS: fig:time_domain_sample
[[file:figs/time_domain_sample.png]]
#+begin_src matlab :results none
figure;
hold on;
plot(d3(:, 3), d3(:, 1), 'DisplayName', 'All ON');
plot(d4(:, 3), d4(:, 1), 'DisplayName', 'Ty OFF');
plot(d5(:, 3), d5(:, 1), 'DisplayName', 'Ry OFF');
plot(d6(:, 3), d6(:, 1), 'DisplayName', 'S-R OFF');
plot(d7(:, 3), d7(:, 1), 'DisplayName', 'Rz OFF');
plot(d8(:, 3), d8(:, 1), 'DisplayName', 'Hexa OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 50]);
legend('Location', 'bestoutside');
#+end_src
#+NAME: fig:time_domain_marble
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/time_domain_marble.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:time_domain_marble
#+CAPTION: Comparison of the time domain data when turning off the control system of the stages - Geophone on the marble
#+RESULTS: fig:time_domain_marble
[[file:figs/time_domain_marble.png]]
** Analysis - Frequency Domain
#+begin_src matlab :results none
dt = d3(2, 3) - d3(1, 3);
Fs = 1/dt;
win = hanning(ceil(10*Fs));
#+end_src
*** Vibrations at the sample location
First, we compute the Power Spectral Density of the signals coming from the Geophone located at the sample location.
#+begin_src matlab :results none
[px3, f] = pwelch(d3(:, 2), win, [], [], Fs);
[px4, ~] = pwelch(d4(:, 2), win, [], [], Fs);
[px5, ~] = pwelch(d5(:, 2), win, [], [], Fs);
[px6, ~] = pwelch(d6(:, 2), win, [], [], Fs);
[px7, ~] = pwelch(d7(:, 2), win, [], [], Fs);
[px8, ~] = pwelch(d8(:, 2), win, [], [], Fs);
#+end_src
And we compare all the signals (figures [[fig:psd_sample_comp]] and [[fig:psd_sample_comp_high_freq]]).
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(px3), 'DisplayName', 'All ON');
plot(f, sqrt(px4), 'DisplayName', 'Ty OFF');
plot(f, sqrt(px5), 'DisplayName', 'Ry OFF');
plot(f, sqrt(px6), 'DisplayName', 'S-R OFF');
plot(f, sqrt(px7), 'DisplayName', 'Rz OFF');
plot(f, sqrt(px8), 'DisplayName', 'Hexa OFF');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [V/sqrt(Hz)]')
xlim([0.1, 500]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:psd_sample_comp
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/psd_sample_comp.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:psd_sample_comp
#+CAPTION: PSD of the signal coming from the top geophone
#+RESULTS: fig:psd_sample_comp
[[file:figs/psd_sample_comp.png]]
#+begin_src matlab :results none :tangle no :exports none
xlim([80, 500]);
#+end_src
#+NAME: fig:psd_sample_comp_high_freq
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/psd_sample_comp_high_freq.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:psd_sample_comp_high_freq
#+CAPTION: PSD of the signal coming from the top geophone (zoom at high frequencies)
#+RESULTS: fig:psd_sample_comp_high_freq
[[file:figs/psd_sample_comp_high_freq.png]]
*** Vibrations on the marble
Now we plot the same curves for the geophone located on the marble.
#+begin_src matlab :results none
[px3, f] = pwelch(d3(:, 1), win, [], [], Fs);
[px4, ~] = pwelch(d4(:, 1), win, [], [], Fs);
[px5, ~] = pwelch(d5(:, 1), win, [], [], Fs);
[px6, ~] = pwelch(d6(:, 1), win, [], [], Fs);
[px7, ~] = pwelch(d7(:, 1), win, [], [], Fs);
[px8, ~] = pwelch(d8(:, 1), win, [], [], Fs);
#+end_src
And we compare the ASD (figures [[fig:psd_marble_comp]] and [[fig:psd_marble_comp_high_freq]])
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(px3), 'DisplayName', 'All ON');
plot(f, sqrt(px4), 'DisplayName', 'Ty OFF');
plot(f, sqrt(px5), 'DisplayName', 'Ry OFF');
plot(f, sqrt(px6), 'DisplayName', 'S-R OFF');
plot(f, sqrt(px7), 'DisplayName', 'Rz OFF');
plot(f, sqrt(px8), 'DisplayName', 'Hexa OFF');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [V/sqrt(Hz)]')
xlim([0.1, 500]);
legend('Location', 'northeast');
#+end_src
#+NAME: fig:psd_marble_comp
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/psd_marble_comp.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:psd_marble_comp
#+CAPTION: PSD of the signal coming from the top geophone
#+RESULTS: fig:psd_marble_comp
[[file:figs/psd_marble_comp.png]]
#+begin_src matlab :results none :tangle no :exports none
legend('Location', 'southwest');
xlim([80, 500]);
#+end_src
#+NAME: fig:psd_marble_comp_high_freq
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/psd_marble_comp_high_freq.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:psd_marble_comp_high_freq
#+CAPTION: PSD of the signal coming from the top geophone (zoom at high frequencies)
#+RESULTS: fig:psd_marble_comp_high_freq
[[file:figs/psd_marble_comp_high_freq.png]]
** Effect of the control system on the transmissibility from ground to sample
As the feedback loops change the dynamics of the system, we should see differences on the transfer function from marble velocity to sample velocity when turning off the control systems (figure [[fig:trans_comp]]).
#+begin_src matlab :results none
dt = d3(2, 3) - d3(1, 3);
Fs = 1/dt;
win = hanning(ceil(1*Fs));
#+end_src
First, we compute the Power Spectral Density of the signals coming from the Geophone located at the sample location.
#+begin_src matlab :results none
[T3, f] = tfestimate(d3(:, 1), d3(:, 2), win, [], [], Fs);
[T4, ~] = tfestimate(d4(:, 1), d4(:, 2), win, [], [], Fs);
[T5, ~] = tfestimate(d5(:, 1), d5(:, 2), win, [], [], Fs);
[T6, ~] = tfestimate(d6(:, 1), d6(:, 2), win, [], [], Fs);
[T7, ~] = tfestimate(d7(:, 1), d7(:, 2), win, [], [], Fs);
[T8, ~] = tfestimate(d8(:, 1), d8(:, 2), win, [], [], Fs);
#+end_src
#+begin_src matlab :results none
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(T3), 'DisplayName', 'All ON');
plot(f, abs(T4), 'DisplayName', 'Ty OFF');
plot(f, abs(T5), 'DisplayName', 'Ry OFF');
plot(f, abs(T6), 'DisplayName', 'S-R OFF');
plot(f, abs(T7), 'DisplayName', 'Rz OFF');
plot(f, abs(T8), 'DisplayName', 'Hexa OFF');
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(T3), 360)-180);
plot(f, mod(180+180/pi*phase(T4), 360)-180);
plot(f, mod(180+180/pi*phase(T5), 360)-180);
plot(f, mod(180+180/pi*phase(T6), 360)-180);
plot(f, mod(180+180/pi*phase(T7), 360)-180);
plot(f, mod(180+180/pi*phase(T8), 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([1, 500]);
#+end_src
#+NAME: fig:trans_comp
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/trans_comp.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:trans_comp
#+CAPTION: Comparison of the transfer function from the geophone on the marble to the geophone at the sample location
#+RESULTS: fig:trans_comp
[[file:figs/trans_comp.png]]
** Conclusion
#+begin_important
- The control system of the Ty stage induces a lot of vibrations of the marble
#+end_important
#+begin_note
- Why it seems that the measurement noise at high frequency is the limiting factor when the slip ring is ON but not when it is OFF?
#+end_note
* Transfer function from one stage to the other
** 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_112620.jpg]]
[[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 :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
* 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 |
@ -53,7 +690,7 @@ Two measurements are done:
| Control of Ty is on | =mat/data_001.mat= |
| Control of Ty is off | =mat/data_002.mat= |
For each of the measurements
For each of the measurements, the data are:
| Variable | Description |
|----------+--------------------------------------------------------------------|
| =t= | Time Vector |
@ -74,7 +711,7 @@ We load the data of the z axis of two geophones.
tyOff = load('mat/data_002.mat', 't', 'x1', 'x2');
#+end_src
** Analysis
** Analysis - Time Domain
#+begin_src matlab :results none
dt = tyOn.t(2)-tyOn.t(1);
Fs = 1/dt;
@ -87,6 +724,7 @@ We load the data of the z axis of two geophones.
plot(tyOn.t, tyOn.x2);
hold off;
legend({'x1 - ON', 'x2 - ON'});
xlim([0, 50]);
#+end_src
#+begin_src matlab :results none
@ -98,6 +736,7 @@ We load the data of the z axis of two geophones.
legend({'x1 - OFF', 'x2 - OFF'});
#+end_src
** Analysis - Frequency Domain
#+begin_src matlab :results none
Fs = 1/dt;
win = hanning(ceil(10*Fs));
@ -190,110 +829,3 @@ We load the data of the z axis of two geophones.
linkaxes([ax1,ax2],'x');
xlim([1, 500]);
#+end_src
* Effect of the Slip-Ring on the signal
** Experimental Setup
Two measurements are made where the control of all the stages are OFF.
One geophone is located on the marble while the other is located at the sample location.
The two measurements are:
| Measurement File | Description |
|------------------+------------------------------------------------------------------|
| =meas_008.mat= | Signal from the top geophone does not goes through the Slip-ring |
| =meas_009.mat= | Signal goes through the Slip-ring |
Each of the measurement =mat= file contains one =data= array with 3 columns:
| Column number | Description |
|---------------+-------------------|
| 1 | Geophone - Marble |
| 2 | Geophone - Sample |
| 3 | Time |
** Matlab Init :noexport:ignore:
#+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
data8 = load('mat/data_008.mat', 'data');
data9 = load('mat/data_009.mat', 'data');
#+end_src
** Analysis - Time Domain
#+begin_src matlab :results none
figure;
hold on;
plot(data9.data(:, 3), data9.data(:, 2), 'DisplayName', 'Slip-Ring');
plot(data8.data(:, 3), data8.data(:, 2), 'DisplayName', 'Wire');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 50]);
legend();
#+end_src
#+NAME: fig:slipring_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/slipring_time.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:slipring_time
#+CAPTION: Effect of the Slip-Ring on the measured signal - Time domain
#+RESULTS: fig:slipring_time
[[file:figs/slipring_time.png]]
** Analysis - Frequency Domain
#+begin_src matlab :results none
dt = data8.data(2, 3) - data8.data(1, 3);
Fs = 1/dt;
win = hanning(ceil(1*Fs));
#+end_src
#+begin_src matlab :results none
[pxx8, f] = pwelch(data8.data(:, 2), win, [], [], Fs);
[pxx9, ~] = pwelch(data9.data(:, 2), win, [], [], Fs);
#+end_src
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(pxx9), 'DisplayName', 'Slip-Ring');
plot(f, sqrt(pxx8), 'DisplayName', 'Wire');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD [V/sqrt(Hz)]')
xlim([1, 500]);
legend('Location', 'southwest');
#+end_src
#+NAME: fig:slipring_asd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/slipring_asd.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:slipring_asd
#+CAPTION: Effect of the Slip-Ring on the measured signal - Frequency domain
#+RESULTS: fig:slipring_asd
[[file:figs/slipring_asd.png]]
** Conclusion
*Remaining questions to answer*:
- Why is there a sharp peak at 300Hz?
- Why the use of the Slip-Ring does induce a noise?
- Can the capacitive/inductive properties of the wires in the Slip-ring does not play well with the geophone? (resonant RLC circuit)
* Measurement when signal from top geophone does not go trought the slip-ring
| Ty | Ry | Slip Ring | Spindle | Hexapod | Meas. file |
|------+------+-----------+---------+---------+----------------|
| *ON* | *ON* | *ON* | *ON* | *ON* | =meas_003.mat= |
| OFF | *ON* | *ON* | *ON* | *ON* | =meas_004.mat= |
| OFF | OFF | *ON* | *ON* | *ON* | =meas_005.mat= |
| OFF | OFF | OFF | *ON* | *ON* | =meas_006.mat= |
| OFF | OFF | OFF | OFF | *ON* | =meas_007.mat= |
| OFF | OFF | OFF | OFF | OFF | =meas_008.mat= |

View File

@ -25,7 +25,6 @@ Meas009: everything off with signal goes through the slip-ring
** From Marble to Ty
=meas_010.mat=
Everything off, one geophone on the marble, one geophone on the Ty (measure on Z direction)
=> Can be used to determine the vertical stiffness between the Granite and the Ty stage
Channels:
| 1 | Ground |
@ -35,7 +34,6 @@ Channels:
** From Marble to Ry
=meas_011.mat=
Everything off, one geophone on the marble, one geophone on the Ry (measure on Z direction)
=> Can be used to determine the vertical stiffness of the Ry Stage (by taking into account the Ty stiffness)
Channels:
| 1 | Ground |
@ -45,7 +43,6 @@ Channels:
** From Ty to Ry
=meas_012.mat=
Everything off, one geophone on the Ty, one geophone on the Ry (measure on Z direction)
=> Can be used to determine the vertical stiffness of the Ry stage
Channels:
| 1 | Ty |

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 KiB

File diff suppressed because it is too large Load Diff

BIN
slip-ring-test/index.html Normal file

Binary file not shown.

108
slip-ring-test/index.org Normal file
View File

@ -0,0 +1,108 @@
#+TITLE:Effect of the rotation of the Slip-Ring
:DRAWER:
#+STARTUP: overview
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
#+HTML_HEAD: <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>
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :results output
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs
:END:
* Measurement Description
Random Signal is generated by one DAC of the SpeedGoat.
The signal going out of the DAC is split into two:
- one BNC cable is directly connected to one ADC of the SpeedGoat
- one BNC cable goes two times in the Slip-Ring (from bottom to top and then from top to bottom) and then is connected to one ADC of the SpeedGoat
Two measurements are done.
| Data File | Description |
|--------------------+-----------------------|
| =mat/data_001.mat= | Slip-ring not turning |
| =mat/data_002.mat= | Slip-ring turning |
For each measurement, the measured signals are:
| Data File | Description |
|-----------+------------------------------------|
| =t= | Time vector |
| =x1= | Direct signal |
| =x2= | Signal going through the Slip-Ring |
The goal is to determine is the signal is altered when the spindle is rotating.
Here, the rotation speed of the Slip-Ring is set to 1rpm.
* Matlab Init :noexport:ignore:
#+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
sr_off = load('mat/data_001.mat', 't', 'x1', 'x2');
sr_on = load('mat/data_002.mat', 't', 'x1', 'x2');
#+end_src
* Analysis
Let's first look at the signal produced by the DAC (figure [[fig:random_signal]]).
#+begin_src matlab :results none
figure;
hold on;
plot(sr_on.t, sr_on.x1);
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0 10]);
#+end_src
#+NAME: fig:random_signal
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/random_signal.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:random_signal
#+CAPTION: Random signal produced by the DAC
#+RESULTS: fig:random_signal
[[file:figs/random_signal.png]]
We now look at the difference between the signal directly measured by the ADC and the signal that goes through the slip-ring (figure [[fig:slipring_comp_signals]]).
#+begin_src matlab :results none
figure;
hold on;
plot(sr_on.t, sr_on.x1 - sr_on.x2, 'DisplayName', 'Slip-Ring - $\omega = 1rpm$');
plot(sr_off.t, sr_off.x1 - sr_off.x2,'DisplayName', 'Slip-Ring off');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0 10]);
legend('Location', 'northeast');
#+end_src
#+NAME: fig:slipring_comp_signals
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/slipring_comp_signals.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:slipring_comp_signals
#+CAPTION: Alteration of the signal when the slip-ring is turning
#+RESULTS: fig:slipring_comp_signals
[[file:figs/slipring_comp_signals.png]]
* Conclusion
*Remaining questions*:
- Should the measurement be redone using voltage amplifiers?
- Use higher rotation speed and measure for longer periods (to have multiple revolutions) ?

View File

@ -1,2 +0,0 @@
|data_001|slip-ring not turning|
|data_002|slip-ring turning|