Compare commits

...

2 Commits

Author SHA1 Message Date
a4d25b24cf Update .gitignore to ignore tex outputs 2020-11-03 11:08:26 +01:00
892989585b Export the report to PDF 2020-11-03 11:08:16 +01:00
9 changed files with 786 additions and 991 deletions

4
.gitignore vendored
View File

@ -1,5 +1,9 @@
auto/
*.tex
*.bbl
*.synctex.gz
.auctex-auto/
_minted*
**/figs/*.svg
**/figs/*.tex

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 97 KiB

1695
index.html

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,8 @@
#+TITLE: Sercalo Test Bench
:DRAWER:
#+BIND: org-latex-image-default-option "scale=1"
#+BIND: org-latex-image-default-width ""
#+STARTUP: overview
#+LANGUAGE: en
@ -14,11 +17,15 @@
#+HTML_HEAD: <script type="text/javascript" src="./js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
#+LATEX_CLASS: scrreprt
#+LATEX_CLASS_OPTIONS: []
#+LATEX_CLASS: cleanreport
#+LATEX_CLASS_OPTIONS: [conf, hangsection, secbreak]
#+LATEX_HEADER: \usepackage{minted}
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/Cloud/thesis/latex/}{config.tex}")
#+LATEX_HEADER: \newcommand{\authorFirstName}{Thomas}
#+LATEX_HEADER: \newcommand{\authorLastName}{Dehaeze}
#+LATEX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/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
@ -40,6 +47,12 @@
#+PROPERTY: header-args:matlab+ :mkdirp yes
:END:
#+begin_export html
<hr>
<p>This report is also available as a <a href="./index.pdf">pdf</a>.</p>
<hr>
#+end_export
* Introduction
** Block Diagram
The block diagram of the setup to be controlled is shown in Fig. [[fig:block_diagram_simplify]].
@ -136,6 +149,7 @@ The block diagram with each transfer function is shown in Fig. [[fig:block_diagr
#+end_src
#+name: fig:block_diagram
#+attr_latex: :width \linewidth
#+caption: Block Diagram of the Experimental Setup with detailed dynamics
#+RESULTS:
[[file:figs/sercalo_diagram.png]]
@ -144,9 +158,12 @@ The block diagram with each transfer function is shown in Fig. [[fig:block_diagr
From the Sercalo documentation, we have the parameters shown on table [[tab:sercalo_parameters]].
#+name: tab:sercalo_parameters
#+attr_latex: :environment tabularx :width \linewidth :align lXXXXX
#+attr_latex: :center t :booktabs t :float t
#+caption: Sercalo Parameters
| | Maximum Stroke [deg] | Resonance Frequency [Hz] | DC Gain [mA/deg] | Gain at resonance [deg/V] | RC Resistance [Ohm] |
|------------------+----------------------+--------------------------+------------------+---------------------------+---------------------|
| | Max. Stroke | Res. Freq. | DC Gain | Gain at res. | RC Res. |
| | [deg] | [Hz] | [mA/deg] | [deg/V] | [Ohm] |
|------------------+-------------+------------+----------+--------------+---------|
| AX1 (Horizontal) | 5 | 411.13 | 28.4 | 382.9 | 9.41 |
| AX2 (Vertical) | 5 | 252.5 | 35.2 | 350.4 | |
@ -269,10 +286,12 @@ And we have:
\end{align*}
#+name: fig:newport_doc
#+attr_latex: :width \linewidth
#+caption: Documentation of the Newport
[[file:figs/newport_doc.png]]
#+name: fig:newport_gain
#+attr_latex: :width \linewidth
#+caption: Transfer function of the Newport
[[file:figs/newport_gain.png]]
@ -539,6 +558,8 @@ Thus, we obtain the "gain of the 4 quadrant photo-diode as shown on table [[tab:
#+end_src
#+name: tab:gain_4qd
#+attr_latex: :environment tabularx :width 0.5\linewidth :align lX
#+attr_latex: :center t :booktabs t :float t
#+caption: Identified Gain of the 4 quadrant diode
#+RESULTS:
| Horizontal [V/rad] | Vertical [V/rad] |
@ -1807,6 +1828,8 @@ The goal is to determine the noise of the photodiodes as well as the noise of th
Multiple measurements are done with different experimental configuration as follow:
#+name: tab:huddle_tests
#+attr_latex: :environment tabularx :width 0.7\linewidth :align lXXX
#+attr_latex: :center t :booktabs t :float t
#+caption: Experimental Configuration for the various Huddle test
| Number | OL/CL | Compensation Unit | Aluminum |
|--------+-------------+-------------------+----------|
@ -2058,7 +2081,6 @@ We filter the data with a first order low pass filter with a crossover frequency
#+CAPTION: PSD of the 4QD signal during Huddle tests ([[./figs/huddle_test_4qd_psd.png][png]], [[./figs/huddle_test_4qd_psd.pdf][pdf]])
[[file:figs/huddle_test_4qd_psd.png]]
** Conclusion
The Attocube's "Environmental Compensation Unit" does not have a significant effect on the stability of the measurement.
@ -2245,6 +2267,8 @@ The tracking error of the feedback system used to position the Sercalo mirror sh
#+end_important
#+name: tab:effect_angle_error
#+attr_latex: :environment tabularx :width 0.6\linewidth :align lX
#+attr_latex: :center t :booktabs t :float t
#+caption: Effect of an angle error $\delta \theta_c$ of the Sercalo's mirror on the measurement error $\delta L$ by the Attocube
| Angle Error $\delta \theta_c$ | Distance measurement error $\delta L$ |
|-------------------------------+---------------------------------------|
@ -2355,10 +2379,10 @@ These physical properties should change relatively slowly, however, for a beam p
An *Environmental Compensation Unit* is used and can compensate for variations or air properties up to:
| Air property Variations | Measurement error |
|-------------------------+-------------------|
| $\Delta T = \pm 0.1^oC$ | 20nm |
| $\Delta P = \pm 1hPa$ | 50nm |
| $\Delta \pm 2\%RH$ | 4nm |
|-------------------------+---------------------|
| $\Delta T = \pm 0.1^oC$ | $\pm 10\,\text{nm}$ |
| $\Delta P = \pm 1hPa$ | $\pm 25\,\text{nm}$ |
| $\Delta \pm 2\%RH$ | $\pm 2\,\text{nm}$ |
#+begin_important
The total measurement error induced by air properties variations is then:
@ -2679,6 +2703,8 @@ The goal is the scale the plant prior to control synthesis.
This will simplify the choice of weighting functions and will yield useful insight on the controllability of the plant.
#+name: tab:plant_scaling_values
#+attr_latex: :environment tabularx :width 0.7\linewidth :align lXXX
#+attr_latex: :center t :booktabs t :float t
#+caption: Maximum wanted values for various signals
| | Value | Unit | Variable Name |
|------------------------+-------+-------------+---------------|

BIN
index.pdf Normal file

Binary file not shown.

View File

@ -21,7 +21,7 @@ Kppf.OutputName = {'Uch', 'Ucv'};
figure;
% Magnitude
ax1 = subaxis(2,1,1);
ax1 = subplot(2,1,1);
hold on;
plot(freqs, abs(squeeze(freqresp(G, freqs, 'Hz'))), 'k-');
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
@ -30,7 +30,7 @@ ylabel('Magnitude [dB]');
hold off;
% Phase
ax2 = subaxis(2,1,2);
ax2 = subplot(2,1,2);
hold on;
plot(freqs, 180/pi*angle(squeeze(freqresp(G, freqs, 'Hz'))), 'k-');
set(gca,'xscale','log');

View File

@ -23,7 +23,7 @@ K.OutputName = {'Uch', 'Ucv'};
figure;
% Magnitude
ax1 = subaxis(2,1,1);
ax1 = subplot(2,1,1);
hold on;
plot(freqs, abs(squeeze(freqresp(Kh*sys('Rh', 'Uch'), freqs, 'Hz'))), 'DisplayName', '$L_h = K_h G_{d,h}^{-1} G_{\frac{V_{p,h}}{\tilde{U}_{c,h}}} G_{i,h} $');
plot(freqs, abs(squeeze(freqresp(Kv*sys('Rv', 'Ucv'), freqs, 'Hz'))), 'DisplayName', '$L_v = K_v G_{d,v}^{-1} G_{\frac{V_{p,v}}{\tilde{U}_{c,v}}} G_{i,v} $');
@ -34,7 +34,7 @@ hold off;
legend('location', 'northeast');
% Phase
ax2 = subaxis(2,1,2);
ax2 = subplot(2,1,2);
hold on;
plot(freqs, 180/pi*angle(squeeze(freqresp(Kh*sys('Rh', 'Uch'), freqs, 'Hz'))));
plot(freqs, 180/pi*angle(squeeze(freqresp(Kv*sys('Rv', 'Ucv'), freqs, 'Hz'))));

View File

@ -46,7 +46,7 @@ ht_4 = ht_s{4};
% Time domain plots
figure;
ax1 = subaxis(2, 2, 1)
ax1 = subplot(2, 2, 1)
hold on;
plot(ht_1.t, 1e9*ht_1.Va);
hold off;
@ -54,7 +54,7 @@ ylabel('Displacement [nm]');
set(gca, 'XTickLabel',[]);
title('OL');
ax2 = subaxis(2, 2, 2)
ax2 = subplot(2, 2, 2)
hold on;
plot(ht_2.t, 1e9*ht_2.Va);
hold off;
@ -62,7 +62,7 @@ set(gca, 'XTickLabel',[]);
set(gca, 'YTickLabel',[]);
title('OL + CU');
ax3 = subaxis(2, 2, 3)
ax3 = subplot(2, 2, 3)
hold on;
plot(ht_3.t, 1e9*ht_3.Va);
hold off;
@ -70,7 +70,7 @@ xlabel('Time [s]');
ylabel('Displacement [nm]');
title('CL + CU');
ax4 = subaxis(2, 2, 4)
ax4 = subplot(2, 2, 4)
hold on;
plot(ht_4.t, 1e9*ht_4.Va);
hold off;
@ -88,7 +88,7 @@ linkaxes([ax1 ax2 ax3 ax4], 'xy');
figure;
ax1 = subaxis(2, 2, 1)
ax1 = subplot(2, 2, 1)
hold on;
plot(ht_1.t, ht_1.Vph);
plot(ht_1.t, ht_1.Vpv);
@ -97,7 +97,7 @@ ylabel('Voltage [V]');
set(gca, 'XTickLabel',[]);
title('OL');
ax2 = subaxis(2, 2, 2)
ax2 = subplot(2, 2, 2)
hold on;
plot(ht_2.t, ht_2.Vph);
plot(ht_2.t, ht_2.Vpv);
@ -106,7 +106,7 @@ set(gca, 'XTickLabel',[]);
set(gca, 'YTickLabel',[]);
title('OL + CU');
ax3 = subaxis(2, 2, 3)
ax3 = subplot(2, 2, 3)
hold on;
plot(ht_3.t, ht_3.Vph);
plot(ht_3.t, ht_3.Vpv);
@ -115,7 +115,7 @@ xlabel('Time [s]');
ylabel('Voltage [V]');
title('CL + CU');
ax4 = subaxis(2, 2, 4)
ax4 = subplot(2, 2, 4)
hold on;
plot(ht_4.t, ht_4.Vph);
plot(ht_4.t, ht_4.Vpv);