[WIP] Slip slip-ring measurements in two

This commit is contained in:
Thomas Dehaeze 2019-05-16 13:08:27 +02:00
parent 65b83cfb48
commit 3e98138772
73 changed files with 1329 additions and 394 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View File

@ -1,4 +1,4 @@
#+TITLE: Measurements On the Slip-Ring
#+TITLE: Measurements On the Slip-Ring - Electrical Noise
:DRAWER:
#+STARTUP: overview
@ -29,7 +29,7 @@
#+PROPERTY: header-args:shell :eval no-export
:END:
First, the noise induced by the slip-ring is measured when using geophones:
The noise induced by the slip-ring is measured when using geophones:
- Section [[sec:meas_slip_ring_geophone]]:
- A geophone located at the sample location is measured with its signal going directly to the ADC and going through the slip-ring
- The voltage amplifiers where saturating due to high frequency noise
@ -38,17 +38,6 @@ First, the noise induced by the slip-ring is measured when using geophones:
- Using a Oscilloscope, high frequency noise at 40kHz generated by the slip-ring has been identified
- With the additional low pass filter at the input of the voltage amplifiers, the slip-ring don't add any measurable noise to the signal
Then, we determine is the slip-ring add some noise to the signal when it is turning:
- Section [[sec:meas_effect_sr]]:
- Noise is generated by the Speedgoat DAC and goes trough the slip-ring two times
- We measure the signal when it is OFF, ON but not turning and ON and turning
- However, the measurement is limited by the ADC noise
- Section [[sec:meas_slip_ring]]:
- Voltage amplifiers are added, and the same measurements are done
- However, the voltage amplifiers are saturating because of high frequency noise
- Section [[sec:meas_slip_ring_lpf]]:
- Low pass filter are added at the input of the voltage amplifier and the same measurement is done
* Effect of the Slip-Ring on the signal when turned ON - Geophone measurement
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_slip_ring_geophone.m
@ -195,13 +184,15 @@ We then compute the Power Spectral Density of the two signals and we compare the
- The measurements will be redone
#+end_important
* Measure of the noise induced by the Slip-Ring using voltage amplifiers - Geophone
* TODO Measure of the noise induced by the Slip-Ring using voltage amplifiers - Geophone
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_sr_geophone.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_sr_geophone>>
- [ ] Where is the data_012 and 13 measurement ?
** ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/meas_sr_geophone.m -nt data/meas_sr_geophone.zip ]; then
@ -211,6 +202,8 @@ We then compute the Power Spectral Density of the two signals and we compare the
mat/data_013.mat \
mat/data_016.mat \
mat/data_017.mat \
mat/data_035.mat \
mat/data_036.mat \
meas_sr_geophone.m;
rm meas_sr_geophone.m;
fi
@ -231,9 +224,11 @@ We then compute the Power Spectral Density of the two signals and we compare the
** First Measurement without LPF
*** Measurement Description
**** Goal :ignore:
*Goal*:
- Determine if the noise induced by the slip-ring is a limiting factor when measuring the signal coming from a geophone
**** Setup :ignore:
*Setup*:
- The geophone is located at the sample location
- The two Voltage amplifiers have the same following settings:
@ -244,6 +239,7 @@ We then compute the Power Spectral Density of the two signals and we compare the
- One part goes directly to the voltage amplifier and then to the ADC
- The other part goes to the slip-ring=>voltage amplifier=>ADC
**** Measurements :ignore:
*Measurements*:
Two measurements are done:
| Measurement File | Description |
@ -414,9 +410,11 @@ Then the Slip-Ring is OFF, we don't observe this noise at 40kHz anymore (figure
** New measurements with a LPF before the Voltage Amplifiers
*** Setup description
**** Goal :ignore:
*Goal*:
The goal is to see if we can remove high frequency noise from the signals before the voltage amplifiers in order to not saturate them.
**** Setup :ignore:
*Setup*:
We are measuring the signal from a geophone put at the sample position.
Using a BNC slitter, one part is going directly to the Low pass filter, voltage amplifier and ADC (first column), the other part is going through the slip ring before the low pass filter and the voltage amplifier (second column).
@ -434,6 +432,7 @@ The low pass filter is a first order low pass filter RC circuit. It is added bef
And the cut-off frequency is $f_c = \frac{1}{RC} = 160Hz$.
**** Measurements :ignore:
*Measurements*:
Two measurements are done:
| Measurement File | Description |
@ -538,7 +537,7 @@ Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:
xlim([0.1, 500]);
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'soutwest');
legend('Location', 'southwest');
#+end_src
#+NAME: fig:sr_lpf_geophone_asd
@ -574,7 +573,10 @@ Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:
- We here observe a signal at $50Hz$ and its harmonics
#+end_important
* TODO New LPF at 1kHz
** Measurement of the noise induced by the slip-ring with additional LPF at 1kHz
*** Measurement description
**** Setup :ignore:
*Setup*:
Voltage amplifier:
- 60db
- AC
@ -582,315 +584,90 @@ Voltage amplifier:
Additionnal LPF at 1kHz
- meas35: All off
- meas36: slip-ring ON
geophone at the sample location
slit into 2 BNC:
- first one (column one): direct wire
- second one (second column): slip-ring wire
Each of the signal is amplified by voltage amplifier:
- 60db
- AC
- 1kHz
Additionnal LPF is added before the voltage amplifiers
* Effect of the rotation of the Slip-Ring - Noise
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_effect_sr.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_effect_sr>>
** ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/meas_effect_sr.m -nt data/meas_effect_sr.zip ]; then
cp matlab/meas_effect_sr.m meas_effect_sr.m;
zip data/meas_effect_sr \
mat/data_001.mat \
mat/data_002.mat \
meas_effect_sr.m;
rm meas_effect_sr.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_effect_sr.zip][here]].
#+end_note
** Measurement Description
**** Goal :ignore:
*Goal*:
The goal is to determine if the signal is altered when the spindle is rotating.
*Setup*:
Random Signal is generated by one SpeedGoat DAC.
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
All the stages are turned OFF except the Slip-Ring.
**** Measurements :ignore:
*Measurements*:
| Data File | Description |
|--------------------+------------------------------|
| =mat/data_001.mat= | Slip-ring not turning but ON |
| =mat/data_002.mat= | Slip-ring turning at 1rpm |
For each measurement, the measured signals are:
| Variable | Description |
|----------+------------------------------------|
| =t= | Time vector |
| =x1= | Direct signal |
| =x2= | Signal going through the Slip-Ring |
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
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]]
#+begin_src matlab :results none
dt = sr_on.t(2) - sr_on.t(1);
Fs = 1/dt; % [Hz]
win = hanning(ceil(1*Fs));
#+end_src
#+begin_src matlab :results none
[pxx_on, f] = pwelch(sr_on.x1 - sr_on.x2, win, [], [], Fs);
[pxx_off, ~] = pwelch(sr_off.x1 - sr_off.x2, win, [], [], Fs);
#+end_src
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxx_on), 'DisplayName', 'Slip-Ring - $\omega = 1rpm$');
plot(f, sqrt(pxx_off),'DisplayName', 'Slip-Ring off');
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD $\left[\frac{V}{\sqrt{Hz}}\right]$');
legend('Location', 'northeast');
xlim([1, 500]); ylim([1e-5, 1e-3])
#+end_src
#+NAME: fig:psd_noise
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/psd_noise.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:psd_noise
#+CAPTION: ASD of the measured noise
#+RESULTS: fig:psd_noise
[[file:figs/psd_noise.png]]
** Conclusion
#+begin_note
- The measurement is mostly limited by the resolution of the Speedgoat DAC (16bits over $\pm 10 V$)
- In section [[sec:meas_slip_ring]], the same measurement is done but voltage amplifiers are added to amplify the noise
#+end_note
* Measure of the noise induced by the Slip-Ring using voltage amplifiers - Noise
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_slip_ring.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_slip_ring>>
** ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/meas_slip_ring.m -nt data/meas_slip_ring.zip ]; then
cp matlab/meas_slip_ring.m meas_slip_ring.m;
zip data/meas_slip_ring \
mat/data_008.mat \
mat/data_009.mat \
mat/data_010.mat \
mat/data_011.mat \
meas_slip_ring.m;
rm meas_slip_ring.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_slip_ring.zip][here]].
#+end_note
** Measurement Description
*Goal*:
- Determine the noise induced by the slip-ring when turned ON and when rotating
*Setup*:
- 0V is generated by one Speedgoat DAC
- Using a T, one part goes directly to one Speedgoat ADC
- The other part goes to the slip-ring 2 times and then to one voltage amplifier before going to the ADC
- The parameters of the Voltage Amplifier are:
- gain of 80dB
- AC/DC option to AC (it adds an high pass filter at 1.5Hz at the input of the voltage amplifier)
- Output Low pass filter set at 1kHz
- Every stage of the station is OFF
First column: Direct measure
Second column: Slip-ring measure
*Measurements*:
| Data File | Description |
|--------------------+------------------------------|
| =mat/data_008.mat= | Slip-Ring OFF |
| =mat/data_009.mat= | Slip-Ring ON |
| =mat/data_010.mat= | Slip-Ring ON and omega=6rpm |
| =mat/data_011.mat= | Slip-Ring ON and omega=60rpm |
Three measurements are done:
| Measurement File | Description |
|--------------------+--------------|
| =mat/data_035.mat= | All off |
| =mat/data_036.mat= | Slip-Ring ON |
Each of the measurement =mat= file contains one =data= array with 3 columns:
| Column number | Description |
|---------------+------------------------------------|
| 1 | Signal going directly to the ADC |
| 2 | Signal going through the Slip-Ring |
| 3 | Time |
| Column number | Description |
|---------------+----------------|
| 1 | Direct Wire |
| 2 | Slip-Ring Wire |
| 3 | Time |
#+name: fig:setup_sr_6rpm
#+caption: Slip-Ring rotating at 6rpm
[[file:./img/VID_20190503_160831.gif]]
#+name: fig:setup_sr_60rpm
#+caption: Slip-Ring rotating at 60rpm
[[file:./img/VID_20190503_161401.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>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
** Load data
*** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
sr_off = load('mat/data_008.mat', 'data'); sr_off = sr_off.data;
sr_on = load('mat/data_009.mat', 'data'); sr_on = sr_on.data;
sr_6r = load('mat/data_010.mat', 'data'); sr_6r = sr_6r.data;
sr_60r = load('mat/data_011.mat', 'data'); sr_60r = sr_60r.data;
sr_lpf_1khz_of = load('mat/data_035.mat', 'data'); sr_lpf_1khz_of = sr_lpf_1khz_of.data;
sr_lpf_1khz_on = load('mat/data_036.mat', 'data'); sr_lpf_1khz_on = sr_lpf_1khz_on.data;
#+end_src
** Time Domain
We plot the time domain data for the direct measurement (figure [[fig:sr_direct_time]]) and for the signal going through the slip-ring (figure [[fig:sr_slipring_time]]);
*** Time Domain
We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_lpf_1khz_geophone_time_off]]) and when it is ON (figure [[fig:sr_lpf_1khz_geophone_time_on]]).
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(sr_60r(:, 3), sr_60r(:, 1), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 1), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 1), 'DisplayName', 'ON');
plot(sr_off(:, 3), sr_off(:, 1), 'DisplayName', 'OFF');
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 1)-mean(sr_lpf_1khz_of(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 2)-mean(sr_lpf_1khz_of(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]'); ylabel('Voltage [V]');
#+end_src
#+NAME: fig:sr_direct_time
#+NAME: fig:sr_lpf_1khz_geophone_time_off
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_direct_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
#+begin_src matlab :var filepath="figs/sr_lpf_1khz_geophone_time_off.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_direct_time
#+CAPTION: Direct measurement
#+RESULTS: fig:sr_direct_time
[[file:figs/sr_direct_time.png]]
#+NAME: fig:sr_lpf_1khz_geophone_time_off
#+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
#+RESULTS: fig:sr_lpf_1khz_geophone_time_off
[[file:figs/sr_lpf_1khz_geophone_time_off.png]]
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(sr_60r(:, 3), sr_60r(:, 2), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 2), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 2), 'DisplayName', 'ON');
plot(sr_off(:, 3), sr_off(:, 2), 'DisplayName', 'OFF');
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 1)-mean(sr_lpf_1khz_on(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 2)-mean(sr_lpf_1khz_on(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]'); ylabel('Voltage [V]');
#+end_src
#+NAME: fig:sr_slipring_time
#+NAME: fig:sr_lpf_1khz_geophone_time_on
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_slipring_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
#+begin_src matlab :var filepath="figs/sr_lpf_1khz_geophone_time_on.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_slipring_time
#+CAPTION: Measurement of the signal going through the Slip-Ring
#+RESULTS: fig:sr_slipring_time
[[file:figs/sr_slipring_time.png]]
#+NAME: fig:sr_lpf_1khz_geophone_time_on
#+CAPTION: Comparison of the time domain signals when the slip-ring is ON
#+RESULTS: fig:sr_lpf_1khz_geophone_time_on
[[file:figs/sr_lpf_1khz_geophone_time_on.png]]
** Frequency Domain
*** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = sr_off(2, 3)-sr_off(1, 3);
dt = sr_lpf_1khz_of(2, 3)-sr_lpf_1khz_of(1, 3);
Fs = 1/dt; % [Hz]
@ -899,87 +676,44 @@ We first compute some parameters that will be used for the PSD computation.
Then we compute the Power Spectral Density using =pwelch= function.
#+begin_src matlab :results none
[pxdir, f] = pwelch(sr_off(:, 1), win, [], [], Fs);
[pxoff, ~] = pwelch(sr_off(:, 2), win, [], [], Fs);
[pxon, ~] = pwelch(sr_on(:, 2), win, [], [], Fs);
[px6r, ~] = pwelch(sr_6r(:, 2), win, [], [], Fs);
[px60r, ~] = pwelch(sr_60r(:, 2), win, [], [], Fs);
% Direct measure
[pxdi_lpf_1khz_of, f] = pwelch(sr_lpf_1khz_of(:, 1), win, [], [], Fs);
[pxdi_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 1), win, [], [], Fs);
% Slip-Ring measure
[pxsr_lpf_1khz_of, ~] = pwelch(sr_lpf_1khz_of(:, 2), win, [], [], Fs);
[pxsr_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 2), win, [], [], Fs);
#+end_src
And we plot the ASD of the measured signals (figure [[fig:sr_psd_compare]]);
Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_lpf_1khz_geophone_asd]]);
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(pxoff), 'DisplayName', 'OFF');
plot(f, sqrt(pxon), 'DisplayName', 'ON');
plot(f, sqrt(px6r), 'DisplayName', '6rpm');
plot(f, sqrt(px60r), 'DisplayName', '60rpm');
plot(f, sqrt(pxdir), 'k-', 'DisplayName', 'Direct');
plot(f, sqrt(pxdi_lpf_1khz_of), 'DisplayName', 'Direct - OFF');
plot(f, sqrt(pxsr_lpf_1khz_of), 'DisplayName', 'Slip-Ring - OFF');
plot(f, sqrt(pxdi_lpf_1khz_on), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxsr_lpf_1khz_on), 'DisplayName', 'Slip-Ring - ON');
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]$')
legend('Location', 'northeast');
xlim([0.1, 500]);
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'southwest');
#+end_src
#+NAME: fig:sr_psd_compare
#+NAME: fig:sr_lpf_1khz_geophone_asd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_psd_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
#+begin_src matlab :var filepath="figs/sr_lpf_1khz_geophone_asd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_psd_compare
#+CAPTION: Comparison of the ASD of the measured signals when the slip-ring is ON, OFF and turning
#+RESULTS: fig:sr_psd_compare
[[file:figs/sr_psd_compare.png]]
#+NAME: fig:sr_lpf_1khz_geophone_asd
#+CAPTION: Comparison of the Amplitude Spectral Sensity
#+RESULTS: fig:sr_lpf_1khz_geophone_asd
[[file:figs/sr_lpf_1khz_geophone_asd.png]]
#+begin_note
*Questions:*
- Why is there some sharp peaks? Can this be due to aliasing?
- It is possible that the amplifiers were saturating during the measurements. This saturation could be due to high frequency noise.
#+end_note
** Conclusion
*** Conclusion
#+begin_important
- The measurements are re-done using an additional low pass filter at the input of the voltage amplifier
- Using the LPF, we don't see any additional noise coming from the slip-ring when it is turned ON
- We here observe a signal at $50Hz$ and its harmonics
#+end_important
* TODO Measure of the noise induced by the Slip-Ring rotation - LPF added
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_slip_ring_lpf.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_slip_ring_lpf>>
** ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/meas_slip_ring_lpf.m -nt data/meas_slip_ring_lpf.zip ]; then
cp matlab/meas_slip_ring_lpf.m meas_slip_ring_lpf.m;
zip data/meas_slip_ring_lpf \
mat/data.mat \
meas_slip_ring_lpf.m
rm meas_slip_ring_lpf.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_slip_ring_lpf.zip][here]].
#+end_note
** Description
Voltage amplifier:
- 60db
- AC
- 1kHz
Additionnal LPF at 1kHz
- meas30: All off
- meas31: Slip-ring on
- meas32: slip-ring 6rpm
- meas33: slip-ring 60rpm
Channel 1: direct
Channel 2: slip-ring

View File

@ -1,6 +1,3 @@
% Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/slip-ring-test/';
%% Clear Workspace and Close figures
clear; close all; clc;

View File

@ -1,6 +1,3 @@
% Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/slip-ring-test/';
%% Clear Workspace and Close figures
clear; close all; clc;

View File

@ -1,12 +1,3 @@
% Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/slip-ring-test/';
%% Go to current Directory
cd(current_dir);
%% Initialize ans with org-babel
ans = 0;
%% Clear Workspace and Close figures
clear; close all; clc;
@ -17,18 +8,17 @@ s = zpk('s');
% We load the data of the z axis of two geophones.
d8 = load('mat/data_018.mat', 'data'); d8 = d8.data;
d9 = load('mat/data_019.mat', 'data'); d9 = d9.data;
meas_sr = load('mat/data_018.mat', 'data'); meas_sr = meas_sr.data;
meas_di = load('mat/data_019.mat', 'data'); meas_di = meas_di.data;
% Analysis - Time Domain
% First, we compare the time domain signals for the two experiments (figure [[fig:slipring_time]]).
figure;
hold on;
plot(d9(:, 3), d9(:, 2), 'DisplayName', 'Slip-Ring');
plot(d8(:, 3), d8(:, 2), 'DisplayName', 'Wire');
plot(meas_di(:, 3), meas_di(:, 2), 'DisplayName', 'Geophone - Direct');
plot(meas_sr(:, 3), meas_sr(:, 2), 'DisplayName', 'Geophone - Slip-Ring');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 50]);
@ -37,18 +27,19 @@ legend('location', 'northeast');
% Analysis - Frequency Domain
% We then compute the Power Spectral Density of the two signals and we compare them (figure [[fig:slipring_asd]]).
dt = d8(2, 3) - d8(1, 3);
dt = meas_di(2, 3) - meas_di(1, 3);
Fs = 1/dt;
win = hanning(ceil(1*Fs));
win = hanning(ceil(5*Fs));
[pxx8, f] = pwelch(d8(:, 2), win, [], [], Fs);
[pxx9, ~] = pwelch(d9(:, 2), win, [], [], Fs);
[px_di, f] = pwelch(meas_di(:, 2), win, [], [], Fs);
[px_sr, ~] = pwelch(meas_sr(:, 2), win, [], [], Fs);
figure;
hold on;
plot(f, sqrt(pxx9), 'DisplayName', 'Slip-Ring');
plot(f, sqrt(pxx8), 'DisplayName', 'Wire');
plot(f, sqrt(px_sr), 'DisplayName', 'Slip-Ring');
plot(f, sqrt(px_di), 'DisplayName', 'Wire');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');

View File

@ -1,6 +1,3 @@
% Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/slip-ring-test/';
%% Clear Workspace and Close figures
clear; close all; clc;
@ -104,9 +101,10 @@ sr_lpf_on = load('mat/data_017.mat', 'data'); sr_lpf_on = sr_lpf_on.data;
figure;
hold on;
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 1), 'DisplayName', 'Direct');
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 2), 'DisplayName', 'Slip-Ring');
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 1)-mean(sr_lpf_off(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 2)-mean(sr_lpf_off(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
@ -121,9 +119,10 @@ ylabel('Voltage [V]');
figure;
hold on;
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 1), 'DisplayName', 'Direct');
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 2), 'DisplayName', 'Slip-Ring');
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 1)-mean(sr_lpf_on(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 2)-mean(sr_lpf_on(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
@ -156,16 +155,15 @@ win = hanning(ceil(10*Fs));
figure;
hold on;
plot(f, sqrt(pxd_lpf_off), 'DisplayName', 'Direct - OFF');
plot(f, sqrt(pxd_lpf_off), 'DisplayName', 'Direct - OFF');
plot(f, sqrt(pxsr_lpf_off), 'DisplayName', 'Slip-Ring - OFF');
plot(f, sqrt(pxd_lpf_on), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxd_lpf_on), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxsr_lpf_on), 'DisplayName', 'Slip-Ring - ON');
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]$')
legend('Location', 'northeast');
xlim([0.1, 500]);
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'southwest');
@ -177,17 +175,76 @@ xlim([0.1, 500]);
xlim([100, 500]);
% Comparison of with and without LPF
% Load data
% We load the data of the z axis of two geophones.
sr_lpf_1khz_of = load('mat/data_035.mat', 'data'); sr_lpf_1khz_of = sr_lpf_1khz_of.data;
sr_lpf_1khz_on = load('mat/data_036.mat', 'data'); sr_lpf_1khz_on = sr_lpf_1khz_on.data;
% Time Domain
% We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_lpf_1khz_geophone_time_off]]) and when it is ON (figure [[fig:sr_lpf_1khz_geophone_time_on]]).
figure;
hold on;
plot(f, sqrt(pxdon), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxsron), 'DisplayName', 'Slip-Ring - ON');
plot(f, sqrt(pxd_lpf_on), 'DisplayName', 'Direct - ON - LPF');
plot(f, sqrt(pxsr_lpf_on), 'DisplayName', 'Slip-Ring - ON - LPF');
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 1)-mean(sr_lpf_1khz_of(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 2)-mean(sr_lpf_1khz_of(:, 2)), 'DisplayName', 'Slip-Ring');
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]$')
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]'); ylabel('Voltage [V]');
% #+NAME: fig:sr_lpf_1khz_geophone_time_off
% #+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
% #+RESULTS: fig:sr_lpf_1khz_geophone_time_off
% [[file:figs/sr_lpf_1khz_geophone_time_off.png]]
figure;
hold on;
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 1)-mean(sr_lpf_1khz_on(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 2)-mean(sr_lpf_1khz_on(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]'); ylabel('Voltage [V]');
% Frequency Domain
% We first compute some parameters that will be used for the PSD computation.
dt = sr_lpf_1khz_of(2, 3)-sr_lpf_1khz_of(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
% Direct measure
[pxdi_lpf_1khz_of, f] = pwelch(sr_lpf_1khz_of(:, 1), win, [], [], Fs);
[pxdi_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 1), win, [], [], Fs);
% Slip-Ring measure
[pxsr_lpf_1khz_of, ~] = pwelch(sr_lpf_1khz_of(:, 2), win, [], [], Fs);
[pxsr_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 2), win, [], [], Fs);
% Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_lpf_1khz_geophone_asd]]);
figure;
hold on;
plot(f, sqrt(pxdi_lpf_1khz_of), 'DisplayName', 'Direct - OFF');
plot(f, sqrt(pxsr_lpf_1khz_of), 'DisplayName', 'Slip-Ring - OFF');
plot(f, sqrt(pxdi_lpf_1khz_on), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxsr_lpf_1khz_on), 'DisplayName', 'Slip-Ring - ON');
hold off;
xlim([0.1, 500]);
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'southwest');

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -0,0 +1 @@
*.mp4

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

View File

@ -0,0 +1,3 @@
invalid color string: rgba(50, 48, 47)
(termite:25037): GLib-WARNING **: 14:10:26.520: GChildWatchSource: Exit status of a child process was requested but ECHILD was received by waitpid(). See the documentation of g_child_watch_source_new() for possible causes.

Binary file not shown.

View File

@ -0,0 +1,616 @@
#+TITLE: Measurements On the Slip-Ring
:DRAWER:
#+STARTUP: overview
#+LANGUAGE: en
#+EMAIL: dehaeze.thomas@gmail.com
#+AUTHOR: Dehaeze Thomas
#+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script>
#+HTML_MATHJAX: align: center tagside: right font: TeX
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs
#+PROPERTY: header-args:shell :eval no-export
:END:
We determine if the slip-ring add some noise to the signal when it is turning:
- Section [[sec:meas_effect_sr]]:
- Noise is generated by the Speedgoat DAC and goes trough the slip-ring two times
- We measure the signal when it is OFF, ON but not turning and ON and turning
- However, the measurement is limited by the ADC noise
- Section [[sec:meas_slip_ring]]:
- Voltage amplifiers are added, and the same measurements are done
- However, the voltage amplifiers are saturating because of high frequency noise
- Section [[sec:meas_slip_ring_lpf]]:
- Low pass filter are added at the input of the voltage amplifier and the same measurement is done
* Effect of the rotation of the Slip-Ring - Noise
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_effect_sr.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_effect_sr>>
** ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/meas_effect_sr.m -nt data/meas_effect_sr.zip ]; then
cp matlab/meas_effect_sr.m meas_effect_sr.m;
zip data/meas_effect_sr \
mat/data_001.mat \
mat/data_002.mat \
meas_effect_sr.m;
rm meas_effect_sr.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_effect_sr.zip][here]].
#+end_note
** Measurement Description
*Goal*:
The goal is to determine if the signal is altered when the spindle is rotating.
*Setup*:
Random Signal is generated by one SpeedGoat DAC.
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
All the stages are turned OFF except the Slip-Ring.
*Measurements*:
| Data File | Description |
|--------------------+------------------------------|
| =mat/data_001.mat= | Slip-ring not turning but ON |
| =mat/data_002.mat= | Slip-ring turning at 1rpm |
For each measurement, the measured signals are:
| Variable | Description |
|----------+------------------------------------|
| =t= | Time vector |
| =x1= | Direct signal |
| =x2= | Signal going through the Slip-Ring |
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
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]]
#+begin_src matlab :results none
dt = sr_on.t(2) - sr_on.t(1);
Fs = 1/dt; % [Hz]
win = hanning(ceil(1*Fs));
#+end_src
#+begin_src matlab :results none
[pxx_on, f] = pwelch(sr_on.x1 - sr_on.x2, win, [], [], Fs);
[pxx_off, ~] = pwelch(sr_off.x1 - sr_off.x2, win, [], [], Fs);
#+end_src
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxx_on), 'DisplayName', 'Slip-Ring - $\omega = 1rpm$');
plot(f, sqrt(pxx_off),'DisplayName', 'Slip-Ring off');
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD $\left[\frac{V}{\sqrt{Hz}}\right]$');
legend('Location', 'northeast');
xlim([1, 500]); ylim([1e-5, 1e-3])
#+end_src
#+NAME: fig:psd_noise
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/psd_noise.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:psd_noise
#+CAPTION: ASD of the measured noise
#+RESULTS: fig:psd_noise
[[file:figs/psd_noise.png]]
** Conclusion
#+begin_note
- The measurement is mostly limited by the resolution of the Speedgoat DAC (16bits over $\pm 10 V$)
- In section [[sec:meas_slip_ring]], the same measurement is done but voltage amplifiers are added to amplify the noise
#+end_note
* Measure of the noise induced by the Slip-Ring using voltage amplifiers - Noise
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_slip_ring.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_slip_ring>>
** ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/meas_slip_ring.m -nt data/meas_slip_ring.zip ]; then
cp matlab/meas_slip_ring.m meas_slip_ring.m;
zip data/meas_slip_ring \
mat/data_008.mat \
mat/data_009.mat \
mat/data_010.mat \
mat/data_011.mat \
meas_slip_ring.m;
rm meas_slip_ring.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_slip_ring.zip][here]].
#+end_note
** Measurement Description
*Goal*:
- Determine the noise induced by the slip-ring when turned ON and when rotating
*Setup*:
- 0V is generated by one Speedgoat DAC
- Using a T, one part goes directly to one Speedgoat ADC
- The other part goes to the slip-ring 2 times and then to one voltage amplifier before going to the ADC
- The parameters of the Voltage Amplifier are:
- gain of 80dB
- AC/DC option to AC (it adds an high pass filter at 1.5Hz at the input of the voltage amplifier)
- Output Low pass filter set at 1kHz
- Every stage of the station is OFF
First column: Direct measure
Second column: Slip-ring measure
*Measurements*:
| Data File | Description |
|--------------------+------------------------------|
| =mat/data_008.mat= | Slip-Ring OFF |
| =mat/data_009.mat= | Slip-Ring ON |
| =mat/data_010.mat= | Slip-Ring ON and omega=6rpm |
| =mat/data_011.mat= | Slip-Ring ON and omega=60rpm |
Each of the measurement =mat= file contains one =data= array with 3 columns:
| Column number | Description |
|---------------+------------------------------------|
| 1 | Signal going directly to the ADC |
| 2 | Signal going through the Slip-Ring |
| 3 | Time |
#+name: fig:setup_sr_6rpm
#+caption: Slip-Ring rotating at 6rpm
[[file:./img/VID_20190503_160831.gif]]
#+name: fig:setup_sr_60rpm
#+caption: Slip-Ring rotating at 60rpm
[[file:./img/VID_20190503_161401.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>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
sr_off = load('mat/data_008.mat', 'data'); sr_off = sr_off.data;
sr_on = load('mat/data_009.mat', 'data'); sr_on = sr_on.data;
sr_6r = load('mat/data_010.mat', 'data'); sr_6r = sr_6r.data;
sr_60r = load('mat/data_011.mat', 'data'); sr_60r = sr_60r.data;
#+end_src
** Time Domain
We plot the time domain data for the direct measurement (figure [[fig:sr_direct_time]]) and for the signal going through the slip-ring (figure [[fig:sr_slipring_time]]);
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(sr_60r(:, 3), sr_60r(:, 1), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 1), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 1), 'DisplayName', 'ON');
plot(sr_off(:, 3), sr_off(:, 1), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
legend('Location', 'northeast');
#+end_src
#+NAME: fig:sr_direct_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_direct_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_direct_time
#+CAPTION: Direct measurement
#+RESULTS: fig:sr_direct_time
[[file:figs/sr_direct_time.png]]
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(sr_60r(:, 3), sr_60r(:, 2), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 2), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 2), 'DisplayName', 'ON');
plot(sr_off(:, 3), sr_off(:, 2), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
legend('Location', 'northeast');
#+end_src
#+NAME: fig:sr_slipring_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_slipring_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_slipring_time
#+CAPTION: Measurement of the signal going through the Slip-Ring
#+RESULTS: fig:sr_slipring_time
[[file:figs/sr_slipring_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = sr_off(2, 3)-sr_off(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
Then we compute the Power Spectral Density using =pwelch= function.
#+begin_src matlab :results none
[pxdir, f] = pwelch(sr_off(:, 1), win, [], [], Fs);
[pxoff, ~] = pwelch(sr_off(:, 2), win, [], [], Fs);
[pxon, ~] = pwelch(sr_on(:, 2), win, [], [], Fs);
[px6r, ~] = pwelch(sr_6r(:, 2), win, [], [], Fs);
[px60r, ~] = pwelch(sr_60r(:, 2), win, [], [], Fs);
#+end_src
And we plot the ASD of the measured signals (figure [[fig:sr_psd_compare]]);
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(pxoff), 'DisplayName', 'OFF');
plot(f, sqrt(pxon), 'DisplayName', 'ON');
plot(f, sqrt(px6r), 'DisplayName', '6rpm');
plot(f, sqrt(px60r), 'DisplayName', '60rpm');
plot(f, sqrt(pxdir), 'k-', 'DisplayName', 'Direct');
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]$')
legend('Location', 'northeast');
xlim([0.1, 500]);
#+end_src
#+NAME: fig:sr_psd_compare
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_psd_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_psd_compare
#+CAPTION: Comparison of the ASD of the measured signals when the slip-ring is ON, OFF and turning
#+RESULTS: fig:sr_psd_compare
[[file:figs/sr_psd_compare.png]]
#+begin_note
*Questions:*
- Why is there some sharp peaks? Can this be due to aliasing?
- It is possible that the amplifiers were saturating during the measurements. This saturation could be due to high frequency noise.
#+end_note
** Conclusion
#+begin_important
- The measurements are re-done using an additional low pass filter at the input of the voltage amplifier
#+end_important
* Measure of the noise induced by the Slip-Ring rotation - LPF added
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_slip_ring_lpf.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_slip_ring_lpf>>
** ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/meas_slip_ring_lpf.m -nt data/meas_slip_ring_lpf.zip ]; then
cp matlab/meas_slip_ring_lpf.m meas_slip_ring_lpf.m;
zip data/meas_slip_ring_lpf \
mat/data_030.mat \
mat/data_031.mat \
mat/data_032.mat \
mat/data_033.mat \
meas_slip_ring_lpf.m
rm meas_slip_ring_lpf.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_slip_ring_lpf.zip][here]].
#+end_note
** Measurement description
*** Setup :ignore:
*Setup*:
Voltage amplifier:
- 60db
- AC
- 1kHz
Additionnal LPF at 1kHz
*** Goal :ignore:
*Goal*:
*** Measurements :ignore:
*Measurements*:
Three measurements are done:
| Measurement File | Description |
|--------------------+-----------------|
| =mat/data_030.mat= | All off |
| =mat/data_031.mat= | Slip-Ring on |
| =mat/data_032.mat= | Slip-Ring 6rpm |
| =mat/data_033.mat= | Slip-Ring 60rpm |
Each of the measurement =mat= file contains one =data= array with 3 columns:
| Column number | Description |
|---------------+----------------|
| 1 | Direct Measure |
| 2 | Slip-Ring |
| 3 | Time |
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
sr_of = load('mat/data_030.mat', 'data'); sr_of = sr_of.data;
sr_on = load('mat/data_031.mat', 'data'); sr_on = sr_on.data;
sr_6r = load('mat/data_032.mat', 'data'); sr_6r = sr_6r.data;
sr_60 = load('mat/data_033.mat', 'data'); sr_60 = sr_60.data;
#+end_src
** Time Domain
We plot the time domain data for the direct measurement (figure [[fig:sr_direct_1khz_time]]) and for the signal going through the slip-ring (figure [[fig:sr_slipring_1khz_time]]);
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(sr_60(:, 3), sr_60(:, 1), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 1), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 1), 'DisplayName', 'ON');
plot(sr_of(:, 3), sr_of(:, 1), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 100]);
legend('Location', 'northeast');
#+end_src
#+NAME: fig:sr_direct_1khz_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_direct_1khz_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_direct_1khz_time
#+CAPTION: Direct measurement
#+RESULTS: fig:sr_direct_1khz_time
[[file:figs/sr_direct_1khz_time.png]]
#+begin_src matlab
xlim([0, 0.2]); ylim([-2e-3, 2e-3]);
#+end_src
#+NAME: fig:sr_direct_1khz_time_zoom
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_direct_1khz_time_zoom.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_direct_1khz_time_zoom
#+CAPTION: Direct measurement - Zoom
#+RESULTS: fig:sr_direct_1khz_time_zoom
[[file:figs/sr_direct_1khz_time_zoom.png]]
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(sr_60(:, 3), sr_60(:, 2), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 2), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 2), 'DisplayName', 'ON');
plot(sr_of(:, 3), sr_of(:, 2), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 100]);
legend('Location', 'northeast');
#+end_src
#+NAME: fig:sr_slipring_1khz_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_slipring_1khz_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_slipring_1khz_time
#+CAPTION: Measurement of the signal going through the Slip-Ring
#+RESULTS: fig:sr_slipring_1khz_time
[[file:figs/sr_slipring_1khz_time.png]]
** Frequency Domain - Direct Signal
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = sr_of(2, 3)-sr_of(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
Then we compute the Power Spectral Density using =pwelch= function.
#+begin_src matlab :results none
[px_d_of, f] = pwelch(sr_of(:, 1), win, [], [], Fs);
[px_d_on, ~] = pwelch(sr_on(:, 1), win, [], [], Fs);
[px_d_6r, ~] = pwelch(sr_6r(:, 1), win, [], [], Fs);
[px_d_60, ~] = pwelch(sr_60(:, 1), win, [], [], Fs);
#+end_src
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(px_d_of), 'DisplayName', 'OFF');
plot(f, sqrt(px_d_on), 'DisplayName', 'ON');
plot(f, sqrt(px_d_6r), 'DisplayName', '6rpm');
plot(f, sqrt(px_d_60), 'DisplayName', '60rpm');
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]$')
legend('Location', 'northeast');
xlim([0.1, 5000]);
#+end_src
#+NAME: fig:sr_psd_1khz_direct
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_psd_1khz_direct.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_psd_1khz_direct
#+CAPTION: Amplitude Spectral Density of the signal going directly to the ADC
#+RESULTS: fig:sr_psd_1khz_direct
[[file:figs/sr_psd_1khz_direct.png]]
** Frequency Domain - Slip-Ring Signal
#+begin_src matlab :results none
[px_sr_of, f] = pwelch(sr_of(:, 2), win, [], [], Fs);
[px_sr_on, ~] = pwelch(sr_on(:, 2), win, [], [], Fs);
[px_sr_6r, ~] = pwelch(sr_6r(:, 2), win, [], [], Fs);
[px_sr_60, ~] = pwelch(sr_60(:, 2), win, [], [], Fs);
#+end_src
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(px_sr_of), 'DisplayName', 'OFF');
plot(f, sqrt(px_sr_on), 'DisplayName', 'ON');
plot(f, sqrt(px_sr_6r), 'DisplayName', '6rpm');
plot(f, sqrt(px_sr_60), 'DisplayName', '60rpm');
plot(f, sqrt(px_d_of), '-k', 'DisplayName', 'Direct');
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]$')
legend('Location', 'northeast');
xlim([0.1, 5000]);
#+end_src
#+NAME: fig:sr_psd_1khz_slipring
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_psd_1khz_slipring.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_psd_1khz_slipring
#+CAPTION: Amplitude Spectral Density of the signal going through the slip-ring
#+RESULTS: fig:sr_psd_1khz_slipring
[[file:figs/sr_psd_1khz_slipring.png]]
** Conclusion
#+begin_important
- We observe peaks at 12Hz and its harmonics for the signal going through the slip-ring when it is turning at 60rpm.
- Apart from that, the noise of the signal is the same when the slip-ring is off/on and turning
- The noise of the signal going through the slip-ring is much higher that the direct signal from the DAC to the ADC
- A peak is obverse at 11.5Hz on the direct signal as soon as the slip-ring is turned ON. Can this be due to high frequency noise and Aliasing? As there is no LPF to filter the noise on the direct signal, this effect could be more visible on the direct signal.
#+end_important

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,67 @@
%% Clear Workspace and Close figures
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
% Load data
% We load the data of the z axis of two geophones.
sr_off = load('mat/data_001.mat', 't', 'x1', 'x2');
sr_on = load('mat/data_002.mat', 't', 'x1', 'x2');
% Analysis
% Let's first look at the signal produced by the DAC (figure [[fig:random_signal]]).
figure;
hold on;
plot(sr_on.t, sr_on.x1);
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0 10]);
% #+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]]).
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');
% #+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]]
dt = sr_on.t(2) - sr_on.t(1);
Fs = 1/dt; % [Hz]
win = hanning(ceil(1*Fs));
[pxx_on, f] = pwelch(sr_on.x1 - sr_on.x2, win, [], [], Fs);
[pxx_off, ~] = pwelch(sr_off.x1 - sr_off.x2, win, [], [], Fs);
figure;
hold on;
plot(f, sqrt(pxx_on), 'DisplayName', 'Slip-Ring - $\omega = 1rpm$');
plot(f, sqrt(pxx_off),'DisplayName', 'Slip-Ring off');
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD $\left[\frac{V}{\sqrt{Hz}}\right]$');
legend('Location', 'northeast');
xlim([1, 500]); ylim([1e-5, 1e-3])

View File

@ -0,0 +1,84 @@
%% Clear Workspace and Close figures
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
% Load data
% We load the data of the z axis of two geophones.
sr_off = load('mat/data_008.mat', 'data'); sr_off = sr_off.data;
sr_on = load('mat/data_009.mat', 'data'); sr_on = sr_on.data;
sr_6r = load('mat/data_010.mat', 'data'); sr_6r = sr_6r.data;
sr_60r = load('mat/data_011.mat', 'data'); sr_60r = sr_60r.data;
% Time Domain
% We plot the time domain data for the direct measurement (figure [[fig:sr_direct_time]]) and for the signal going through the slip-ring (figure [[fig:sr_slipring_time]]);
figure;
hold on;
plot(sr_60r(:, 3), sr_60r(:, 1), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 1), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 1), 'DisplayName', 'ON');
plot(sr_off(:, 3), sr_off(:, 1), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
legend('Location', 'northeast');
% #+NAME: fig:sr_direct_time
% #+CAPTION: Direct measurement
% #+RESULTS: fig:sr_direct_time
% [[file:figs/sr_direct_time.png]]
figure;
hold on;
plot(sr_60r(:, 3), sr_60r(:, 2), 'DisplayName', '60rpm');
plot(sr_6r(:, 3), sr_6r(:, 2), 'DisplayName', '6rpm');
plot(sr_on(:, 3), sr_on(:, 2), 'DisplayName', 'ON');
plot(sr_off(:, 3), sr_off(:, 2), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
legend('Location', 'northeast');
% Frequency Domain
% We first compute some parameters that will be used for the PSD computation.
dt = sr_off(2, 3)-sr_off(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
[pxdir, f] = pwelch(sr_off(:, 1), win, [], [], Fs);
[pxoff, ~] = pwelch(sr_off(:, 2), win, [], [], Fs);
[pxon, ~] = pwelch(sr_on(:, 2), win, [], [], Fs);
[px6r, ~] = pwelch(sr_6r(:, 2), win, [], [], Fs);
[px60r, ~] = pwelch(sr_60r(:, 2), win, [], [], Fs);
% And we plot the ASD of the measured signals (figure [[fig:sr_psd_compare]]);
figure;
hold on;
plot(f, sqrt(pxoff), 'DisplayName', 'OFF');
plot(f, sqrt(pxon), 'DisplayName', 'ON');
plot(f, sqrt(px6r), 'DisplayName', '6rpm');
plot(f, sqrt(px60r), 'DisplayName', '60rpm');
plot(f, sqrt(pxdir), 'k-', 'DisplayName', 'Direct');
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]$')
legend('Location', 'northeast');
xlim([0.1, 500]);

View File

@ -0,0 +1,48 @@
%% Clear Workspace and Close figures
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
% Load data
% We load the data of the z axis of two geophones.
meas_sr = load('mat/data_018.mat', 'data'); meas_sr = meas_sr.data;
meas_di = load('mat/data_019.mat', 'data'); meas_di = meas_di.data;
% Analysis - Time Domain
% First, we compare the time domain signals for the two experiments (figure [[fig:slipring_time]]).
figure;
hold on;
plot(meas_di(:, 3), meas_di(:, 2), 'DisplayName', 'Geophone - Direct');
plot(meas_sr(:, 3), meas_sr(:, 2), 'DisplayName', 'Geophone - Slip-Ring');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 50]);
legend('location', 'northeast');
% Analysis - Frequency Domain
% We then compute the Power Spectral Density of the two signals and we compare them (figure [[fig:slipring_asd]]).
dt = meas_di(2, 3) - meas_di(1, 3);
Fs = 1/dt;
win = hanning(ceil(5*Fs));
[px_di, f] = pwelch(meas_di(:, 2), win, [], [], Fs);
[px_sr, ~] = pwelch(meas_sr(:, 2), win, [], [], Fs);
figure;
hold on;
plot(f, sqrt(px_sr), 'DisplayName', 'Slip-Ring');
plot(f, sqrt(px_di), 'DisplayName', 'Wire');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
xlim([1, 500]);
legend('Location', 'southwest');

View File

@ -0,0 +1,250 @@
%% Clear Workspace and Close figures
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
% Load data
% We load the data of the z axis of two geophones.
sr_off = load('mat/data_012.mat', 'data'); sr_off = sr_off.data;
sr_on = load('mat/data_013.mat', 'data'); sr_on = sr_on.data;
% Time Domain
% We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_geophone_time_off]]) and when it is ON (figure [[fig:sr_geophone_time_on]]).
figure;
hold on;
plot(sr_off(:, 3), sr_off(:, 1), 'DisplayName', 'Direct');
plot(sr_off(:, 3), sr_off(:, 2), 'DisplayName', 'Slip-Ring');
hold off;
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
% #+NAME: fig:sr_geophone_time_off
% #+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
% #+RESULTS: fig:sr_geophone_time_off
% [[file:figs/sr_geophone_time_off.png]]
figure;
hold on;
plot(sr_on(:, 3), sr_on(:, 1), 'DisplayName', 'Direct');
plot(sr_on(:, 3), sr_on(:, 2), 'DisplayName', 'Slip-Ring');
hold off;
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
% Frequency Domain
% We first compute some parameters that will be used for the PSD computation.
dt = sr_off(2, 3)-sr_off(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
% Direct measure
[pxdoff, ~] = pwelch(sr_off(:, 1), win, [], [], Fs);
[pxdon, ~] = pwelch(sr_on(:, 1), win, [], [], Fs);
% Slip-Ring measure
[pxsroff, f] = pwelch(sr_off(:, 2), win, [], [], Fs);
[pxsron, ~] = pwelch(sr_on(:, 2), win, [], [], Fs);
% Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_geophone_asd]]);
figure;
hold on;
plot(f, sqrt(pxdoff), 'DisplayName', 'Direct - OFF');
plot(f, sqrt(pxsroff), 'DisplayName', 'Slip-Ring - OFF');
plot(f, sqrt(pxdon), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxsron), 'DisplayName', 'Slip-Ring - ON');
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]$')
legend('Location', 'northeast');
xlim([0.1, 500]);
% #+NAME: fig:sr_geophone_asd
% #+CAPTION: Comparison of the Amplitude Spectral Sensity
% #+RESULTS: fig:sr_geophone_asd
% [[file:figs/sr_geophone_asd.png]]
xlim([100, 500]);
% Load data
% We load the data of the z axis of two geophones.
sr_lpf_off = load('mat/data_016.mat', 'data'); sr_lpf_off = sr_lpf_off.data;
sr_lpf_on = load('mat/data_017.mat', 'data'); sr_lpf_on = sr_lpf_on.data;
% Time Domain
% We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_lpf_geophone_time_off]]) and when it is ON (figure [[fig:sr_lpf_geophone_time_on]]).
figure;
hold on;
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 1)-mean(sr_lpf_off(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 2)-mean(sr_lpf_off(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
% #+NAME: fig:sr_lpf_geophone_time_off
% #+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
% #+RESULTS: fig:sr_lpf_geophone_time_off
% [[file:figs/sr_lpf_geophone_time_off.png]]
figure;
hold on;
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 1)-mean(sr_lpf_on(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 2)-mean(sr_lpf_on(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
% Frequency Domain
% We first compute some parameters that will be used for the PSD computation.
dt = sr_lpf_off(2, 3)-sr_lpf_off(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
% Direct measure
[pxd_lpf_off, ~] = pwelch(sr_lpf_off(:, 1), win, [], [], Fs);
[pxd_lpf_on, ~] = pwelch(sr_lpf_on(:, 1), win, [], [], Fs);
% Slip-Ring measure
[pxsr_lpf_off, f] = pwelch(sr_lpf_off(:, 2), win, [], [], Fs);
[pxsr_lpf_on, ~] = pwelch(sr_lpf_on(:, 2), win, [], [], Fs);
% Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_lpf_geophone_asd]]);
figure;
hold on;
plot(f, sqrt(pxd_lpf_off), 'DisplayName', 'Direct - OFF');
plot(f, sqrt(pxsr_lpf_off), 'DisplayName', 'Slip-Ring - OFF');
plot(f, sqrt(pxd_lpf_on), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxsr_lpf_on), 'DisplayName', 'Slip-Ring - ON');
hold off;
xlim([0.1, 500]);
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'southwest');
% #+NAME: fig:sr_lpf_geophone_asd
% #+CAPTION: Comparison of the Amplitude Spectral Sensity
% #+RESULTS: fig:sr_lpf_geophone_asd
% [[file:figs/sr_lpf_geophone_asd.png]]
xlim([100, 500]);
% Load data
% We load the data of the z axis of two geophones.
sr_lpf_1khz_of = load('mat/data_035.mat', 'data'); sr_lpf_1khz_of = sr_lpf_1khz_of.data;
sr_lpf_1khz_on = load('mat/data_036.mat', 'data'); sr_lpf_1khz_on = sr_lpf_1khz_on.data;
% Time Domain
% We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_lpf_1khz_geophone_time_off]]) and when it is ON (figure [[fig:sr_lpf_1khz_geophone_time_on]]).
figure;
hold on;
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 1)-mean(sr_lpf_1khz_of(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 2)-mean(sr_lpf_1khz_of(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]'); ylabel('Voltage [V]');
% #+NAME: fig:sr_lpf_1khz_geophone_time_off
% #+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
% #+RESULTS: fig:sr_lpf_1khz_geophone_time_off
% [[file:figs/sr_lpf_1khz_geophone_time_off.png]]
figure;
hold on;
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 1)-mean(sr_lpf_1khz_on(:, 1)), 'DisplayName', 'Direct');
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 2)-mean(sr_lpf_1khz_on(:, 2)), 'DisplayName', 'Slip-Ring');
hold off;
xlim([0, 100]); ylim([-1, 1]);
legend('Location', 'northeast');
xlabel('Time [s]'); ylabel('Voltage [V]');
% Frequency Domain
% We first compute some parameters that will be used for the PSD computation.
dt = sr_lpf_1khz_of(2, 3)-sr_lpf_1khz_of(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
% Direct measure
[pxdi_lpf_1khz_of, f] = pwelch(sr_lpf_1khz_of(:, 1), win, [], [], Fs);
[pxdi_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 1), win, [], [], Fs);
% Slip-Ring measure
[pxsr_lpf_1khz_of, ~] = pwelch(sr_lpf_1khz_of(:, 2), win, [], [], Fs);
[pxsr_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 2), win, [], [], Fs);
% Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_lpf_1khz_geophone_asd]]);
figure;
hold on;
plot(f, sqrt(pxdi_lpf_1khz_of), 'DisplayName', 'Direct - OFF');
plot(f, sqrt(pxsr_lpf_1khz_of), 'DisplayName', 'Slip-Ring - OFF');
plot(f, sqrt(pxdi_lpf_1khz_on), 'DisplayName', 'Direct - ON');
plot(f, sqrt(pxsr_lpf_1khz_on), 'DisplayName', 'Slip-Ring - ON');
hold off;
xlim([0.1, 500]);
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'southwest');

View File

@ -0,0 +1,90 @@
* DONE Measure of the noise of the Voltage Amplifier
CLOSED: [2019-05-06 lun. 09:00]
- The two inputs (differential) of the voltage amplifier are shunted with 50Ohms
- The AC/DC option of the Voltage amplifier is on AC
- The low pass filter is set to 1hHz
Measure: Second Column
meas3: Ampli OFF
meas4: Ampli ON 20dB
meas5: Ampli ON 40dB
meas6: Ampli ON 60dB
meas7: Ampli ON 80dB
* DONE Measure of the noise induced by the Slip-Ring
CLOSED: [2019-05-06 lun. 09:28]
Setup:
- 0V is generated by the DAC of the Speedgoat
- Using a T, one part goes to ADC
- the other part goes to the slip-ring 2 times and then to the ADC
- Gain of the Voltage Amplifier: 80dB, AC, 1kHz
- Everything is OFF
We had some diffuculties to not have a lot of noise on the measurement.
First column: Direct measure
Second column: Slip-ring measure
Measurements:
- meas8: Slip-Ring OFF
- meas9: Slip-Ring ON
- meas10: Slip-Ring ON and omega=6rpm
- meas11: Slip-Ring ON and omega=60rpm
* DONE Measure of the noise induced by the slip ring when using a geophone
CLOSED: [2019-05-06 lun. 09:28]
The geophone is located at the sample location
The two Voltage amplifiers have the following settings:
- AC
- 60dB
- 1kHz
The signal from the geophone is split into two using a T-BNC.
On part goes directly to the voltage amplifier and then to the ADC.
The other part goes to the slip-ring=>voltage amplifier=>ADC.
The other two cables that go through the slip ring have 50Ohms resistors at one end, the other end is open circuit.
First column: Direct measure
Second column: Slip-ring measure
- meas12: Slip-Ring OFF
- meas13: Slip-Ring ON
Redone the measurements with 1kHz additional low pass filter:
- meas16: Slip-Ring OFF
- meas17: Slip-Ring ON
* DONE Measure of the influence of the AC/DC option on the voltage amplifiers
CLOSED: [2019-05-06 lun. 09:28]
One geophone is located on the marble.
It's signal goes to two voltage amplifiers with a gain of 60dB.
On voltage amplifier is on the AC option, the other on the DC option.
First column: AC
Second column: DC
- meas14: col-1 = amp1+AC. col-2 = amp2+DC.
- meas15: col-1 = amp1+DC. col-2 = amp2+AC.
* Measurement of the LPF
We are measuring the signal from from Geophone with a BNC T
On part goes to column 1 through the LPF
The other part goes to column 2 without the LPF
- meas18
New measurement with C = 150nF => fc = 1kHz
Voltage Ampli: 60dB, DC, 1kHz
- meas19
* Measure of the noise induced by the Slip-Ring - BIS
Same as before but with a LPF
Measurements:
- meas20: Slip-Ring OFF
- meas21: Slip-Ring ON
- meas22: Slip-Ring ON and omega=6rpm
- meas23: Slip-Ring ON and omega=60rpm