278 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			278 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<?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>
 | 
						|
<!-- 2021-02-02 mar. 18:24 -->
 | 
						|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 | 
						|
<title>Encoder Renishaw Vionic - Test Bench</title>
 | 
						|
<meta name="generator" content="Org mode" />
 | 
						|
<meta name="author" content="Dehaeze Thomas" />
 | 
						|
<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>
 | 
						|
           MathJax = {
 | 
						|
             svg: {
 | 
						|
               scale: 1,
 | 
						|
               fontCache: "global"
 | 
						|
             },
 | 
						|
             tex: {
 | 
						|
               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>
 | 
						|
<body>
 | 
						|
<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">Encoder Renishaw Vionic - Test Bench</h1>
 | 
						|
<div id="table-of-contents">
 | 
						|
<h2>Table of Contents</h2>
 | 
						|
<div id="text-table-of-contents">
 | 
						|
<ul>
 | 
						|
<li><a href="#orgd4a4664">1. Encoder Model</a></li>
 | 
						|
<li><a href="#org8e70edd">2. Test-Bench Description</a></li>
 | 
						|
<li><a href="#orge118b0f">3. Measurement procedure</a></li>
 | 
						|
<li><a href="#org8e44240">4. Measurement Results</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#org7e465e7">4.1. Noise Measurement</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
</ul>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div class="note" id="org4c0c9be">
 | 
						|
<p>
 | 
						|
You can find below the document of:
 | 
						|
</p>
 | 
						|
<ul class="org-ul">
 | 
						|
<li><a href="doc/L-9517-9678-05-A_Data_sheet_VIONiC_series_en.pdf">Vionic Encoder</a></li>
 | 
						|
<li><a href="doc/L-9517-9862-01-C_Data_sheet_RKLC_EN.pdf">Linear Scale</a></li>
 | 
						|
</ul>
 | 
						|
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
We would like to characterize the encoder measurement system.
 | 
						|
</p>
 | 
						|
 | 
						|
<p>
 | 
						|
In particular, we would like to measure:
 | 
						|
</p>
 | 
						|
<ul class="org-ul">
 | 
						|
<li>Power Spectral Density of the measurement noise</li>
 | 
						|
<li>Bandwidth of the sensor</li>
 | 
						|
<li>Linearity of the sensor</li>
 | 
						|
</ul>
 | 
						|
 | 
						|
 | 
						|
<div id="org13fff85" class="figure">
 | 
						|
<p><img src="figs/encoder_vionic.png" alt="encoder_vionic.png" />
 | 
						|
</p>
 | 
						|
<p><span class="figure-number">Figure 1: </span>Picture of the Vionic Encoder</p>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orgd4a4664" class="outline-2">
 | 
						|
<h2 id="orgd4a4664"><span class="section-number-2">1</span> Encoder Model</h2>
 | 
						|
<div class="outline-text-2" id="text-1">
 | 
						|
<p>
 | 
						|
The Encoder is characterized by its dynamics \(G_m(s)\) from the “true” displacement \(y\) to measured displacement \(y_m\).
 | 
						|
Ideally, this dynamics is constant over a wide frequency band with very small phase drop.
 | 
						|
</p>
 | 
						|
 | 
						|
<p>
 | 
						|
It is also characterized by its measurement noise \(n\) that can be described by its Power Spectral Density (PSD).
 | 
						|
</p>
 | 
						|
 | 
						|
<p>
 | 
						|
The model of the encoder is shown in Figure <a href="#org08a4e7a">2</a>.
 | 
						|
</p>
 | 
						|
 | 
						|
 | 
						|
<div id="org08a4e7a" class="figure">
 | 
						|
<p><img src="figs/encoder-model-schematic.png" alt="encoder-model-schematic.png" />
 | 
						|
</p>
 | 
						|
<p><span class="figure-number">Figure 2: </span>Model of the Encoder</p>
 | 
						|
</div>
 | 
						|
 | 
						|
 | 
						|
<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>
 | 
						|
 | 
						|
<colgroup>
 | 
						|
<col  class="org-left" />
 | 
						|
 | 
						|
<col  class="org-center" />
 | 
						|
 | 
						|
<col  class="org-center" />
 | 
						|
</colgroup>
 | 
						|
<thead>
 | 
						|
<tr>
 | 
						|
<th scope="col" class="org-left"><b>Characteristics</b></th>
 | 
						|
<th scope="col" class="org-center"><b>Manual</b></th>
 | 
						|
<th scope="col" class="org-center"><b>Specifications</b></th>
 | 
						|
</tr>
 | 
						|
</thead>
 | 
						|
<tbody>
 | 
						|
<tr>
 | 
						|
<td class="org-left">Range</td>
 | 
						|
<td class="org-center">Ruler length</td>
 | 
						|
<td class="org-center">> 200 [um]</td>
 | 
						|
</tr>
 | 
						|
 | 
						|
<tr>
 | 
						|
<td class="org-left">Resolution</td>
 | 
						|
<td class="org-center">2.5 [nm]</td>
 | 
						|
<td class="org-center">< 50 [nm rms]</td>
 | 
						|
</tr>
 | 
						|
 | 
						|
<tr>
 | 
						|
<td class="org-left">Sub-Divisional Error</td>
 | 
						|
<td class="org-center">\(< \pm 15\,nm\)</td>
 | 
						|
<td class="org-center"> </td>
 | 
						|
</tr>
 | 
						|
 | 
						|
<tr>
 | 
						|
<td class="org-left">Bandwidth</td>
 | 
						|
<td class="org-center">To be checked</td>
 | 
						|
<td class="org-center">> 5 [kHz]</td>
 | 
						|
</tr>
 | 
						|
</tbody>
 | 
						|
</table>
 | 
						|
 | 
						|
 | 
						|
<div id="org2068d11" class="figure">
 | 
						|
<p><img src="./figs/vionic_expected_noise.png" alt="vionic_expected_noise.png" />
 | 
						|
</p>
 | 
						|
<p><span class="figure-number">Figure 3: </span>Expected interpolation errors for the Vionic Encoder</p>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
 | 
						|
<div id="outline-container-org8e70edd" class="outline-2">
 | 
						|
<h2 id="org8e70edd"><span class="section-number-2">2</span> Test-Bench Description</h2>
 | 
						|
<div class="outline-text-2" id="text-2">
 | 
						|
<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.
 | 
						|
Then, the measured signal \(y_m\) corresponds to the noise \(n\).
 | 
						|
</p>
 | 
						|
 | 
						|
<p>
 | 
						|
In order to measure the linearity, we have to compare the measured displacement with a reference sensor with a known linearity.
 | 
						|
An interferometer or capacitive sensor should work fine.
 | 
						|
An actuator should also be there so impose a displacement.
 | 
						|
</p>
 | 
						|
 | 
						|
<p>
 | 
						|
One idea is to use the test-bench shown in Figure <a href="#orgfefda93">4</a>.
 | 
						|
</p>
 | 
						|
 | 
						|
<p>
 | 
						|
The APA300ML is used to excite the mass in a broad bandwidth.
 | 
						|
The motion is measured at the same time by the Vionic Encoder and by an interferometer (most likely an Attocube).
 | 
						|
</p>
 | 
						|
 | 
						|
<p>
 | 
						|
As the interferometer has a very large bandwidth, we should be able to estimate the bandwidth of the encoder is it is less than the Nyquist frequency (~ 5kHz).
 | 
						|
</p>
 | 
						|
 | 
						|
 | 
						|
<div id="orgfefda93" class="figure">
 | 
						|
<p><img src="figs/test_bench_encoder_calibration.png" alt="test_bench_encoder_calibration.png" />
 | 
						|
</p>
 | 
						|
<p><span class="figure-number">Figure 4: </span>Schematic of the test bench</p>
 | 
						|
</div>
 | 
						|
 | 
						|
<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.
 | 
						|
This can be done by clamping the two as done in the mounting strut tool (Figure <a href="#org742c647">5</a>).
 | 
						|
</p>
 | 
						|
 | 
						|
 | 
						|
<div id="org742c647" class="figure">
 | 
						|
<p><img src="figs/test_bench_measure_noise.png" alt="test_bench_measure_noise.png" />
 | 
						|
</p>
 | 
						|
<p><span class="figure-number">Figure 5: </span>Mounting Strut test bench as a clamping method to measure the encoder noise.</p>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-orge118b0f" class="outline-2">
 | 
						|
<h2 id="orge118b0f"><span class="section-number-2">3</span> Measurement procedure</h2>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org8e44240" class="outline-2">
 | 
						|
<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 id="postamble" class="status">
 | 
						|
<p class="author">Author: Dehaeze Thomas</p>
 | 
						|
<p class="date">Created: 2021-02-02 mar. 18:24</p>
 | 
						|
</div>
 | 
						|
</body>
 | 
						|
</html>
 |