test-bench-vionic/index.org

139 lines
5.4 KiB
Org Mode
Raw Normal View History

2020-12-16 11:51:26 +01:00
#+TITLE: Encoder Renishaw Vionic - Test Bench
:DRAWER:
#+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="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+BIND: org-latex-image-default-option "scale=1"
#+BIND: org-latex-image-default-width ""
#+LaTeX_CLASS: scrreprt
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full]
#+LaTeX_HEADER_EXTRA: \input{preamble.tex}
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+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
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
#+PROPERTY: header-args:latex+ :results file raw replace
#+PROPERTY: header-args:latex+ :buffer no
#+PROPERTY: header-args:latex+ :tangle no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports results
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :output-dir figs
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
:END:
* Introduction :ignore:
2020-12-16 14:07:07 +01:00
#+begin_note
2020-12-16 11:51:26 +01:00
You can find below the document of:
- [[file:doc/L-9517-9678-05-A_Data_sheet_VIONiC_series_en.pdf][Vionic Encoder]]
- [[file:doc/L-9517-9862-01-C_Data_sheet_RKLC_EN.pdf][Linear Scale]]
2020-12-16 14:07:07 +01:00
#+end_note
We would like to characterize the encoder measurement system.
In particular, we would like to measure:
- Power Spectral Density of the measurement noise
2020-12-17 14:54:16 +01:00
- Bandwidth of the sensor
- Linearity of the sensor
2020-12-16 11:51:26 +01:00
2021-01-04 11:44:11 +01:00
#+name: fig:encoder_vionic
#+caption: Picture of the Vionic Encoder
[[file:figs/encoder_vionic.png]]
2020-12-16 11:51:26 +01:00
* Encoder Model
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.
It is also characterized by its measurement noise $n$ that can be described by its Power Spectral Density (PSD).
2020-12-16 14:07:07 +01:00
The model of the encoder is shown in Figure [[fig:encoder-model-schematic]].
2020-12-16 11:51:26 +01:00
#+begin_src latex :file encoder-model-schematic.pdf
\begin{tikzpicture}
\node[block] (G) at (0,0){$G_m(s)$};
\node[addb, left=0.8 of G] (add){};
\draw[<-] (add.west) -- ++(-1.0, 0) node[above right]{$y$};
\draw[->] (add.east) -- (G.west);
\draw[->] (G.east) -- ++(1.0, 0) node[above left]{$y_m$};
\draw[<-] (add.north) -- ++(0, 0.6) node[below right](n){$n$};
\begin{scope}[on background layer]
\node[fit={(add.west|-G.south) (n.north-|G.east)}, inner sep=8pt, draw, dashed, fill=black!20!white] (P) {};
\node[below left] at (P.north east) {Encoder};
\end{scope}
\end{tikzpicture}
#+end_src
#+name: fig:encoder-model-schematic
#+caption: Model of the Encoder
#+RESULTS:
[[file:figs/encoder-model-schematic.png]]
2020-12-17 14:54:16 +01:00
#+name: tab:vionic_characteristics_manual
#+caption: Characteristics of the Vionic Encoder
#+attr_latex: :environment tabularx :width \linewidth :align lXX
#+attr_latex: :center t :booktabs t :float t
| *Characteristics* | *Manual* |
|----------------------+----------------|
| Resolution | 2.5nm |
| Sub-Divisional Error | $< \pm 15\,nm$ |
| Bandwidth | > 50 kHz |
#+name: fig:vionic_expected_noise
#+caption: Expected interpolation errors for the Vionic Encoder
[[file:./figs/vionic_expected_noise.png]]
2020-12-16 11:51:26 +01:00
* Test-Bench Description
2020-12-16 14:07:07 +01:00
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$.
2020-12-16 11:51:26 +01:00
2020-12-16 14:07:07 +01:00
In order to measure the linearity, we have to compare the measured displacement with a reference sensor with a known linearity.
2020-12-17 14:54:16 +01:00
An interferometer or capacitive sensor should work fine.
2020-12-16 14:07:07 +01:00
An actuator should also be there so impose a displacement.
2020-12-16 11:51:26 +01:00
2020-12-17 14:54:16 +01:00
One idea is to use the test-bench shown in Figure [[fig:test_bench_encoder_calibration]].
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).
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).
#+name: fig:test_bench_encoder_calibration
#+caption: Schematic of the test bench
[[file:figs/test_bench_encoder_calibration.png]]
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 [[fig:test_bench_measure_noise]]).
#+name: fig:test_bench_measure_noise
#+caption: Mounting Strut test bench as a clamping method to measure the encoder noise.
[[file:figs/test_bench_measure_noise.png]]
2020-12-16 14:07:07 +01:00
* Measurement procedure
2020-12-16 11:51:26 +01:00
* Measurement Results