[WIP] Slip slip-ring measurements in two
BIN
slip-ring-electrical-noise/figs/sr_direct_1khz_time.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
slip-ring-electrical-noise/figs/sr_direct_1khz_time_zoom.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
slip-ring-electrical-noise/figs/sr_lpf_1khz_geophone_asd.png
Normal file
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 41 KiB |
BIN
slip-ring-electrical-noise/figs/sr_lpf_1khz_geophone_time_on.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
slip-ring-electrical-noise/figs/sr_psd_1khz_direct.png
Normal file
After Width: | Height: | Size: 169 KiB |
BIN
slip-ring-electrical-noise/figs/sr_psd_1khz_slipring.png
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
slip-ring-electrical-noise/figs/sr_slipring_1khz_time.png
Normal file
After Width: | Height: | Size: 59 KiB |
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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');
|
||||
|
@ -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');
|
||||
|
BIN
slip-ring-noise-turning/figs/comp_with_without_lpf.png
Normal file
After Width: | Height: | Size: 168 KiB |
BIN
slip-ring-noise-turning/figs/psd_noise.png
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
slip-ring-noise-turning/figs/random_signal.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
slip-ring-noise-turning/figs/slipring_asd.png
Normal file
After Width: | Height: | Size: 118 KiB |
BIN
slip-ring-noise-turning/figs/slipring_comp_signals.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
slip-ring-noise-turning/figs/slipring_time.png
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
slip-ring-noise-turning/figs/sr_direct_1khz_time.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
slip-ring-noise-turning/figs/sr_direct_1khz_time_zoom.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
slip-ring-noise-turning/figs/sr_direct_time.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
slip-ring-noise-turning/figs/sr_geophone_asd.png
Normal file
After Width: | Height: | Size: 166 KiB |
BIN
slip-ring-noise-turning/figs/sr_geophone_asd_zoom.png
Normal file
After Width: | Height: | Size: 217 KiB |
BIN
slip-ring-noise-turning/figs/sr_geophone_time_off.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
slip-ring-noise-turning/figs/sr_geophone_time_on.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
slip-ring-noise-turning/figs/sr_lpf_1khz_geophone_asd.png
Normal file
After Width: | Height: | Size: 155 KiB |
BIN
slip-ring-noise-turning/figs/sr_lpf_1khz_geophone_time_off.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
slip-ring-noise-turning/figs/sr_lpf_1khz_geophone_time_on.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
slip-ring-noise-turning/figs/sr_lpf_geophone_asd.png
Normal file
After Width: | Height: | Size: 149 KiB |
BIN
slip-ring-noise-turning/figs/sr_lpf_geophone_asd_zoom.png
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
slip-ring-noise-turning/figs/sr_lpf_geophone_time_off.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
slip-ring-noise-turning/figs/sr_lpf_geophone_time_on.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
slip-ring-noise-turning/figs/sr_psd_1khz_direct.png
Normal file
After Width: | Height: | Size: 169 KiB |
BIN
slip-ring-noise-turning/figs/sr_psd_1khz_slipring.png
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
slip-ring-noise-turning/figs/sr_psd_compare.png
Normal file
After Width: | Height: | Size: 190 KiB |
BIN
slip-ring-noise-turning/figs/sr_slipring_1khz_time.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
slip-ring-noise-turning/figs/sr_slipring_time.png
Normal file
After Width: | Height: | Size: 60 KiB |
1
slip-ring-noise-turning/img/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.mp4
|
BIN
slip-ring-noise-turning/img/IMG_20190430_112613.jpg
Normal file
After Width: | Height: | Size: 4.4 MiB |
BIN
slip-ring-noise-turning/img/IMG_20190430_112615.jpg
Normal file
After Width: | Height: | Size: 3.5 MiB |
BIN
slip-ring-noise-turning/img/IMG_20190503_163715.jpg
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
slip-ring-noise-turning/img/IMG_20190506_160420.jpg
Normal file
After Width: | Height: | Size: 4.2 MiB |
BIN
slip-ring-noise-turning/img/IMG_20190506_160438.jpg
Normal file
After Width: | Height: | Size: 3.9 MiB |
BIN
slip-ring-noise-turning/img/IMG_20190507_101453.jpg
Normal file
After Width: | Height: | Size: 4.0 MiB |
BIN
slip-ring-noise-turning/img/VID_20190503_153820.gif
Normal file
After Width: | Height: | Size: 11 MiB |
BIN
slip-ring-noise-turning/img/VID_20190503_160831.gif
Normal file
After Width: | Height: | Size: 18 MiB |
BIN
slip-ring-noise-turning/img/VID_20190503_161401.gif
Normal file
After Width: | Height: | Size: 15 MiB |
BIN
slip-ring-noise-turning/img/VID_20190503_161420.gif
Normal file
After Width: | Height: | Size: 6.3 MiB |
3
slip-ring-noise-turning/img/nohup.out
Normal 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.
|
BIN
slip-ring-noise-turning/index.html
Normal file
616
slip-ring-noise-turning/index.org
Normal 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
|
BIN
slip-ring-noise-turning/mat/data_007.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_008.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_009.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_010.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_011.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_014.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_015.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_020.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_021.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_022.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_023.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_030.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_031.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_032.mat
Normal file
BIN
slip-ring-noise-turning/mat/data_033.mat
Normal file
67
slip-ring-noise-turning/matlab/meas_effect_sr.m
Normal 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])
|
84
slip-ring-noise-turning/matlab/meas_slip_ring.m
Normal 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]);
|
48
slip-ring-noise-turning/matlab/meas_slip_ring_geophone.m
Normal 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');
|
250
slip-ring-noise-turning/matlab/meas_sr_geophone.m
Normal 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');
|
90
slip-ring-noise-turning/readme.org
Normal 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
|