[WIP] Breaking Change - Use Update

Folder name is changed, rework the html templates
Change the organisation.
This commit is contained in:
Thomas Dehaeze 2019-05-10 16:06:43 +02:00
parent 8d8c03773c
commit 6e3677eb29
162 changed files with 1990 additions and 580870 deletions

4
.gitignore vendored
View File

@ -1,8 +1,10 @@
auto/ auto/
*.tex *.tex
**/figs/*.pdf **/figs/*.pdf
**/figs/*.svg **/figs/*.svg
======= **/figs/*.tex
# Emacs # Emacs
auto/ auto/

Binary file not shown.

View File

@ -1,27 +1,5 @@
#+TITLE: Measurements #+TITLE: Measurements
:drawer: #+SETUPFILE: ../config.org
#+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: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:end:
[[../index.org][Back to main page]].
* Experimental conditions * Experimental conditions
- Measurement made in a metrology lab - Measurement made in a metrology lab
@ -33,12 +11,12 @@
#+name: fig:accelerometers #+name: fig:accelerometers
#+caption: Accelerometers position #+caption: Accelerometers position
#+attr_latex: :width 0.5\linewidth #+attr_html: :width 500px
[[file:./figs/accelerometers.png]] [[file:./figs/accelerometers.png]]
#+name: fig:instrumented_hammer #+name: fig:instrumented_hammer
#+caption: Instrumented Hammer used #+caption: Instrumented Hammer used
#+attr_latex: :width 0.5\linewidth #+attr_html: :width 500px
[[file:./figs/instrumented_hammer.png]] [[file:./figs/instrumented_hammer.png]]
* Measurements procedure * Measurements procedure
@ -101,7 +79,11 @@ For each of the measurement, the measured channels are shown on table [[tab:meas
* Data Analysis * Data Analysis
** Loading of the data ** Loading of the data
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src

View File

@ -1,27 +1,5 @@
#+TITLE: Measurements #+TITLE: Measurements
:drawer: #+SETUPFILE: ../config.org
#+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: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:end:
[[../index.org][Back to main page]].
* Experimental conditions * Experimental conditions
- The granite is not glued to the floor - The granite is not glued to the floor
@ -72,7 +50,11 @@ The structure is excited using an *instrumented hammer* with impacts on
* Data Analysis * Data Analysis
** Loading and pre-processing of the data ** Loading and pre-processing of the data
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src

View File

@ -378,4 +378,3 @@ legend(leg1,leg6,'Location','SouthEast');
grid grid
% saveas(gcf,'comp_frf_z_hammer_hexa','fig') % saveas(gcf,'comp_frf_z_hammer_hexa','fig')
% print -dpng comp_frf_z_hammer_hexa % print -dpng comp_frf_z_hammer_hexa

View File

@ -1,27 +1,5 @@
#+TITLE: Measurements #+TITLE: Measurements
:drawer: #+SETUPFILE: ../config.org
#+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: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:end:
[[../index.org][Back to main page]].
* Experimental conditions * Experimental conditions
- Measurement made in the experiment hutch - Measurement made in the experiment hutch
@ -87,7 +65,11 @@ Les fichiers xxx_raw sont sans traitement dans le domaine temporel (environ 10 i
* Data Analysis * Data Analysis
** Loading of the data ** Loading of the data
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src

View File

@ -1,34 +1,18 @@
#+TITLE: Measurement Analysis #+TITLE: Measurement Analysis
:drawer: #+SETUPFILE: ../config.org
#+STARTUP: overview
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> * Matlab Init :noexport:ignore:
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
#+HTML_HEAD: <script src="../js/jquery.min.js"></script> <<matlab-dir>>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script> #+end_src
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport #+begin_src matlab :exports none :results silent :noweb yes
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:end:
[[../index.org][Back to main page]].
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-init>> <<matlab-init>>
#+end_src #+end_src
* Measurement Description * Measurement Description
#+name: fig:setup_picture #+name: fig:setup_picture
#+attr_html: :width 500px
#+caption: Picture of the setup for the measurement #+caption: Picture of the setup for the measurement
[[file:./figs/setup_picture.png]] [[file:./figs/setup_picture.png]]

View File

@ -1,29 +1,12 @@
#+TITLE: Ground Motion Measurements #+TITLE: Ground Motion Measurements
:drawer: #+SETUPFILE: ../config.org
#+STARTUP: overview
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> * Matlab Init :noexport:ignore:
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
#+HTML_HEAD: <script src="../js/jquery.min.js"></script> <<matlab-dir>>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script> #+end_src
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport #+begin_src matlab :exports none :results silent :noweb yes
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:end:
[[../index.org][Back to main page]].
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-init>> <<matlab-init>>
#+end_src #+end_src

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

@ -1,110 +0,0 @@
Error X et Y
LSCxtot =
0.3872
LSCytot =
0.2419
LSCxsync =
0.1577
LSCysync =
0.1602
LSCxasync =
0.2946
LSCyasync =
0.1103
LSCxytot =
0.3519
Error X2 et Y2
LSCxtot =
0.3354
LSCytot =
0.3202
LSCxsync =
0.1101
LSCysync =
0.0808
LSCxasync =
0.2588
LSCyasync =
0.2791
LSCxytot =
0.3642
ErrorZ
LSCxtot =
0.0775
LSCytot =
0.0775
LSCxsync =
0.0390
LSCysync =
0.0390
LSCxasync =
0.0617
LSCyasync =
0.0617
LSCxytot =
0.1000

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,5 @@
#+TITLE: Equipment #+TITLE: Equipment
:drawer: #+SETUPFILE: ../config.org
#+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: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:end:
[[../index.org][Back to main page]].
* Sensors * Sensors
** Accelerometers ** Accelerometers
@ -160,7 +138,11 @@ We define the parameters of the geophone and we plot its bode plot (figure [[fig
| Weight [g] | 2150 | | Weight [g] | 2150 |
| Sensitivity [V/(m/s)] | 276.8 | | Sensitivity [V/(m/s)] | 276.8 |
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src

27
config.org Normal file
View File

@ -0,0 +1,27 @@
#+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

View File

@ -1,28 +1,15 @@
#+TITLE:Measurement of the sample vibrations when rotating the Spindle #+TITLE:Measurement of the sample vibrations when rotating the Spindle
:DRAWER: #+SETUPFILE: ../config.org
#+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:
* Experimental Setup * Experimental Setup
* Signal Processing * Signal Processing
** Matlab Init :noexport:ignore: ** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src

View File

@ -1,15 +1,5 @@
#+TITLE: Equipment used to make the measurements #+TITLE: Equipment used to make the measurements
:DRAWER: #+SETUPFILE: ../config.org
#+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>
:END:
* Geophone * Geophone
L22 L22

View File

@ -1,3 +0,0 @@
*.svg
*.pdf
*.tex

View File

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

View File

Before

Width:  |  Height:  |  Size: 3.8 MiB

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

View File

@ -1,22 +1,5 @@
#+TITLE:Huddle Test of the L22 Geophones #+TITLE:Huddle Test of the L22 Geophones
:DRAWER: #+SETUPFILE: ../config.org
#+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:
* Experimental Setup * Experimental Setup
Two L22 geophones are used. Two L22 geophones are used.
@ -31,23 +14,40 @@ The voltage amplifiers includes:
#+name: fig:figure_name #+name: fig:figure_name
#+caption: Setup #+caption: Setup
#+attr_html: :width 500px #+attr_html: :width 500px
[[file:./figs/setup.jpg]] [[file:./img/setup.jpg]]
#+name: fig:figure_name #+name: fig:figure_name
#+caption: Geophones #+caption: Geophones
#+attr_html: :width 500px #+attr_html: :width 500px
[[file:./figs/geophones.jpg]] [[file:./img/geophones.jpg]]
* Signal Processing * Signal Processing
:PROPERTIES: :PROPERTIES:
:header-args:matlab+: :tangle signal_processing.m :header-args:matlab+: :tangle matlab/huddle_test_signal_processing.m
:header-args:matlab+: :comments org :mkdirp yes :header-args:matlab+: :comments org :mkdirp yes
:END: :END:
The Matlab computing file for this part is accessible [[file:signal_processing.m][here]]. <<sec:huddle_test_signal_processing>>
The =mat= file containing the measurement data is accessible [[file:mat/data_001.mat][here]].
#+begin_src bash :exports none :results none
if [ matlab/huddle_test_signal_processing.m -nt data/huddle_test_signal_processing.zip ]; then
cp matlab/huddle_test_signal_processing.m huddle_test_signal_processing.m;
zip data/huddle_test_signal_processing \
mat/data_001.mat \
huddle_test_signal_processing.m;
rm huddle_test_signal_processing.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/huddle_test_signal_processing.zip][here]].
#+end_note
** Matlab Init :noexport:ignore: ** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src
@ -407,17 +407,33 @@ This is then further converted into velocity and compared with the ground veloci
* Compare axis * Compare axis
:PROPERTIES: :PROPERTIES:
:header-args:matlab+: :tangle compare_axis.m :header-args:matlab+: :tangle matlab/huddle_test_compare_axis.m
:header-args:matlab+: :comments org :mkdirp yes :header-args:matlab+: :comments org :mkdirp yes
:END: :END:
The Matlab computing file for this part is accessible [[file:compare_axis.m][here]]. <<sec:huddle_test_compare_axis>>
The =mat= files containing the measurement data are accessible with the following links:
- z axis: [[file:mat/data_001.mat][here]]. #+begin_src bash :exports none :results none
- east axis: [[file:mat/data_002.mat][here]]. if [ matlab/huddle_test_compare_axis.m -nt data/huddle_test_compare_axis.zip ]; then
- north axis: [[file:mat/data_003.mat][here]]. cp matlab/huddle_test_compare_axis.m huddle_test_compare_axis.m;
zip data/huddle_test_compare_axis \
mat/data_001.mat \
mat/data_002.mat \
mat/data_003.mat \
huddle_test_compare_axis.m;
rm huddle_test_compare_axis.m;
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/huddle_test_compare_axis.zip][here]].
#+end_note
** Matlab Init :noexport:ignore: ** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src

View File

@ -1,5 +1,10 @@
% Matlab Init :noexport:ignore: % Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/huddle-test-geophones/';
%% Go to current Directory
cd(current_dir);
%% Clear Workspace and Close figures
clear; close all; clc; clear; close all; clc;
%% Intialize Laplace variable %% Intialize Laplace variable

View File

@ -1,5 +1,10 @@
% Matlab Init :noexport:ignore: % Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/huddle-test-geophones/';
%% Go to current Directory
cd(current_dir);
%% Clear Workspace and Close figures
clear; close all; clc; clear; close all; clc;
%% Intialize Laplace variable %% Intialize Laplace variable
@ -47,24 +52,44 @@ xlim([0 1]);
% Computation of the ASD of the measured voltage % Computation of the ASD of the measured voltage
% We first define the parameters for the frequency domain analysis. % We first define the parameters for the frequency domain analysis.
win = hanning(ceil(length(x1)/100)); Fs = 1/dt; % [Hz]
Fs = 1/dt;
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
[pxx1, f] = pwelch(x1, win, [], [], Fs); [pxx1, f] = pwelch(x1, win, [], [], Fs);
[pxx2, ~] = pwelch(x2, win, [], [], Fs); [pxx2, ~] = pwelch(x2, win, [], [], Fs);
% And we plot the result on figure [[fig:asd_voltage]].
figure;
hold on;
plot(f, sqrt(pxx1));
plot(f, sqrt(pxx2));
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.1, 500]);
% Scaling to take into account the sensibility of the geophone and the voltage amplifier % Scaling to take into account the sensibility of the geophone and the voltage amplifier
% The Geophone used are L22. % The Geophone used are L22. Their sensibility is shown on figure [[fig:geophone_sensibility]].
% Their sensibility are shown on figure [[fig:geophone_sensibility]].
S0 = 88; % Sensitivity [V/(m/s)] S0 = 88; % Sensitivity [V/(m/s)]
f0 = 2; % Cut-off frequnecy [Hz] f0 = 2; % Cut-off frequnecy [Hz]
S = (s/2/pi/f0)/(1+s/2/pi/f0);
S = S0*(s/2/pi/f0)/(1+s/2/pi/f0);
figure; figure;
bodeFig({S}); bodeFig({S}, logspace(-1, 2, 1000));
ylabel('Amplitude [V/(m/s)]') ylabel('Amplitude $\left[\frac{V}{m/s}\right]$')
@ -75,20 +100,19 @@ ylabel('Amplitude [V/(m/s)]')
% We also take into account the gain of the electronics which is here set to be $60dB$. % We also take into account the gain of the electronics which is here set to be $60dB$.
% The amplifiers also include a low pass filter with a cut-off frequency set at 1kHz.
G0 = 60; % [dB] G0_db = 60; % [dB]
G = 10^(G0/20)/(1+s/2/pi/1000); G0 = 10^(60/G0_db); % [abs]
% We divide the ASD measured (in $\text{V}/\sqrt{\text{Hz}}$) by the transfer function of the voltage amplifier to obtain the ASD of the voltage across the geophone. % We divide the ASD measured (in $\text{V}/\sqrt{\text{Hz}}$) by the gain of the voltage amplifier to obtain the ASD of the voltage across the geophone.
% We further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in $m/s/\sqrt{Hz}$. % We further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in $m/s/\sqrt{Hz}$.
scaling = 1./squeeze(abs(freqresp(G*S, f, 'Hz'))); scaling = 1./squeeze(abs(freqresp(G0*S, f, 'Hz')));
% Computation of the ASD of the velocity % Computation of the ASD of the velocity
% The ASD of the measured velocity is shown on figure [[fig:psd_velocity]]. % The ASD of the measured velocity is shown on figure [[fig:psd_velocity]].
@ -101,13 +125,13 @@ plot(f, sqrt(pxx2).*scaling);
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]') xlabel('Frequency [Hz]'); ylabel('ASD of the measured Velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
xlim([2, 500]); xlim([0.1, 500]);
% #+NAME: fig:psd_velocity % #+NAME: fig:psd_velocity
% #+CAPTION: Spectral density of the velocity % #+CAPTION: Amplitude Spectral Density of the Velocity
% #+RESULTS: fig:psd_velocity % #+RESULTS: fig:psd_velocity
% [[file:figs/psd_velocity.png]] % [[file:figs/psd_velocity.png]]
@ -116,12 +140,12 @@ xlim([2, 500]);
figure; figure;
hold on; hold on;
plot(f, (pxx1.*scaling./f).^2); plot(f, (sqrt(pxx1).*scaling)./(2*pi*f));
plot(f, (pxx2.*scaling./f).^2); plot(f, (sqrt(pxx2).*scaling)./(2*pi*f));
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]') xlabel('Frequency [Hz]'); ylabel('ASD of the displacement $\left[\frac{m}{\sqrt{Hz}}\right]$')
xlim([2, 500]); xlim([0.1, 500]);
% Transfer function between the two geophones % Transfer function between the two geophones
% We here compute the transfer function from one geophone to the other. % We here compute the transfer function from one geophone to the other.
@ -144,10 +168,10 @@ plot(f, mod(180+180/pi*phase(T12), 360)-180);
set(gca, 'xscale', 'log'); set(gca, 'xscale', 'log');
ylim([-180, 180]); ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]); yticks([-180, -90, 0, 90, 180]);
xlabel('Frequency [Hz]'); ylabel('Phase'); xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
linkaxes([ax1,ax2],'x'); linkaxes([ax1,ax2],'x');
xlim([1, 500]); xlim([0.1, 500]);
@ -163,7 +187,7 @@ figure;
plot(f, coh12); plot(f, coh12);
set(gca, 'xscale', 'log'); set(gca, 'xscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Coherence'); xlabel('Frequency [Hz]'); ylabel('Coherence');
ylim([0,1]); xlim([1, 500]); ylim([0,1]); xlim([0.1, 500]);
% Estimation of the sensor noise % Estimation of the sensor noise
% The technique to estimate the sensor noise is taken from cite:barzilai98_techn_measur_noise_sensor_presen. % The technique to estimate the sensor noise is taken from cite:barzilai98_techn_measur_noise_sensor_presen.
@ -196,7 +220,7 @@ ylim([0,1]); xlim([1, 500]);
% [[file:figs/huddle-test.png]] % [[file:figs/huddle-test.png]]
% We here assume that each sensor has the same magnitude of instrumental noise ($N = M$). % We here assume that each sensor has the same magnitude of instrumental noise ($N = M$).
% We also assume that $H_1 = H_2 = 1$. % We also assume that $S_1 = S_2 = 1$.
% We then obtain: % We then obtain:
% #+NAME: eq:coh_bis % #+NAME: eq:coh_bis
@ -229,8 +253,8 @@ plot(f, pxx2, '-');
plot(f, pxxN, 'k--'); plot(f, pxxN, 'k--');
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [$V^2/Hz$]'); xlabel('Frequency [Hz]'); ylabel('PSD of the measured Voltage $\left[\frac{V^2}{Hz}\right]$');
xlim([1, 500]); xlim([0.1, 500]);
@ -248,5 +272,5 @@ plot(f, sqrt(pxx2).*scaling, '-');
plot(f, sqrt(pxxN).*scaling, 'k--'); plot(f, sqrt(pxxN).*scaling, 'k--');
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [$m/s/\sqrt{Hz}$]'); xlabel('Frequency [Hz]'); ylabel('ASD of the Velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$');
xlim([1, 500]); xlim([0.1, 500]);

View File

@ -1,47 +0,0 @@
tg = slrt;
%% TODO - Build this application if updated
%%
if tg.Connected == "Yes"
if tg.Status == "stopped"
%% Load the application
tg.load('test');
%% Run the application
tg.start;
pause(10);
tg.stop;
%% Load the data
f = SimulinkRealTime.openFTP(tg);
mget(f, 'data/data_001.dat');
close(f);
end
end
%% Convert the Data
data = SimulinkRealTime.utils.getFileScopeData('data/data_001.dat').data;
t = data(:, end);
x1 = data(:, 1);
x2 = data(:, 2);
save('mat/data_003.mat', 't', 'x1', 'x2');
%% Plot the data
figure;
hold on;
plot(t, x1);
plot(t, x2);
hold off
xlabel('Time [s]');
ylabel('Voltage [V]');
%% Compute the PSD
dt = t(2)-t(1);
window_L = ceil(length(x1)/10);
window_han = .5*(1 - cos(2*pi*(1:window_L)'/(window_L+1)));
[pxx, f] = pwelch(x1, window_han, 0, [], 1/dt);

View File

@ -1 +0,0 @@
Ts = 1e-3; % [s]

View File

@ -29,9 +29,11 @@ Dynamics of the station is evaluated using instrumented hammer and accelerometer
- Obtain a first estimation of resonance frequencies - Obtain a first estimation of resonance frequencies
*** Results *** Results
Resonances have been identified at 45Hz and 75Hz. #+begin_important
However, the quality of the measurements are bad at low frequency. - Resonances have been identified at 45Hz and 75Hz
New measurements should be done with Geophones. - However, the quality of the measurements are bad at low frequency
- New measurements should be done with Geophones
#+end_important
** Measurement 2 ** Measurement 2
[[file:2018-01-12%20-%20Marc/index.org][Link to the analysis]] [[file:2018-01-12%20-%20Marc/index.org][Link to the analysis]]
@ -47,10 +49,12 @@ New measurements should be done with Geophones.
Obtain better coherence at low frequency. Obtain better coherence at low frequency.
*** Results *** Results
Resonances at 42Hz, 70Hz and 125Hz have been identified. #+begin_important
The coherence is much better than when using accelerometers. - Resonances at 42Hz, 70Hz and 125Hz have been identified
- The coherence is much better than when using accelerometers
#+end_important
** Measurement 3 ** TODO Measurement 3
[[file:2018-10-12%20-%20Marc/index.org][Link to the analysis]] [[file:2018-10-12%20-%20Marc/index.org][Link to the analysis]]
*** Notes *** Notes
@ -64,6 +68,9 @@ The station is now installed on the experimental hutch with a glued granite (fin
The station is identified again. The station is identified again.
*** Results *** Results
#+begin_important
#+end_important
* Measurements of perturbations * Measurements of perturbations
** Noise coming from the control loop of each stage ** Noise coming from the control loop of each stage
@ -129,11 +136,11 @@ The goal is to estimate all the error motions induced by the Spindle
*** Results *** Results
* Ressources * Ressources
[[file:actuators-sensors/index.org][Actuators and Sensors]] - [[file:actuators-sensors/index.org][Actuators and Sensors]]
- [[file:equipment/equipment.org][Equipment used for the measurements]]
* Other measurements * Other measurements
- [[file:huddle-test-geophones/index.org][Huddle Test - Geophones]] - [[file:huddle-test-geophones/index.org][Huddle Test - Geophones]]
- [[file:disturbance-measurement/index.org][Disturbance Measurement]] - [[file:disturbance-measurement/index.org][Disturbance Measurement]]
- [[file:slip-ring-test/index.org][Slip Ring - Noise measurement]] - [[file:slip-ring-test/index.org][Slip Ring - Noise measurement]]
- [[file:static-measurements/index.org][Control System Measurement]] - [[file:static-measurements/index.org][Control System Measurement]]
- [[file:equipment/equipment.org][Equipment used for the measurements]]

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

View File

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 172 KiB

View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 MiB

After

Width:  |  Height:  |  Size: 4.5 MiB

View File

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.1 MiB

BIN
instrumentation/index.html Normal file

Binary file not shown.

510
instrumentation/index.org Normal file
View File

@ -0,0 +1,510 @@
#+TITLE: Measurements on the instrumentation
#+SETUPFILE: ../config.org
* Measure of the noise of the Voltage Amplifier
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_volt_amp.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_volt_amp>>
#+begin_src bash :exports none :results none
if [ meas_volt_amp.m -nt data/meas_volt_amp.zip ]; then
zip data/meas_volt_amp \
mat/data_003.mat \
mat/data_004.mat \
mat/data_005.mat \
mat/data_006.mat \
meas_volt_amp.m
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_volt_amp.zip][here]].
#+end_note
** Measurement Description
*Goal*:
- Determine the Voltage Amplifier noise
*Setup*:
- 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
- We measure the output of the voltage amplifier with a 16bits ADC of the Speedgoat
*Measurements*:
- =data_003=: Ampli OFF
- =data_004=: Ampli ON set to 20dB
- =data_005=: Ampli ON set to 40dB
- =data_006=: Ampli ON set to 60dB
** 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 :results none
amp_off = load('mat/data_003.mat', 'data'); amp_off = amp_off.data(:, [1,3]);
amp_20d = load('mat/data_004.mat', 'data'); amp_20d = amp_20d.data(:, [1,3]);
amp_40d = load('mat/data_005.mat', 'data'); amp_40d = amp_40d.data(:, [1,3]);
amp_60d = load('mat/data_006.mat', 'data'); amp_60d = amp_60d.data(:, [1,3]);
#+end_src
** Time Domain
The time domain signals are shown on figure [[fig:ampli_noise_time]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(amp_off(:, 2), amp_off(:, 1), 'DisplayName', 'OFF');
plot(amp_20d(:, 2), amp_20d(:, 1), 'DisplayName', '20dB');
plot(amp_40d(:, 2), amp_40d(:, 1), 'DisplayName', '40dB');
plot(amp_60d(:, 2), amp_60d(:, 1), 'DisplayName', '60dB');
hold off;
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
#+end_src
#+NAME: fig:ampli_noise_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ampli_noise_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ampli_noise_time
#+CAPTION: Output of the amplifier
#+RESULTS: fig:ampli_noise_time
[[file:figs/ampli_noise_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = amp_off(2, 2)-amp_off(1, 2);
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
[pxoff, f] = pwelch(amp_off(:,1), win, [], [], Fs);
[px20d, ~] = pwelch(amp_20d(:,1), win, [], [], Fs);
[px40d, ~] = pwelch(amp_40d(:,1), win, [], [], Fs);
[px60d, ~] = pwelch(amp_60d(:,1), win, [], [], Fs);
#+end_src
We compute the theoretical ADC noise.
#+begin_src matlab :results none
q = 20/2^16; % quantization
Sq = q^2/12/1000; % PSD of the ADC noise
#+end_src
Finally, the ASD is shown on figure [[fig:ampli_noise_psd]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxoff), 'DisplayName', 'OFF');
plot(f, sqrt(px20d), 'DisplayName', '20dB');
plot(f, sqrt(px40d), 'DisplayName', '40dB');
plot(f, sqrt(px60d), 'DisplayName', '60dB');
plot([0.1, 500], [sqrt(Sq), sqrt(Sq)], 'k--');
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:ampli_noise_psd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ampli_noise_psd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ampli_noise_psd
#+CAPTION: Amplitude Spectral Density of the measured voltage at the output of the voltage amplifier
#+RESULTS: fig:ampli_noise_psd
[[file:figs/ampli_noise_psd.png]]
** Conclusion
#+begin_important
*Questions*:
- Where does those sharp peaks comes from? Can this be due to aliasing?
Noise induced by the voltage amplifiers seems not to be a limiting factor as we have the same noise when they are OFF and ON.
#+end_important
* Measure of the influence of the AC/DC option on the voltage amplifiers
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_noise_ac_dc.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_noise_ac_dc>>
#+begin_src bash :exports none :results none
if [ meas_noise_ac_dc.m -nt data/meas_noise_ac_dc.zip ]; then
zip data/meas_noise_ac_dc \
mat/data_012.mat \
mat/data_013.mat \
meas_noise_ac_dc.m
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_noise_ac_dc.zip][here]].
#+end_note
** Measurement Description
*Goal*:
- Measure the influence of the high-pass filter option of the voltage amplifiers
*Setup*:
- One geophone is located on the marble.
- It's signal goes to two voltage amplifiers with a gain of 60dB.
- One voltage amplifier is on the AC option, the other is on the DC option.
*Measurements*:
First measurement (=mat/data_014.mat= file):
| Column | Signal |
|--------+----------------------------|
| 1 | Amplifier 1 with AC option |
| 2 | Amplifier 2 with DC option |
| 3 | Time |
Second measurement (=mat/data_015.mat= file):
| Column | Signal |
|--------+----------------------------|
| 1 | Amplifier 1 with DC option |
| 2 | Amplifier 2 with AC option |
| 3 | Time |
#+name: fig:volt_amp_setup
#+caption: Picture of the two voltages amplifiers
#+attr_html: :width 500px
[[file:./img/IMG_20190503_170936.jpg]]
** 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
meas14 = load('mat/data_014.mat', 'data'); meas14 = meas14.data;
meas15 = load('mat/data_015.mat', 'data'); meas15 = meas15.data;
#+end_src
** Time Domain
The signals are shown on figure [[fig:ac_dc_option_time]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(meas14(:, 3), meas14(:, 1), 'DisplayName', 'Amp1 - AC');
plot(meas14(:, 3), meas14(:, 2), 'DisplayName', 'Amp2 - DC');
plot(meas15(:, 3), meas15(:, 1), 'DisplayName', 'Amp1 - DC');
plot(meas15(:, 3), meas15(:, 2), 'DisplayName', 'Amp2 - AC');
hold off;
legend('Location', 'bestoutside');
xlabel('Time [s]');
ylabel('Voltage [V]');
xlim([0, 100]);
#+end_src
#+NAME: fig:ac_dc_option_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ac_dc_option_time.pdf" :var figsize="full-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ac_dc_option_time
#+CAPTION: Comparison of the signals going through the Voltage amplifiers
#+RESULTS: fig:ac_dc_option_time
[[file:figs/ac_dc_option_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = meas14(2, 3)-meas14(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
[pxamp1ac, f] = pwelch(meas14(:, 1), win, [], [], Fs);
[pxamp2dc, ~] = pwelch(meas14(:, 2), win, [], [], Fs);
[pxamp1dc, ~] = pwelch(meas15(:, 1), win, [], [], Fs);
[pxamp2ac, ~] = pwelch(meas15(:, 2), win, [], [], Fs);
#+end_src
The ASD of the signals are compare on figure [[fig:ac_dc_option_asd]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxamp1ac), 'DisplayName', 'Amp1 - AC');
plot(f, sqrt(pxamp2dc), 'DisplayName', 'Amp2 - DC');
plot(f, sqrt(pxamp1dc), 'DisplayName', 'Amp1 - DC');
plot(f, sqrt(pxamp2ac), 'DisplayName', 'Amp2 - AC');
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:ac_dc_option_asd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ac_dc_option_asd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ac_dc_option_asd
#+CAPTION: Amplitude Spectral Density of the measured signals
#+RESULTS: fig:ac_dc_option_asd
[[file:figs/ac_dc_option_asd.png]]
** Conclusion
#+begin_important
- The voltage amplifiers include some very sharp high pass filters at 1.5Hz (maybe 4th order)
- There is a DC offset on the time domain signal because the DC-offset knob was not set to zero
#+end_important
* Transfer function of the Low Pass Filter
:PROPERTIES:
:header-args:matlab+: :tangle matlab/low_pass_filter_measurements.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:low_pass_filter_measurements>>
#+begin_src bash :exports none :results none
if [ low_pass_filter_measurements.m -nt data/low_pass_filter_measurements.zip ]; then
zip data/low_pass_filter_measurements \
mat/data_018.mat \
mat/data_019.mat \
low_pass_filter_measurements.m
fi
#+end_src
The computation files for this section are accessible [[file:data/low_pass_filter_measurements.zip][here]].
** First LPF with a Cut-off frequency of 160Hz
*** Measurement Description
*Goal*:
- Measure the Low Pass Filter Transfer Function
The values of the components are:
\begin{aligned}
R &= 1k\Omega \\
C &= 1\mu F
\end{aligned}
Which makes a cut-off frequency of $f_c = \frac{1}{RC} = 1000 rad/s = 160Hz$.
#+NAME: fig:lpf
#+HEADER: :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/MEGA/These/LaTeX/}{config.tex}")
#+HEADER: :imagemagick t :fit yes :iminoptions -scale 100% -density 150 :imoutoptions -quality 100
#+HEADER: :results raw replace :buffer no :eval no-export :exports both :mkdirp yes
#+HEADER: :output-dir figs
#+begin_src latex :file lpf.pdf :post pdf2svg(file=*this*, ext="png") :exports both
\begin{tikzpicture}
\draw (0,2)
to [R=\(R\)] ++(2,0) node[circ]
to ++(2,0)
++(-2,0)
to [C=\(C\)] ++(0,-2) node[circ]
++(-2,0)
to ++(2,0)
to ++(2,0)
\end{tikzpicture}
#+end_src
#+NAME: fig:lpf
#+CAPTION: Schematic of the Low Pass Filter used
#+RESULTS: fig:lpf
[[file:figs/lpf.png]]
*Setup*:
- 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
*Measurements*:
=mat/data_018.mat=:
| Column | Signal |
|--------+----------------------|
| 1 | Amplifier 1 with LPF |
| 2 | Amplifier 2 |
| 3 | Time |
#+name: fig:lpf_picture
#+caption: Picture of the low pass filter used
#+attr_html: :width 500px
[[file:./img/IMG_20190507_102756.jpg]]
*** 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
data = load('mat/data_018.mat', 'data'); data = data.data;
#+end_src
*** Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
#+begin_src matlab :results none
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
#+begin_src matlab :results none
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
#+end_src
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1000rad/s$.
We obtain the result on figure [[fig:Glpf_bode]].
#+begin_src matlab :results none
Gth = 1/(1+s/1000)
#+end_src
#+begin_src matlab :results none
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
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(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
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
#+NAME: fig:Glpf_bode
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/Glpf_bode.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:Glpf_bode
#+CAPTION: Bode Diagram of the measured Low Pass filter and the theoritical one
#+RESULTS: fig:Glpf_bode
[[file:figs/Glpf_bode.png]]
*** Conclusion
#+begin_important
As we want to measure things up to $500Hz$, we chose to change the value of the capacitor to obtain a cut-off frequency of $1kHz$.
#+end_important
** Second LPF with a Cut-off frequency of 1000Hz
*** Measurement description
This time, the value are
\begin{aligned}
R &= 1k\Omega \\
C &= 150nF
\end{aligned}
Which makes a low pass filter with a cut-off frequency of $f_c = 1060Hz$.
*** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
data = load('mat/data_019.mat', 'data'); data = data.data;
#+end_src
*** Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
#+begin_src matlab :results none
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
#+begin_src matlab :results none
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
#+end_src
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1060Hz$.
We obtain the result on figure [[fig:Glpf_bode_bis]].
#+begin_src matlab :results none
Gth = 1/(1+s/1060/2/pi);
#+end_src
#+begin_src matlab :results none
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
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(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
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
#+NAME: fig:Glpf_bode_bis
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/Glpf_bode_bis.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:Glpf_bode_bis
#+CAPTION: Bode Diagram of the measured Low Pass filter and the theoritical one
#+RESULTS: fig:Glpf_bode_bis
[[file:figs/Glpf_bode_bis.png]]
*** Conclusion
#+begin_important
The added LPF has the expected behavior.
#+end_important

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1,11 +0,0 @@
data1 = load('mat/data_001.mat', 't', 'x1', 'x2');
data2 = load('mat/data_002.mat', 't', 'x1', 'x2');
figure;
hold on;
plot(data1.t, data1.x1-data1.x2);
plot(data2.t, data2.x1-data2.x2);
hold off
xlabel('Time [s]');
ylabel('Voltage [V]');
legend({'Slip-ring OFF', 'Slip-ring ON'});

View File

@ -1,3 +0,0 @@
*.tex
*.pdf
*.svg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 KiB

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 KiB

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 MiB

After

Width:  |  Height:  |  Size: 4.4 MiB

View File

Before

Width:  |  Height:  |  Size: 3.5 MiB

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

View File

@ -1,39 +1,165 @@
#+TITLE: Measurements #+TITLE: Measurements On the Slip-Ring
:DRAWER: #+SETUPFILE: ../config.org
#+STARTUP: overview
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> * Effect of the Slip-Ring on the signal
#+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:
* Effect of the rotation of the Slip-Ring
:PROPERTIES: :PROPERTIES:
:header-args:matlab+: :tangle meas_effect_sr.m :header-args:matlab+: :tangle matlab/meas_slip_ring_geophone.m
:header-args:matlab+: :comments org :mkdirp yes :header-args:matlab+: :comments org :mkdirp yes
:END: :END:
<<sec:meas_slip_ring_geophone>>
#+begin_src bash :exports none :results none #+begin_src bash :exports none :results none
if [ meas_effect_sr.m -nt data/meas_effect_sr.zip ]; then if [ matlab/meas_slip_ring_geophone.m -nt data/meas_slip_ring_geophone.zip ]; then
zip data/meas_effect_sr \ cp matlab/meas_slip_ring_geophone.m meas_slip_ring_geophone.m;
mat/data_001.mat \ zip data/meas_slip_ring_geophone \
mat/data_002.mat \ mat/data_018.mat \
meas_effect_sr.m mat/data_019.mat \
meas_slip_ring_geophone.m;
rm meas_slip_ring_geophone.m;
fi fi
#+end_src #+end_src
The data and matlab files are accessible [[file:data/meas_effect_sr.zip][here]]. #+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_slip_ring_geophone.zip][here]].
#+end_note
** Experimental Setup
Two measurements are made with the control systems of all the stages turned OFF.
One geophone is located on the marble while the other is located at the sample location (figure [[fig:setup_slipring]]).
#+name: fig:setup_slipring
#+caption: Experimental Setup
#+attr_html: :width 500px
[[file:./img/IMG_20190430_112615.jpg]]
The two measurements are:
| Measurement File | Description |
|------------------+------------------------------------------------------------------|
| =meas_018.mat= | Signal from the top geophone does not goes through the Slip-ring |
| =meas_019.mat= | Signal goes through the Slip-ring (as shown on the figure above) |
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 :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
d8 = load('mat/data_018.mat', 'data'); d8 = d8.data;
d9 = load('mat/data_019.mat', 'data'); d9 = d9.data;
#+end_src
** Analysis - Time Domain
First, we compare the time domain signals for the two experiments (figure [[fig:slipring_time]]).
#+begin_src matlab :results none
figure;
hold on;
plot(d9(:, 3), d9(:, 2), 'DisplayName', 'Slip-Ring');
plot(d8(:, 3), d8(:, 2), 'DisplayName', 'Wire');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
xlim([0, 50]);
legend('location', 'northeast');
#+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
We then compute the Power Spectral Density of the two signals and we compare them (figure [[fig:slipring_asd]]).
#+begin_src matlab :results none
dt = d8(2, 3) - d8(1, 3);
Fs = 1/dt;
win = hanning(ceil(1*Fs));
#+end_src
#+begin_src matlab :results none
[pxx8, f] = pwelch(d8(:, 2), win, [], [], Fs);
[pxx9, ~] = pwelch(d9(:, 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('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
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
#+begin_important
- Connecting the geophone through the Slip-Ring seems to induce a lot of noise.
#+end_important
#+begin_note
*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)
#+end_note
* Effect of the rotation of the Slip-Ring
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_effect_sr.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_effect_sr>>
#+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 ** Measurement Description
Random Signal is generated by one DAC of the SpeedGoat. Random Signal is generated by one DAC of the SpeedGoat.
@ -60,7 +186,11 @@ The goal is to determine is the signal is altered when the spindle is rotating.
Here, the rotation speed of the Slip-Ring is set to 1rpm. Here, the rotation speed of the Slip-Ring is set to 1rpm.
** Matlab Init :noexport:ignore: ** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src
@ -159,159 +289,29 @@ We now look at the difference between the signal directly measured by the ADC an
- Should the measurement be redone using voltage amplifiers? - Should the measurement be redone using voltage amplifiers?
- Use higher rotation speed and measure for longer periods (to have multiple revolutions) ? - Use higher rotation speed and measure for longer periods (to have multiple revolutions) ?
#+end_note #+end_note
* Measure of the noise of the Voltage Amplifier
:PROPERTIES:
:header-args:matlab+: :tangle meas_volt_amp.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
#+begin_src bash :exports none :results none
if [ meas_volt_amp.m -nt data/meas_volt_amp.zip ]; then
zip data/meas_volt_amp \
mat/data_003.mat \
mat/data_004.mat \
mat/data_005.mat \
mat/data_006.mat \
meas_volt_amp.m
fi
#+end_src
The data and matlab files are accessible [[file:data/meas_volt_amp.zip][here]].
** Measurement Description
*Goal*:
- Determine the Voltage Amplifier noise
*Setup*:
- 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
- We measure the output of the voltage amplifier with a 16bits ADC of the Speedgoat
*Measurements*:
- =data_003=: Ampli OFF
- =data_004=: Ampli ON set to 20dB
- =data_005=: Ampli ON set to 40dB
- =data_006=: Ampli ON set to 60dB
** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-init>>
#+end_src
** Load data
#+begin_src matlab :results none
amp_off = load('mat/data_003.mat', 'data'); amp_off = amp_off.data(:, [1,3]);
amp_20d = load('mat/data_004.mat', 'data'); amp_20d = amp_20d.data(:, [1,3]);
amp_40d = load('mat/data_005.mat', 'data'); amp_40d = amp_40d.data(:, [1,3]);
amp_60d = load('mat/data_006.mat', 'data'); amp_60d = amp_60d.data(:, [1,3]);
#+end_src
** Time Domain
The time domain signals are shown on figure [[fig:ampli_noise_time]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(amp_off(:, 2), amp_off(:, 1), 'DisplayName', 'OFF');
plot(amp_20d(:, 2), amp_20d(:, 1), 'DisplayName', '20dB');
plot(amp_40d(:, 2), amp_40d(:, 1), 'DisplayName', '40dB');
plot(amp_60d(:, 2), amp_60d(:, 1), 'DisplayName', '60dB');
hold off;
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
#+end_src
#+NAME: fig:ampli_noise_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ampli_noise_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ampli_noise_time
#+CAPTION: Output of the amplifier
#+RESULTS: fig:ampli_noise_time
[[file:figs/ampli_noise_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = amp_off(2, 2)-amp_off(1, 2);
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
[pxoff, f] = pwelch(amp_off(:,1), win, [], [], Fs);
[px20d, ~] = pwelch(amp_20d(:,1), win, [], [], Fs);
[px40d, ~] = pwelch(amp_40d(:,1), win, [], [], Fs);
[px60d, ~] = pwelch(amp_60d(:,1), win, [], [], Fs);
#+end_src
We compute the theoretical ADC noise.
#+begin_src matlab :results none
q = 20/2^16; % quantization
Sq = q^2/12/1000; % PSD of the ADC noise
#+end_src
Finally, the ASD is shown on figure [[fig:ampli_noise_psd]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxoff), 'DisplayName', 'OFF');
plot(f, sqrt(px20d), 'DisplayName', '20dB');
plot(f, sqrt(px40d), 'DisplayName', '40dB');
plot(f, sqrt(px60d), 'DisplayName', '60dB');
plot([0.1, 500], [sqrt(Sq), sqrt(Sq)], 'k--');
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:ampli_noise_psd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ampli_noise_psd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ampli_noise_psd
#+CAPTION: Amplitude Spectral Density of the measured voltage at the output of the voltage amplifier
#+RESULTS: fig:ampli_noise_psd
[[file:figs/ampli_noise_psd.png]]
** Conclusion
#+begin_important
*Questions*:
- Where does those sharp peaks comes from? Can this be due to aliasing?
Noise induced by the voltage amplifiers seems not to be a limiting factor as we have the same noise when they are OFF and ON.
#+end_important
* Measure of the noise induced by the Slip-Ring * Measure of the noise induced by the Slip-Ring
:PROPERTIES: :PROPERTIES:
:header-args:matlab+: :tangle meas_slip_ring.m :header-args:matlab+: :tangle matlab/meas_slip_ring.m
:header-args:matlab+: :comments org :mkdirp yes :header-args:matlab+: :comments org :mkdirp yes
:END: :END:
<<sec:meas_slip_ring>>
#+begin_src bash :exports none :results none #+begin_src bash :exports none :results none
if [ meas_slip_ring.m -nt data/meas_slip_ring.zip ]; then 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 \ zip data/meas_slip_ring \
mat/data_008.mat \ mat/data_008.mat \
mat/data_009.mat \ mat/data_009.mat \
mat/data_010.mat \ mat/data_010.mat \
mat/data_011.mat \ mat/data_011.mat \
meas_slip_ring.m meas_slip_ring.m;
rm meas_slip_ring.m;
fi fi
#+end_src #+end_src
The data and matlab files are accessible [[file:data/meas_slip_ring.zip][here]]. #+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_slip_ring.zip][here]].
#+end_note
** Measurement Description ** Measurement Description
*Goal*: *Goal*:
@ -343,7 +343,11 @@ Second column: Slip-ring measure
[[file:./img/VID_20190503_161401.gif]] [[file:./img/VID_20190503_161401.gif]]
** Matlab Init :noexport:ignore: ** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+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>> <<matlab-init>>
#+end_src #+end_src
@ -463,22 +467,36 @@ And we plot the ASD of the measured signals (figure [[fig:sr_psd_compare]]);
* Measure of the noise induced by the slip ring when using a geophone * Measure of the noise induced by the slip ring when using a geophone
:PROPERTIES: :PROPERTIES:
:header-args:matlab+: :tangle meas_sr_geophone.m :header-args:matlab+: :tangle matlab/meas_sr_geophone.m
:header-args:matlab+: :comments org :mkdirp yes :header-args:matlab+: :comments org :mkdirp yes
:END: :END:
<<sec:meas_sr_geophone>>
#+begin_src bash :exports none :results none #+begin_src bash :exports none :results none
if [ meas_sr_geophone.m -nt data/meas_sr_geophone.zip ]; then if [ matlab/meas_sr_geophone.m -nt data/meas_sr_geophone.zip ]; then
cp matlab/meas_sr_geophone.m meas_sr_geophone.m;
zip data/meas_sr_geophone \ zip data/meas_sr_geophone \
mat/data_012.mat \ mat/data_012.mat \
mat/data_013.mat \ mat/data_013.mat \
mat/data_016.mat \ mat/data_016.mat \
mat/data_017.mat \ mat/data_017.mat \
meas_sr_geophone.m meas_sr_geophone.m;
rm meas_sr_geophone.m;
fi fi
#+end_src #+end_src
The data and matlab files are accessible [[file:data/meas_sr_geophone.zip][here]]. #+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_sr_geophone.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
** First Measurement without LPF ** First Measurement without LPF
*** Measurement Description *** Measurement Description
@ -502,11 +520,6 @@ Second column: Slip-ring measure
- =data_012=: Slip-Ring OFF - =data_012=: Slip-Ring OFF
- =data_013=: Slip-Ring ON - =data_013=: Slip-Ring ON
*** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-init>>
#+end_src
*** Load data *** Load data
We load the data of the z axis of two geophones. We load the data of the z axis of two geophones.
#+begin_src matlab :results none #+begin_src matlab :results none
@ -825,357 +838,3 @@ Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:
- Using the LPF, we don't have any perturbation coming from the slip-ring when it is on. - Using the LPF, we don't have any perturbation coming from the slip-ring when it is on.
- However, we should use a smaller value of the capacitor to have a cut-off frequency at $1kHz$. - However, we should use a smaller value of the capacitor to have a cut-off frequency at $1kHz$.
#+end_important #+end_important
* Measure of the influence of the AC/DC option on the voltage amplifiers
:PROPERTIES:
:header-args:matlab+: :tangle meas_noise_ac_dc.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
#+begin_src bash :exports none :results none
if [ meas_noise_ac_dc.m -nt data/meas_noise_ac_dc.zip ]; then
zip data/meas_noise_ac_dc \
mat/data_012.mat \
mat/data_013.mat \
meas_noise_ac_dc.m
fi
#+end_src
The data and matlab files are accessible [[file:data/meas_noise_ac_dc.zip][here]].
** Measurement Description
*Goal*:
- Measure the influence of the high-pass filter option of the voltage amplifiers
*Setup*:
- One geophone is located on the marble.
- It's signal goes to two voltage amplifiers with a gain of 60dB.
- One voltage amplifier is on the AC option, the other is on the DC option.
*Measurements*:
First measurement (=mat/data_014.mat= file):
| Column | Signal |
|--------+----------------------------|
| 1 | Amplifier 1 with AC option |
| 2 | Amplifier 2 with DC option |
| 3 | Time |
Second measurement (=mat/data_015.mat= file):
| Column | Signal |
|--------+----------------------------|
| 1 | Amplifier 1 with DC option |
| 2 | Amplifier 2 with AC option |
| 3 | Time |
#+name: fig:volt_amp_setup
#+caption: Picture of the two voltages amplifiers
#+attr_html: :width 500px
[[file:./img/IMG_20190503_170936.jpg]]
** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-init>>
#+end_src
** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
meas14 = load('mat/data_014.mat', 'data'); meas14 = meas14.data;
meas15 = load('mat/data_015.mat', 'data'); meas15 = meas15.data;
#+end_src
** Time Domain
The signals are shown on figure [[fig:ac_dc_option_time]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(meas14(:, 3), meas14(:, 1), 'DisplayName', 'Amp1 - AC');
plot(meas14(:, 3), meas14(:, 2), 'DisplayName', 'Amp2 - DC');
plot(meas15(:, 3), meas15(:, 1), 'DisplayName', 'Amp1 - DC');
plot(meas15(:, 3), meas15(:, 2), 'DisplayName', 'Amp2 - AC');
hold off;
legend('Location', 'bestoutside');
xlabel('Time [s]');
ylabel('Voltage [V]');
xlim([0, 100]);
#+end_src
#+NAME: fig:ac_dc_option_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ac_dc_option_time.pdf" :var figsize="full-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ac_dc_option_time
#+CAPTION: Comparison of the signals going through the Voltage amplifiers
#+RESULTS: fig:ac_dc_option_time
[[file:figs/ac_dc_option_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = meas14(2, 3)-meas14(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
[pxamp1ac, f] = pwelch(meas14(:, 1), win, [], [], Fs);
[pxamp2dc, ~] = pwelch(meas14(:, 2), win, [], [], Fs);
[pxamp1dc, ~] = pwelch(meas15(:, 1), win, [], [], Fs);
[pxamp2ac, ~] = pwelch(meas15(:, 2), win, [], [], Fs);
#+end_src
The ASD of the signals are compare on figure [[fig:ac_dc_option_asd]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxamp1ac), 'DisplayName', 'Amp1 - AC');
plot(f, sqrt(pxamp2dc), 'DisplayName', 'Amp2 - DC');
plot(f, sqrt(pxamp1dc), 'DisplayName', 'Amp1 - DC');
plot(f, sqrt(pxamp2ac), 'DisplayName', 'Amp2 - AC');
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:ac_dc_option_asd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ac_dc_option_asd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ac_dc_option_asd
#+CAPTION: Amplitude Spectral Density of the measured signals
#+RESULTS: fig:ac_dc_option_asd
[[file:figs/ac_dc_option_asd.png]]
** Conclusion
#+begin_important
- The voltage amplifiers include some very sharp high pass filters at 1.5Hz (maybe 4th order)
- There is a DC offset on the time domain signal because the DC-offset knob was not set to zero
#+end_important
* Transfer function of the Low Pass Filter
:PROPERTIES:
:header-args:matlab+: :tangle low_pass_filter_measurements.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
#+begin_src bash :exports none :results none
if [ low_pass_filter_measurements.m -nt data/low_pass_filter_measurements.zip ]; then
zip data/low_pass_filter_measurements \
mat/data_018.mat \
mat/data_019.mat \
low_pass_filter_measurements.m
fi
#+end_src
The computation files for this section are accessible [[file:data/low_pass_filter_measurements.zip][here]].
** First LPF with a Cut-off frequency of 160Hz
*** Measurement Description
*Goal*:
- Measure the Low Pass Filter Transfer Function
The values of the components are:
\begin{aligned}
R &= 1k\Omega \\
C &= 1\mu F
\end{aligned}
Which makes a cut-off frequency of $f_c = \frac{1}{RC} = 1000 rad/s = 160Hz$.
#+NAME: fig:lpf
#+HEADER: :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/MEGA/These/LaTeX/}{config.tex}")
#+HEADER: :imagemagick t :fit yes :iminoptions -scale 100% -density 150 :imoutoptions -quality 100
#+HEADER: :results raw replace :buffer no :eval no-export :exports both :mkdirp yes
#+HEADER: :output-dir figs
#+begin_src latex :file lpf.pdf :post pdf2svg(file=*this*, ext="png") :exports both
\begin{tikzpicture}
\draw (0,2)
to [R=\(R\)] ++(2,0) node[circ]
to ++(2,0)
++(-2,0)
to [C=\(C\)] ++(0,-2) node[circ]
++(-2,0)
to ++(2,0)
to ++(2,0)
\end{tikzpicture}
#+end_src
#+NAME: fig:lpf
#+CAPTION: Schematic of the Low Pass Filter used
#+RESULTS: fig:lpf
[[file:figs/lpf.png]]
*Setup*:
- 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
*Measurements*:
=mat/data_018.mat=:
| Column | Signal |
|--------+----------------------|
| 1 | Amplifier 1 with LPF |
| 2 | Amplifier 2 |
| 3 | Time |
#+name: fig:lpf_picture
#+caption: Picture of the low pass filter used
#+attr_html: :width 500px
[[file:./img/IMG_20190507_102756.jpg]]
*** Matlab Init :noexport:ignore:
#+begin_src matlab :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-init>>
#+end_src
*** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
data = load('mat/data_018.mat', 'data'); data = data.data;
#+end_src
*** Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
#+begin_src matlab :results none
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
#+begin_src matlab :results none
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
#+end_src
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1000rad/s$.
We obtain the result on figure [[fig:Glpf_bode]].
#+begin_src matlab :results none
Gth = 1/(1+s/1000)
#+end_src
#+begin_src matlab :results none
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
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(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
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
#+NAME: fig:Glpf_bode
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/Glpf_bode.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:Glpf_bode
#+CAPTION: Bode Diagram of the measured Low Pass filter and the theoritical one
#+RESULTS: fig:Glpf_bode
[[file:figs/Glpf_bode.png]]
*** Conclusion
#+begin_important
As we want to measure things up to $500Hz$, we chose to change the value of the capacitor to obtain a cut-off frequency of $1kHz$.
#+end_important
** Second LPF with a Cut-off frequency of 1000Hz
*** Measurement description
This time, the value are
\begin{aligned}
R &= 1k\Omega \\
C &= 150nF
\end{aligned}
Which makes a low pass filter with a cut-off frequency of $f_c = 1060Hz$.
*** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
data = load('mat/data_019.mat', 'data'); data = data.data;
#+end_src
*** Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
#+begin_src matlab :results none
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
#+begin_src matlab :results none
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
#+end_src
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1060Hz$.
We obtain the result on figure [[fig:Glpf_bode_bis]].
#+begin_src matlab :results none
Gth = 1/(1+s/1060/2/pi);
#+end_src
#+begin_src matlab :results none
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
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(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
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
#+NAME: fig:Glpf_bode_bis
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/Glpf_bode_bis.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:Glpf_bode_bis
#+CAPTION: Bode Diagram of the measured Low Pass filter and the theoritical one
#+RESULTS: fig:Glpf_bode_bis
[[file:figs/Glpf_bode_bis.png]]
*** Conclusion
#+begin_important
The added LPF has the expected behavior.
#+end_important

View File

@ -1,101 +0,0 @@
% Matlab Init :noexport:ignore:
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
%% Initialize ans with org-babel
ans = 0;
% Load data
% We load the data of the z axis of two geophones.
data = load('mat/data_018.mat', 'data'); data = data.data;
% Transfer function of the LPF
% We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
% We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1000rad/s$.
% We obtain the result on figure [[fig:Glpf_bode]].
Gth = 1/(1+s/1000)
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
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(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
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]);
% Load data
% We load the data of the z axis of two geophones.
data = load('mat/data_019.mat', 'data'); data = data.data;
% Transfer function of the LPF
% We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
% We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1060Hz$.
% We obtain the result on figure [[fig:Glpf_bode_bis]].
Gth = 1/(1+s/1060/2/pi);
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
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(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
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]);

Binary file not shown.

Binary file not shown.

View File

@ -1,13 +1,12 @@
% Matlab Init :noexport:ignore: % Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/slip-ring-test/';
%% Clear Workspace and Close figures
clear; close all; clc; clear; close all; clc;
%% Intialize Laplace variable %% Intialize Laplace variable
s = zpk('s'); s = zpk('s');
%% Initialize ans with org-babel
ans = 0;
% Load data % Load data
% We load the data of the z axis of two geophones. % We load the data of the z axis of two geophones.

View File

@ -1,13 +1,12 @@
% Matlab Init :noexport:ignore: % Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/slip-ring-test/';
%% Clear Workspace and Close figures
clear; close all; clc; clear; close all; clc;
%% Intialize Laplace variable %% Intialize Laplace variable
s = zpk('s'); s = zpk('s');
%% Initialize ans with org-babel
ans = 0;
% Load data % Load data
% We load the data of the z axis of two geophones. % We load the data of the z axis of two geophones.

View File

@ -0,0 +1,57 @@
% 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;
%% Intialize Laplace variable
s = zpk('s');
% Load data
% 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;
% 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');
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 = d8(2, 3) - d8(1, 3);
Fs = 1/dt;
win = hanning(ceil(1*Fs));
[pxx8, f] = pwelch(d8(:, 2), win, [], [], Fs);
[pxx9, ~] = pwelch(d9(:, 2), win, [], [], Fs);
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('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
xlim([1, 500]);
legend('Location', 'southwest');

View File

@ -1,13 +1,12 @@
% Matlab Init :noexport:ignore: % Matlab Init :noexport:ignore:
current_dir='/home/thomas/MEGA/These/meas/slip-ring-test/';
%% Clear Workspace and Close figures
clear; close all; clc; clear; close all; clc;
%% Intialize Laplace variable %% Intialize Laplace variable
s = zpk('s'); s = zpk('s');
%% Initialize ans with org-babel
ans = 0;
% Load data % Load data
% We load the data of the z axis of two geophones. % We load the data of the z axis of two geophones.

View File

@ -1,66 +0,0 @@
% Matlab Init :noexport:ignore:
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
%% Initialize ans with org-babel
ans = 0;
% Load data
% We load the data of the z axis of two geophones.
meas14 = load('mat/data_014.mat', 'data'); meas14 = meas14.data;
meas15 = load('mat/data_015.mat', 'data'); meas15 = meas15.data;
% Time Domain
% The signals are shown on figure [[fig:ac_dc_option_time]].
figure;
hold on;
plot(meas14(:, 3), meas14(:, 1), 'DisplayName', 'Amp1 - AC');
plot(meas14(:, 3), meas14(:, 2), 'DisplayName', 'Amp2 - DC');
plot(meas15(:, 3), meas15(:, 1), 'DisplayName', 'Amp1 - DC');
plot(meas15(:, 3), meas15(:, 2), 'DisplayName', 'Amp2 - AC');
hold off;
legend('Location', 'bestoutside');
xlabel('Time [s]');
ylabel('Voltage [V]');
xlim([0, 100]);
% Frequency Domain
% We first compute some parameters that will be used for the PSD computation.
dt = meas14(2, 3)-meas14(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
[pxamp1ac, f] = pwelch(meas14(:, 1), win, [], [], Fs);
[pxamp2dc, ~] = pwelch(meas14(:, 2), win, [], [], Fs);
[pxamp1dc, ~] = pwelch(meas15(:, 1), win, [], [], Fs);
[pxamp2ac, ~] = pwelch(meas15(:, 2), win, [], [], Fs);
% The ASD of the signals are compare on figure [[fig:ac_dc_option_asd]].
figure;
hold on;
plot(f, sqrt(pxamp1ac), 'DisplayName', 'Amp1 - AC');
plot(f, sqrt(pxamp2dc), 'DisplayName', 'Amp2 - DC');
plot(f, sqrt(pxamp1dc), 'DisplayName', 'Amp1 - DC');
plot(f, sqrt(pxamp2ac), 'DisplayName', 'Amp2 - AC');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'northeast');
xlim([0.1, 500]);

View File

@ -1,74 +0,0 @@
% Matlab Init :noexport:ignore:
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
%% Initialize ans with org-babel
ans = 0;
% Load data
amp_off = load('mat/data_003.mat', 'data'); amp_off = amp_off.data(:, [1,3]);
amp_20d = load('mat/data_004.mat', 'data'); amp_20d = amp_20d.data(:, [1,3]);
amp_40d = load('mat/data_005.mat', 'data'); amp_40d = amp_40d.data(:, [1,3]);
amp_60d = load('mat/data_006.mat', 'data'); amp_60d = amp_60d.data(:, [1,3]);
% Time Domain
% The time domain signals are shown on figure [[fig:ampli_noise_time]].
figure;
hold on;
plot(amp_off(:, 2), amp_off(:, 1), 'DisplayName', 'OFF');
plot(amp_20d(:, 2), amp_20d(:, 1), 'DisplayName', '20dB');
plot(amp_40d(:, 2), amp_40d(:, 1), 'DisplayName', '40dB');
plot(amp_60d(:, 2), amp_60d(:, 1), 'DisplayName', '60dB');
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 = amp_off(2, 2)-amp_off(1, 2);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
% Then we compute the Power Spectral Density using =pwelch= function.
[pxoff, f] = pwelch(amp_off(:,1), win, [], [], Fs);
[px20d, ~] = pwelch(amp_20d(:,1), win, [], [], Fs);
[px40d, ~] = pwelch(amp_40d(:,1), win, [], [], Fs);
[px60d, ~] = pwelch(amp_60d(:,1), win, [], [], Fs);
% We compute the theoretical ADC noise.
q = 20/2^16; % quantization
Sq = q^2/12/1000; % PSD of the ADC noise
% Finally, the ASD is shown on figure [[fig:ampli_noise_psd]].
figure;
hold on;
plot(f, sqrt(pxoff), 'DisplayName', 'OFF');
plot(f, sqrt(px20d), 'DisplayName', '20dB');
plot(f, sqrt(px40d), 'DisplayName', '40dB');
plot(f, sqrt(px60d), 'DisplayName', '60dB');
plot([0.1, 500], [sqrt(Sq), sqrt(Sq)], 'k--');
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
legend('Location', 'northeast');
xlim([0.1, 500]);

View File

@ -1,54 +0,0 @@
%%
Tsim = 100; % [s]
%%
tg = slrt;
%% TODO - Build this application if updated
%%
if tg.Connected == "Yes"
if tg.Status == "running"
disp('Target is Running, Stopping...');
tg.stop;
while tg.Status == "running"
pause(1);
end
disp('Target is Stopped');
end
if tg.Status == "stopped"
disp('Load the Application');
tg.load('slip_ring_test');
%% Run the application
disp('Starting the Application');
tg.start;
pause(Tsim);
tg.stop;
end
else
error("The target computer is not connected");
end
%%
f = SimulinkRealTime.openFTP(tg);
cd(f, 'data/slip_ring_test/');
mget(f, 'data_001.dat', 'data');
close(f);
%%
data = SimulinkRealTime.utils.getFileScopeData('data/data_001.dat').data;
%%
n = 19;
while isfile(['mat/data_', num2str(n, '%03d'), '.mat'])
disp('File exists.');
if input(['Are you sure you want to override the file ', 'mat/data_', ...
num2str(n, '%03d'), '.mat', ' ? [Y/n]']) == 'Y'
break;
end
n = input('What should be the measurement number?');
end
save(['mat/data_', num2str(n, '%03d'), '.mat'], 'data');

View File

@ -1,7 +0,0 @@
%%
% tg = slrt;
% f = SimulinkRealTime.openFTP(tg);
% cd(f, 'data/');
% mkdir(f, 'disturbance-measurement');
% close(f);

View File

@ -78,9 +78,3 @@ Then, the =f= object can be used to access the filesystem on the target computer
* ELMO * ELMO
tutorials: https://www.elmomc.com/products/application-studio/easii/easii-tutorials/ tutorials: https://www.elmomc.com/products/application-studio/easii/easii-tutorials/
* Low Pass Filter
R = 1KOhm
C = 1muF
Fc = 1kHz

View File

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Some files were not shown because too many files have changed in this diff Show More