300 lines
9.3 KiB
Org Mode
300 lines
9.3 KiB
Org Mode
|
#+TITLE:Measurements
|
||
|
:DRAWER:
|
||
|
#+STARTUP: overview
|
||
|
|
||
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
|
||
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
|
||
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
|
||
|
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script>
|
||
|
#+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script>
|
||
|
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
|
||
|
#+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script>
|
||
|
|
||
|
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||
|
#+PROPERTY: header-args:matlab+ :comments org
|
||
|
#+PROPERTY: header-args:matlab+ :results output
|
||
|
#+PROPERTY: header-args:matlab+ :exports both
|
||
|
#+PROPERTY: header-args:matlab+ :eval no-export
|
||
|
#+PROPERTY: header-args:matlab+ :output-dir figs
|
||
|
:END:
|
||
|
|
||
|
For all the measurements here, the geophones are L22.
|
||
|
The signals are amplified with voltage amplifiers with a gain of 60dB.
|
||
|
The voltage amplifiers include a low pass filter with a cut-off frequency at 1kHz.
|
||
|
|
||
|
* Effect of the control system of each stage
|
||
|
|
||
|
** Experimental Setup
|
||
|
One geophone is on the marble, the other at the sample location (see figures below).
|
||
|
|
||
|
The signal from the top geophone goes through the slip-ring.
|
||
|
|
||
|
The signals from the geophones are amplified by a voltage amplifier with a gain of 60dB.
|
||
|
The voltage amplifier also include a low pass filter with a corner frequency of 1kHz.
|
||
|
|
||
|
#+name: fig:setup_ty_1
|
||
|
#+caption: Figure caption
|
||
|
#+attr_html: :width 500px
|
||
|
[[file:./img/IMG_20190430_112613.jpg]]
|
||
|
|
||
|
#+name: fig:setup_ty_2
|
||
|
#+caption: Figure caption
|
||
|
#+attr_html: :width 500px
|
||
|
[[file:./img/IMG_20190430_112615.jpg]]
|
||
|
|
||
|
#+name: fig:setup_ty_3
|
||
|
#+caption: Figure caption
|
||
|
#+attr_html: :width 500px
|
||
|
[[file:./img/IMG_20190430_112620.jpg]]
|
||
|
|
||
|
Two measurements are done:
|
||
|
| Setup | Data File |
|
||
|
|----------------------+--------------------|
|
||
|
| Control of Ty is on | =mat/data_001.mat= |
|
||
|
| Control of Ty is off | =mat/data_002.mat= |
|
||
|
|
||
|
For each of the measurements
|
||
|
| Variable | Description |
|
||
|
|----------+--------------------------------------------------------------------|
|
||
|
| =t= | Time Vector |
|
||
|
| =x1= | Voltage measured across the geophone placed on the marble |
|
||
|
| =x2= | Voltage measured across the geophone placed at the sample location |
|
||
|
|
||
|
Measurements are 50s long.
|
||
|
|
||
|
** Matlab Init :noexport:ignore:
|
||
|
#+begin_src matlab :exports none :results silent :noweb yes
|
||
|
<<matlab-init>>
|
||
|
#+end_src
|
||
|
|
||
|
** Load data
|
||
|
We load the data of the z axis of two geophones.
|
||
|
#+begin_src matlab :results none
|
||
|
tyOn = load('mat/data_001.mat', 't', 'x1', 'x2');
|
||
|
tyOff = load('mat/data_002.mat', 't', 'x1', 'x2');
|
||
|
#+end_src
|
||
|
|
||
|
** Analysis
|
||
|
#+begin_src matlab :results none
|
||
|
dt = tyOn.t(2)-tyOn.t(1);
|
||
|
Fs = 1/dt;
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(tyOn.t, tyOn.x1);
|
||
|
plot(tyOn.t, tyOn.x2);
|
||
|
hold off;
|
||
|
legend({'x1 - ON', 'x2 - ON'});
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(tyOff.t, tyOff.x1);
|
||
|
plot(tyOff.t, tyOff.x2);
|
||
|
hold off;
|
||
|
legend({'x1 - OFF', 'x2 - OFF'});
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
Fs = 1/dt;
|
||
|
win = hanning(ceil(10*Fs));
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
[pxOn1, f] = pwelch(tyOn.x1, win, [], [], Fs);
|
||
|
[pxOn2, ~] = pwelch(tyOn.x2, win, [], [], Fs);
|
||
|
|
||
|
[pxOff1, ~] = pwelch(tyOff.x1, win, [], [], Fs);
|
||
|
[pxOff2, ~] = pwelch(tyOff.x2, win, [], [], Fs);
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(f, sqrt(pxOn1));
|
||
|
plot(f, sqrt(pxOn2));
|
||
|
hold off;
|
||
|
set(gca, 'xscale', 'log');
|
||
|
set(gca, 'yscale', 'log');
|
||
|
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
|
||
|
% xlim([2, 500]);
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(f, sqrt(pxOn1));
|
||
|
plot(f, sqrt(pxOff1));
|
||
|
hold off;
|
||
|
set(gca, 'xscale', 'log');
|
||
|
set(gca, 'yscale', 'log');
|
||
|
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
|
||
|
% xlim([2, 500]);
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(f, sqrt(pxOn2));
|
||
|
plot(f, sqrt(pxOff2));
|
||
|
hold off;
|
||
|
set(gca, 'xscale', 'log');
|
||
|
set(gca, 'yscale', 'log');
|
||
|
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
|
||
|
% xlim([2, 500]);
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
[T_off, ~] = tfestimate(tyOff.x1, tyOff.x2, win, [], [], Fs);
|
||
|
[coh_off, ~] = mscohere(tyOff.x1, tyOff.x2, win, [], [], Fs);
|
||
|
|
||
|
[T_on, ~] = tfestimate(tyOn.x1, tyOn.x2, win, [], [], Fs);
|
||
|
[coh_on, ~] = mscohere(tyOn.x1, tyOn.x2, win, [], [], Fs);
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none :exports none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(f, coh_on);
|
||
|
plot(f, coh_off);
|
||
|
hold off;
|
||
|
set(gca, 'xscale', 'log');
|
||
|
xlabel('Frequency [Hz]'); ylabel('Coherence');
|
||
|
ylim([0,1]); xlim([1, 500]);
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none :exports none
|
||
|
figure;
|
||
|
ax1 = subplot(2, 1, 1);
|
||
|
hold on;
|
||
|
plot(f, abs(T_on));
|
||
|
plot(f, abs(T_off));
|
||
|
hold off;
|
||
|
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||
|
set(gca, 'XTickLabel',[]);
|
||
|
ylabel('Magnitude');
|
||
|
|
||
|
ax2 = subplot(2, 1, 2);
|
||
|
hold on;
|
||
|
plot(f, mod(180+180/pi*phase(T_on), 360)-180);
|
||
|
plot(f, mod(180+180/pi*phase(T_off), 360)-180);
|
||
|
hold off;
|
||
|
set(gca, 'xscale', 'log');
|
||
|
ylim([-180, 180]);
|
||
|
yticks([-180, -90, 0, 90, 180]);
|
||
|
xlabel('Frequency [Hz]'); ylabel('Phase');
|
||
|
|
||
|
linkaxes([ax1,ax2],'x');
|
||
|
xlim([1, 500]);
|
||
|
#+end_src
|
||
|
* Effect of the Slip-Ring on the signal
|
||
|
** Experimental Setup
|
||
|
Two measurements are made where the control of all the stages are OFF.
|
||
|
|
||
|
One geophone is located on the marble while the other is located at the sample location.
|
||
|
|
||
|
The two measurements are:
|
||
|
| Measurement File | Description |
|
||
|
|------------------+------------------------------------------------------------------|
|
||
|
| =meas_008.mat= | Signal from the top geophone does not goes through the Slip-ring |
|
||
|
| =meas_009.mat= | Signal goes through the Slip-ring |
|
||
|
|
||
|
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
||
|
| Column number | Description |
|
||
|
|---------------+-------------------|
|
||
|
| 1 | Geophone - Marble |
|
||
|
| 2 | Geophone - Sample |
|
||
|
| 3 | Time |
|
||
|
|
||
|
** Matlab Init :noexport:ignore:
|
||
|
#+begin_src matlab :exports none :results silent :noweb yes
|
||
|
<<matlab-init>>
|
||
|
#+end_src
|
||
|
|
||
|
** Load data
|
||
|
We load the data of the z axis of two geophones.
|
||
|
#+begin_src matlab :results none
|
||
|
data8 = load('mat/data_008.mat', 'data');
|
||
|
data9 = load('mat/data_009.mat', 'data');
|
||
|
#+end_src
|
||
|
|
||
|
** Analysis - Time Domain
|
||
|
#+begin_src matlab :results none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(data9.data(:, 3), data9.data(:, 2), 'DisplayName', 'Slip-Ring');
|
||
|
plot(data8.data(:, 3), data8.data(:, 2), 'DisplayName', 'Wire');
|
||
|
hold off;
|
||
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||
|
xlim([0, 50]);
|
||
|
legend();
|
||
|
#+end_src
|
||
|
|
||
|
#+NAME: fig:slipring_time
|
||
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||
|
#+begin_src matlab :var filepath="figs/slipring_time.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
|
||
|
<<plt-matlab>>
|
||
|
#+end_src
|
||
|
|
||
|
#+NAME: fig:slipring_time
|
||
|
#+CAPTION: Effect of the Slip-Ring on the measured signal - Time domain
|
||
|
#+RESULTS: fig:slipring_time
|
||
|
[[file:figs/slipring_time.png]]
|
||
|
|
||
|
** Analysis - Frequency Domain
|
||
|
#+begin_src matlab :results none
|
||
|
dt = data8.data(2, 3) - data8.data(1, 3);
|
||
|
|
||
|
Fs = 1/dt;
|
||
|
win = hanning(ceil(1*Fs));
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
[pxx8, f] = pwelch(data8.data(:, 2), win, [], [], Fs);
|
||
|
[pxx9, ~] = pwelch(data9.data(:, 2), win, [], [], Fs);
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src matlab :results none
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(f, sqrt(pxx9), 'DisplayName', 'Slip-Ring');
|
||
|
plot(f, sqrt(pxx8), 'DisplayName', 'Wire');
|
||
|
hold off;
|
||
|
set(gca, 'xscale', 'log');
|
||
|
set(gca, 'yscale', 'log');
|
||
|
xlabel('Frequency [Hz]'); ylabel('ASD [V/sqrt(Hz)]')
|
||
|
xlim([1, 500]);
|
||
|
legend('Location', 'southwest');
|
||
|
#+end_src
|
||
|
|
||
|
#+NAME: fig:slipring_asd
|
||
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||
|
#+begin_src matlab :var filepath="figs/slipring_asd.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
|
||
|
<<plt-matlab>>
|
||
|
#+end_src
|
||
|
|
||
|
#+NAME: fig:slipring_asd
|
||
|
#+CAPTION: Effect of the Slip-Ring on the measured signal - Frequency domain
|
||
|
#+RESULTS: fig:slipring_asd
|
||
|
[[file:figs/slipring_asd.png]]
|
||
|
|
||
|
** Conclusion
|
||
|
*Remaining questions to answer*:
|
||
|
- Why is there a sharp peak at 300Hz?
|
||
|
- Why the use of the Slip-Ring does induce a noise?
|
||
|
- Can the capacitive/inductive properties of the wires in the Slip-ring does not play well with the geophone? (resonant RLC circuit)
|
||
|
|
||
|
* Measurement when signal from top geophone does not go trought the slip-ring
|
||
|
|
||
|
| Ty | Ry | Slip Ring | Spindle | Hexapod | Meas. file |
|
||
|
|------+------+-----------+---------+---------+----------------|
|
||
|
| *ON* | *ON* | *ON* | *ON* | *ON* | =meas_003.mat= |
|
||
|
| OFF | *ON* | *ON* | *ON* | *ON* | =meas_004.mat= |
|
||
|
| OFF | OFF | *ON* | *ON* | *ON* | =meas_005.mat= |
|
||
|
| OFF | OFF | OFF | *ON* | *ON* | =meas_006.mat= |
|
||
|
| OFF | OFF | OFF | OFF | *ON* | =meas_007.mat= |
|
||
|
| OFF | OFF | OFF | OFF | OFF | =meas_008.mat= |
|