313 lines
11 KiB
Org Mode
313 lines
11 KiB
Org Mode
#+TITLE: Vibrations induced by the Slip-Ring and the Spindle
|
|
: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:
|
|
|
|
* Experimental Setup
|
|
*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
|
|
*Measurements*:
|
|
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>>
|
|
|
|
** ZIP file containing the data and matlab files :ignore:
|
|
#+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>>
|
|
addpath('../src');
|
|
#+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
|
|
|
|
** Voltage to Velocity
|
|
We convert the measured voltage to velocity using the function =voltageToVelocityL22= (accessible [[file:~/MEGA/These/meas/src/index.org][here]]).
|
|
|
|
#+begin_src matlab
|
|
gain = 60; % [dB]
|
|
|
|
of(:, 1) = voltageToVelocityL22(of(:, 1), of(:, 3), gain);
|
|
sr(:, 1) = voltageToVelocityL22(sr(:, 1), sr(:, 3), gain);
|
|
sp(:, 1) = voltageToVelocityL22(sp(:, 1), sp(:, 3), gain);
|
|
|
|
of(:, 2) = voltageToVelocityL22(of(:, 2), of(:, 3), gain);
|
|
sr(:, 2) = voltageToVelocityL22(sr(:, 2), sr(:, 3), gain);
|
|
sp(:, 2) = voltageToVelocityL22(sp(:, 2), sp(:, 3), gain);
|
|
#+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('Velocity [m/s]');
|
|
xlim([0, 100]);
|
|
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: Velocity as measured by the geophone located on the marble - Time domain
|
|
#+RESULTS: fig:slip_ring_spindle_marble_time
|
|
[[file:figs/slip_ring_spindle_marble_time.png]]
|
|
|
|
#+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('Velocity [m/s]');
|
|
xlim([0, 100]);
|
|
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: Velocity as measured by the geophone at the sample location - Time domain
|
|
#+RESULTS: fig:slip_ring_spindle_sample_time
|
|
[[file:figs/slip_ring_spindle_sample_time.png]]
|
|
|
|
#+begin_src matlab :exports none :tangle no
|
|
xlim([0, 1]);
|
|
#+end_src
|
|
|
|
#+NAME: fig:slip_ring_spindle_sample_zoom
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/slip_ring_spindle_sample_zoom.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:slip_ring_spindle_sample_zoom
|
|
#+CAPTION: Velocity as measured by the geophone at the sample location - Time domain
|
|
#+RESULTS: fig:slip_ring_spindle_sample_zoom
|
|
[[file:figs/slip_ring_spindle_sample_zoom.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, ~] = pwelch(of(:, 2), win, [], [], Fs);
|
|
[pxsr_s, ~] = pwelch(sr(:, 2), win, [], [], Fs);
|
|
[pxsp_s, ~] = pwelch(sp(:, 2), win, [], [], Fs);
|
|
#+end_src
|
|
|
|
And finally for the relative velocity between the sample and the marble.
|
|
#+begin_src matlab
|
|
[pxof_r, ~] = pwelch(of(:, 2)-of(:, 1), win, [], [], Fs);
|
|
[pxsr_r, ~] = pwelch(sr(:, 2)-sr(:, 1), win, [], [], Fs);
|
|
[pxsp_r, ~] = pwelch(sp(:, 2)-sp(:, 1), win, [], [], Fs);
|
|
#+end_src
|
|
|
|
And we plot the ASD of the measured velocities:
|
|
- figure [[fig:sr_sp_psd_marble_compare]] for the geophone located on the marble
|
|
- figure [[fig:sr_sp_psd_sample_compare]] for the geophone at the sample position
|
|
|
|
#+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 velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
|
legend('Location', 'southwest');
|
|
xlim([2, 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 velocities 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 velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
|
legend('Location', 'southwest');
|
|
xlim([2, 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 velocities from the Geophone at the sample location
|
|
#+RESULTS: fig:sr_sp_psd_sample_compare
|
|
[[file:figs/sr_sp_psd_sample_compare.png]]
|
|
|
|
#+begin_src matlab :results none
|
|
figure;
|
|
hold on;
|
|
plot(f, sqrt(pxsp_r), 'DisplayName', 'Spindle - 6rpm');
|
|
plot(f, sqrt(pxsr_r), 'DisplayName', 'Slip-Ring - 6rpm');
|
|
plot(f, sqrt(pxof_r), 'DisplayName', 'OFF');
|
|
hold off;
|
|
set(gca, 'xscale', 'log');
|
|
set(gca, 'yscale', 'log');
|
|
xlabel('Frequency [Hz]'); ylabel('ASD of the relative velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
|
|
legend('Location', 'southwest');
|
|
xlim([2, 500]);
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_sp_psd_relative_compare
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_sp_psd_relative_compare.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_sp_psd_relative_compare
|
|
#+CAPTION: Comparison of the ASD of the relative velocity
|
|
#+RESULTS: fig:sr_sp_psd_relative_compare
|
|
[[file:figs/sr_sp_psd_relative_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
|
|
- The peak is really sharp, could this be due to magnetic effect?
|
|
- Should redo the measurement with piezo accelerometers.
|
|
#+end_important
|