Compare commits
2 Commits
7b472d199c
...
a4d25b24cf
Author | SHA1 | Date | |
---|---|---|---|
a4d25b24cf | |||
892989585b |
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,5 +1,9 @@
|
|||||||
auto/
|
auto/
|
||||||
*.tex
|
*.tex
|
||||||
|
*.bbl
|
||||||
|
*.synctex.gz
|
||||||
|
.auctex-auto/
|
||||||
|
_minted*
|
||||||
|
|
||||||
**/figs/*.svg
|
**/figs/*.svg
|
||||||
**/figs/*.tex
|
**/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
1695
index.html
File diff suppressed because it is too large
Load Diff
46
index.org
46
index.org
@ -1,5 +1,8 @@
|
|||||||
#+TITLE: Sercalo Test Bench
|
#+TITLE: Sercalo Test Bench
|
||||||
:DRAWER:
|
:DRAWER:
|
||||||
|
#+BIND: org-latex-image-default-option "scale=1"
|
||||||
|
#+BIND: org-latex-image-default-width ""
|
||||||
|
|
||||||
#+STARTUP: overview
|
#+STARTUP: overview
|
||||||
|
|
||||||
#+LANGUAGE: en
|
#+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/jquery.stickytableheaders.min.js"></script>
|
||||||
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
|
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
|
||||||
|
|
||||||
#+LATEX_CLASS: scrreprt
|
#+LATEX_CLASS: cleanreport
|
||||||
#+LATEX_CLASS_OPTIONS: []
|
#+LATEX_CLASS_OPTIONS: [conf, hangsection, secbreak]
|
||||||
#+LATEX_HEADER: \usepackage{minted}
|
#+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+ :imagemagick t :fit yes
|
||||||
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
|
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
|
||||||
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
|
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
|
||||||
@ -40,6 +47,12 @@
|
|||||||
#+PROPERTY: header-args:matlab+ :mkdirp yes
|
#+PROPERTY: header-args:matlab+ :mkdirp yes
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
|
#+begin_export html
|
||||||
|
<hr>
|
||||||
|
<p>This report is also available as a <a href="./index.pdf">pdf</a>.</p>
|
||||||
|
<hr>
|
||||||
|
#+end_export
|
||||||
|
|
||||||
* Introduction
|
* Introduction
|
||||||
** Block Diagram
|
** Block Diagram
|
||||||
The block diagram of the setup to be controlled is shown in Fig. [[fig:block_diagram_simplify]].
|
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
|
#+end_src
|
||||||
|
|
||||||
#+name: fig:block_diagram
|
#+name: fig:block_diagram
|
||||||
|
#+attr_latex: :width \linewidth
|
||||||
#+caption: Block Diagram of the Experimental Setup with detailed dynamics
|
#+caption: Block Diagram of the Experimental Setup with detailed dynamics
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:figs/sercalo_diagram.png]]
|
[[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]].
|
From the Sercalo documentation, we have the parameters shown on table [[tab:sercalo_parameters]].
|
||||||
|
|
||||||
#+name: 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
|
#+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 |
|
| AX1 (Horizontal) | 5 | 411.13 | 28.4 | 382.9 | 9.41 |
|
||||||
| AX2 (Vertical) | 5 | 252.5 | 35.2 | 350.4 | |
|
| AX2 (Vertical) | 5 | 252.5 | 35.2 | 350.4 | |
|
||||||
|
|
||||||
@ -269,10 +286,12 @@ And we have:
|
|||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
#+name: fig:newport_doc
|
#+name: fig:newport_doc
|
||||||
|
#+attr_latex: :width \linewidth
|
||||||
#+caption: Documentation of the Newport
|
#+caption: Documentation of the Newport
|
||||||
[[file:figs/newport_doc.png]]
|
[[file:figs/newport_doc.png]]
|
||||||
|
|
||||||
#+name: fig:newport_gain
|
#+name: fig:newport_gain
|
||||||
|
#+attr_latex: :width \linewidth
|
||||||
#+caption: Transfer function of the Newport
|
#+caption: Transfer function of the Newport
|
||||||
[[file:figs/newport_gain.png]]
|
[[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
|
#+end_src
|
||||||
|
|
||||||
#+name: tab:gain_4qd
|
#+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
|
#+caption: Identified Gain of the 4 quadrant diode
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
| Horizontal [V/rad] | Vertical [V/rad] |
|
| 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:
|
Multiple measurements are done with different experimental configuration as follow:
|
||||||
|
|
||||||
#+name: tab:huddle_tests
|
#+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
|
#+caption: Experimental Configuration for the various Huddle test
|
||||||
| Number | OL/CL | Compensation Unit | Aluminum |
|
| 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]])
|
#+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]]
|
[[file:figs/huddle_test_4qd_psd.png]]
|
||||||
|
|
||||||
|
|
||||||
** Conclusion
|
** Conclusion
|
||||||
The Attocube's "Environmental Compensation Unit" does not have a significant effect on the stability of the measurement.
|
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
|
#+end_important
|
||||||
|
|
||||||
#+name: tab:effect_angle_error
|
#+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
|
#+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$ |
|
| 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:
|
An *Environmental Compensation Unit* is used and can compensate for variations or air properties up to:
|
||||||
| Air property Variations | Measurement error |
|
| Air property Variations | Measurement error |
|
||||||
|-------------------------+-------------------|
|
|-------------------------+---------------------|
|
||||||
| $\Delta T = \pm 0.1^oC$ | 20nm |
|
| $\Delta T = \pm 0.1^oC$ | $\pm 10\,\text{nm}$ |
|
||||||
| $\Delta P = \pm 1hPa$ | 50nm |
|
| $\Delta P = \pm 1hPa$ | $\pm 25\,\text{nm}$ |
|
||||||
| $\Delta \pm 2\%RH$ | 4nm |
|
| $\Delta \pm 2\%RH$ | $\pm 2\,\text{nm}$ |
|
||||||
|
|
||||||
#+begin_important
|
#+begin_important
|
||||||
The total measurement error induced by air properties variations is then:
|
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.
|
This will simplify the choice of weighting functions and will yield useful insight on the controllability of the plant.
|
||||||
|
|
||||||
#+name: tab:plant_scaling_values
|
#+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
|
#+caption: Maximum wanted values for various signals
|
||||||
| | Value | Unit | Variable Name |
|
| | Value | Unit | Variable Name |
|
||||||
|------------------------+-------+-------------+---------------|
|
|------------------------+-------+-------------+---------------|
|
||||||
|
@ -21,7 +21,7 @@ Kppf.OutputName = {'Uch', 'Ucv'};
|
|||||||
|
|
||||||
figure;
|
figure;
|
||||||
% Magnitude
|
% Magnitude
|
||||||
ax1 = subaxis(2,1,1);
|
ax1 = subplot(2,1,1);
|
||||||
hold on;
|
hold on;
|
||||||
plot(freqs, abs(squeeze(freqresp(G, freqs, 'Hz'))), 'k-');
|
plot(freqs, abs(squeeze(freqresp(G, freqs, 'Hz'))), 'k-');
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
@ -30,7 +30,7 @@ ylabel('Magnitude [dB]');
|
|||||||
hold off;
|
hold off;
|
||||||
|
|
||||||
% Phase
|
% Phase
|
||||||
ax2 = subaxis(2,1,2);
|
ax2 = subplot(2,1,2);
|
||||||
hold on;
|
hold on;
|
||||||
plot(freqs, 180/pi*angle(squeeze(freqresp(G, freqs, 'Hz'))), 'k-');
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G, freqs, 'Hz'))), 'k-');
|
||||||
set(gca,'xscale','log');
|
set(gca,'xscale','log');
|
||||||
|
@ -23,7 +23,7 @@ K.OutputName = {'Uch', 'Ucv'};
|
|||||||
|
|
||||||
figure;
|
figure;
|
||||||
% Magnitude
|
% Magnitude
|
||||||
ax1 = subaxis(2,1,1);
|
ax1 = subplot(2,1,1);
|
||||||
hold on;
|
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(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} $');
|
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');
|
legend('location', 'northeast');
|
||||||
|
|
||||||
% Phase
|
% Phase
|
||||||
ax2 = subaxis(2,1,2);
|
ax2 = subplot(2,1,2);
|
||||||
hold on;
|
hold on;
|
||||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Kh*sys('Rh', 'Uch'), freqs, 'Hz'))));
|
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'))));
|
plot(freqs, 180/pi*angle(squeeze(freqresp(Kv*sys('Rv', 'Ucv'), freqs, 'Hz'))));
|
||||||
|
@ -46,7 +46,7 @@ ht_4 = ht_s{4};
|
|||||||
% Time domain plots
|
% Time domain plots
|
||||||
|
|
||||||
figure;
|
figure;
|
||||||
ax1 = subaxis(2, 2, 1)
|
ax1 = subplot(2, 2, 1)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_1.t, 1e9*ht_1.Va);
|
plot(ht_1.t, 1e9*ht_1.Va);
|
||||||
hold off;
|
hold off;
|
||||||
@ -54,7 +54,7 @@ ylabel('Displacement [nm]');
|
|||||||
set(gca, 'XTickLabel',[]);
|
set(gca, 'XTickLabel',[]);
|
||||||
title('OL');
|
title('OL');
|
||||||
|
|
||||||
ax2 = subaxis(2, 2, 2)
|
ax2 = subplot(2, 2, 2)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_2.t, 1e9*ht_2.Va);
|
plot(ht_2.t, 1e9*ht_2.Va);
|
||||||
hold off;
|
hold off;
|
||||||
@ -62,7 +62,7 @@ set(gca, 'XTickLabel',[]);
|
|||||||
set(gca, 'YTickLabel',[]);
|
set(gca, 'YTickLabel',[]);
|
||||||
title('OL + CU');
|
title('OL + CU');
|
||||||
|
|
||||||
ax3 = subaxis(2, 2, 3)
|
ax3 = subplot(2, 2, 3)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_3.t, 1e9*ht_3.Va);
|
plot(ht_3.t, 1e9*ht_3.Va);
|
||||||
hold off;
|
hold off;
|
||||||
@ -70,7 +70,7 @@ xlabel('Time [s]');
|
|||||||
ylabel('Displacement [nm]');
|
ylabel('Displacement [nm]');
|
||||||
title('CL + CU');
|
title('CL + CU');
|
||||||
|
|
||||||
ax4 = subaxis(2, 2, 4)
|
ax4 = subplot(2, 2, 4)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_4.t, 1e9*ht_4.Va);
|
plot(ht_4.t, 1e9*ht_4.Va);
|
||||||
hold off;
|
hold off;
|
||||||
@ -88,7 +88,7 @@ linkaxes([ax1 ax2 ax3 ax4], 'xy');
|
|||||||
|
|
||||||
|
|
||||||
figure;
|
figure;
|
||||||
ax1 = subaxis(2, 2, 1)
|
ax1 = subplot(2, 2, 1)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_1.t, ht_1.Vph);
|
plot(ht_1.t, ht_1.Vph);
|
||||||
plot(ht_1.t, ht_1.Vpv);
|
plot(ht_1.t, ht_1.Vpv);
|
||||||
@ -97,7 +97,7 @@ ylabel('Voltage [V]');
|
|||||||
set(gca, 'XTickLabel',[]);
|
set(gca, 'XTickLabel',[]);
|
||||||
title('OL');
|
title('OL');
|
||||||
|
|
||||||
ax2 = subaxis(2, 2, 2)
|
ax2 = subplot(2, 2, 2)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_2.t, ht_2.Vph);
|
plot(ht_2.t, ht_2.Vph);
|
||||||
plot(ht_2.t, ht_2.Vpv);
|
plot(ht_2.t, ht_2.Vpv);
|
||||||
@ -106,7 +106,7 @@ set(gca, 'XTickLabel',[]);
|
|||||||
set(gca, 'YTickLabel',[]);
|
set(gca, 'YTickLabel',[]);
|
||||||
title('OL + CU');
|
title('OL + CU');
|
||||||
|
|
||||||
ax3 = subaxis(2, 2, 3)
|
ax3 = subplot(2, 2, 3)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_3.t, ht_3.Vph);
|
plot(ht_3.t, ht_3.Vph);
|
||||||
plot(ht_3.t, ht_3.Vpv);
|
plot(ht_3.t, ht_3.Vpv);
|
||||||
@ -115,7 +115,7 @@ xlabel('Time [s]');
|
|||||||
ylabel('Voltage [V]');
|
ylabel('Voltage [V]');
|
||||||
title('CL + CU');
|
title('CL + CU');
|
||||||
|
|
||||||
ax4 = subaxis(2, 2, 4)
|
ax4 = subplot(2, 2, 4)
|
||||||
hold on;
|
hold on;
|
||||||
plot(ht_4.t, ht_4.Vph);
|
plot(ht_4.t, ht_4.Vph);
|
||||||
plot(ht_4.t, ht_4.Vpv);
|
plot(ht_4.t, ht_4.Vpv);
|
||||||
|
Loading…
Reference in New Issue
Block a user