diff --git a/.gitignore b/.gitignore index 0781d9d..e0085a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ +auto/ +*.tex +*.bbl +*.synctex.gz +.auctex-auto/ +_minted* + # Windows default autosave extension *.asv *rtw/ diff --git a/index.html b/test-bench-encoder.html similarity index 57% rename from index.html rename to test-bench-encoder.html index 394f6f9..956c9b0 100644 --- a/index.html +++ b/test-bench-encoder.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Encoder - Test Bench @@ -22,19 +22,19 @@

Table of Contents

@@ -49,23 +49,23 @@ In this document, we wish to study the use of an encoder in parallel with an Amp The document is divided into the following Sections:

-
-

1 Experimental Setup

+
+

1 Experimental Setup

- +

-The experimental Setup is schematically represented in Figure 1. +The experimental Setup is schematically represented in Figure 1.

-
+

Here are the equipment used in the test bench:

@@ -85,21 +85,21 @@ The displacement of the mass (relative to the mechanical frame) is measured both

-
+

exp_setup_schematic.png

Figure 1: Schematic of the Experiment

-
+

IMG_20201023_153905.jpg

Figure 2: Side View of the encoder

-
+

IMG_20201023_153914.jpg

Figure 3: Front View of the encoder

@@ -107,11 +107,11 @@ The displacement of the mass (relative to the mechanical frame) is measured both
-
-

2 Noise Spectral Density of the Encoder

+
+

2 Noise Spectral Density of the Encoder

- +

The goal in this section is the estimate the noise of both the encoder and the intereferometer. @@ -123,50 +123,50 @@ Ideally, a mechanical part would clamp the two together, we here suppose that th

-
-

2.1 Load Data

+
+

2.1 Load Data

The measurement data are loaded and the offset are removed using the detrend command.

-
load('int_enc_huddle_test.mat', 'interferometer', 'encoder', 't');
+
  load('int_enc_huddle_test.mat', 'interferometer', 'encoder', 't');
 
-
interferometer = detrend(interferometer, 0);
-encoder = detrend(encoder, 0);
+
  interferometer = detrend(interferometer, 0);
+  encoder = detrend(encoder, 0);
 
-
-

2.2 Time Domain Results

+
+

2.2 Time Domain Results

-The measurement of both the encoder and interferometer are shown in Figure 4. +The measurement of both the encoder and interferometer are shown in Figure 4.

-
+

huddle_test_time_domain.png

Figure 4: Huddle test - Time domain signals

-The raw signals are filtered with a Low Pass filter (defined below) such that we can see the low frequency motion (Figure 5). +The raw signals are filtered with a Low Pass filter (defined below) such that we can see the low frequency motion (Figure 5).

-
G_lpf = 1/(1 + s/2/pi/10);
+
  G_lpf = 1/(1 + s/2/pi/10);
 
-
+

huddle_test_time_domain_filtered.png

Figure 5: Huddle test - Time domain signals filtered with a LPF at 10Hz

@@ -174,24 +174,24 @@ The raw signals are filtered with a Low Pass filter (defined below) such that we
-
-

2.3 Frequency Domain Noise

+
+

2.3 Frequency Domain Noise

The noise of the measurement (supposing there is no motion) is now translated in the frequency domain by computed the Amplitude Spectral Density.

-
Ts = 1e-4;
-win = hann(ceil(10/Ts));
+
  Ts = 1e-4;
+  win = hann(ceil(10/Ts));
 
-[p_i, f] = pwelch(interferometer, win, [], [], 1/Ts);
-[p_e, ~] = pwelch(encoder,        win, [], [], 1/Ts);
+  [p_i, f] = pwelch(interferometer, win, [], [], 1/Ts);
+  [p_e, ~] = pwelch(encoder,        win, [], [], 1/Ts);
 

-The comparison of the ASD of the encoder and interferometer are shown in Figure 6. +The comparison of the ASD of the encoder and interferometer are shown in Figure 6.

@@ -199,7 +199,7 @@ It is clear that although the encoder exhibit higher frequency noise, is it more

-
+

huddle_test_asd.png

Figure 6: Amplitude Spectral Density of the signals during the Huddle test

@@ -208,25 +208,25 @@ It is clear that although the encoder exhibit higher frequency noise, is it more
-
-

3 Dynamics from Actuator to Encoder

+
+

3 Dynamics from Actuator to Encoder

- +

Now the dynamics from the force actuator to the measurement by the encoder is identified.

-
-

3.1 Load Data

+
+

3.1 Load Data

As usual, the measurement data are loaded.

-
load('int_enc_id_noise_bis.mat', 'interferometer', 'encoder', 'u', 't');
+
  load('int_enc_id_noise_bis.mat', 'interferometer', 'encoder', 'u', 't');
 
@@ -234,10 +234,10 @@ As usual, the measurement data are loaded. The first 0.1 seconds are removed as it corresponds to transient behavior.

-
interferometer = interferometer(t>0.1);
-encoder = encoder(t>0.1);
-u = u(t>0.1);
-t = t(t>0.1);
+
  interferometer = interferometer(t>0.1);
+  encoder = encoder(t>0.1);
+  u = u(t>0.1);
+  t = t(t>0.1);
 
@@ -245,79 +245,83 @@ t = t(t>0.1); Finally the offset are removed using the detrend command.

-
interferometer = detrend(interferometer, 0);
-encoder = detrend(encoder, 0);
-u = detrend(u, 0);
+
  interferometer = detrend(interferometer, 0);
+  encoder = detrend(encoder, 0);
+  u = detrend(u, 0);
 
-
-

3.2 Excitation and Measured Signals

+
+

3.2 Excitation and Measured Signals

The excitation signal is a white noise filtered by a low pass filter to not excite too much the high frequency modes.

-The excitation signal is shown in Figure 7. +The excitation signal is shown in Figure 7.

-
+

encoder_identification_excitation_time.png

+

Figure 7: Excitation Voltage

The measured motion by the interferometer and encoder is shown in Figure

-
+

encoder_identification_motion.png

+

Figure 8: Measured displacement by the encoder and interferometer

-
-

3.3 Identification

+
+

3.3 Identification

Now the dynamics from the voltage sent to the voltage amplitude driving the APA95ML to the measured displacement by both the encoder and interferometer are computed.

-
Ts = 1e-4; % Sampling Time [s]
-win = hann(ceil(10/Ts));
+
  Ts = 1e-4; % Sampling Time [s]
+  win = hann(ceil(10/Ts));
 
-[tf_i_est, f] = tfestimate(u, interferometer, win, [], [], 1/Ts);
-[co_i_est, ~] = mscohere(u, interferometer, win, [], [], 1/Ts);
+  [tf_i_est, f] = tfestimate(u, interferometer, win, [], [], 1/Ts);
+  [co_i_est, ~] = mscohere(u, interferometer, win, [], [], 1/Ts);
 
-[tf_e_est, ~] = tfestimate(u, encoder, win, [], [], 1/Ts);
-[co_e_est, ~] = mscohere(u, encoder, win, [], [], 1/Ts);
+  [tf_e_est, ~] = tfestimate(u, encoder, win, [], [], 1/Ts);
+  [co_e_est, ~] = mscohere(u, encoder, win, [], [], 1/Ts);
 

-The obtained coherence is shown in Figure 9. +The obtained coherence is shown in Figure 9. It is shown that the identification is good until 500Hz for the interferometer and until 1kHz for the encoder.

-
+

identification_dynamics_coherence.png

+

Figure 9: Obtained coherence for both the encoder and interferometer

-The compared dynamics as measured by the intereferometer and encoder are shown in Figure 10. +The compared dynamics as measured by the intereferometer and encoder are shown in Figure 10.

-
+

identification_dynamics_bode.png

+

Figure 10: Obtained dynamics from actuator voltage to displacement as measured by the interferometer and by the encoder

@@ -330,7 +334,7 @@ The second resonance at around 900Hz most likely corresponds to the resonance of

Author: Dehaeze Thomas

-

Created: 2020-11-12 jeu. 10:16

+

Created: 2021-02-02 mar. 19:16

diff --git a/index.org b/test-bench-encoder.org similarity index 95% rename from index.org rename to test-bench-encoder.org index 964ee34..f34ca9c 100644 --- a/index.org +++ b/test-bench-encoder.org @@ -10,6 +10,14 @@ #+HTML_HEAD: #+HTML_HEAD: +#+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} +#+EXPORT_FILE_NAME: test-bench-pd200.tex + #+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 @@ -63,11 +71,13 @@ The displacement of the mass (relative to the mechanical frame) is measured both #+name: fig:encoder_side_view #+ATTR_ORG: :width 300 +#+ATTR_LATEX: :width \linewidth #+caption: Side View of the encoder [[file:figs/IMG_20201023_153905.jpg]] #+name: fig:encoder_front_view #+caption: Front View of the encoder +#+ATTR_LATEX: :width \linewidth [[file:figs/IMG_20201023_153914.jpg]] * Noise Spectral Density of the Encoder @@ -239,7 +249,7 @@ The excitation signal is shown in Figure [[fig:encoder_identification_excitation #+end_src #+name: fig:encoder_identification_excitation_time -#+caption: +#+caption: Excitation Voltage #+RESULTS: [[file:figs/encoder_identification_excitation_time.png]] @@ -259,7 +269,7 @@ The measured motion by the interferometer and encoder is shown in Figure #+end_src #+name: fig:encoder_identification_motion -#+caption: +#+caption: Measured displacement by the encoder and interferometer #+RESULTS: [[file:figs/encoder_identification_motion.png]] @@ -297,7 +307,7 @@ It is shown that the identification is good until 500Hz for the interferometer a #+end_src #+name: fig:identification_dynamics_coherence -#+caption: +#+caption: Obtained coherence for both the encoder and interferometer #+RESULTS: [[file:figs/identification_dynamics_coherence.png]] @@ -323,7 +333,7 @@ The compared dynamics as measured by the intereferometer and encoder are shown i plot(f, 180/pi*angle(tf_e_est), '-') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'lin'); ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); - hold off; + hold off; yticks(-360:90:360); axis padded 'auto x' @@ -336,7 +346,7 @@ The compared dynamics as measured by the intereferometer and encoder are shown i #+end_src #+name: fig:identification_dynamics_bode -#+caption: +#+caption: Obtained dynamics from actuator voltage to displacement as measured by the interferometer and by the encoder #+RESULTS: [[file:figs/identification_dynamics_bode.png]] diff --git a/test-bench-encoder.pdf b/test-bench-encoder.pdf new file mode 100644 index 0000000..2a6e051 Binary files /dev/null and b/test-bench-encoder.pdf differ