Compare commits
2 Commits
7b472d199c
...
a4d25b24cf
Author | SHA1 | Date | |
---|---|---|---|
a4d25b24cf | |||
892989585b |
4
.gitignore
vendored
4
.gitignore
vendored
@ -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 |
1697
index.html
1697
index.html
File diff suppressed because it is too large
Load Diff
52
index.org
52
index.org
@ -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,11 +158,14 @@ 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] |
|
||||
|------------------+----------------------+--------------------------+------------------+---------------------------+---------------------|
|
||||
| AX1 (Horizontal) | 5 | 411.13 | 28.4 | 382.9 | 9.41 |
|
||||
| AX2 (Vertical) | 5 | 252.5 | 35.2 | 350.4 | |
|
||||
| | 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 | |
|
||||
|
||||
The Inductance and DC resistance of the two axis of the Sercalo have been measured:
|
||||
- $L_{c,h} = 0.1\ \text{mH}$
|
||||
@ -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$ |
|
||||
|-------------------------------+---------------------------------------|
|
||||
@ -2354,11 +2378,11 @@ These physical properties should change relatively slowly, however, for a beam p
|
||||
| $\Delta 10\%RH$ | 10nm |
|
||||
|
||||
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 |
|
||||
| Air property Variations | Measurement error |
|
||||
|-------------------------+---------------------|
|
||||
| $\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 |
|
||||
|------------------------+-------+-------------+---------------|
|
||||
|
@ -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');
|
||||
|
@ -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'))));
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user