nass-micro-station-measurem.../slip-ring-spindle-vibrations/index.org

215 lines
7.6 KiB
Org Mode

#+TITLE: Vibrations induced by the Slip-Ring and the Spindle
#+SETUPFILE: ../config.org
* Experimental Setup
All the stages are OFF.
Two geophone are use:
- One on the marble (corresponding to the first column in the data)
- One at the sample location (corresponding to the second column in the data)
Two voltage amplifiers are used, their setup is:
- gain of 60dB
- AC/DC switch on AC
- Low pass filter at 1kHz
A first order low pass filter is also added at the input of the voltage amplifiers.
*Goal*:
- Identify the vibrations induced by the rotation of the Slip-Ring and Spindle
Three measurements are done:
| Measurement File | Description |
|--------------------+----------------------------------------------------------------------|
| =mat/data_024.mat= | All the stages are OFF |
| =mat/data_025.mat= | The slip-ring is ON and rotates at 6rpm. The spindle is OFF |
| =mat/data_026.mat= | The slip-ring and spindle are both ON. They are both turning at 6rpm |
Each of the measurement =mat= file contains one =data= array with 3 columns:
| Column number | Description |
|---------------+-------------------|
| 1 | Geophone - Marble |
| 2 | Geophone - Sample |
| 3 | Time |
A movie showing the experiment is shown on figure [[fig:exp_sl_sp_gif]].
#+name: fig:exp_sl_sp_gif
#+attr_html: :width 300px
#+caption: Movie of the experiment, rotation speed is 6rpm
[[file:./img/VID_20190510_155655.gif]]
* Data Analysis
:PROPERTIES:
:header-args:matlab+: :tangle matlab/spindle_slip_ring_vibrations.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:spindle_slip_ring_vibrations>>
#+begin_src bash :exports none :results none
if [ matlab/spindle_slip_ring_vibrations.m -nt data/spindle_slip_ring_vibrations.zip ]; then
cp matlab/spindle_slip_ring_vibrations.m spindle_slip_ring_vibrations.m;
zip data/spindle_slip_ring_vibrations \
mat/data_024.mat \
mat/data_025.mat \
mat/data_026.mat \
spindle_slip_ring_vibrations.m
rm spindle_slip_ring_vibrations.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/spindle_slip_ring_vibrations.zip][here]].
#+end_note
** 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
#+begin_src matlab
of = load('mat/data_024.mat', 'data'); of = of.data;
sr = load('mat/data_025.mat', 'data'); sr = sr.data;
sp = load('mat/data_026.mat', 'data'); sp = sp.data;
#+end_src
** Time domain plots
#+begin_src matlab
figure;
hold on;
plot(sp(:, 3), sp(:, 1), 'DisplayName', 'Spindle - 6rpm');
plot(sr(:, 3), sr(:, 1), 'DisplayName', 'Slip-Ring - 6rpm');
plot(of(:, 3), of(:, 1), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 100]); ylim([-10 10]);
legend('Location', 'northeast');
#+end_src
#+NAME: fig:slip_ring_spindle_marble_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/slip_ring_spindle_marble_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:slip_ring_spindle_marble_time
#+CAPTION: Measurement of the geophone located on the marble - Time domain
#+RESULTS: fig:slip_ring_spindle_marble_time
[[file:figs/slip_ring_spindle_marble_time.png]]
#+begin_src matlab
figure;
hold on;
plot(sp(:, 3), sp(:, 2), 'DisplayName', 'Spindle and Slip-Ring');
plot(sr(:, 3), sr(:, 2), 'DisplayName', 'Only Slip-Ring');
plot(of(:, 3), of(:, 2), 'DisplayName', 'OFF');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 100]); ylim([-10 10]);
legend('Location', 'northeast');
#+end_src
#+NAME: fig:slip_ring_spindle_sample_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/slip_ring_spindle_sample_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:slip_ring_spindle_sample_time
#+CAPTION: Measurement of the geophone at the sample location - Time domain
#+RESULTS: fig:slip_ring_spindle_sample_time
[[file:figs/slip_ring_spindle_sample_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = of(2, 3)-of(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
Then we compute the Power Spectral Density using =pwelch= function.
First for the geophone located on the marble
#+begin_src matlab
[pxof_m, f] = pwelch(of(:, 1), win, [], [], Fs);
[pxsr_m, ~] = pwelch(sr(:, 1), win, [], [], Fs);
[pxsp_m, ~] = pwelch(sp(:, 1), win, [], [], Fs);
#+end_src
And for the geophone located at the sample position.
#+begin_src matlab
[pxof_s, f] = pwelch(of(:, 2), win, [], [], Fs);
[pxsr_s, ~] = pwelch(sr(:, 2), win, [], [], Fs);
[pxsp_s, ~] = pwelch(sp(:, 2), win, [], [], Fs);
#+end_src
And we plot the ASD of the measured signals:
- figure [[fig:sr_sp_psd_marble_compare]] for the geophone located on the marble
- figure [[fig:sr_sp_psd_sample_compare]] for the geophone at the sample position
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(pxsp_m), 'DisplayName', 'Spindle - 6rpm');
plot(f, sqrt(pxsr_m), 'DisplayName', 'Slip-Ring - 6rpm');
plot(f, sqrt(pxof_m), 'DisplayName', 'OFF');
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', 'southwest');
xlim([0.1, 500]);
#+end_src
#+NAME: fig:sr_sp_psd_marble_compare
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_sp_psd_marble_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_sp_psd_marble_compare
#+CAPTION: Comparison of the ASD of the measured voltage from the Geophone on the marble
#+RESULTS: fig:sr_sp_psd_marble_compare
[[file:figs/sr_sp_psd_marble_compare.png]]
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(pxsp_s), 'DisplayName', 'Spindle - 6rpm');
plot(f, sqrt(pxsr_s), 'DisplayName', 'Slip-Ring - 6rpm');
plot(f, sqrt(pxof_s), 'DisplayName', 'OFF');
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', 'southwest');
xlim([0.1, 500]);
#+end_src
#+NAME: fig:sr_sp_psd_sample_compare
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/sr_sp_psd_sample_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:sr_sp_psd_sample_compare
#+CAPTION: Comparison of the ASD of the measured voltage from the Geophone at the sample location
#+RESULTS: fig:sr_sp_psd_sample_compare
[[file:figs/sr_sp_psd_sample_compare.png]]
** Conclusion
#+begin_important
The slip-ring rotation induces almost no vibrations on the marble, and only a little vibrations on the sample above 100Hz.
The spindle rotation induces a lot of vibrations of the sample as well as on the granite.
There is a huge peak at 24Hz on the sample vibration but not on the granite vibration.
#+end_important