[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 3800 additions and 582492 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/

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-03-15 ven. 11:41 --> <!-- 2019-05-10 ven. 09:46 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Measurements</title> <title>Measurements</title>
@ -253,16 +253,16 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#orgd3daf9d">1. Experimental conditions</a></li> <li><a href="#org2e8dc82">1. Experimental conditions</a></li>
<li><a href="#org8c42f5c">2. Measurements procedure</a></li> <li><a href="#org2f1a089">2. Measurements procedure</a></li>
<li><a href="#org06a1ec4">3. Measurement Files</a></li> <li><a href="#orgcb92a24">3. Measurement Files</a></li>
<li><a href="#orgde26e79">4. Data Analysis</a> <li><a href="#orgad05307">4. Data Analysis</a>
<ul> <ul>
<li><a href="#orgcf77a6c">4.1. Loading of the data</a></li> <li><a href="#org28e779a">4.1. Loading of the data</a></li>
<li><a href="#org37cddb7">4.2. Pre-processing of the data</a></li> <li><a href="#orgf5d9ddc">4.2. Pre-processing of the data</a></li>
<li><a href="#orgb992ebc">4.3. X-direction FRF</a></li> <li><a href="#orgf90fc5f">4.3. X-direction FRF</a></li>
<li><a href="#org65e3ece">4.4. Y-direction FRF</a></li> <li><a href="#orgec13f33">4.4. Y-direction FRF</a></li>
<li><a href="#org90e2e38">4.5. Z-direction FRF</a></li> <li><a href="#org0696fe4">4.5. Z-direction FRF</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -273,39 +273,39 @@ for the JavaScript code in this tag.
<a href="../index.html">Back to main page</a>. <a href="../index.html">Back to main page</a>.
</p> </p>
<div id="outline-container-orgd3daf9d" class="outline-2"> <div id="outline-container-org2e8dc82" class="outline-2">
<h2 id="orgd3daf9d"><span class="section-number-2">1</span> Experimental conditions</h2> <h2 id="org2e8dc82"><span class="section-number-2">1</span> Experimental conditions</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<ul class="org-ul"> <ul class="org-ul">
<li>Measurement made in a metrology lab</li> <li>Measurement made in a metrology lab</li>
<li>The granite is not glued to the floor</li> <li>The granite is not glued to the floor</li>
<li>The Y-Translation stage is powered and in closed-loop</li> <li>The Y-Translation stage is powered and in closed-loop</li>
<li>The spindle is not powered</li> <li>The spindle is not powered</li>
<li>Mass is placed on top of the Hexapod (<b>how much?</b>) (figure <a href="#orge4311fc">1</a>).</li> <li>Mass is placed on top of the Hexapod (<b>how much?</b>) (figure <a href="#orge067538">1</a>).</li>
<li>Made by Marc Lesourd on the 17th of November 2017</li> <li>Made by Marc Lesourd on the 17th of November 2017</li>
</ul> </ul>
<div id="orge4311fc" class="figure"> <div id="orge067538" class="figure">
<p><img src="./figs/accelerometers.png" alt="accelerometers.png" /> <p><img src="./figs/accelerometers.png" alt="accelerometers.png" width="500px" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Accelerometers position</p> <p><span class="figure-number">Figure 1: </span>Accelerometers position</p>
</div> </div>
<div id="orgdc7cb0d" class="figure"> <div id="org737c3b9" class="figure">
<p><img src="./figs/instrumented_hammer.png" alt="instrumented_hammer.png" /> <p><img src="./figs/instrumented_hammer.png" alt="instrumented_hammer.png" width="500px" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Instrumented Hammer used</p> <p><span class="figure-number">Figure 2: </span>Instrumented Hammer used</p>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org8c42f5c" class="outline-2"> <div id="outline-container-org2f1a089" class="outline-2">
<h2 id="org8c42f5c"><span class="section-number-2">2</span> Measurements procedure</h2> <h2 id="org2f1a089"><span class="section-number-2">2</span> Measurements procedure</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
<b>3-axis Accelerometers</b> (specifications table <a href="#orgb286243">1</a>) are glued on (see figure <a href="#orge4311fc">1</a>): <b>3-axis Accelerometers</b> (specifications table <a href="#org7e5f9c1">1</a>) are glued on (see figure <a href="#orge067538">1</a>):
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
<li>Marble</li> <li>Marble</li>
@ -314,7 +314,7 @@ for the JavaScript code in this tag.
<li>top of Hexapod</li> <li>top of Hexapod</li>
</ul> </ul>
<table id="orgb286243" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org7e5f9c1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Pieozoelectric acc. 356b18 - 3 axis</caption> <caption class="t-above"><span class="table-number">Table 1:</span> Pieozoelectric acc. 356b18 - 3 axis</caption>
<colgroup> <colgroup>
@ -351,7 +351,7 @@ for the JavaScript code in this tag.
</table> </table>
<p> <p>
The structure is excited using an <b>instrumented hammer</b> with impacts on (see figure <a href="#orgdc7cb0d">2</a>): The structure is excited using an <b>instrumented hammer</b> with impacts on (see figure <a href="#org737c3b9">2</a>):
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
<li>Marble</li> <li>Marble</li>
@ -360,8 +360,8 @@ The structure is excited using an <b>instrumented hammer</b> with impacts on (se
</div> </div>
</div> </div>
<div id="outline-container-org06a1ec4" class="outline-2"> <div id="outline-container-orgcb92a24" class="outline-2">
<h2 id="org06a1ec4"><span class="section-number-2">3</span> Measurement Files</h2> <h2 id="orgcb92a24"><span class="section-number-2">3</span> Measurement Files</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
Two measurements files are: Two measurements files are:
@ -370,7 +370,7 @@ Two measurements files are:
<li><code>id31_microstation_2017_11_17_frf.mat</code> that contains: <li><code>id31_microstation_2017_11_17_frf.mat</code> that contains:
<ul class="org-ul"> <ul class="org-ul">
<li><code>freq_frf</code> the frequency vector in Hz</li> <li><code>freq_frf</code> the frequency vector in Hz</li>
<li>Computed frequency response functions (see table <a href="#org3821552">2</a>)</li> <li>Computed frequency response functions (see table <a href="#orgc7a9cf7">2</a>)</li>
</ul></li> </ul></li>
<li><code>id31_microstation_2017_11_17_coh.mat</code> <li><code>id31_microstation_2017_11_17_coh.mat</code>
<ul class="org-ul"> <ul class="org-ul">
@ -379,10 +379,10 @@ Two measurements files are:
</ul> </ul>
<p> <p>
For each of the measurement, the measured channels are shown on table <a href="#orgedc361d">3</a>. For each of the measurement, the measured channels are shown on table <a href="#org4e93508">3</a>.
</p> </p>
<table id="org3821552" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="orgc7a9cf7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Description of the location of direction of the excitation for each measurement</caption> <caption class="t-above"><span class="table-number">Table 2:</span> Description of the location of direction of the excitation for each measurement</caption>
<colgroup> <colgroup>
@ -438,7 +438,7 @@ For each of the measurement, the measured channels are shown on table <a href="#
</tbody> </tbody>
</table> </table>
<table id="orgedc361d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org4e93508" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 3:</span> Description of each measurement channel</caption> <caption class="t-above"><span class="table-number">Table 3:</span> Description of each measurement channel</caption>
<colgroup> <colgroup>
@ -554,63 +554,63 @@ For each of the measurement, the measured channels are shown on table <a href="#
</div> </div>
</div> </div>
<div id="outline-container-orgde26e79" class="outline-2"> <div id="outline-container-orgad05307" class="outline-2">
<h2 id="orgde26e79"><span class="section-number-2">4</span> Data Analysis</h2> <h2 id="orgad05307"><span class="section-number-2">4</span> Data Analysis</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
</div> </div>
<div id="outline-container-orgcf77a6c" class="outline-3"> <div id="outline-container-org28e779a" class="outline-3">
<h3 id="orgcf77a6c"><span class="section-number-3">4.1</span> Loading of the data</h3> <h3 id="org28e779a"><span class="section-number-3">4.1</span> Loading of the data</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">load<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'./raw_data/id31_microstation_2017_11_17_coh.mat'</span>,<span style="text-decoration: underline;">...</span> <pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./raw_data/id31_microstation_2017_11_17_coh.mat'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'coh_hexa_x'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'coh_hexa_x'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'coh_hexa_y'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'coh_hexa_y'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'coh_hexa_z'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'coh_hexa_z'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'coh_marble_x'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'coh_marble_x'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'coh_marble_y'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'coh_marble_y'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'coh_marble_z'</span><span style="color: #DCDCCC;">)</span>; <span class="org-string">'coh_marble_z'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
load<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'./raw_data/id31_microstation_2017_11_17_frf.mat'</span>,<span style="text-decoration: underline;">...</span> load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./raw_data/id31_microstation_2017_11_17_frf.mat'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'freq_frf'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'freq_frf'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'frf_hexa_x'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'frf_hexa_x'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'frf_hexa_y'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'frf_hexa_y'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'frf_hexa_z'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'frf_hexa_z'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'frf_marble_x'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'frf_marble_x'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'frf_marble_y'</span>,<span style="text-decoration: underline;">...</span> <span class="org-string">'frf_marble_y'</span>,<span class="org-underline">...</span>
<span style="color: #CC9393;">'frf_marble_z'</span><span style="color: #DCDCCC;">)</span>; <span class="org-string">'frf_marble_z'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org37cddb7" class="outline-3"> <div id="outline-container-orgf5d9ddc" class="outline-3">
<h3 id="org37cddb7"><span class="section-number-3">4.2</span> Pre-processing of the data</h3> <h3 id="orgf5d9ddc"><span class="section-number-3">4.2</span> Pre-processing of the data</h3>
<div class="outline-text-3" id="text-4-2"> <div class="outline-text-3" id="text-4-2">
<p> <p>
The FRF data are scaled with the sensitivity of the accelerometer and integrated two times to have the displacement instead of the acceleration. The FRF data are scaled with the sensitivity of the accelerometer and integrated two times to have the displacement instead of the acceleration.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">accel_sensitivity = <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">102</span>; <span style="color: #7F9F7F;">% [V/(m/s2)]</span> <pre class="src src-matlab">accel_sensitivity = <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">102</span>; <span class="org-comment">% [V/(m/s2)]</span>
w = <span style="color: #BFEBBF;">j</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">*</span>freq_frf; <span style="color: #7F9F7F;">% j.omega in [rad/s]</span> w = <span class="org-constant">j</span><span class="org-type">*</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>freq_frf; <span class="org-comment">% j.omega in [rad/s]</span>
frf_hexa_x = <span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">/</span>accel_sensitivity<span style="color: #7CB8BB;">*</span>frf_hexa_x<span style="color: #7CB8BB;">./</span><span style="color: #DCDCCC;">(</span>w<span style="color: #7CB8BB;">.^</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span>; frf_hexa_x = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>accel_sensitivity<span class="org-type">*</span>frf_hexa_x<span class="org-type">./</span><span class="org-rainbow-delimiters-depth-1">(</span>w<span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
frf_hexa_y = <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">/</span>accel_sensitivity<span style="color: #7CB8BB;">*</span>frf_hexa_y<span style="color: #7CB8BB;">./</span><span style="color: #DCDCCC;">(</span>w<span style="color: #7CB8BB;">.^</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span>; frf_hexa_y = <span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>accel_sensitivity<span class="org-type">*</span>frf_hexa_y<span class="org-type">./</span><span class="org-rainbow-delimiters-depth-1">(</span>w<span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
frf_hexa_z = <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">/</span>accel_sensitivity<span style="color: #7CB8BB;">*</span>frf_hexa_z<span style="color: #7CB8BB;">./</span><span style="color: #DCDCCC;">(</span>w<span style="color: #7CB8BB;">.^</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span>; frf_hexa_z = <span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>accel_sensitivity<span class="org-type">*</span>frf_hexa_z<span class="org-type">./</span><span class="org-rainbow-delimiters-depth-1">(</span>w<span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
frf_marble_x = <span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">/</span>accel_sensitivity<span style="color: #7CB8BB;">*</span>frf_marble_x<span style="color: #7CB8BB;">./</span><span style="color: #DCDCCC;">(</span>w<span style="color: #7CB8BB;">.^</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span>; frf_marble_x = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>accel_sensitivity<span class="org-type">*</span>frf_marble_x<span class="org-type">./</span><span class="org-rainbow-delimiters-depth-1">(</span>w<span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
frf_marble_y = <span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">/</span>accel_sensitivity<span style="color: #7CB8BB;">*</span>frf_marble_y<span style="color: #7CB8BB;">./</span><span style="color: #DCDCCC;">(</span>w<span style="color: #7CB8BB;">.^</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span>; frf_marble_y = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>accel_sensitivity<span class="org-type">*</span>frf_marble_y<span class="org-type">./</span><span class="org-rainbow-delimiters-depth-1">(</span>w<span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
frf_marble_z = <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">/</span>accel_sensitivity<span style="color: #7CB8BB;">*</span>frf_marble_z<span style="color: #7CB8BB;">./</span><span style="color: #DCDCCC;">(</span>w<span style="color: #7CB8BB;">.^</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span>; frf_marble_z = <span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>accel_sensitivity<span class="org-type">*</span>frf_marble_z<span class="org-type">./</span><span class="org-rainbow-delimiters-depth-1">(</span>w<span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgb992ebc" class="outline-3"> <div id="outline-container-orgf90fc5f" class="outline-3">
<h3 id="orgb992ebc"><span class="section-number-3">4.3</span> X-direction FRF</h3> <h3 id="orgf90fc5f"><span class="section-number-3">4.3</span> X-direction FRF</h3>
<div class="outline-text-3" id="text-4-3"> <div class="outline-text-3" id="text-4-3">
<div id="orgf0fdcf7" class="figure"> <div id="org7ea5cb4" class="figure">
<p><img src="figs/marble_x_frf.png" alt="marble_x_frf.png" /> <p><img src="figs/marble_x_frf.png" alt="marble_x_frf.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>Response to a force applied on the marble in the X direction</p> <p><span class="figure-number">Figure 3: </span>Response to a force applied on the marble in the X direction</p>
@ -618,7 +618,7 @@ frf_marble_z = <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF
<div id="org8412b64" class="figure"> <div id="org55645ce" class="figure">
<p><img src="figs/hexa_x_frf.png" alt="hexa_x_frf.png" /> <p><img src="figs/hexa_x_frf.png" alt="hexa_x_frf.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Response to a force applied on the hexa in the X direction</p> <p><span class="figure-number">Figure 4: </span>Response to a force applied on the hexa in the X direction</p>
@ -626,18 +626,18 @@ frf_marble_z = <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF
</div> </div>
</div> </div>
<div id="outline-container-org65e3ece" class="outline-3"> <div id="outline-container-orgec13f33" class="outline-3">
<h3 id="org65e3ece"><span class="section-number-3">4.4</span> Y-direction FRF</h3> <h3 id="orgec13f33"><span class="section-number-3">4.4</span> Y-direction FRF</h3>
<div class="outline-text-3" id="text-4-4"> <div class="outline-text-3" id="text-4-4">
<div id="org59ce301" class="figure"> <div id="org8de99f7" class="figure">
<p><img src="figs/marble_y_frf.png" alt="marble_y_frf.png" /> <p><img src="figs/marble_y_frf.png" alt="marble_y_frf.png" />
</p> </p>
<p><span class="figure-number">Figure 5: </span>Response to a force applied on the marble in the Y direction</p> <p><span class="figure-number">Figure 5: </span>Response to a force applied on the marble in the Y direction</p>
</div> </div>
<div id="orga559225" class="figure"> <div id="org8506d1b" class="figure">
<p><img src="figs/hexa_y_frf.png" alt="hexa_y_frf.png" /> <p><img src="figs/hexa_y_frf.png" alt="hexa_y_frf.png" />
</p> </p>
<p><span class="figure-number">Figure 6: </span>Response to a force applied on the hexa in the Y direction</p> <p><span class="figure-number">Figure 6: </span>Response to a force applied on the hexa in the Y direction</p>
@ -645,18 +645,18 @@ frf_marble_z = <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF
</div> </div>
</div> </div>
<div id="outline-container-org90e2e38" class="outline-3"> <div id="outline-container-org0696fe4" class="outline-3">
<h3 id="org90e2e38"><span class="section-number-3">4.5</span> Z-direction FRF</h3> <h3 id="org0696fe4"><span class="section-number-3">4.5</span> Z-direction FRF</h3>
<div class="outline-text-3" id="text-4-5"> <div class="outline-text-3" id="text-4-5">
<div id="orgc3ab1a0" class="figure"> <div id="orgb151cf9" class="figure">
<p><img src="figs/marble_z_frf.png" alt="marble_z_frf.png" /> <p><img src="figs/marble_z_frf.png" alt="marble_z_frf.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </span>Response to a force applied on the marble in the Z direction</p> <p><span class="figure-number">Figure 7: </span>Response to a force applied on the marble in the Z direction</p>
</div> </div>
<div id="orge969c88" class="figure"> <div id="orgfa78f3b" class="figure">
<p><img src="figs/hexa_z_frf.png" alt="hexa_z_frf.png" /> <p><img src="figs/hexa_z_frf.png" alt="hexa_z_frf.png" />
</p> </p>
<p><span class="figure-number">Figure 8: </span>Response to a force applied on the hexa in the Z direction</p> <p><span class="figure-number">Figure 8: </span>Response to a force applied on the hexa in the Z direction</p>
@ -667,7 +667,7 @@ frf_marble_z = <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-15 ven. 11:41</p> <p class="date">Created: 2019-05-10 ven. 09:46</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

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

@ -1,14 +1,14 @@
% Title: id31 microstation % Title: id31 microstation
% Date: 12 january 2018 % Date: 12 january 2018
% Description: measure on id31 microstation in room id31-13 % Description: measure on id31 microstation in room id31-13
% FS: =512Hz % FS: =512Hz
%% measurements 12 janaury 2018 %% measurements 12 janaury 2018
microstation=['Marble '; 'Tilt '; 'Hexapod ']; microstation=['Marble '; 'Tilt '; 'Hexapod '];
% ch1: hammer % ch1: hammer
@ -50,10 +50,10 @@ leg1=['TY ON - RZ OFF - RY OFF - Slip ring OFF - Hexapod OFF'];
% ------------------------------------------------------------------------ % ------------------------------------------------------------------------
% ch_max=16; % ch_max=16;
% % -------------------------------- % % --------------------------------
% %
% mult=1e6; % --> m/s to micron/s % mult=1e6; % --> m/s to micron/s
% %
% nyqhp=2.56; % nyquist % nyqhp=2.56; % nyquist
% f_cut=0.5; % cut frequency for high pass filter % f_cut=0.5; % cut frequency for high pass filter
% t_win=4; % window length in sec % t_win=4; % window length in sec
% t_ovlp=0; % overlap window in sec % t_ovlp=0; % overlap window in sec
@ -65,12 +65,12 @@ warning off MATLAB:divideByZero
capt=[1:6]; capt=[1:6];
for i=capt for i=capt
eval(['load Measurement',num2str(i)]) eval(['load Measurement',num2str(i)])
for ch=2:4 for ch=2:4
eval(['freq_frf(:,',num2str(1),')=FFT1_H1_',num2str(2),'_1_RMS_X_Val;']) eval(['freq_frf(:,',num2str(1),')=FFT1_H1_',num2str(2),'_1_RMS_X_Val;'])
%omeg=2*pi*freq; %omeg=2*pi*freq;
eval(['av_spc(:,',num2str(ch),')=FFT1_AvSpc_',num2str(ch),'_RMS_Y_Val;']) eval(['av_spc(:,',num2str(ch),')=FFT1_AvSpc_',num2str(ch),'_RMS_Y_Val;'])
eval(['frf_mod(:,',num2str(ch),')=FFT1_H1_',num2str(ch),'_1_RMS_Y_Mod;']) eval(['frf_mod(:,',num2str(ch),')=FFT1_H1_',num2str(ch),'_1_RMS_Y_Mod;'])
eval(['frf_phs(:,',num2str(ch),')=FFT1_H1_',num2str(ch),'_1_RMS_Y_Phas;']) eval(['frf_phs(:,',num2str(ch),')=FFT1_H1_',num2str(ch),'_1_RMS_Y_Phas;'])
@ -90,21 +90,21 @@ proname(2)={'Color'};
proname(3)={'LineStyle'}; proname(3)={'LineStyle'};
val(1,1) = {.5} ;val(1,2) = {[0.6 0.2 1]} ;val(1,3) = {'-'}; val(1,1) = {.5} ;val(1,2) = {[0.6 0.2 1]} ;val(1,3) = {'-'};
val(2,1) = {2} ;val(2,2) = {[0 0 1]} ;val(2,3) = {'-'}; val(2,1) = {2} ;val(2,2) = {[0 0 1]} ;val(2,3) = {'-'};
val(3,1) = {0.5} ;val(3,2) = {[0.25 0.9 0.65]} ;val(3,3) = {'-'}; val(3,1) = {0.5} ;val(3,2) = {[0.25 0.9 0.65]} ;val(3,3) = {'-'};
val(4,1) = {2} ;val(4,2) = {[0 1 0]} ;val(4,3) = {'-'}; val(4,1) = {2} ;val(4,2) = {[0 1 0]} ;val(4,3) = {'-'};
val(5,1) = {0.5} ;val(5,2) = {[1 0.4 0.4]} ;val(5,3) = {'-'}; val(5,1) = {0.5} ;val(5,2) = {[1 0.4 0.4]} ;val(5,3) = {'-'};
val(6,1) = {2} ;val(6,2) = {[1 0 0]} ;val(6,3) = {'-'}; val(6,1) = {2} ;val(6,2) = {[1 0 0]} ;val(6,3) = {'-'};
val(7,1) = {1} ;val(7,2) = {[0.8 0.8 0.8]} ;val(7,3) = {'-'}; val(7,1) = {1} ;val(7,2) = {[0.8 0.8 0.8]} ;val(7,3) = {'-'};
val(8,1) = {2} ;val(8,2) = {[0.1 0.1 0.2]} ;val(8,3) = {'-'}; val(8,1) = {2} ;val(8,2) = {[0.1 0.1 0.2]} ;val(8,3) = {'-'};
val(9,1) = {1} ;val(9,2) = {[0.7 0.8 0.4]} ;val(9,3) = {'-'}; val(9,1) = {1} ;val(9,2) = {[0.7 0.8 0.4]} ;val(9,3) = {'-'};
val(10,1) = {2} ;val(10,2) = {[0.7 0.8 0.2]} ;val(10,3) = {'-'}; val(10,1) = {2} ;val(10,2) = {[0.7 0.8 0.2]} ;val(10,3) = {'-'};
val(11,1) = {1} ;val(11,2) = {[0.9 0.7 0.35]} ;val(11,3) = {'-'}; val(11,1) = {1} ;val(11,2) = {[0.9 0.7 0.35]} ;val(11,3) = {'-'};
val(12,1) = {2} ;val(12,2) = {[1 0.8 0.3]} ;val(12,3) = {'-'}; val(12,1) = {2} ;val(12,2) = {[1 0.8 0.3]} ;val(12,3) = {'-'};
val(13,1) = {1} ;val(13,2) = {[0.5 0.4 0.3]} ;val(13,3) = {'-'}; val(13,1) = {1} ;val(13,2) = {[0.5 0.4 0.3]} ;val(13,3) = {'-'};
val(14,1) = {2} ;val(14,2) = {[0.5 0.3 0.2]} ;val(14,3) = {'-'}; val(14,1) = {2} ;val(14,2) = {[0.5 0.3 0.2]} ;val(14,3) = {'-'};
% %
% %--------------------------------Plots % %--------------------------------Plots
xlab=['Frequency in Hz']; xlab=['Frequency in Hz'];
xlab1=['Hours since start: 06/07/2012 at 19:40']; xlab1=['Hours since start: 06/07/2012 at 19:40'];
@ -354,7 +354,7 @@ 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
%% %%
figure figure
h=semilogy(freq_frf,abs([ReIm4(:,5) ReIm10(:,5) ReIm11(:,5) ReIm15(:,5)])); h=semilogy(freq_frf,abs([ReIm4(:,5) ReIm10(:,5) ReIm11(:,5) ReIm15(:,5)]));
set(h,proname,val([6 4 2 12],1:3)) set(h,proname,val([6 4 2 12],1:3))
@ -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

@ -3,9 +3,9 @@
%% NOTE %% NOTE
% With this file you can load the raw mat files % With this file you can load the raw mat files
%% Description: measure on id31 microstation in exp hutch %% Description: measure on id31 microstation in exp hutch
% FS: =256Hz % FS: =256Hz
@ -57,8 +57,8 @@
%% %%
microstation=['Marble '; 'TY ';'Tilt '; 'Hexapod ']; microstation=['Marble '; 'TY ';'Tilt '; 'Hexapod '];
% %
%% PARAMETERS %% PARAMETERS
beamline='ID31 Nanostation - Hammer testing'; beamline='ID31 Nanostation - Hammer testing';
% -------------------------------- % --------------------------------
@ -68,7 +68,7 @@ ch_max=16;
%mult=1e6/276*173; % --> m/s to micron/s and sensitivity correction for L4-C %mult=1e6/276*173; % --> m/s to micron/s and sensitivity correction for L4-C
nyqhp=2.56; % nyquist nyqhp=2.56; % nyquist
f_cut=0.5; % cut frequency for high pass filter f_cut=0.5; % cut frequency for high pass filter
t_win=4; % window length in sec t_win=4; % window length in sec
t_ovlp=0; % overlap window in sec t_ovlp=0; % overlap window in sec
@ -93,93 +93,93 @@ shock_ch=9;
%% main loop -------- %% main loop --------
% ------------------ % ------------------
for i=capt for i=capt
eval(['load Measurement_raw',num2str(i)]) eval(['load Measurement_raw',num2str(i)])
freq_max=Track1_TrueBandWidth; freq_max=Track1_TrueBandWidth;
dts=1/(freq_max*nyqhp); dts=1/(freq_max*nyqhp);
freq=linspace(0,freq_max,t_win*freq_max); freq=linspace(0,freq_max,t_win*freq_max);
wo=2*pi*freq; wo=2*pi*freq;
for k=1:ch_max for k=1:ch_max
vname=['Track',num2str(k)]; vname=['Track',num2str(k)];
array_exist(k)=ismember(vname,who); array_exist(k)=ismember(vname,who);
end end
non_zero=find(array_exist); non_zero=find(array_exist);
for z=non_zero(1):length(non_zero) for z=non_zero(1):length(non_zero)
track_nb=['Track',num2str(z)]'; track_nb=['Track',num2str(z)]';
eval(['data(:,z)=Track',num2str(z),';']); eval(['data(:,z)=Track',num2str(z),';']);
end end
c=data*mult; c=data*mult;
%------------- %-------------
nbch=size(c,2); nbch=size(c,2);
%------------- %-------------
r=length(c); r=length(c);
if r/2~=fix(r/2) % loop to test for odd or even nb of samples if r/2~=fix(r/2) % loop to test for odd or even nb of samples
c=c(1:r-1,:); % take only even c=c(1:r-1,:); % take only even
else else
end end
%------------------------------ %------------------------------
time=linspace(0,length(c)*dts,length(c)); time=linspace(0,length(c)*dts,length(c));
for j=nbch %shunt_ch for j=nbch %shunt_ch
[c(:,j),c_shut]=shut_c(c(:,j),1/dts); % correct for shunt [c(:,j),c_shut]=shut_c(c(:,j),1/dts); % correct for shunt
end end
%c(:,8)=(c(:,5)-c(:,4))/d; % differential Theta Y angle %c(:,8)=(c(:,5)-c(:,4))/d; % differential Theta Y angle
b=find(no_hammer==i); % if i==1 | i==2 | i==6 b=find(no_hammer==i); % if i==1 | i==2 | i==6
if b~=0 if b~=0
[psd_v,integ_v,psd_d,integ_d]=integrated_psd(c,t_win,t_ovlp,nyqhp,dts); [psd_v,integ_v,psd_d,integ_d]=integrated_psd(c,t_win,t_ovlp,nyqhp,dts);
[frz_cut,crsp,pwsp,coherz,nsp]=fqresp(c,shock_ch,t_win,t_ovlp,nyqhp,dts); [frz_cut,crsp,pwsp,coherz,nsp]=fqresp(c,shock_ch,t_win,t_ovlp,nyqhp,dts);
else else
thresh=0.5; % threshold of max value thresh=0.5; % threshold of max value
sep=2.5; % separation minimum of peaks in sec sep=2.5; % separation minimum of peaks in sec
pre_ev=2; % pre event delay in sec pre_ev=2; % pre event delay in sec
pos_ev=2; % post event delay in sec pos_ev=2; % post event delay in sec
[ti,t_impact]=findpeaks(c(:,shock_ch),'minpeakheight',max(c(:,shock_ch))*thresh,'minpeakdistance',ceil(sep/dts)); [ti,t_impact]=findpeaks(c(:,shock_ch),'minpeakheight',max(c(:,shock_ch))*thresh,'minpeakdistance',ceil(sep/dts));
% find times at which there are impacts (threshold of max and separated by sep sec) % find times at which there are impacts (threshold of max and separated by sep sec)
psd_v=zeros((pre_ev+pos_ev)/dts/nyqhp,nbch); psd_v=zeros((pre_ev+pos_ev)/dts/nyqhp,nbch);
psd_d=zeros((pre_ev+pos_ev)/dts/nyqhp,nbch); psd_d=zeros((pre_ev+pos_ev)/dts/nyqhp,nbch);
frz_cut=zeros((pre_ev+pos_ev)/dts/nyqhp,nbch); frz_cut=zeros((pre_ev+pos_ev)/dts/nyqhp,nbch);
for k=1:length(t_impact) for k=1:length(t_impact)
ibeg=fix(t_impact(k)-(pre_ev/dts)); ibeg=fix(t_impact(k)-(pre_ev/dts));
iend=fix(t_impact(k)+(pos_ev/dts)); iend=fix(t_impact(k)+(pos_ev/dts));
freq_s=linspace(0,freq_max,t_win/2*freq_max); freq_s=linspace(0,freq_max,t_win/2*freq_max);
if ibeg>1 && iend<length(c) % eliminate indexes outside data range if ibeg>1 && iend<length(c) % eliminate indexes outside data range
[psd,integ_v,psd_int,integ_d]=integrated_psd(c(ibeg:iend,:),t_win,t_ovlp,nyqhp,dts); [psd,integ_v,psd_int,integ_d]=integrated_psd(c(ibeg:iend,:),t_win,t_ovlp,nyqhp,dts);
psd_v=psd+psd_v; psd_v=psd+psd_v;
psd_d=psd_int+psd_d; psd_d=psd_int+psd_d;
[frz,crsp,pwsp,coherz,nsp]=fqresp(c(ibeg:iend,:),shock_ch,t_win,t_ovlp,nyqhp,dts); [frz,crsp,pwsp,coherz,nsp]=fqresp(c(ibeg:iend,:),shock_ch,t_win,t_ovlp,nyqhp,dts);
frz_cut=frz+frz_cut; frz_cut=frz+frz_cut;
end end
end end
psd_v=psd_v/length(t_impact); psd_v=psd_v/length(t_impact);
psd_d=psd_d/length(t_impact); psd_d=psd_d/length(t_impact);
frz_cut=frz_cut/length(t_impact); frz_cut=frz_cut/length(t_impact);
end end
drms=max(integ_d); % compute rms level drms=max(integ_d); % compute rms level
dc=hpfint(c,f_cut,dts); % filter and integrate in time domain dc=hpfint(c,f_cut,dts); % filter and integrate in time domain
dppc=hpdpp(dc,t_win,t_ovlp,1,dts); % compute peak to peak level dppc=hpdpp(dc,t_win,t_ovlp,1,dts); % compute peak to peak level
%% transfer function, cross spectrum, power spectr. and coherence w.r.t. ch1 %% transfer function, cross spectrum, power spectr. and coherence w.r.t. ch1
eval(['c',num2str(i),'=c;']) eval(['c',num2str(i),'=c;'])
eval(['dc',num2str(i),'=dc;']) eval(['dc',num2str(i),'=dc;'])
eval(['dppc',num2str(i),'=dppc;']) eval(['dppc',num2str(i),'=dppc;'])
@ -193,8 +193,8 @@ for i=capt
% eval(['frx',num2str(i),'=frx;']) % eval(['frx',num2str(i),'=frx;'])
eval(['coherz',num2str(i),'=coherz;']) eval(['coherz',num2str(i),'=coherz;'])
eval(['time',num2str(i),'=time;']) eval(['time',num2str(i),'=time;'])
clear data c dc psd psd_v psd_d time c_shut % clean up the mess clear data c dc psd psd_v psd_d time c_shut % clean up the mess
end end

View File

@ -1,3 +1,3 @@
contient les mesures des réponses avec marteau d'impact. Les fichiers xxx_raw sont sans traitement dans le domaine temporel (environ 10 impacts par fichier). Les fonctions de transfert avec phase sont dans le même répertoire avec des noms explicites (manquent les cohérences que je n'ai pas sorties) contient les mesures des réponses avec marteau d'impact. Les fichiers xxx_raw sont sans traitement dans le domaine temporel (environ 10 impacts par fichier). Les fonctions de transfert avec phase sont dans le même répertoire avec des noms explicites (manquent les cohérences que je n'ai pas sorties)
Ces données ne me semblent pas de super qualité en basse fréquence, avec le Ty libre le mode à 5Hz est très amorti. Ces données ne me semblent pas de super qualité en basse fréquence, avec le Ty libre le mode à 5Hz est très amorti.

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,4 +1,4 @@
contient les mesures de l'effet des différents moteurs ON/OFF, j'ai sorti qq spectrogrammes qui montrent bien que c'est la spindle qui a le plus d'effet contient les mesures de l'effet des différents moteurs ON/OFF, j'ai sorti qq spectrogrammes qui montrent bien que c'est la spindle qui a le plus d'effet
+ une mesure de la réponse du marbre sans excitation. + une mesure de la réponse du marbre sans excitation.
Le capteur Y sur le marbre semble faible en basse fréquence (marbre pas de niveau peut être) Le capteur Y sur le marbre semble faible en basse fréquence (marbre pas de niveau peut être)

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

View File

@ -3,12 +3,12 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-05-03 ven. 11:32 --> <!-- 2019-05-10 ven. 14:24 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Huddle Test of the L22 Geophones</title> <title>Huddle Test of the L22 Geophones</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" /> <meta name="author" content="Dehaeze Thomas" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -247,65 +247,74 @@ for the JavaScript code in this tag.
/*]]>*///--> /*]]>*///-->
</script> </script>
<script type="text/x-mathjax-config"> <script type="text/x-mathjax-config">
MathJax.Hub.Config({ MathJax.Hub.Config({
displayAlign: "center", extensions: ["tex2jax.js", "[siunitx]/siunitx.js"],
displayIndent: "0em", jax: ["input/TeX","output/HTML-CSS"],
tex2jax: {inlineMath: [["$","$"],["\(","\)"]]},
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100, "HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" }, linebreaks: { automatic: "false" },
webFont: "TeX" webFont: "TeX"
}, },
SVG: {scale: 100, SVG: {scale: 100,
linebreaks: { automatic: "false" }, linebreaks: { automatic: "false" },
font: "TeX"}, font: "TeX"},
NativeMML: {scale: 100}, NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"}, TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%", extensions: ["AMSmath.js","AMSsymbols.js", "sinuitx.js"],
TagSide: "right", MultLineWidth: "85%",
TagIndent: ".8em" TagSide: "right",
} TagIndent: ".8em"
}); }
</script> });
<script type="text/javascript" MathJax.Ajax.config.path['siunitx'] = '../js';
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> </script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="content"> <div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Huddle Test of the L22 Geophones</h1> <h1 class="title">Huddle Test of the L22 Geophones</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org446511b">1. Experimental Setup</a></li> <li><a href="#org214e6d8">1. Experimental Setup</a></li>
<li><a href="#org0689ed7">2. Signal Processing</a> <li><a href="#org42d6b13">2. Signal Processing</a>
<ul> <ul>
<li><a href="#org34a2d4c">2.1. Load data</a></li> <li><a href="#orgf4a8298">2.1. Load data</a></li>
<li><a href="#org28e8648">2.2. Time Domain Data</a></li> <li><a href="#org687ebba">2.2. Time Domain Data</a></li>
<li><a href="#org910f3e4">2.3. Computation of the ASD of the measured voltage</a></li> <li><a href="#org649e300">2.3. Computation of the ASD of the measured voltage</a></li>
<li><a href="#org4e984e1">2.4. Scaling to take into account the sensibility of the geophone and the voltage amplifier</a></li> <li><a href="#org6148805">2.4. Scaling to take into account the sensibility of the geophone and the voltage amplifier</a></li>
<li><a href="#org607752b">2.5. Computation of the ASD of the velocity</a></li> <li><a href="#orgfd258d8">2.5. Computation of the ASD of the velocity</a></li>
<li><a href="#org0a07c74">2.6. Transfer function between the two geophones</a></li> <li><a href="#org453baa3">2.6. Transfer function between the two geophones</a></li>
<li><a href="#orgdc03acb">2.7. Estimation of the sensor noise</a></li> <li><a href="#orgd2d293a">2.7. Estimation of the sensor noise</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org58e6c46">3. Compare axis</a> <li><a href="#orgbd963cb">3. Compare axis</a>
<ul> <ul>
<li><a href="#org8f74945">3.1. Load data</a></li> <li><a href="#org5ae5d71">3.1. Load data</a></li>
<li><a href="#orgf13f88e">3.2. Compare PSD</a></li> <li><a href="#orgd12648a">3.2. Compare PSD</a></li>
<li><a href="#orgf389e18">3.3. Compare TF</a></li> <li><a href="#orgf076a23">3.3. Compare TF</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org1ca0f74">4. Appendix</a> <li><a href="#org17f5bce">4. Appendix</a>
<ul> <ul>
<li><a href="#org9faefb2">4.1. Computation of coherence from PSD and CSD</a></li> <li><a href="#org6babc5e">4.1. Computation of coherence from PSD and CSD</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org446511b" class="outline-2"> <div id="outline-container-org214e6d8" class="outline-2">
<h2 id="org446511b"><span class="section-number-2">1</span> Experimental Setup</h2> <h2 id="org214e6d8"><span class="section-number-2">1</span> Experimental Setup</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
Two L22 geophones are used. Two L22 geophones are used.
@ -315,36 +324,46 @@ They are leveled.
<p> <p>
The signals are amplified using voltage amplifier with a gain of 60dB. The signals are amplified using voltage amplifier with a gain of 60dB.
The voltage amplifiers include a low pass filter with a cut-off frequency at 1kHz. The voltage amplifiers includes:
</p> </p>
<ul class="org-ul">
<li>an high pass filter with a cut-off frequency at 1.5Hz (AC option)</li>
<li>a low pass filter with a cut-off frequency at 1kHz</li>
</ul>
<div id="orgeab8098" class="figure"> <div id="org2edcc21" class="figure">
<p><img src="./figs/setup.jpg" alt="setup.jpg" width="500px" /> <p><img src="./img/setup.jpg" alt="setup.jpg" width="500px" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Setup</p> <p><span class="figure-number">Figure 1: </span>Setup</p>
</div> </div>
<div id="orgdadbe53" class="figure"> <div id="org36e36a2" class="figure">
<p><img src="./figs/geophones.jpg" alt="geophones.jpg" width="500px" /> <p><img src="./img/geophones.jpg" alt="geophones.jpg" width="500px" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Geophones</p> <p><span class="figure-number">Figure 2: </span>Geophones</p>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org0689ed7" class="outline-2"> <div id="outline-container-org42d6b13" class="outline-2">
<h2 id="org0689ed7"><span class="section-number-2">2</span> Signal Processing</h2> <h2 id="org42d6b13"><span class="section-number-2">2</span> Signal Processing</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
The Matlab computing file for this part is accessible <a href="signal_processing.m">here</a>. <a id="org7e05e6c"></a>
The <code>mat</code> file containing the measurement data is accessible <a href="mat/data_001.mat">here</a>.
</p> </p>
<div class="note">
<p>
All the files (data and Matlab scripts) are accessible <a href="data/huddle_test_signal_processing.zip">here</a>.
</p>
</div>
</div> </div>
<div id="outline-container-org34a2d4c" class="outline-3"> <div id="outline-container-orgf4a8298" class="outline-3">
<h3 id="org34a2d4c"><span class="section-number-3">2.1</span> Load data</h3> <h3 id="orgf4a8298"><span class="section-number-3">2.1</span> Load data</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
We load the data of the z axis of two geophones. We load the data of the z axis of two geophones.
@ -358,8 +377,8 @@ dt = t<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-high
</div> </div>
</div> </div>
<div id="outline-container-org28e8648" class="outline-3"> <div id="outline-container-org687ebba" class="outline-3">
<h3 id="org28e8648"><span class="section-number-3">2.2</span> Time Domain Data</h3> <h3 id="org687ebba"><span class="section-number-3">2.2</span> Time Domain Data</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
@ -374,7 +393,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="orgbc90092" class="figure"> <div id="org20233d2" class="figure">
<p><img src="figs/data_time_domain.png" alt="data_time_domain.png" /> <p><img src="figs/data_time_domain.png" alt="data_time_domain.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>Time domain Data</p> <p><span class="figure-number">Figure 3: </span>Time domain Data</p>
@ -394,7 +413,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="orgbb22470" class="figure"> <div id="org1b7bc10" class="figure">
<p><img src="figs/data_time_domain_zoom.png" alt="data_time_domain_zoom.png" /> <p><img src="figs/data_time_domain_zoom.png" alt="data_time_domain_zoom.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Time domain Data - Zoom</p> <p><span class="figure-number">Figure 4: </span>Time domain Data - Zoom</p>
@ -402,8 +421,8 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
</div> </div>
<div id="outline-container-org910f3e4" class="outline-3"> <div id="outline-container-org649e300" class="outline-3">
<h3 id="org910f3e4"><span class="section-number-3">2.3</span> Computation of the ASD of the measured voltage</h3> <h3 id="org649e300"><span class="section-number-3">2.3</span> Computation of the ASD of the measured voltage</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<p> <p>
We first define the parameters for the frequency domain analysis. We first define the parameters for the frequency domain analysis.
@ -425,7 +444,7 @@ Then we compute the Power Spectral Density using <code>pwelch</code> function.
</div> </div>
<p> <p>
And we plot the result on figure <a href="#orgbf77081">5</a>. And we plot the result on figure <a href="#org3ce04bf">5</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -442,7 +461,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="orgbf77081" class="figure"> <div id="org3ce04bf" class="figure">
<p><img src="figs/asd_voltage.png" alt="asd_voltage.png" /> <p><img src="figs/asd_voltage.png" alt="asd_voltage.png" />
</p> </p>
<p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the measured voltage</p> <p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the measured voltage</p>
@ -450,11 +469,11 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
</div> </div>
<div id="outline-container-org4e984e1" class="outline-3"> <div id="outline-container-org6148805" class="outline-3">
<h3 id="org4e984e1"><span class="section-number-3">2.4</span> Scaling to take into account the sensibility of the geophone and the voltage amplifier</h3> <h3 id="org6148805"><span class="section-number-3">2.4</span> Scaling to take into account the sensibility of the geophone and the voltage amplifier</h3>
<div class="outline-text-3" id="text-2-4"> <div class="outline-text-3" id="text-2-4">
<p> <p>
The Geophone used are L22. Their sensibility is shown on figure <a href="#org0a867d9">6</a>. The Geophone used are L22. Their sensibility is shown on figure <a href="#orgd7b0965">6</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -466,7 +485,7 @@ S = S0<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1
</div> </div>
<div id="org0a867d9" class="figure"> <div id="orgd7b0965" class="figure">
<p><img src="figs/geophone_sensibility.png" alt="geophone_sensibility.png" /> <p><img src="figs/geophone_sensibility.png" alt="geophone_sensibility.png" />
</p> </p>
<p><span class="figure-number">Figure 6: </span>Sensibility of the Geophone</p> <p><span class="figure-number">Figure 6: </span>Sensibility of the Geophone</p>
@ -496,11 +515,11 @@ We further divide the result by the sensibility of the Geophone to obtain the AS
</div> </div>
</div> </div>
<div id="outline-container-org607752b" class="outline-3"> <div id="outline-container-orgfd258d8" class="outline-3">
<h3 id="org607752b"><span class="section-number-3">2.5</span> Computation of the ASD of the velocity</h3> <h3 id="orgfd258d8"><span class="section-number-3">2.5</span> Computation of the ASD of the velocity</h3>
<div class="outline-text-3" id="text-2-5"> <div class="outline-text-3" id="text-2-5">
<p> <p>
The ASD of the measured velocity is shown on figure <a href="#orgd9a4009">7</a>. The ASD of the measured velocity is shown on figure <a href="#org3cb06de">7</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -517,14 +536,14 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="orgd9a4009" class="figure"> <div id="org3cb06de" class="figure">
<p><img src="figs/psd_velocity.png" alt="psd_velocity.png" /> <p><img src="figs/psd_velocity.png" alt="psd_velocity.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </span>Amplitude Spectral Density of the Velocity</p> <p><span class="figure-number">Figure 7: </span>Amplitude Spectral Density of the Velocity</p>
</div> </div>
<p> <p>
We also plot the ASD in displacement (figure <a href="#orgc0b2ca5">8</a>); We also plot the ASD in displacement (figure <a href="#org2012a56">8</a>);
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -540,7 +559,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="orgc0b2ca5" class="figure"> <div id="org2012a56" class="figure">
<p><img src="figs/asd_displacement.png" alt="asd_displacement.png" /> <p><img src="figs/asd_displacement.png" alt="asd_displacement.png" />
</p> </p>
<p><span class="figure-number">Figure 8: </span>Amplitude Spectral Density of the Displacement</p> <p><span class="figure-number">Figure 8: </span>Amplitude Spectral Density of the Displacement</p>
@ -548,16 +567,16 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
</div> </div>
<div id="outline-container-org0a07c74" class="outline-3"> <div id="outline-container-org453baa3" class="outline-3">
<h3 id="org0a07c74"><span class="section-number-3">2.6</span> Transfer function between the two geophones</h3> <h3 id="org453baa3"><span class="section-number-3">2.6</span> Transfer function between the two geophones</h3>
<div class="outline-text-3" id="text-2-6"> <div class="outline-text-3" id="text-2-6">
<p> <p>
We here compute the transfer function from one geophone to the other. We here compute the transfer function from one geophone to the other.
The result is shown on figure <a href="#org7d8ea2b">9</a>. The result is shown on figure <a href="#org8ca997a">9</a>.
</p> </p>
<p> <p>
We also compute the coherence between the two signals (figure <a href="#org628544f">10</a>). We also compute the coherence between the two signals (figure <a href="#org4366ab4">10</a>).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -566,7 +585,7 @@ We also compute the coherence between the two signals (figure <a href="#org62854
</div> </div>
<div id="org7d8ea2b" class="figure"> <div id="org8ca997a" class="figure">
<p><img src="figs/tf_geophones.png" alt="tf_geophones.png" /> <p><img src="figs/tf_geophones.png" alt="tf_geophones.png" />
</p> </p>
<p><span class="figure-number">Figure 9: </span>Estimated transfer function between the two geophones</p> <p><span class="figure-number">Figure 9: </span>Estimated transfer function between the two geophones</p>
@ -578,7 +597,7 @@ We also compute the coherence between the two signals (figure <a href="#org62854
</div> </div>
<div id="org628544f" class="figure"> <div id="org4366ab4" class="figure">
<p><img src="figs/coh_geophones.png" alt="coh_geophones.png" /> <p><img src="figs/coh_geophones.png" alt="coh_geophones.png" />
</p> </p>
<p><span class="figure-number">Figure 10: </span>Cohererence between the signals of the two geophones</p> <p><span class="figure-number">Figure 10: </span>Cohererence between the signals of the two geophones</p>
@ -586,8 +605,8 @@ We also compute the coherence between the two signals (figure <a href="#org62854
</div> </div>
</div> </div>
<div id="outline-container-orgdc03acb" class="outline-3"> <div id="outline-container-orgd2d293a" class="outline-3">
<h3 id="orgdc03acb"><span class="section-number-3">2.7</span> Estimation of the sensor noise</h3> <h3 id="orgd2d293a"><span class="section-number-3">2.7</span> Estimation of the sensor noise</h3>
<div class="outline-text-3" id="text-2-7"> <div class="outline-text-3" id="text-2-7">
<p> <p>
The technique to estimate the sensor noise is taken from <a class='org-ref-reference' href="#barzilai98_techn_measur_noise_sensor_presen">barzilai98_techn_measur_noise_sensor_presen</a>. The technique to estimate the sensor noise is taken from <a class='org-ref-reference' href="#barzilai98_techn_measur_noise_sensor_presen">barzilai98_techn_measur_noise_sensor_presen</a>.
@ -617,11 +636,11 @@ where:
</ul> </ul>
<p> <p>
The <code>mscohere</code> function is compared with this formula on Appendix (section <a href="#orgc9ed210">4.1</a>), it is shown that it is identical. The <code>mscohere</code> function is compared with this formula on Appendix (section <a href="#org956da99">4.1</a>), it is shown that it is identical.
</p> </p>
<p> <p>
Figure <a href="#org9b31b02">11</a> illustrate a block diagram model of the system used to determine the sensor noise of the geophone. Figure <a href="#orgc9be925">11</a> illustrate a block diagram model of the system used to determine the sensor noise of the geophone.
</p> </p>
<p> <p>
@ -633,7 +652,7 @@ Each sensor has noise \(N\) and \(M\).
</p> </p>
<div id="org9b31b02" class="figure"> <div id="orgc9be925" class="figure">
<p><img src="figs/huddle-test.png" alt="huddle-test.png" /> <p><img src="figs/huddle-test.png" alt="huddle-test.png" />
</p> </p>
<p><span class="figure-number">Figure 11: </span>Huddle test block diagram</p> <p><span class="figure-number">Figure 11: </span>Huddle test block diagram</p>
@ -648,7 +667,7 @@ We also assume that \(S_1 = S_2 = 1\).
We then obtain: We then obtain:
</p> </p>
\begin{equation} \begin{equation}
\label{orgf197c52} \label{orgc4ca458}
\gamma_{XY}^2(\omega) = \frac{1}{1 + 2 \left( \frac{|G_N(\omega)|}{|G_U(\omega)|} \right) + \left( \frac{|G_N(\omega)|}{|G_U(\omega)|} \right)^2} \gamma_{XY}^2(\omega) = \frac{1}{1 + 2 \left( \frac{|G_N(\omega)|}{|G_U(\omega)|} \right) + \left( \frac{|G_N(\omega)|}{|G_U(\omega)|} \right)^2}
\end{equation} \end{equation}
@ -656,23 +675,23 @@ We then obtain:
Since the input signal \(U\) and the instrumental noise \(N\) are incoherent: Since the input signal \(U\) and the instrumental noise \(N\) are incoherent:
</p> </p>
\begin{equation} \begin{equation}
\label{org845ba9b} \label{orgb9a5b79}
|G_X(\omega)| = |G_N(\omega)| + |G_U(\omega)| |G_X(\omega)| = |G_N(\omega)| + |G_U(\omega)|
\end{equation} \end{equation}
<p> <p>
From equations \eqref{orgf197c52} and \eqref{org845ba9b}, we finally obtain From equations \eqref{orgc4ca458} and \eqref{orgb9a5b79}, we finally obtain
</p> </p>
<div class="important"> <div class="important">
\begin{equation} \begin{equation}
\label{org0941f4e} \label{org618c850}
|G_N(\omega)| = |G_X(\omega)| \left( 1 - \sqrt{\gamma_{XY}^2(\omega)} \right) |G_N(\omega)| = |G_X(\omega)| \left( 1 - \sqrt{\gamma_{XY}^2(\omega)} \right)
\end{equation} \end{equation}
</div> </div>
<p> <p>
The instrumental noise is computed below. The result in V<sup>2</sup>/Hz is shown on figure <a href="#orged7b0f2">12</a>. The instrumental noise is computed below. The result in V<sup>2</sup>/Hz is shown on figure <a href="#org8fc8f62">12</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">pxxN = pxx1<span class="org-type">.*</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span> <span class="org-type">-</span> coh12<span class="org-rainbow-delimiters-depth-1">)</span>; <pre class="src src-matlab">pxxN = pxx1<span class="org-type">.*</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span> <span class="org-type">-</span> coh12<span class="org-rainbow-delimiters-depth-1">)</span>;
@ -693,14 +712,14 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="orged7b0f2" class="figure"> <div id="org8fc8f62" class="figure">
<p><img src="figs/intrumental_noise_V.png" alt="intrumental_noise_V.png" /> <p><img src="figs/intrumental_noise_V.png" alt="intrumental_noise_V.png" />
</p> </p>
<p><span class="figure-number">Figure 12: </span>Instrumental Noise and Measurement in \(V^2/Hz\)</p> <p><span class="figure-number">Figure 12: </span>Instrumental Noise and Measurement in \(V^2/Hz\)</p>
</div> </div>
<p> <p>
This is then further converted into velocity and compared with the ground velocity measurement. (figure <a href="#org3b9b556">13</a>) This is then further converted into velocity and compared with the ground velocity measurement. (figure <a href="#orgaf005ac">13</a>)
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
@ -716,7 +735,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="org3b9b556" class="figure"> <div id="orgaf005ac" class="figure">
<p><img src="figs/intrumental_noise_velocity.png" alt="intrumental_noise_velocity.png" /> <p><img src="figs/intrumental_noise_velocity.png" alt="intrumental_noise_velocity.png" />
</p> </p>
<p><span class="figure-number">Figure 13: </span>Instrumental Noise and Measurement in \(m/s/\sqrt{Hz}\)</p> <p><span class="figure-number">Figure 13: </span>Instrumental Noise and Measurement in \(m/s/\sqrt{Hz}\)</p>
@ -725,22 +744,23 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
</div> </div>
<div id="outline-container-org58e6c46" class="outline-2"> <div id="outline-container-orgbd963cb" class="outline-2">
<h2 id="org58e6c46"><span class="section-number-2">3</span> Compare axis</h2> <h2 id="orgbd963cb"><span class="section-number-2">3</span> Compare axis</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
The Matlab computing file for this part is accessible <a href="compare_axis.m">here</a>. <a id="org04574c0"></a>
The <code>mat</code> files containing the measurement data are accessible with the following links:
</p> </p>
<ul class="org-ul">
<li>z axis: <a href="mat/data_001.mat">here</a>.</li> <div class="note">
<li>east axis: <a href="mat/data_002.mat">here</a>.</li> <p>
<li>north axis: <a href="mat/data_003.mat">here</a>.</li> All the files (data and Matlab scripts) are accessible <a href="data/huddle_test_compare_axis.zip">here</a>.
</ul> </p>
</div>
</div> </div>
<div id="outline-container-org8f74945" class="outline-3"> <div id="outline-container-org5ae5d71" class="outline-3">
<h3 id="org8f74945"><span class="section-number-3">3.1</span> Load data</h3> <h3 id="org5ae5d71"><span class="section-number-3">3.1</span> Load data</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<p> <p>
We first load the data for the three axis. We first load the data for the three axis.
@ -754,8 +774,8 @@ north = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="or
</div> </div>
</div> </div>
<div id="outline-container-orgf13f88e" class="outline-3"> <div id="outline-container-orgd12648a" class="outline-3">
<h3 id="orgf13f88e"><span class="section-number-3">3.2</span> Compare PSD</h3> <h3 id="orgd12648a"><span class="section-number-3">3.2</span> Compare PSD</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<p> <p>
The PSD for each axis of the two geophones are computed. The PSD for each axis of the two geophones are computed.
@ -773,10 +793,10 @@ The PSD for each axis of the two geophones are computed.
</div> </div>
<p> <p>
We compare them. The result is shown on figure <a href="#orgdfcdc16">14</a>. We compare them. The result is shown on figure <a href="#orgbd316c4">14</a>.
</p> </p>
<div id="orgdfcdc16" class="figure"> <div id="orgbd316c4" class="figure">
<p><img src="figs/compare_axis_psd.png" alt="compare_axis_psd.png" /> <p><img src="figs/compare_axis_psd.png" alt="compare_axis_psd.png" />
</p> </p>
<p><span class="figure-number">Figure 14: </span>Compare the measure PSD of the two geophones for the three axis</p> <p><span class="figure-number">Figure 14: </span>Compare the measure PSD of the two geophones for the three axis</p>
@ -784,12 +804,12 @@ We compare them. The result is shown on figure <a href="#orgdfcdc16">14</a>.
</div> </div>
</div> </div>
<div id="outline-container-orgf389e18" class="outline-3"> <div id="outline-container-orgf076a23" class="outline-3">
<h3 id="orgf389e18"><span class="section-number-3">3.3</span> Compare TF</h3> <h3 id="orgf076a23"><span class="section-number-3">3.3</span> Compare TF</h3>
<div class="outline-text-3" id="text-3-3"> <div class="outline-text-3" id="text-3-3">
<p> <p>
The transfer functions from one geophone to the other are also computed for each axis. The transfer functions from one geophone to the other are also computed for each axis.
The result is shown on figure <a href="#orgdd8cabb">15</a>. The result is shown on figure <a href="#org1278c1f">15</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -800,7 +820,7 @@ The result is shown on figure <a href="#orgdd8cabb">15</a>.
</div> </div>
<div id="orgdd8cabb" class="figure"> <div id="org1278c1f" class="figure">
<p><img src="figs/compare_tf_axis.png" alt="compare_tf_axis.png" /> <p><img src="figs/compare_tf_axis.png" alt="compare_tf_axis.png" />
</p> </p>
<p><span class="figure-number">Figure 15: </span>Compare the transfer function from one geophone to the other for the 3 axis</p> <p><span class="figure-number">Figure 15: </span>Compare the transfer function from one geophone to the other for the 3 axis</p>
@ -809,15 +829,15 @@ The result is shown on figure <a href="#orgdd8cabb">15</a>.
</div> </div>
</div> </div>
<div id="outline-container-org1ca0f74" class="outline-2"> <div id="outline-container-org17f5bce" class="outline-2">
<h2 id="org1ca0f74"><span class="section-number-2">4</span> Appendix</h2> <h2 id="org17f5bce"><span class="section-number-2">4</span> Appendix</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
</div> </div>
<div id="outline-container-org9faefb2" class="outline-3"> <div id="outline-container-org6babc5e" class="outline-3">
<h3 id="org9faefb2"><span class="section-number-3">4.1</span> Computation of coherence from PSD and CSD</h3> <h3 id="org6babc5e"><span class="section-number-3">4.1</span> Computation of coherence from PSD and CSD</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<p> <p>
<a id="orgc9ed210"></a> <a id="org956da99"></a>
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_001.mat', 't', 'x1', 'x2'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_001.mat', 't', 'x1', 'x2'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -848,7 +868,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="orgea88bec" class="figure"> <div id="orgdd25190" class="figure">
<p><img src="figs/comp_coherence_formula.png" alt="comp_coherence_formula.png" /> <p><img src="figs/comp_coherence_formula.png" alt="comp_coherence_formula.png" />
</p> </p>
<p><span class="figure-number">Figure 16: </span>Comparison of <code>mscohere</code> and manual computation</p> <p><span class="figure-number">Figure 16: </span>Comparison of <code>mscohere</code> and manual computation</p>
@ -865,8 +885,8 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</p> </p>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-05-03 ven. 11:32</p> <p class="date">Created: 2019-05-10 ven. 14:24</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

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

972
instrumentation/index.html Normal file
View File

@ -0,0 +1,972 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-05-10 ven. 10:07 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Measurements on the instrumentation</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
<link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
<script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="../js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
<h1 class="title">Measurements on the instrumentation</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org9b0dd42">1. Measure of the noise of the Voltage Amplifier</a>
<ul>
<li><a href="#org494f3b2">1.1. Measurement Description</a></li>
<li><a href="#orgf9402f3">1.2. Load data</a></li>
<li><a href="#orgd0212e2">1.3. Time Domain</a></li>
<li><a href="#org18fa6ce">1.4. Frequency Domain</a></li>
<li><a href="#org36eaef7">1.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org15e4c95">2. Measure of the influence of the AC/DC option on the voltage amplifiers</a>
<ul>
<li><a href="#org313898e">2.1. Measurement Description</a></li>
<li><a href="#org86b59a1">2.2. Load data</a></li>
<li><a href="#org22f801c">2.3. Time Domain</a></li>
<li><a href="#orgbd72638">2.4. Frequency Domain</a></li>
<li><a href="#org2647596">2.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org9623ca1">3. Transfer function of the Low Pass Filter</a>
<ul>
<li><a href="#org921fe36">3.1. First LPF with a Cut-off frequency of 160Hz</a>
<ul>
<li><a href="#org122c7a6">3.1.1. Measurement Description</a></li>
<li><a href="#orgba94437">3.1.2. Load data</a></li>
<li><a href="#org087582c">3.1.3. Transfer function of the LPF</a></li>
<li><a href="#orgf2dc541">3.1.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgd6132bd">3.2. Second LPF with a Cut-off frequency of 1000Hz</a>
<ul>
<li><a href="#org76b4e0d">3.2.1. Measurement description</a></li>
<li><a href="#org2941697">3.2.2. Load data</a></li>
<li><a href="#org45462d2">3.2.3. Transfer function of the LPF</a></li>
<li><a href="#org438a172">3.2.4. Conclusion</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org9b0dd42" class="outline-2">
<h2 id="org9b0dd42"><span class="section-number-2">1</span> Measure of the noise of the Voltage Amplifier</h2>
<div class="outline-text-2" id="text-1">
<p>
<a id="orgbd691e3"></a>
</p>
<p>
The data and matlab files are accessible <a href="data/meas_volt_amp.zip">here</a>.
</p>
</div>
<div id="outline-container-org494f3b2" class="outline-3">
<h3 id="org494f3b2"><span class="section-number-3">1.1</span> Measurement Description</h3>
<div class="outline-text-3" id="text-1-1">
<p>
<b>Goal</b>:
</p>
<ul class="org-ul">
<li>Determine the Voltage Amplifier noise</li>
</ul>
<p>
<b>Setup</b>:
</p>
<ul class="org-ul">
<li>The two inputs (differential) of the voltage amplifier are shunted with 50Ohms</li>
<li>The AC/DC option of the Voltage amplifier is on AC</li>
<li>The low pass filter is set to 1hHz</li>
<li>We measure the output of the voltage amplifier with a 16bits ADC of the Speedgoat</li>
</ul>
<p>
<b>Measurements</b>:
</p>
<ul class="org-ul">
<li><code>data_003</code>: Ampli OFF</li>
<li><code>data_004</code>: Ampli ON set to 20dB</li>
<li><code>data_005</code>: Ampli ON set to 40dB</li>
<li><code>data_006</code>: Ampli ON set to 60dB</li>
</ul>
</div>
</div>
<div id="outline-container-orgf9402f3" class="outline-3">
<h3 id="orgf9402f3"><span class="section-number-3">1.2</span> Load data</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-matlab">amp_off = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_003.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_off = amp_off.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
amp_20d = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_004.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_20d = amp_20d.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
amp_40d = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_005.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_40d = amp_40d.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
amp_60d = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_006.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_60d = amp_60d.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
</div>
</div>
<div id="outline-container-orgd0212e2" class="outline-3">
<h3 id="orgd0212e2"><span class="section-number-3">1.3</span> Time Domain</h3>
<div class="outline-text-3" id="text-1-3">
<p>
The time domain signals are shown on figure <a href="#org98f097d">1</a>.
</p>
<div id="org98f097d" class="figure">
<p><img src="figs/ampli_noise_time.png" alt="ampli_noise_time.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Output of the amplifier</p>
</div>
</div>
</div>
<div id="outline-container-org18fa6ce" class="outline-3">
<h3 id="org18fa6ce"><span class="section-number-3">1.4</span> Frequency Domain</h3>
<div class="outline-text-3" id="text-1-4">
<p>
We first compute some parameters that will be used for the PSD computation.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = amp_off<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>amp_off<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
Then we compute the Power Spectral Density using <code>pwelch</code> function.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>pxoff, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_off<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>px20d, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_20d<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>px40d, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_40d<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>px60d, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_60d<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
We compute the theoretical ADC noise.
</p>
<div class="org-src-container">
<pre class="src src-matlab">q = <span class="org-highlight-numbers-number">20</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">^</span><span class="org-highlight-numbers-number">16</span>; <span class="org-comment">% quantization</span>
Sq = q<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-highlight-numbers-number">12</span><span class="org-type">/</span><span class="org-highlight-numbers-number">1000</span>; <span class="org-comment">% PSD of the ADC noise</span>
</pre>
</div>
<p>
Finally, the ASD is shown on figure <a href="#orga4734ea">2</a>.
</p>
<div id="orga4734ea" class="figure">
<p><img src="figs/ampli_noise_psd.png" alt="ampli_noise_psd.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Amplitude Spectral Density of the measured voltage at the output of the voltage amplifier</p>
</div>
</div>
</div>
<div id="outline-container-org36eaef7" class="outline-3">
<h3 id="org36eaef7"><span class="section-number-3">1.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-5">
<div class="important">
<p>
<b>Questions</b>:
</p>
<ul class="org-ul">
<li>Where does those sharp peaks comes from? Can this be due to aliasing?</li>
</ul>
<p>
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.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org15e4c95" class="outline-2">
<h2 id="org15e4c95"><span class="section-number-2">2</span> Measure of the influence of the AC/DC option on the voltage amplifiers</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org1e85a61"></a>
</p>
<p>
The data and matlab files are accessible <a href="data/meas_noise_ac_dc.zip">here</a>.
</p>
</div>
<div id="outline-container-org313898e" class="outline-3">
<h3 id="org313898e"><span class="section-number-3">2.1</span> Measurement Description</h3>
<div class="outline-text-3" id="text-2-1">
<p>
<b>Goal</b>:
</p>
<ul class="org-ul">
<li>Measure the influence of the high-pass filter option of the voltage amplifiers</li>
</ul>
<p>
<b>Setup</b>:
</p>
<ul class="org-ul">
<li>One geophone is located on the marble.</li>
<li>It's signal goes to two voltage amplifiers with a gain of 60dB.</li>
<li>One voltage amplifier is on the AC option, the other is on the DC option.</li>
</ul>
<p>
<b>Measurements</b>:
First measurement (<code>mat/data_014.mat</code> file):
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-right" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Column</th>
<th scope="col" class="org-left">Signal</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">1</td>
<td class="org-left">Amplifier 1 with AC option</td>
</tr>
<tr>
<td class="org-right">2</td>
<td class="org-left">Amplifier 2 with DC option</td>
</tr>
<tr>
<td class="org-right">3</td>
<td class="org-left">Time</td>
</tr>
</tbody>
</table>
<p>
Second measurement (<code>mat/data_015.mat</code> file):
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-right" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Column</th>
<th scope="col" class="org-left">Signal</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">1</td>
<td class="org-left">Amplifier 1 with DC option</td>
</tr>
<tr>
<td class="org-right">2</td>
<td class="org-left">Amplifier 2 with AC option</td>
</tr>
<tr>
<td class="org-right">3</td>
<td class="org-left">Time</td>
</tr>
</tbody>
</table>
<div id="org6faa1f8" class="figure">
<p><img src="./img/IMG_20190503_170936.jpg" alt="IMG_20190503_170936.jpg" width="500px" />
</p>
<p><span class="figure-number">Figure 3: </span>Picture of the two voltages amplifiers</p>
</div>
</div>
</div>
<div id="outline-container-org86b59a1" class="outline-3">
<h3 id="org86b59a1"><span class="section-number-3">2.2</span> Load data</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We load the data of the z axis of two geophones.
</p>
<div class="org-src-container">
<pre class="src src-matlab">meas14 = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_014.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; meas14 = meas14.data;
meas15 = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_015.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; meas15 = meas15.data;
</pre>
</div>
</div>
</div>
<div id="outline-container-org22f801c" class="outline-3">
<h3 id="org22f801c"><span class="section-number-3">2.3</span> Time Domain</h3>
<div class="outline-text-3" id="text-2-3">
<p>
The signals are shown on figure <a href="#org4a464f5">4</a>.
</p>
<div id="org4a464f5" class="figure">
<p><img src="figs/ac_dc_option_time.png" alt="ac_dc_option_time.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Comparison of the signals going through the Voltage amplifiers</p>
</div>
</div>
</div>
<div id="outline-container-orgbd72638" class="outline-3">
<h3 id="orgbd72638"><span class="section-number-3">2.4</span> Frequency Domain</h3>
<div class="outline-text-3" id="text-2-4">
<p>
We first compute some parameters that will be used for the PSD computation.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = meas14<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>meas14<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
Then we compute the Power Spectral Density using <code>pwelch</code> function.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>pxamp1ac, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas14<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>pxamp2dc, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas14<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>pxamp1dc, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas15<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>pxamp2ac, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas15<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
The ASD of the signals are compare on figure <a href="#org73d3360">5</a>.
</p>
<div id="org73d3360" class="figure">
<p><img src="figs/ac_dc_option_asd.png" alt="ac_dc_option_asd.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the measured signals</p>
</div>
</div>
</div>
<div id="outline-container-org2647596" class="outline-3">
<h3 id="org2647596"><span class="section-number-3">2.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-5">
<div class="important">
<ul class="org-ul">
<li>The voltage amplifiers include some very sharp high pass filters at 1.5Hz (maybe 4th order)</li>
<li>There is a DC offset on the time domain signal because the DC-offset knob was not set to zero</li>
</ul>
</div>
</div>
</div>
</div>
<div id="outline-container-org9623ca1" class="outline-2">
<h2 id="org9623ca1"><span class="section-number-2">3</span> Transfer function of the Low Pass Filter</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="org5eb1733"></a>
</p>
<p>
The computation files for this section are accessible <a href="data/low_pass_filter_measurements.zip">here</a>.
</p>
</div>
<div id="outline-container-org921fe36" class="outline-3">
<h3 id="org921fe36"><span class="section-number-3">3.1</span> First LPF with a Cut-off frequency of 160Hz</h3>
<div class="outline-text-3" id="text-3-1">
</div>
<div id="outline-container-org122c7a6" class="outline-4">
<h4 id="org122c7a6"><span class="section-number-4">3.1.1</span> Measurement Description</h4>
<div class="outline-text-4" id="text-3-1-1">
<p>
<b>Goal</b>:
</p>
<ul class="org-ul">
<li>Measure the Low Pass Filter Transfer Function</li>
</ul>
<p>
The values of the components are:
</p>
\begin{aligned}
R &= 1k\Omega \\
C &= 1\mu F
\end{aligned}
<p>
Which makes a cut-off frequency of \(f_c = \frac{1}{RC} = 1000 rad/s = 160Hz\).
</p>
<div class="org-src-container">
<pre class="src src-latex" id="org336f6c8"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\draw</span> (0,2)
to [R=<span class="org-font-latex-sedate"><span class="org-font-latex-math">\(R\)</span></span>] ++(2,0) node[circ]
to ++(2,0)
++(-2,0)
to [C=<span class="org-font-latex-sedate"><span class="org-font-latex-math">\(C\)</span></span>] ++(0,-2) node[circ]
++(-2,0)
to ++(2,0)
to ++(2,0)
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgda67620" class="figure">
<p><img src="figs/lpf.png" alt="lpf.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Schematic of the Low Pass Filter used</p>
</div>
<p>
<b>Setup</b>:
</p>
<ul class="org-ul">
<li>We are measuring the signal from from Geophone with a BNC T</li>
<li>On part goes to column 1 through the LPF</li>
<li>The other part goes to column 2 without the LPF</li>
</ul>
<p>
<b>Measurements</b>:
<code>mat/data_018.mat</code>:
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-right" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Column</th>
<th scope="col" class="org-left">Signal</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">1</td>
<td class="org-left">Amplifier 1 with LPF</td>
</tr>
<tr>
<td class="org-right">2</td>
<td class="org-left">Amplifier 2</td>
</tr>
<tr>
<td class="org-right">3</td>
<td class="org-left">Time</td>
</tr>
</tbody>
</table>
<div id="org5022f0b" class="figure">
<p><img src="./img/IMG_20190507_102756.jpg" alt="IMG_20190507_102756.jpg" width="500px" />
</p>
<p><span class="figure-number">Figure 7: </span>Picture of the low pass filter used</p>
</div>
</div>
</div>
<div id="outline-container-orgba94437" class="outline-4">
<h4 id="orgba94437"><span class="section-number-4">3.1.2</span> Load data</h4>
<div class="outline-text-4" id="text-3-1-2">
<p>
We load the data of the z axis of two geophones.
</p>
<div class="org-src-container">
<pre class="src src-matlab">data = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_018.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; data = data.data;
</pre>
</div>
</div>
</div>
<div id="outline-container-org087582c" class="outline-4">
<h4 id="org087582c"><span class="section-number-4">3.1.3</span> Transfer function of the LPF</h4>
<div class="outline-text-4" id="text-3-1-3">
<p>
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>Glpf, f<span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
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 <a href="#orgeb8ea3c">8</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Gth = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-type">+</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
ax1 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>Glpf<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,<span class="org-rainbow-delimiters-depth-2">[]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Magnitude'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ax2 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>Glpf<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, <span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>unwrap<span class="org-rainbow-delimiters-depth-2">(</span>angle<span class="org-rainbow-delimiters-depth-3">(</span>squeeze<span class="org-rainbow-delimiters-depth-4">(</span>freqresp<span class="org-rainbow-delimiters-depth-5">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
yticks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Phase'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
linkaxes<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>ax1,ax2<span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-string">'x'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="orgeb8ea3c" class="figure">
<p><img src="figs/Glpf_bode.png" alt="Glpf_bode.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Bode Diagram of the measured Low Pass filter and the theoritical one</p>
</div>
</div>
</div>
<div id="outline-container-orgf2dc541" class="outline-4">
<h4 id="orgf2dc541"><span class="section-number-4">3.1.4</span> Conclusion</h4>
<div class="outline-text-4" id="text-3-1-4">
<div class="important">
<p>
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\).
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgd6132bd" class="outline-3">
<h3 id="orgd6132bd"><span class="section-number-3">3.2</span> Second LPF with a Cut-off frequency of 1000Hz</h3>
<div class="outline-text-3" id="text-3-2">
</div>
<div id="outline-container-org76b4e0d" class="outline-4">
<h4 id="org76b4e0d"><span class="section-number-4">3.2.1</span> Measurement description</h4>
<div class="outline-text-4" id="text-3-2-1">
<p>
This time, the value are
</p>
\begin{aligned}
R &= 1k\Omega \\
C &= 150nF
\end{aligned}
<p>
Which makes a low pass filter with a cut-off frequency of \(f_c = 1060Hz\).
</p>
</div>
</div>
<div id="outline-container-org2941697" class="outline-4">
<h4 id="org2941697"><span class="section-number-4">3.2.2</span> Load data</h4>
<div class="outline-text-4" id="text-3-2-2">
<p>
We load the data of the z axis of two geophones.
</p>
<div class="org-src-container">
<pre class="src src-matlab">data = load<span class="org-rainbow-delimiters-depth-1">(</span>'mat<span class="org-type">/</span>data_019.mat', <span class="org-string">'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; data = data.data;
</pre>
</div>
</div>
</div>
<div id="outline-container-org45462d2" class="outline-4">
<h4 id="org45462d2"><span class="section-number-4">3.2.3</span> Transfer function of the LPF</h4>
<div class="outline-text-4" id="text-3-2-3">
<p>
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>Glpf, f<span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
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 <a href="#org19f2e2d">9</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Gth = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-type">+</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">1060</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
ax1 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>Glpf<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,<span class="org-rainbow-delimiters-depth-2">[]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Magnitude'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ax2 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>Glpf<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, <span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>unwrap<span class="org-rainbow-delimiters-depth-2">(</span>angle<span class="org-rainbow-delimiters-depth-3">(</span>squeeze<span class="org-rainbow-delimiters-depth-4">(</span>freqresp<span class="org-rainbow-delimiters-depth-5">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
yticks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Phase'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
linkaxes<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>ax1,ax2<span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-string">'x'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="org19f2e2d" class="figure">
<p><img src="figs/Glpf_bode_bis.png" alt="Glpf_bode_bis.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Bode Diagram of the measured Low Pass filter and the theoritical one</p>
</div>
</div>
</div>
<div id="outline-container-org438a172" class="outline-4">
<h4 id="org438a172"><span class="section-number-4">3.2.4</span> Conclusion</h4>
<div class="outline-text-4" id="text-3-2-4">
<div class="important">
<p>
The added LPF has the expected behavior.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-05-10 ven. 10:07</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>

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

File diff suppressed because one or more lines are too long

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

File diff suppressed because one or more lines are too long

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

File diff suppressed because it is too large Load Diff

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

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