First analysis of the sensor noise
This commit is contained in:
parent
fa4b391336
commit
99e3c94d59
Binary file not shown.
BIN
figs/vionic_noise_asd.pdf
Normal file
BIN
figs/vionic_noise_asd.pdf
Normal file
Binary file not shown.
BIN
figs/vionic_noise_asd.png
Normal file
BIN
figs/vionic_noise_asd.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
BIN
figs/vionic_noise_asd_model.pdf
Normal file
BIN
figs/vionic_noise_asd_model.pdf
Normal file
Binary file not shown.
BIN
figs/vionic_noise_asd_model.png
Normal file
BIN
figs/vionic_noise_asd_model.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
BIN
figs/vionic_noise_time.pdf
Normal file
BIN
figs/vionic_noise_time.pdf
Normal file
Binary file not shown.
BIN
figs/vionic_noise_time.png
Normal file
BIN
figs/vionic_noise_time.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
153
index.html
153
index.html
@ -3,21 +3,30 @@
|
|||||||
"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>
|
||||||
<!-- 2021-01-04 lun. 11:44 -->
|
<!-- 2021-02-02 mar. 18:24 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<title>Encoder Renishaw Vionic - Test Bench</title>
|
<title>Encoder Renishaw Vionic - Test Bench</title>
|
||||||
<meta name="generator" content="Org mode" />
|
<meta name="generator" content="Org mode" />
|
||||||
<meta name="author" content="Dehaeze Thomas" />
|
<meta name="author" content="Dehaeze Thomas" />
|
||||||
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||||
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||||
<script>MathJax = {
|
<script>
|
||||||
tex: {
|
MathJax = {
|
||||||
tags: 'ams',
|
svg: {
|
||||||
macros: {bm: ["\\boldsymbol{#1}",1],}
|
scale: 1,
|
||||||
}
|
fontCache: "global"
|
||||||
};
|
},
|
||||||
</script>
|
tex: {
|
||||||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
tags: "ams",
|
||||||
|
multlineWidth: "%MULTLINEWIDTH",
|
||||||
|
tagSide: "right",
|
||||||
|
macros: {bm: ["\\boldsymbol{#1}",1],},
|
||||||
|
tagIndent: ".8em"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script id="MathJax-script" async
|
||||||
|
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="org-div-home-and-up">
|
<div id="org-div-home-and-up">
|
||||||
@ -30,15 +39,19 @@
|
|||||||
<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="#org55157ef">1. Encoder Model</a></li>
|
<li><a href="#orgd4a4664">1. Encoder Model</a></li>
|
||||||
<li><a href="#org8ef40ec">2. Test-Bench Description</a></li>
|
<li><a href="#org8e70edd">2. Test-Bench Description</a></li>
|
||||||
<li><a href="#orgce223ed">3. Measurement procedure</a></li>
|
<li><a href="#orge118b0f">3. Measurement procedure</a></li>
|
||||||
<li><a href="#org51852cb">4. Measurement Results</a></li>
|
<li><a href="#org8e44240">4. Measurement Results</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#org7e465e7">4.1. Noise Measurement</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="note" id="org4436bab">
|
<div class="note" id="org4c0c9be">
|
||||||
<p>
|
<p>
|
||||||
You can find below the document of:
|
You can find below the document of:
|
||||||
</p>
|
</p>
|
||||||
@ -63,14 +76,14 @@ In particular, we would like to measure:
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<div id="orgeb4726b" class="figure">
|
<div id="org13fff85" class="figure">
|
||||||
<p><img src="figs/encoder_vionic.png" alt="encoder_vionic.png" />
|
<p><img src="figs/encoder_vionic.png" alt="encoder_vionic.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 1: </span>Picture of the Vionic Encoder</p>
|
<p><span class="figure-number">Figure 1: </span>Picture of the Vionic Encoder</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org55157ef" class="outline-2">
|
<div id="outline-container-orgd4a4664" class="outline-2">
|
||||||
<h2 id="org55157ef"><span class="section-number-2">1</span> Encoder Model</h2>
|
<h2 id="orgd4a4664"><span class="section-number-2">1</span> Encoder Model</h2>
|
||||||
<div class="outline-text-2" id="text-1">
|
<div class="outline-text-2" id="text-1">
|
||||||
<p>
|
<p>
|
||||||
The Encoder is characterized by its dynamics \(G_m(s)\) from the “true” displacement \(y\) to measured displacement \(y_m\).
|
The Encoder is characterized by its dynamics \(G_m(s)\) from the “true” displacement \(y\) to measured displacement \(y_m\).
|
||||||
@ -82,52 +95,63 @@ It is also characterized by its measurement noise \(n\) that can be described by
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The model of the encoder is shown in Figure <a href="#org2d59f14">2</a>.
|
The model of the encoder is shown in Figure <a href="#org08a4e7a">2</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org2d59f14" class="figure">
|
<div id="org08a4e7a" class="figure">
|
||||||
<p><img src="figs/encoder-model-schematic.png" alt="encoder-model-schematic.png" />
|
<p><img src="figs/encoder-model-schematic.png" alt="encoder-model-schematic.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 2: </span>Model of the Encoder</p>
|
<p><span class="figure-number">Figure 2: </span>Model of the Encoder</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<table id="org476b3d6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
<table id="org20ed9a5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
<caption class="t-above"><span class="table-number">Table 1:</span> Characteristics of the Vionic Encoder</caption>
|
<caption class="t-above"><span class="table-number">Table 1:</span> Characteristics of the Vionic Encoder</caption>
|
||||||
|
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col class="org-left" />
|
<col class="org-left" />
|
||||||
|
|
||||||
<col class="org-left" />
|
<col class="org-center" />
|
||||||
|
|
||||||
|
<col class="org-center" />
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col" class="org-left"><b>Characteristics</b></th>
|
<th scope="col" class="org-left"><b>Characteristics</b></th>
|
||||||
<th scope="col" class="org-left"><b>Manual</b></th>
|
<th scope="col" class="org-center"><b>Manual</b></th>
|
||||||
|
<th scope="col" class="org-center"><b>Specifications</b></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">Range</td>
|
||||||
|
<td class="org-center">Ruler length</td>
|
||||||
|
<td class="org-center">> 200 [um]</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="org-left">Resolution</td>
|
<td class="org-left">Resolution</td>
|
||||||
<td class="org-left">2.5nm</td>
|
<td class="org-center">2.5 [nm]</td>
|
||||||
|
<td class="org-center">< 50 [nm rms]</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="org-left">Sub-Divisional Error</td>
|
<td class="org-left">Sub-Divisional Error</td>
|
||||||
<td class="org-left">\(< \pm 15\,nm\)</td>
|
<td class="org-center">\(< \pm 15\,nm\)</td>
|
||||||
|
<td class="org-center"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="org-left">Bandwidth</td>
|
<td class="org-left">Bandwidth</td>
|
||||||
<td class="org-left">> 50 kHz</td>
|
<td class="org-center">To be checked</td>
|
||||||
|
<td class="org-center">> 5 [kHz]</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org2068d11" class="figure">
|
||||||
<div id="orgb8bf3d5" class="figure">
|
|
||||||
<p><img src="./figs/vionic_expected_noise.png" alt="vionic_expected_noise.png" />
|
<p><img src="./figs/vionic_expected_noise.png" alt="vionic_expected_noise.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 3: </span>Expected interpolation errors for the Vionic Encoder</p>
|
<p><span class="figure-number">Figure 3: </span>Expected interpolation errors for the Vionic Encoder</p>
|
||||||
@ -136,8 +160,8 @@ The model of the encoder is shown in Figure <a href="#org2d59f14">2</a>.
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="outline-container-org8ef40ec" class="outline-2">
|
<div id="outline-container-org8e70edd" class="outline-2">
|
||||||
<h2 id="org8ef40ec"><span class="section-number-2">2</span> Test-Bench Description</h2>
|
<h2 id="org8e70edd"><span class="section-number-2">2</span> Test-Bench Description</h2>
|
||||||
<div class="outline-text-2" id="text-2">
|
<div class="outline-text-2" id="text-2">
|
||||||
<p>
|
<p>
|
||||||
To measure the noise \(n\) of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured.
|
To measure the noise \(n\) of the encoder, one can rigidly fix the head and the ruler together such that no motion should be measured.
|
||||||
@ -151,7 +175,7 @@ An actuator should also be there so impose a displacement.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
One idea is to use the test-bench shown in Figure <a href="#org1fd5a94">4</a>.
|
One idea is to use the test-bench shown in Figure <a href="#orgfefda93">4</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -164,7 +188,7 @@ As the interferometer has a very large bandwidth, we should be able to estimate
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org1fd5a94" class="figure">
|
<div id="orgfefda93" class="figure">
|
||||||
<p><img src="figs/test_bench_encoder_calibration.png" alt="test_bench_encoder_calibration.png" />
|
<p><img src="figs/test_bench_encoder_calibration.png" alt="test_bench_encoder_calibration.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 4: </span>Schematic of the test bench</p>
|
<p><span class="figure-number">Figure 4: </span>Schematic of the test bench</p>
|
||||||
@ -172,11 +196,11 @@ As the interferometer has a very large bandwidth, we should be able to estimate
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
To measure the noise of the sensor, we can also simply measure the output signal when the relative motion between the encoder and the ruler is null.
|
To measure the noise of the sensor, we can also simply measure the output signal when the relative motion between the encoder and the ruler is null.
|
||||||
This can be done by clamping the two as done in the mounting strut tool (Figure <a href="#orgab0ed8d">5</a>).
|
This can be done by clamping the two as done in the mounting strut tool (Figure <a href="#org742c647">5</a>).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="orgab0ed8d" class="figure">
|
<div id="org742c647" class="figure">
|
||||||
<p><img src="figs/test_bench_measure_noise.png" alt="test_bench_measure_noise.png" />
|
<p><img src="figs/test_bench_measure_noise.png" alt="test_bench_measure_noise.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 5: </span>Mounting Strut test bench as a clamping method to measure the encoder noise.</p>
|
<p><span class="figure-number">Figure 5: </span>Mounting Strut test bench as a clamping method to measure the encoder noise.</p>
|
||||||
@ -184,17 +208,70 @@ This can be done by clamping the two as done in the mounting strut tool (Figure
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgce223ed" class="outline-2">
|
<div id="outline-container-orge118b0f" class="outline-2">
|
||||||
<h2 id="orgce223ed"><span class="section-number-2">3</span> Measurement procedure</h2>
|
<h2 id="orge118b0f"><span class="section-number-2">3</span> Measurement procedure</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org51852cb" class="outline-2">
|
<div id="outline-container-org8e44240" class="outline-2">
|
||||||
<h2 id="org51852cb"><span class="section-number-2">4</span> Measurement Results</h2>
|
<h2 id="org8e44240"><span class="section-number-2">4</span> Measurement Results</h2>
|
||||||
|
<div class="outline-text-2" id="text-4">
|
||||||
|
</div>
|
||||||
|
<div id="outline-container-org7e465e7" class="outline-3">
|
||||||
|
<h3 id="org7e465e7"><span class="section-number-3">4.1</span> Noise Measurement</h3>
|
||||||
|
<div class="outline-text-3" id="text-4-1">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">load(<span class="org-string">'noise_meas_100s_20kHz.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'x'</span>);
|
||||||
|
x = x <span class="org-type">-</span> mean(x);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||||
|
hold on;
|
||||||
|
plot(t, 1e9<span class="org-type">*</span>x, <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'Raw'</span>);
|
||||||
|
plot(t, 1e9<span class="org-type">*</span>lsim(1<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>500), x, t), <span class="org-string">'DisplayName'</span>, <span class="org-string">'LPF - 500Hz'</span>)
|
||||||
|
hold off;
|
||||||
|
xlabel(<span class="org-string">'Time [s]'</span>);
|
||||||
|
ylabel(<span class="org-string">'Displacement [nm]'</span>);
|
||||||
|
legend(<span class="org-string">'location'</span>, <span class="org-string">'northeast'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org3070d03" class="figure">
|
||||||
|
<p><img src="figs/vionic_noise_time.png" alt="vionic_noise_time.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 6: </span>Time domain measurement (raw data and low pass filtered data)</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgd593081" class="figure">
|
||||||
|
<p><img src="figs/vionic_noise_asd.png" alt="vionic_noise_asd.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 7: </span>Amplitude Spectral Density of the measured signal</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Let’s create a transfer function that approximate the measured noise of the encoder.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Gn_e = 1.8e<span class="org-type">-</span>11<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>5e3);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgd1f9fd9" class="figure">
|
||||||
|
<p><img src="figs/vionic_noise_asd_model.png" alt="vionic_noise_asd_model.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 8: </span>Measured ASD of the noise and modelled one</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2021-01-04 lun. 11:44</p>
|
<p class="date">Created: 2021-02-02 mar. 18:24</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
114
index.org
114
index.org
@ -94,12 +94,13 @@ The model of the encoder is shown in Figure [[fig:encoder-model-schematic]].
|
|||||||
#+caption: Characteristics of the Vionic Encoder
|
#+caption: Characteristics of the Vionic Encoder
|
||||||
#+attr_latex: :environment tabularx :width \linewidth :align lXX
|
#+attr_latex: :environment tabularx :width \linewidth :align lXX
|
||||||
#+attr_latex: :center t :booktabs t :float t
|
#+attr_latex: :center t :booktabs t :float t
|
||||||
| *Characteristics* | *Manual* |
|
| <l> | <c> | <c> |
|
||||||
|----------------------+----------------|
|
| *Characteristics* | *Manual* | *Specifications* |
|
||||||
| Resolution | 2.5nm |
|
|----------------------+----------------+------------------|
|
||||||
| Sub-Divisional Error | $< \pm 15\,nm$ |
|
| Range | Ruler length | > 200 [um] |
|
||||||
| Bandwidth | > 50 kHz |
|
| Resolution | 2.5 [nm] | < 50 [nm rms] |
|
||||||
|
| Sub-Divisional Error | $< \pm 15\,nm$ | |
|
||||||
|
| Bandwidth | To be checked | > 5 [kHz] |
|
||||||
|
|
||||||
#+name: fig:vionic_expected_noise
|
#+name: fig:vionic_expected_noise
|
||||||
#+caption: Expected interpolation errors for the Vionic Encoder
|
#+caption: Expected interpolation errors for the Vionic Encoder
|
||||||
@ -136,3 +137,104 @@ This can be done by clamping the two as done in the mounting strut tool (Figure
|
|||||||
* Measurement procedure
|
* Measurement procedure
|
||||||
|
|
||||||
* Measurement Results
|
* Measurement Results
|
||||||
|
** Noise Measurement
|
||||||
|
*** 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
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
addpath('./matlab/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Analysis :ignore:
|
||||||
|
#+begin_src matlab
|
||||||
|
load('noise_meas_100s_20kHz.mat', 't', 'x');
|
||||||
|
x = x - mean(x);
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(t, 1e9*x, '.', 'DisplayName', 'Raw');
|
||||||
|
plot(t, 1e9*lsim(1/(1 + s/2/pi/500), x, t), 'DisplayName', 'LPF - 500Hz')
|
||||||
|
hold off;
|
||||||
|
xlabel('Time [s]');
|
||||||
|
ylabel('Displacement [nm]');
|
||||||
|
legend('location', 'northeast');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no :exports results :results file replace
|
||||||
|
exportFig('figs/vionic_noise_time.pdf', 'width', 'wide', 'height', 'normal');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:vionic_noise_time
|
||||||
|
#+caption: Time domain measurement (raw data and low pass filtered data)
|
||||||
|
#+RESULTS:
|
||||||
|
[[file:figs/vionic_noise_time.png]]
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
% Compute sampling Frequency
|
||||||
|
Ts = (t(end) - t(1))/(length(t)-1);
|
||||||
|
Fs = 1/Ts;
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
% Hannning Windows
|
||||||
|
win = hanning(ceil(0.5*Fs));
|
||||||
|
|
||||||
|
[pxx, f] = pwelch(x, win, [], [], Fs);
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
figure;
|
||||||
|
plot(f, sqrt(pxx));
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]');
|
||||||
|
xlim([1, Fs/2]);
|
||||||
|
ylim([1e-11, 1e-9]);
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no :exports results :results file replace
|
||||||
|
exportFig('figs/vionic_noise_asd.pdf', 'width', 'wide', 'height', 'normal');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:vionic_noise_asd
|
||||||
|
#+caption: Amplitude Spectral Density of the measured signal
|
||||||
|
#+RESULTS:
|
||||||
|
[[file:figs/vionic_noise_asd.png]]
|
||||||
|
|
||||||
|
Let's create a transfer function that approximate the measured noise of the encoder.
|
||||||
|
#+begin_src matlab
|
||||||
|
Gn_e = 1.8e-11/(1 + s/2/pi/5e3);
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(pxx));
|
||||||
|
plot(f, abs(squeeze(freqresp(Gn_e, f, 'Hz'))), 'k--');
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
xlabel('Frequency [Hz]'); ylabel('ASD [$m/\sqrt{Hz}$]');
|
||||||
|
xlim([1, Fs/2]);
|
||||||
|
ylim([1e-11, 1e-9]);
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no :exports results :results file replace
|
||||||
|
exportFig('figs/vionic_noise_asd_model.pdf', 'width', 'wide', 'height', 'normal');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:vionic_noise_asd_model
|
||||||
|
#+caption: Measured ASD of the noise and modelled one
|
||||||
|
#+RESULTS:
|
||||||
|
[[file:figs/vionic_noise_asd_model.png]]
|
||||||
|
Loading…
Reference in New Issue
Block a user