2021-02-02 18:46:58 +01:00
<?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-04 20:23:22 +01:00
<!-- 2021 - 02 - 04 jeu. 20:23 -->
2021-02-02 18:46:58 +01:00
< 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 >
2021-02-04 20:23:22 +01:00
< li > < a href = "#org5cfc524" > 1. Encoder Model< / a > < / li >
< li > < a href = "#orgdb597d2" > 2. Noise Measurement< / a >
2021-02-02 18:46:58 +01:00
< ul >
2021-02-04 20:23:22 +01:00
< li > < a href = "#orgcf20f40" > 2.1. Test Bench< / a > < / li >
< li > < a href = "#orga00ea74" > 2.2. Results< / a > < / li >
2021-02-02 18:46:58 +01:00
< / ul >
< / li >
2021-02-04 20:23:22 +01:00
< li > < a href = "#orgf37b64f" > 3. Linearity Measurement< / a >
2021-02-02 18:46:58 +01:00
< ul >
2021-02-04 20:23:22 +01:00
< li > < a href = "#orgd7d0144" > 3.1. Test Bench< / a > < / li >
< li > < a href = "#org664af52" > 3.2. Results< / a > < / li >
2021-02-02 18:46:58 +01:00
< / ul >
< / li >
2021-02-04 20:23:22 +01:00
< li > < a href = "#orgf3c325a" > 4. Dynamical Measurement< / a >
2021-02-02 18:46:58 +01:00
< ul >
2021-02-04 20:23:22 +01:00
< li > < a href = "#org5deba50" > 4.1. Test Bench< / a > < / li >
< li > < a href = "#org4eec56e" > 4.2. Results< / a > < / li >
2021-02-02 18:46:58 +01:00
< / ul >
< / li >
< / ul >
< / div >
< / div >
< hr >
< p > This report is also available as a < a href = "./test-bench-vionic.pdf" > pdf< / a > .< / p >
< hr >
2021-02-04 20:23:22 +01:00
< div class = "note" id = "org3ece63c" >
2021-02-02 18:46:58 +01:00
< 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 >
2021-02-04 20:23:22 +01:00
< div id = "orga8ce6e5" class = "figure" >
2021-02-02 18:46:58 +01:00
< 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 >
2021-02-03 11:20:22 +01:00
< ul class = "org-ul" >
< li > 1: 2YA275< / li >
< li > 2: 2YA274< / li >
< li > 3: 2YA273< / li >
< li > 4: 2YA270< / li >
< li > 5: 2YA272< / li >
< li > 6: 2YA271< / li >
< li > 7: 2YJ313< / li >
< / ul >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-org5cfc524" class = "outline-2" >
< h2 id = "org5cfc524" > < span class = "section-number-2" > 1< / span > Encoder Model< / h2 >
2021-02-02 18:46:58 +01:00
< 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 >
2021-02-04 20:23:22 +01:00
The model of the encoder is shown in Figure < a href = "#org3722c48" > 2< / a > .
2021-02-02 18:46:58 +01:00
< / p >
2021-02-04 20:23:22 +01:00
< div id = "org3722c48" class = "figure" >
2021-02-02 18:46:58 +01:00
< 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 >
< p >
2021-02-04 20:23:22 +01:00
We can also use a transfer function \(G_n(s)\) to shape a noise \(\tilde{n}\) with unity ASD as shown in Figure < a href = "#org1f28b48" > 4< / a > .
2021-02-02 18:46:58 +01:00
< / p >
2021-02-04 20:23:22 +01:00
< div id = "org1ffb004" class = "figure" >
2021-02-02 18:46:58 +01:00
< p > < img src = "figs/encoder-model-schematic-with-asd.png" alt = "encoder-model-schematic-with-asd.png" / >
< / p >
< / div >
2021-02-04 20:23:22 +01:00
< table id = "org6be868a" border = "2" cellspacing = "0" cellpadding = "6" rules = "groups" frame = "hsides" >
2021-02-02 18:46:58 +01:00
< 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 >
2021-02-04 20:23:22 +01:00
< div id = "org1f28b48" class = "figure" >
2021-02-02 18:46:58 +01:00
< p > < img src = "./figs/vionic_expected_noise.png" alt = "vionic_expected_noise.png" / >
< / p >
< p > < span class = "figure-number" > Figure 4: < / span > Expected interpolation errors for the Vionic Encoder< / p >
< / div >
< / div >
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-orgdb597d2" class = "outline-2" >
< h2 id = "orgdb597d2" > < span class = "section-number-2" > 2< / span > Noise Measurement< / h2 >
2021-02-02 18:46:58 +01:00
< div class = "outline-text-2" id = "text-2" >
< p >
2021-02-04 20:23:22 +01:00
< a id = "org4a8cf7a" > < / a >
2021-02-02 18:46:58 +01:00
< / p >
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-orgcf20f40" class = "outline-3" >
< h3 id = "orgcf20f40" > < span class = "section-number-3" > 2.1< / span > Test Bench< / h3 >
2021-02-02 18:46:58 +01:00
< div class = "outline-text-3" id = "text-2-1" >
< 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 >
< / div >
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-orga00ea74" class = "outline-3" >
< h3 id = "orga00ea74" > < span class = "section-number-3" > 2.2< / span > Results< / h3 >
2021-02-02 18:46:58 +01:00
< div class = "outline-text-3" id = "text-2-2" >
< p >
First we load the data.
2021-02-04 20:23:22 +01:00
The raw measured data as well as the low pass filtered data (using a first order low pass filter with a cut-off at 10Hz) are shown in Figure < a href = "#orgafb2d71" > 5< / a > .
2021-02-02 18:46:58 +01:00
< / p >
2021-02-03 11:20:22 +01:00
2021-02-04 20:23:22 +01:00
< div id = "orgafb2d71" class = "figure" >
2021-02-03 11:20:22 +01:00
< p > < img src = "figs/vionic_noise_raw_lpf.png" alt = "vionic_noise_raw_lpf.png" / >
< / p >
< p > < span class = "figure-number" > Figure 5: < / span > Time domain measurement (raw data and low pass filtered data with first order 10Hz LPF)< / p >
< / div >
2021-02-02 18:46:58 +01:00
< p >
2021-02-04 20:23:22 +01:00
The time domain data for all the encoders are compared in Figure < a href = "#org6fcc332" > 6< / a > .
2021-02-02 18:46:58 +01:00
< / p >
2021-02-04 20:23:22 +01:00
< div id = "org6fcc332" class = "figure" >
2021-02-03 11:20:22 +01:00
< p > < img src = "figs/vionic_noise_time.png" alt = "vionic_noise_time.png" / >
< / p >
< p > < span class = "figure-number" > Figure 6: < / span > Comparison of the time domain measurement< / p >
< / div >
< p >
2021-02-04 20:23:22 +01:00
The amplitude spectral density is computed and shown in Figure < a href = "#org0596231" > 7< / a > .
2021-02-03 11:20:22 +01:00
< / p >
2021-02-02 18:46:58 +01:00
2021-02-04 20:23:22 +01:00
< div id = "org0596231" class = "figure" >
2021-02-02 18:46:58 +01:00
< p > < img src = "figs/vionic_noise_asd.png" alt = "vionic_noise_asd.png" / >
< / p >
2021-02-03 11:20:22 +01:00
< p > < span class = "figure-number" > Figure 7: < / span > Amplitude Spectral Density of the measured signal< / p >
2021-02-02 18:46:58 +01:00
< / div >
< p >
Let’ s create a transfer function that approximate the measured noise of the encoder.
< / p >
< div class = "org-src-container" >
2021-02-03 11:20:22 +01:00
< 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 > 1e4);
2021-02-02 18:46:58 +01:00
< / pre >
< / div >
< p >
2021-02-04 20:23:22 +01:00
The amplitude of the transfer function and the measured ASD are shown in Figure < a href = "#org2802608" > 8< / a > .
2021-02-02 18:46:58 +01:00
< / p >
2021-02-04 20:23:22 +01:00
< div id = "org2802608" class = "figure" >
2021-02-02 18:46:58 +01:00
< p > < img src = "figs/vionic_noise_asd_model.png" alt = "vionic_noise_asd_model.png" / >
< / p >
2021-02-03 11:20:22 +01:00
< p > < span class = "figure-number" > Figure 8: < / span > Measured ASD of the noise and modelled one< / p >
2021-02-02 18:46:58 +01:00
< / div >
< / div >
< / div >
< / div >
2021-02-03 11:20:22 +01:00
2021-02-04 20:23:22 +01:00
< div id = "outline-container-orgf37b64f" class = "outline-2" >
< h2 id = "orgf37b64f" > < span class = "section-number-2" > 3< / span > Linearity Measurement< / h2 >
2021-02-02 18:46:58 +01:00
< div class = "outline-text-2" id = "text-3" >
< p >
2021-02-04 20:23:22 +01:00
< a id = "org55aba7f" > < / a >
2021-02-02 18:46:58 +01:00
< / p >
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-orgd7d0144" class = "outline-3" >
< h3 id = "orgd7d0144" > < span class = "section-number-3" > 3.1< / span > Test Bench< / h3 >
2021-02-02 18:46:58 +01:00
< div class = "outline-text-3" id = "text-3-1" >
< 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 >
2021-02-04 20:23:22 +01:00
One idea is to use the test-bench shown in Figure < a href = "#orgd759dea" > 9< / a > .
2021-02-02 18:46:58 +01:00
< / 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 if it is less than the Nyquist frequency that can be around 10kHz.
< / p >
2021-02-04 20:23:22 +01:00
< div id = "orgd759dea" class = "figure" >
2021-02-02 18:46:58 +01:00
< p > < img src = "figs/test_bench_encoder_calibration.png" alt = "test_bench_encoder_calibration.png" / >
< / p >
2021-02-03 11:20:22 +01:00
< p > < span class = "figure-number" > Figure 9: < / span > Schematic of the test bench< / p >
2021-02-02 18:46:58 +01:00
< / div >
< / div >
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-org664af52" class = "outline-3" >
< h3 id = "org664af52" > < span class = "section-number-3" > 3.2< / span > Results< / h3 >
2021-02-02 18:46:58 +01:00
< / div >
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-orgf3c325a" class = "outline-2" >
< h2 id = "orgf3c325a" > < span class = "section-number-2" > 4< / span > Dynamical Measurement< / h2 >
2021-02-02 18:46:58 +01:00
< div class = "outline-text-2" id = "text-4" >
< p >
2021-02-04 20:23:22 +01:00
< a id = "org7abf850" > < / a >
2021-02-02 18:46:58 +01:00
< / p >
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-org5deba50" class = "outline-3" >
< h3 id = "org5deba50" > < span class = "section-number-3" > 4.1< / span > Test Bench< / h3 >
2021-02-02 18:46:58 +01:00
< / div >
2021-02-04 20:23:22 +01:00
< div id = "outline-container-org4eec56e" class = "outline-3" >
< h3 id = "org4eec56e" > < span class = "section-number-3" > 4.2< / span > Results< / h3 >
2021-02-02 18:46:58 +01:00
< / div >
< / div >
< / div >
< div id = "postamble" class = "status" >
< p class = "author" > Author: Dehaeze Thomas< / p >
2021-02-04 20:23:22 +01:00
< p class = "date" > Created: 2021-02-04 jeu. 20:23< / p >
2021-02-02 18:46:58 +01:00
< / div >
< / body >
< / html >