From b24cf1f7ffe0b62d980318c1a205afd6dd59d605 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Tue, 8 Oct 2019 09:40:57 +0200 Subject: [PATCH] Add all .pdf figures. Update some analysis --- .gitignore | 1 - figs/4qd_amplifier.pdf | Bin 0 -> 44152 bytes figs/4qd_linear_reg.pdf | Bin 0 -> 879196 bytes figs/4qd_naming.pdf | Bin 0 -> 25629 bytes figs/angle_error_schematic_sercalo.pdf | Bin 0 -> 28756 bytes ....png => angle_error_schematic_sercalo.png} | Bin figs/calib_4qd_h.pdf | Bin 0 -> 74493 bytes figs/calib_4qd_v.pdf | Bin 0 -> 74444 bytes figs/coh_sercalo.pdf | Bin 0 -> 119770 bytes figs/{coh_cercalo.png => coh_sercalo.png} | Bin figs/compare_tracking_error_attocube_meas.pdf | Bin 0 -> 140612 bytes figs/current_amplifier_comp_theory_id.pdf | Bin 0 -> 147568 bytes figs/current_amplifier_comp_theory_id_bis.pdf | Bin 0 -> 147527 bytes figs/current_amplifier_tf.pdf | Bin 0 -> 107594 bytes figs/diag_contr_effect_newport.pdf | Bin 0 -> 66785 bytes figs/diag_contr_loop_gain.pdf | Bin 0 -> 85433 bytes figs/effect_sercalo_angle_distance_meas.pdf | Bin 0 -> 38350 bytes ...=> effect_sercalo_angle_distance_meas.png} | Bin figs/feedback_diagram.pdf | Bin 0 -> 31041 bytes figs/frequency_response_matrix.pdf | Bin 0 -> 156855 bytes figs/frequency_response_matrix_phase.pdf | Bin 0 -> 154879 bytes figs/frf_newport_gain.pdf | Bin 0 -> 158250 bytes figs/frf_newport_phase.pdf | Bin 0 -> 149926 bytes figs/frf_sercalo_gain.pdf | Bin 0 -> 158673 bytes ..._cercalo_gain.png => frf_sercalo_gain.png} | Bin figs/frf_sercalo_phase.pdf | Bin 0 -> 155009 bytes ...ercalo_phase.png => frf_sercalo_phase.png} | Bin figs/huddle_test_4qd.pdf | Bin 0 -> 118637 bytes figs/huddle_test_4qd_psd.pdf | Bin 0 -> 71886 bytes figs/huddle_test_Va.pdf | Bin 0 -> 88252 bytes figs/huddle_test_psd_va.pdf | Bin 0 -> 73866 bytes figs/id_newport_coherence.pdf | Bin 0 -> 121133 bytes figs/id_newport_phase.pdf | Bin 0 -> 149511 bytes figs/identification_coherence.pdf | Bin 0 -> 119786 bytes figs/identification_matrix_fit.pdf | Bin 0 -> 190525 bytes figs/identification_matrix_fit_phase.pdf | Bin 0 -> 191564 bytes figs/identification_uh.pdf | Bin 0 -> 82698 bytes figs/identification_unh.pdf | Bin 0 -> 75254 bytes figs/identification_unv.pdf | Bin 0 -> 77091 bytes figs/identification_uv.pdf | Bin 0 -> 71478 bytes figs/identification_ux.pdf | Bin 0 -> 73376 bytes figs/identification_uy.pdf | Bin 0 -> 71785 bytes figs/loop_gain_newport.pdf | Bin 0 -> 33700 bytes figs/mech_sercalo.pdf | Bin 0 -> 9332 bytes figs/{mech_cercalo.png => mech_sercalo.png} | Bin figs/newport_angle_concave_mirror.pdf | Bin 0 -> 36403 bytes figs/newport_perpendicular_motion.pdf | Bin 0 -> 50696 bytes figs/non-repeatability-parts.pdf | Bin 0 -> 5126598 bytes figs/non-repeatability-parts.png | Bin 0 -> 102959 bytes figs/psd_tracking_error_rad.pdf | Bin 0 -> 117789 bytes figs/repeat_plot_raw.pdf | Bin 0 -> 1717537 bytes figs/repeat_plot_subtract_mean.pdf | Bin 0 -> 1896415 bytes figs/repeat_time_signals.pdf | Bin 0 -> 127173 bytes figs/repeat_tracking_errors.pdf | Bin 0 -> 496550 bytes figs/sercalo_amplifier.pdf | Bin 0 -> 33831 bytes ...lo_amplifier.png => sercalo_amplifier.png} | Bin figs/sercalo_diagram.pdf | Bin 0 -> 95927 bytes ...ercalo_diagram.png => sercalo_diagram.png} | Bin figs/sercalo_diagram_simplify.pdf | Bin 0 -> 83270 bytes ...plify.png => sercalo_diagram_simplify.png} | Bin figs/sercalo_perpendicular_motion.pdf | Bin 0 -> 50207 bytes ...n.png => sercalo_perpendicular_motion.png} | Bin figs/simulation_beam_path_high_angle.pdf | Bin 0 -> 22408 bytes figs/test.pdf | Bin 0 -> 25629 bytes figs/time_delay_newport.pdf | Bin 0 -> 172752 bytes figs/weights.pdf | Bin 0 -> 140239 bytes figs/weights_sercalo.pdf | Bin 0 -> 157598 bytes ...eights_cercalo.png => weights_sercalo.png} | Bin index.html | 759 ++++++++++-------- index.org | 102 +++ matlab/run_test.m | 2 +- 71 files changed, 524 insertions(+), 340 deletions(-) create mode 100644 figs/4qd_amplifier.pdf create mode 100644 figs/4qd_linear_reg.pdf create mode 100644 figs/4qd_naming.pdf create mode 100644 figs/angle_error_schematic_sercalo.pdf rename figs/{angle_error_schematic_cercalo.png => angle_error_schematic_sercalo.png} (100%) create mode 100644 figs/calib_4qd_h.pdf create mode 100644 figs/calib_4qd_v.pdf create mode 100644 figs/coh_sercalo.pdf rename figs/{coh_cercalo.png => coh_sercalo.png} (100%) create mode 100644 figs/compare_tracking_error_attocube_meas.pdf create mode 100644 figs/current_amplifier_comp_theory_id.pdf create mode 100644 figs/current_amplifier_comp_theory_id_bis.pdf create mode 100644 figs/current_amplifier_tf.pdf create mode 100644 figs/diag_contr_effect_newport.pdf create mode 100644 figs/diag_contr_loop_gain.pdf create mode 100644 figs/effect_sercalo_angle_distance_meas.pdf rename figs/{effect_cercalo_angle_distance_meas.png => effect_sercalo_angle_distance_meas.png} (100%) create mode 100644 figs/feedback_diagram.pdf create mode 100644 figs/frequency_response_matrix.pdf create mode 100644 figs/frequency_response_matrix_phase.pdf create mode 100644 figs/frf_newport_gain.pdf create mode 100644 figs/frf_newport_phase.pdf create mode 100644 figs/frf_sercalo_gain.pdf rename figs/{frf_cercalo_gain.png => frf_sercalo_gain.png} (100%) create mode 100644 figs/frf_sercalo_phase.pdf rename figs/{frf_cercalo_phase.png => frf_sercalo_phase.png} (100%) create mode 100644 figs/huddle_test_4qd.pdf create mode 100644 figs/huddle_test_4qd_psd.pdf create mode 100644 figs/huddle_test_Va.pdf create mode 100644 figs/huddle_test_psd_va.pdf create mode 100644 figs/id_newport_coherence.pdf create mode 100644 figs/id_newport_phase.pdf create mode 100644 figs/identification_coherence.pdf create mode 100644 figs/identification_matrix_fit.pdf create mode 100644 figs/identification_matrix_fit_phase.pdf create mode 100644 figs/identification_uh.pdf create mode 100644 figs/identification_unh.pdf create mode 100644 figs/identification_unv.pdf create mode 100644 figs/identification_uv.pdf create mode 100644 figs/identification_ux.pdf create mode 100644 figs/identification_uy.pdf create mode 100644 figs/loop_gain_newport.pdf create mode 100644 figs/mech_sercalo.pdf rename figs/{mech_cercalo.png => mech_sercalo.png} (100%) create mode 100644 figs/newport_angle_concave_mirror.pdf create mode 100644 figs/newport_perpendicular_motion.pdf create mode 100644 figs/non-repeatability-parts.pdf create mode 100644 figs/non-repeatability-parts.png create mode 100644 figs/psd_tracking_error_rad.pdf create mode 100644 figs/repeat_plot_raw.pdf create mode 100644 figs/repeat_plot_subtract_mean.pdf create mode 100644 figs/repeat_time_signals.pdf create mode 100644 figs/repeat_tracking_errors.pdf create mode 100644 figs/sercalo_amplifier.pdf rename figs/{cercalo_amplifier.png => sercalo_amplifier.png} (100%) create mode 100644 figs/sercalo_diagram.pdf rename figs/{cercalo_diagram.png => sercalo_diagram.png} (100%) create mode 100644 figs/sercalo_diagram_simplify.pdf rename figs/{cercalo_diagram_simplify.png => sercalo_diagram_simplify.png} (100%) create mode 100644 figs/sercalo_perpendicular_motion.pdf rename figs/{cercalo_perpendicular_motion.png => sercalo_perpendicular_motion.png} (100%) create mode 100644 figs/simulation_beam_path_high_angle.pdf create mode 100644 figs/test.pdf create mode 100644 figs/time_delay_newport.pdf create mode 100644 figs/weights.pdf create mode 100644 figs/weights_sercalo.pdf rename figs/{weights_cercalo.png => weights_sercalo.png} (100%) diff --git a/.gitignore b/.gitignore index 75405de..ace4db0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ auto/ *.tex -**/figs/*.pdf **/figs/*.svg **/figs/*.tex diff --git a/figs/4qd_amplifier.pdf b/figs/4qd_amplifier.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9493fd7cfa204b0db76eead518dd43dd38c65646 GIT binary patch literal 44152 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

Ry)4@%_cv-w5_EK&s-2u$z^ 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%0DX86cygV3z73wG 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 CxYTI? literal 0 HcmV?d00001 diff --git a/figs/4qd_linear_reg.pdf b/figs/4qd_linear_reg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..17dcfe1b8d76254a6c8e75024f4b35a1fbf72ca5 GIT binary patch literal 879196 zcmY(JV{|4>w6;@5KQdFR`vxc6r&;dk4*SGL(y zU�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­~3m#zwrR`zL;~rM8ql#gF*-22q?vSB=-oBfH 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

-The block diagram with each transfer function is shown in Fig. 2. +The block diagram with each transfer function is shown in Fig. 2.

-
+

cercalo_diagram.png

Figure 2: Block Diagram of the Experimental Setup with detailed dynamics

@@ -452,14 +458,14 @@ The block diagram with each transfer function is shown in Fig. -

1.2 Cercalo

+
+

1.2 Cercalo

-From the Cercalo documentation, we have the parameters shown on table 1. +From the Cercalo documentation, we have the parameters shown on table 1.

- +
@@ -517,11 +523,11 @@ The Inductance and DC resistance of the two axis of the Cercalo have been measur

-Let's first consider the horizontal direction and we try to model the Cercalo by a spring/mass/damper system (Fig. 3). +Let's first consider the horizontal direction and we try to model the Cercalo by a spring/mass/damper system (Fig. 3).

-
+

mech_cercalo.png

Figure 3: 1 degree-of-freedom model of the Cercalo

@@ -560,7 +566,7 @@ The current \(I\) is also proportional to the voltage at the output of the buffe

Let's try to determine the equivalent mass and spring values. -From table 1, for the horizontal direction: +From table 1, for the horizontal direction: \[ \left| \frac{x}{I} \right|(0) = \left| \alpha \frac{x}{F} \right|(0) = 28.4\ \frac{mA}{deg} = 1.63\ \frac{A}{rad} \]

@@ -621,18 +627,18 @@ This will be done using the Newport.
-
-

1.3 Optical Setup

+
+

1.3 Optical Setup

-
-

1.4 Newport

+
+

1.4 Newport

-Parameters of the Newport are shown in Fig. 4. +Parameters of the Newport are shown in Fig. 4.

-It's dynamics for small angle excitation is shown in Fig. 5. +It's dynamics for small angle excitation is shown in Fig. 5.

@@ -644,14 +650,14 @@ And we have: \end{align*} -

+

newport_doc.png

Figure 4: Documentation of the Newport

-
+

newport_gain.png

Figure 5: Transfer function of the Newport

@@ -659,25 +665,25 @@ And we have:
-
-

1.5 4 quadrant Diode

+
+

1.5 4 quadrant Diode

-The front view of the 4 quadrant photo-diode is shown in Fig. 6. +The front view of the 4 quadrant photo-diode is shown in Fig. 6.

-
+

4qd_naming.png

Figure 6: Front view of the 4QD

-Each of the photo-diode is amplified using a 4-channel amplifier as shown in Fig. 7. +Each of the photo-diode is amplified using a 4-channel amplifier as shown in Fig. 7.

-
+

4qd_amplifier.png

Figure 7: Wiring of the amplifier. The amplifier is located on the bottom right of the board

@@ -685,8 +691,8 @@ Each of the photo-diode is amplified using a 4-channel amplifier as shown in Fig
-
-

1.6 ADC/DAC

+
+

1.6 ADC/DAC

Let's compute the theoretical noise of the ADC/DAC. @@ -706,14 +712,14 @@ with \(\Delta V\) the total range of the ADC, \(n\) its number of bits, \(q\) th

-
-

2 Identification of the system dynamics

+
+

2 Identification of the system dynamics

- +

-In this section, we seek to identify all the blocks as shown in Fig. 1. +In this section, we seek to identify all the blocks as shown in Fig. 1.

Table 1: Cercalo Parameters
@@ -810,8 +816,8 @@ All the files (data and Matlab scripts) are accessible -

2.1 Calibration of the 4 Quadrant Diode

+
+

2.1 Calibration of the 4 Quadrant Diode

Prior to any dynamic identification, we would like to be able to determine the meaning of the 4 quadrant diode measurement. @@ -826,8 +832,8 @@ We then should be able to obtain the "gain" of the 4QD in [V/rad].

-
-

2.1.1 Input / Output data

+
+

2.1.1 Input / Output data

The identification data is loaded @@ -861,7 +867,7 @@ uv.t = uv.t - uv.t +

calib_4qd_h.png

Figure 8: Identification signals when exciting the horizontal direction (png, pdf)

@@ -869,7 +875,7 @@ uv.t = uv.t - uv.t +

calib_4qd_v.png

Figure 9: Identification signals when exciting in the vertical direction (png, pdf)

@@ -877,8 +883,8 @@ uv.t = uv.t - uv.t -

2.1.2 Linear Regression to obtain the gain of the 4QD

+
+

2.1.2 Linear Regression to obtain the gain of the 4QD

We plot the angle of mirror @@ -908,7 +914,7 @@ where:

-The linear regression is shown in Fig. 10. +The linear regression is shown in Fig. 10.

@@ -918,17 +924,17 @@ bv = [ones +

4qd_linear_reg.png

Figure 10: Linear Regression (png, pdf)

-Thus, we obtain the "gain of the 4 quadrant photo-diode as shown on table 2. +Thus, we obtain the "gain of the 4 quadrant photo-diode as shown on table 2.

-
+
@@ -972,11 +978,11 @@ We obtain: -
-

2.2 Identification of the Cercalo Impedance, Current Amplifier and Voltage Amplifier dynamics

+
+

2.2 Identification of the Cercalo Impedance, Current Amplifier and Voltage Amplifier dynamics

-We wish here to determine \(G_i\) and \(G_a\) shown in Fig. 1. +We wish here to determine \(G_i\) and \(G_a\) shown in Fig. 1.

@@ -984,15 +990,15 @@ We ignore the electro-mechanical coupling.

-
-

2.2.1 Electrical Schematic

+
+

2.2.1 Electrical Schematic

-The schematic of the electrical circuit used to drive the Cercalo is shown in Fig. 11. +The schematic of the electrical circuit used to drive the Cercalo is shown in Fig. 11.

-
+

cercalo_amplifier.png

Figure 11: Current Amplifier Schematic

@@ -1079,8 +1085,8 @@ with
-
-

2.2.2 Theoretical Transfer Functions

+
+

2.2.2 Theoretical Transfer Functions

The values of the components in the current amplifier have been measured. @@ -1110,7 +1116,7 @@ Ga = blkdiag( +

current_amplifier_tf.png

Figure 12: Transfer function for the current amplifier (png, pdf)

@@ -1132,8 +1138,8 @@ Zc = tf(blkdiag -

2.2.3 Identified Transfer Functions

+
+

2.2.3 Identified Transfer Functions

Noise is generated using the DAC (\([U_{c,h}\ U_{c,v}]\)) and we measure the output of the voltage amplifier \([V_{c,h}, V_{c,v}]\). @@ -1160,7 +1166,7 @@ We remove the first seconds where the Cercalo is turned on.

-
+

current_amplifier_comp_theory_id.png

Figure 13: Identified and Theoretical Transfer Function \(G_a G_i\) (png, pdf)

@@ -1178,7 +1184,7 @@ Gi = tf(blkdiag +

current_amplifier_comp_theory_id_bis.png

Figure 14: Identified and Theoretical Transfer Function \(G_a G_i\) (png, pdf)

@@ -1256,11 +1262,11 @@ Continuous-time zero/pole/gain model.
-
-

2.3 Identification of the Cercalo Dynamics

+
+

2.3 Identification of the Cercalo Dynamics

-We now wish to identify the dynamics of the Cercalo identified by \(G_c\) on the block diagram in Fig. 1. +We now wish to identify the dynamics of the Cercalo identified by \(G_c\) on the block diagram in Fig. 1.

@@ -1272,8 +1278,8 @@ The transfer function obtained will be \(G_c G_i\), and because we have already

-
-

2.3.1 Input / Output data

+
+

2.3.1 Input / Output data

The identification data is loaded @@ -1308,7 +1314,7 @@ uv.t = uv.t - uv.t +

identification_uh.png

Figure 15: Identification signals when exciting the horizontal direction (png, pdf)

@@ -1316,7 +1322,7 @@ uv.t = uv.t - uv.t +

identification_uv.png

Figure 16: Identification signals when exciting in the vertical direction (png, pdf)

@@ -1324,8 +1330,8 @@ uv.t = uv.t - uv.t -

2.3.2 Coherence

+
+

2.3.2 Coherence

The window used for the spectral analysis is an hanning windows with temporal size equal to 1 second. @@ -1344,7 +1350,7 @@ The window used for the spectral analysis is an hanning windows wit

-
+

coh_cercalo.png

Figure 17: Coherence (png, pdf)

@@ -1352,8 +1358,8 @@ The window used for the spectral analysis is an hanning windows wit
-
-

2.3.3 Estimation of the Frequency Response Function Matrix

+
+

2.3.3 Estimation of the Frequency Response Function Matrix

We compute an estimate of the transfer functions. @@ -1367,14 +1373,14 @@ We compute an estimate of the transfer functions.

-
+

frf_cercalo_gain.png

Figure 18: Frequency Response Matrix (png, pdf)

-
+

frf_cercalo_phase.png

Figure 19: Frequency Response MatrixPhase (png, pdf)

@@ -1382,8 +1388,8 @@ We compute an estimate of the transfer functions.
-
-

2.3.4 Time Delay

+
+

2.3.4 Time Delay

Now, we would like to remove the time delay included in the FRF prior to the model extraction. @@ -1414,8 +1420,8 @@ tf_Ucv_Vpv = tf_Ucv_Vpv./G_delay_resp;

-
-

2.3.5 Extraction of a transfer function matrix

+
+

2.3.5 Extraction of a transfer function matrix

First we define the initial guess for the resonance frequencies and the weights associated. @@ -1465,11 +1471,11 @@ weight_Ucv_Vpv(f

-The weights are shown in Fig. 20. +The weights are shown in Fig. 20.

-
+

weights_cercalo.png

Figure 20: Weights amplitude (png, pdf)

@@ -1521,7 +1527,7 @@ An we run the vectfit3 algorithm.
-
+

identification_matrix_fit.png

Figure 21: Transfer Function Extraction of the FRF matrix (png, pdf)

@@ -1529,7 +1535,7 @@ An we run the vectfit3 algorithm. -
+

identification_matrix_fit_phase.png

Figure 22: Transfer Function Extraction of the FRF matrix (png, pdf)

@@ -1552,8 +1558,8 @@ Gc = [G_Uch_Vph, G_Ucv_Vph;
-
-

2.4 Identification of the Newport Dynamics

+
+

2.4 Identification of the Newport Dynamics

We here identify the transfer function from a reference sent to the Newport \([U_{n,h},\ U_{n,v}]\) to the measurement made by the 4QD \([V_{p,h},\ V_{p,v}]\). @@ -1564,8 +1570,8 @@ To do so, we inject noise to the Newport \([U_{n,h},\ U_{n,v}]\) and we record t

-
-

2.4.1 Input / Output data

+
+

2.4.1 Input / Output data

The identification data is loaded @@ -1600,14 +1606,14 @@ uv.t = uv.t - uv.t +

identification_unh.png

Figure 23: Identification signals when exciting the horizontal direction (png, pdf)

-
+

identification_unv.png

Figure 24: Identification signals when exciting in the vertical direction (png, pdf)

@@ -1615,8 +1621,8 @@ uv.t = uv.t - uv.t -

2.4.2 Coherence

+
+

2.4.2 Coherence

The window used for the spectral analysis is an hanning windows with temporal size equal to 1 second. @@ -1635,7 +1641,7 @@ The window used for the spectral analysis is an hanning windows wit

-
+

id_newport_coherence.png

Figure 25: Coherence (png, pdf)

@@ -1643,8 +1649,8 @@ The window used for the spectral analysis is an hanning windows wit
-
-

2.4.3 Estimation of the Frequency Response Function Matrix

+
+

2.4.3 Estimation of the Frequency Response Function Matrix

We compute an estimate of the transfer functions. @@ -1658,14 +1664,14 @@ We compute an estimate of the transfer functions.

-
+

frf_newport_gain.png

Figure 26: Frequency Response Matrix (png, pdf)

-
+

frf_newport_phase.png

Figure 27: Frequency Response Matrix Phase (png, pdf)

@@ -1673,8 +1679,8 @@ We compute an estimate of the transfer functions.
-
-

2.4.4 Time Delay

+
+

2.4.4 Time Delay

Now, we would like to remove the time delay included in the FRF prior to the model extraction. @@ -1696,7 +1702,7 @@ G_delay_resp = squeeze(freqr We then remove the time delay from the frequency response function.

-
+

time_delay_newport.png

Figure 28: Phase change due to time-delay in the Newport dynamics (png, pdf)

@@ -1704,11 +1710,11 @@ We then remove the time delay from the frequency response function.
-
-

2.4.5 Extraction of a transfer function matrix

+
+

2.4.5 Extraction of a transfer function matrix

-From Fig. 26, it seems reasonable to model the Newport dynamics as diagonal and constant. +From Fig. 26, it seems reasonable to model the Newport dynamics as diagonal and constant.

@@ -1719,8 +1725,8 @@ From Fig. 26, it seems reasonable to model the Newport
-
-

2.5 Full System

+
+

2.5 Full System

We now have identified: @@ -1782,11 +1788,11 @@ The file mat/plant.mat is accessible here

-
-

3 Huddle Test

+
+

3 Huddle Test

- +

The goal is to determine the noise of the photodiodes as well as the noise of the Attocube interferometer. @@ -1796,7 +1802,7 @@ 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:

-
Table 2: Identified Gain of the 4 quadrant diode
+
@@ -1854,8 +1860,8 @@ Multiple measurements are done with different experimental configuration as foll
Table 3: Experimental Configuration for the various Huddle test
-
-

3.1 Load Data

+
+

3.1 Load Data

ht_1 = load('./mat/data_huddle_test_1.mat', 't', 'Vph', 'Vpv', 'Va');
@@ -1873,8 +1879,8 @@ ht_4 = load(
-

3.2 Pre-processing

+
+

3.2 Pre-processing

t0 = 1; % [s]
@@ -1908,18 +1914,18 @@ ht_4 = ht_s{
-

3.3 Time domain plots

+
+

3.3 Time domain plots

-
+

huddle_test_Va.png

Figure 29: Measurement of the Attocube during Huddle Test (png, pdf)

-
+

huddle_test_4qd.png

Figure 30: Measurement of the 4QD during the Huddle tests (png, pdf)

@@ -1927,8 +1933,8 @@ ht_4 = ht_s{ -

3.4 Power Spectral Density

+
+

3.4 Power Spectral Density

win = hanning(ceil(1*fs));
@@ -1960,7 +1966,7 @@ ht_4 = ht_s{
+

huddle_test_psd_va.png

Figure 31: PSD of the Interferometer measurement during Huddle tests (png, pdf)

@@ -1968,7 +1974,7 @@ ht_4 = ht_s{ +

huddle_test_4qd_psd.png

Figure 32: PSD of the 4QD signal during Huddle tests (png, pdf)

@@ -1977,8 +1983,8 @@ ht_4 = ht_s{ -

3.5 Conclusion

+
+

3.5 Conclusion

The Attocube's "Environmental Compensation Unit" does not have a significant effect on the stability of the measurement. @@ -1987,11 +1993,11 @@ The Attocube's "Environmental Compensation Unit" does not have a significant eff

-
-

4 Budget Error

+
+

4 Budget Error

- +

Goals: @@ -2027,27 +2033,27 @@ This can be due to change of Temperature, Pressure and Humidity of the air in th Procedure:

    -
  • in section 4.1: +
  • in section 4.1: We estimate the effect of an angle error of the Cercalo mirror on the Attocube measurement
  • -
  • in section 4.2: +
  • in section 4.2: The effect of perpendicular motion of the Newport and Cercalo mirrors on the Attocube measurement is determined.
  • -
  • in section 4.3: +
  • in section 4.3: We estimate the expected change of refractive index of the air in the beam path and the resulting Attocube measurement error
  • -
  • in section 4.5: +
  • in section 4.5: The feedback system using the 4 quadrant diode and the Cercalo is studied. Sensor noise, actuator noise and their effects on the control error is discussed.
-
-

4.1 Effect of the Cercalo angle error on the measured distance by the Attocube

+
+

4.1 Effect of the Cercalo angle error on the measured distance by the Attocube

- + To simplify, we suppose that the Newport mirror is a flat mirror (instead of a concave one).

-The geometry of the setup is shown in Fig. 33 where: +The geometry of the setup is shown in Fig. 33 where:

  • \(O\) is the reference surface of the Attocube
  • @@ -2074,7 +2080,7 @@ L = 0. +

    angle_error_schematic_cercalo.png

    Figure 33: Schematic of the geometry used to evaluate the effect of \(\delta \theta_c\) on the measured distance \(\delta L\)

    @@ -2116,7 +2122,7 @@ We now compute the new path length when there is an error angle \(\delta \theta_

    -We then compute the distance error and we plot it as a function of the Cercalo angle error (Fig. 34). +We then compute the distance error and we plot it as a function of the Cercalo angle error (Fig. 34).

    path_error = path_length - path_nominal;
    @@ -2124,14 +2130,14 @@ We then compute the distance error and we plot it as a function of the Cercalo a
     
    -
    +

    effect_cercalo_angle_distance_meas.png

    Figure 34: Effect of an angle error of the Cercalo on the distance error measured by the Attocube (png, pdf)

    -And we plot the beam path using Matlab for an high angle to verify that the code is working (Fig. 35). +And we plot the beam path using Matlab for an high angle to verify that the code is working (Fig. 35).

    theta = 2*2*pi/360; % [rad]
    @@ -2148,7 +2154,7 @@ T = [
     
    -
    +

    simulation_beam_path_high_angle.png

    Figure 35: Simulation of a beam path for high angle error (png, pdf)

    @@ -2156,7 +2162,7 @@ T = [

    -Based on Fig. 34, we see that an angle error \(\delta\theta_c\) of the Cercalo mirror induces a distance error \(\delta L\) measured by the Attocube which is dependent of the square of \(\delta \theta_c\): +Based on Fig. 34, we see that an angle error \(\delta\theta_c\) of the Cercalo mirror induces a distance error \(\delta L\) measured by the Attocube which is dependent of the square of \(\delta \theta_c\):

    \begin{equation} @@ -2171,7 +2177,7 @@ with:

-Some example are shown in table 4. +Some example are shown in table 4.

@@ -2180,7 +2186,7 @@ The tracking error of the feedback system used to position the Cercalo mirror sh

- +
@@ -2214,15 +2220,15 @@ The tracking error of the feedback system used to position the Cercalo mirror sh -
-

4.2 Unwanted motion of Cercalo/Newport mirrors perpendicular to its surface

+
+

4.2 Unwanted motion of Cercalo/Newport mirrors perpendicular to its surface

- +

-From Figs 36 and 37, it is clear that perpendicular motions of the Cercalo mirror and of the Newport mirror have an impact on the measured distance by the Attocube interferometer. +From Figs 36 and 37, it is clear that perpendicular motions of the Cercalo mirror and of the Newport mirror have an impact on the measured distance by the Attocube interferometer.

@@ -2246,14 +2252,14 @@ The error in measured distance by the Attocube will we \(\delta L/2\).

-
+

cercalo_perpendicular_motion.png

Figure 36: Effect of a Perpendicular motion of the Cercalo Mirror

-
+

newport_perpendicular_motion.png

Figure 37: Effect of a Perpendicular motion of the Newport Mirror

@@ -2273,11 +2279,11 @@ However, the non repeatability of this motion should be less than few nano-meter
-
-

4.3 Change in refractive index of the air in the beam path

+
+

4.3 Change in refractive index of the air in the beam path

- +

@@ -2375,8 +2381,8 @@ The beam path should be protected using aluminum to minimize the change in refra

-
-

4.4 Thermal Expansion of the Metrology Frame

+
+

4.4 Thermal Expansion of the Metrology Frame

The material used for the metrology frame is Aluminum. @@ -2396,18 +2402,18 @@ Thus, the temperature of the metrology frame should be kept constant to less tha

-
-

4.5 Estimation of the Cercalo angle error due to Noise

+
+

4.5 Estimation of the Cercalo angle error due to Noise

- +

In this section, we seek to estimate the angle error \(\delta \theta\)

-Consider the block diagram in Fig. 38 with: +Consider the block diagram in Fig. 38 with:

  • \(G\): represents the transfer function from a voltage applied by the Speedgoat DAC used for the Cercalo to the Beam angle
  • @@ -2438,22 +2444,22 @@ It includes:
-
+

feedback_diagram.png

Figure 38: Block Diagram of the Feedback system

-
-

4.5.1 Estimation of sources of noise and disturbances

+
+

4.5.1 Estimation of sources of noise and disturbances

Let's estimate the values of \(d_u\), \(d\) and \(n_\theta\).

-
-
4.5.1.1 ADC Quantization Noise
+
+
4.5.1.1 ADC Quantization Noise

The ADC quantization noise is: @@ -2488,8 +2494,8 @@ For the ADC used:

-
-
4.5.1.2 DAC Quantization Noise
+
+
4.5.1.2 DAC Quantization Noise

The DAC quantization noise is: @@ -2524,8 +2530,8 @@ For the DAC used:

-
-
4.5.1.3 Noise of the Newport Mirror angle
+
+
4.5.1.3 Noise of the Newport Mirror angle

Plus, we estimate the effect of DAC quantization noise on the angle error on the Newport mirror. @@ -2575,8 +2581,8 @@ If we suppose a white noise, the power spectral density of the beam angle due to

-
-
4.5.1.4 Disturbances due the Newport Mirror Rotation
+
+
4.5.1.4 Disturbances due the Newport Mirror Rotation

We will rotate the Newport mirror in order to simulate a displacement of the Sample: @@ -2587,7 +2593,7 @@ We will rotate the Newport mirror in order to simulate a displacement of the Sam -

+

newport_angle_concave_mirror.png

Figure 39: Rotation of the (concave) Newport mirror

@@ -2602,8 +2608,8 @@ where \(\alpha\) is the rotation of the Newport mirror.
-
-

4.5.2 Perfect Control

+
+

4.5.2 Perfect Control

If the feedback is perfect, the Cercalo angle error will be equal to the 4 quadrant diode noise. @@ -2636,8 +2642,8 @@ If we just consider the ADC noise:

-
-

4.5.3 Error due to DAC noise used for the Cercalo

+
+

4.5.3 Error due to DAC noise used for the Cercalo

load('./mat/plant.mat', 'Gi', 'Gc', 'Gd');
@@ -2747,18 +2753,38 @@ The DAC noise use for the Cercalo does not limit the performance of the system.
 
-
-

5 Plant Scaling

+
+

5 Plant Uncertainty

+
+
+

5.1 Coprime Factorization

+
+
+
load('mat/plant.mat', 'sys', 'Gi', 'Zc', 'Ga', 'Gc', 'Gn', 'Gd');
+
+
+ +
+
[fact, Ml, Nl] = lncf(Gc*Gi);
+
+
+
+
+
+ +
+

6 Plant Scaling

+

- +

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.

-
Table 4: Effect of an angle error \(\delta \theta_c\) of the Cercalo's mirror on the measurement error \(\delta L\) by the Attocube
+
@@ -2809,9 +2835,9 @@ This will simplify the choice of weighting functions and will yield useful insig
Table 5: Maximum wanted values for various signals
-
-

5.1 Control Objective

-
+
+

6.1 Control Objective

+

The maximum expected stroke is \(y_\text{max} = 3mm \approx 5e^{-2} rad\) at \(1Hz\). The maximum wanted error is \(e_\text{max} = 10 \mu rad\). @@ -2832,15 +2858,15 @@ In terms of loop gain, this is equivalent to:

-
-

5.2 General Configuration

-
+
+

6.2 General Configuration

+

-The plant is put in a general configuration as shown in Fig. 40. +The plant is put in a general configuration as shown in Fig. 40.

-
+

general_control_names.png

Figure 40: General Control Configuration

@@ -2849,16 +2875,16 @@ The plant is put in a general configuration as shown in Fig. -

6 Plant Analysis

-
+
+

7 Plant Analysis

+

- +

-
-

6.1 Load Plant

-
+
+

7.1 Load Plant

+
load('mat/plant.mat', 'G');
 
@@ -2866,9 +2892,9 @@ The plant is put in a general configuration as shown in Fig. -

6.2 RGA-Number

-
+
+

7.2 RGA-Number

+
freqs = logspace(2, 4, 1000);
 G_resp = freqresp(G, freqs, 'Hz');
@@ -2906,9 +2932,9 @@ V = zeros(
-

6.3 Rotation Matrix

-
+
+

7.3 Rotation Matrix

+
G0 = freqresp(G, 0);
 
@@ -2917,16 +2943,16 @@ V = zeros( -

7 Active Damping

-
+
+

8 Active Damping

+
-
-

7.1 Load Plant

-
+
+

8.1 Load Plant

+
load('mat/plant.mat', 'sys', 'Gi', 'Zc', 'Ga', 'Gc', 'Gn', 'Gd');
 
@@ -2934,9 +2960,9 @@ V = zeros( -

7.2 Integral Force Feedback

-
+
+

8.2 Integral Force Feedback

+
bode(sys({'Vch', 'Vcv'}, {'Uch', 'Ucv'}));
 
@@ -2962,9 +2988,9 @@ sys_cl = connect(sys, Kppf,
-
-

7.3 Conclusion

-
+
+

8.3 Conclusion

+

Active damping does not seems to be applicable here.

@@ -2972,11 +2998,11 @@ Active damping does not seems to be applicable here.
-
-

8 Decentralized Control of the Cercalo

-
+
+

9 Decentralized Control of the Cercalo

+

- +

In this section, we try to implement a simple decentralized controller. @@ -2988,9 +3014,9 @@ All the files (data and Matlab scripts) are accessible -

8.1 Load Plant

-
+
+

9.1 Load Plant

+
load('mat/plant.mat', 'sys', 'Gi', 'Zc', 'Ga', 'Gc', 'Gn', 'Gd');
 
@@ -2998,12 +3024,12 @@ All the files (data and Matlab scripts) are accessible
-

8.2 Diagonal Controller

-
+
+

9.2 Diagonal Controller

+

Using SISOTOOL, a diagonal controller is designed. -The two SISO loop gains are shown in Fig. 41. +The two SISO loop gains are shown in Fig. 41.

Kh = -0.25598*(s+112)*(s^2 + 15.93*s + 6.686e06)/((s^2*(s+352.5)*(1+s/2/pi/2000)));
@@ -3016,14 +3042,14 @@ K.OutputName = {
 
 
-
+

diag_contr_loop_gain.png

Figure 41: Loop Gain using the Decentralized Diagonal Controller (png, pdf)

-We then close the loop and we look at the transfer function from the Newport rotation signal to the beam angle (Fig. 42). +We then close the loop and we look at the transfer function from the Newport rotation signal to the beam angle (Fig. 42).

inputs  = {'Uch', 'Ucv', 'Unh', 'Unv'};
@@ -3034,7 +3060,7 @@ sys_cl = connect(sys, 
 
 
-
+

diag_contr_effect_newport.png

Figure 42: Effect of the Newport rotation on the beam position when the loop is closed using the Decentralized Diagonal Controller (png, pdf)

@@ -3042,9 +3068,9 @@ sys_cl = connect(sys,
-
-

8.3 Save the Controller

-
+
+

9.3 Save the Controller

+
Kd = c2d(K, 1e-4, 'tustin');
 
@@ -3061,11 +3087,11 @@ The diagonal controller is accessible here.
-
-

9 Newport Control

-
+
+

10 Newport Control

+

- +

In this section, we try to implement a simple decentralized controller for the Newport. @@ -3078,9 +3104,9 @@ This can be used to align the 4QD:

  • finally, we are sure to be aligned when the command signal of the Newport is 0
  • -
    -

    9.1 Load Plant

    -
    +
    +

    10.1 Load Plant

    +
    load('mat/plant.mat', 'Gn', 'Gd');
     
    @@ -3088,9 +3114,9 @@ This can be used to align the 4QD:
    -
    -

    9.2 Analysis

    -
    +
    +

    10.2 Analysis

    +

    The plant is basically a constant until frequencies up to the required bandwidth.

    @@ -3116,7 +3142,7 @@ Knv = 1
    -
    +

    loop_gain_newport.png

    Figure 43: Diagonal Loop Gain for the Newport (png, pdf)

    @@ -3124,9 +3150,9 @@ Knv = 1
    -
    -

    9.3 Save

    -
    +
    +

    10.3 Save

    +
    Kn = blkdiag(Knh, Knv);
     Knd = c2d(Kn, 1e-4, 'tustin');
    @@ -3146,23 +3172,23 @@ The controllers can be downloaded here.
     
    -
    -

    10 Measurement of the non-repeatability

    -
    +
    +

    11 Measurement of the non-repeatability

    +

    - +

    The goal here is the measure the non-repeatability of the setup.

    -All sources of error (detailed in the budget error in Section 4) will contribute to the non-repeatability of the system. +All sources of error (detailed in the budget error in Section 4) will contribute to the non-repeatability of the system.

    -
    -

    10.1 Data Load and pre-processing

    -
    +
    +

    11.1 Data Load and pre-processing

    +
    uh = load('mat/data_rep_h.mat', ...
          't', 'Uch', 'Ucv', ...
    @@ -3224,11 +3250,11 @@ uv.t = uv.t - uv.t
    -

    10.2 Some Time domain plots

    -
    +
    +

    11.2 Some Time domain plots

    +
    -
    +

    repeat_time_signals.png

    Figure 44: Time domain Signals for the repeatability measurement (png, pdf)

    @@ -3236,9 +3262,9 @@ uv.t = uv.t - uv.t -

    10.3 Verify Tracking Angle Error

    -
    +
    +

    11.3 Verify Tracking Angle Error

    +

    Let's verify that the positioning error of the beam is small and what could be the effect on the distance measured by the intereferometer.

    @@ -3249,7 +3275,7 @@ Let's verify that the positioning error of the beam is small and what could be t
    -
    +

    repeat_tracking_errors.png

    Figure 45: Tracking errors during the repeatability measurement (png, pdf)

    @@ -3268,7 +3294,7 @@ Let's compute the PSD of the error to see the frequency content.
    -
    +

    psd_tracking_error_rad.png

    Figure 46: Power Spectral Density of the tracking errors (png, pdf)

    @@ -3303,7 +3329,7 @@ with

    -Now, compare that with the PSD of the measured distance by the interferometer (Fig. 47). +Now, compare that with the PSD of the measured distance by the interferometer (Fig. 47).

    [psd_Lh, f] = pwelch(uh.Va, hanning(ceil(1*fs)), [], [], fs);
    @@ -3312,7 +3338,7 @@ Now, compare that with the PSD of the measured distance by the interferometer (F
     
    -
    +

    compare_tracking_error_attocube_meas.png

    Figure 47: Comparison of the effect of tracking error on the measured distance and the measured distance by the Attocube (png, pdf)

    @@ -3327,9 +3353,9 @@ The tracking errors are a limiting factor.
    -
    -

    10.4 Processing

    -
    +
    +

    11.4 Processing

    +

    First, we get the mean value as measured by the interferometer for each value of the Newport angle.

    @@ -3342,8 +3368,33 @@ Unvm = mean(reshape
    +

    +And we can compute the RMS value of the non-repeatable part: +

    + -
    + +
    ++ ++ + + + + + + + + + + + + +
    Va - Horizontal [nm rms]Va - Vertical [nm rms]
    19.613.9
    + + +

    repeat_plot_raw.png

    Figure 48: Repeatability of the measurement (png, pdf)

    @@ -3351,18 +3402,50 @@ Unvm = mean(reshape +

    repeat_plot_subtract_mean.png

    Figure 49: Repeatability of the measurement after subtracting the mean value (png, pdf)

    + +
    +

    11.5 Analysis of the non-repeatable contributions

    +
    +

    +Let's know try to determine where does the non-repeatability comes from. +

    + +

    +From the 4QD signal, we can compute the angle error of the beam and thus determine the corresponding displacement measured by the attocube. +

    + +

    +We then take the non-repeatable part of this displacement and we compare that with the total non-repeatability. +

    + +

    +We also plot the displacement measured during the huddle test. +

    + +

    +All the signals are shown on Fig. [[]]. +

    + + +
    +

    non-repeatability-parts.png +

    +

    Figure 50: Non repeatabilities (png, pdf)

    +
    +
    +

    Author: Dehaeze Thomas

    -

    Created: 2019-09-20 ven. 11:34

    +

    Created: 2019-10-08 mar. 09:40

    Validate

    diff --git a/index.org b/index.org index e94485e..4906196 100644 --- a/index.org +++ b/index.org @@ -14,6 +14,10 @@ #+HTML_HEAD: #+HTML_HEAD: +#+LATEX_CLASS: scrreprt +#+LATEX_CLASS_OPTIONS: [] +#+LATEX_HEADER: \usepackage{minted} + #+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/Cloud/These/LaTeX/}{config.tex}") #+PROPERTY: header-args:latex+ :imagemagick t :fit yes #+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150 @@ -2631,6 +2635,25 @@ This corresponds to a measurement error of the Attocube equals to (in [m]) The DAC noise use for the Cercalo does not limit the performance of the system. #+end_important +* Plant Uncertainty +** Matlab Init :noexport:ignore: +#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) + <> +#+end_src + +#+begin_src matlab :exports none :results silent :noweb yes + <> +#+end_src + +** Coprime Factorization +#+begin_src matlab + load('mat/plant.mat', 'sys', 'Gi', 'Zc', 'Ga', 'Gc', 'Gn', 'Gd'); +#+end_src + +#+begin_src matlab + [fact, Ml, Nl] = lncf(Gc*Gi); +#+end_src + * Plant Scaling <> ** Introduction :ignore: @@ -3292,6 +3315,16 @@ First, we get the mean value as measured by the interferometer for each value of Unvm = mean(reshape(uv.Unv, [fs floor(length(uv.t)/fs)]),2); #+end_src +And we can compute the RMS value of the non-repeatable part: +#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) + data2orgtable([rms(1e9*(uh.Va - repmat(Vahm, length(uh.t)/length(Vahm),1))), rms(1e9*(uv.Va - repmat(Vavm, length(uv.t)/length(Vavm),1)))], {}, {'Va - Horizontal [nm rms]', 'Va - Vertical [nm rms]'}, ' %.1f '); +#+end_src + +#+RESULTS: +| Va - Horizontal [nm rms] | Va - Vertical [nm rms] | +|--------------------------+------------------------| +| 19.6 | 13.9 | + #+begin_src matlab :exports none figure; ax1 = subplot(1, 2, 1); @@ -3347,3 +3380,72 @@ First, we get the mean value as measured by the interferometer for each value of #+NAME: fig:repeat_plot_subtract_mean #+CAPTION: Repeatability of the measurement after subtracting the mean value ([[./figs/repeat_plot_subtract_mean.png][png]], [[./figs/repeat_plot_subtract_mean.pdf][pdf]]) [[file:figs/repeat_plot_subtract_mean.png]] + +** Analysis of the non-repeatable contributions +Let's know try to determine where does the non-repeatability comes from. + +From the 4QD signal, we can compute the angle error of the beam and thus determine the corresponding displacement measured by the attocube. + +We then take the non-repeatable part of this displacement and we compare that with the total non-repeatability. + +We also plot the displacement measured during the huddle test. + +All the signals are shown on Fig. [[]]. + +#+begin_src matlab :exports none + Vphm = mean(reshape(uh.Vph/freqresp(Gd(1,1), 0), [fs floor(length(uh.t)/fs)]),2); + Unhm = mean(reshape(uh.Unh, [fs floor(length(uh.t)/fs)]),2); + + Vpvm = mean(reshape(uv.Vpv/freqresp(Gd(2,2), 0), [fs floor(length(uv.t)/fs)]),2); + Unvm = mean(reshape(uv.Unv, [fs floor(length(uv.t)/fs)]),2); +#+end_src + + +#+begin_src matlab :exports none + % =Vaheq= is the equivalent measurement error in [m] due to error angle of the Sercalo. + Vaheq = uh.Vph/freqresp(Gd(1,1), 0) - repmat(Vphm, length(uh.t)/length(Vphm),1); + Vaveq = uv.Vpv/freqresp(Gd(2,2), 0) - repmat(Vpvm, length(uv.t)/length(Vpvm),1); + + Vaheq = sign(Vaheq).*Vaheq.^2; + Vaveq = sign(Vaveq).*Vaveq.^2; +#+end_src + +#+begin_src matlab :exports none + ht = load('./mat/data_huddle_test_3.mat', 't', 'Va'); +#+end_src + +#+begin_src matlab :exports none + htm = 1e9*ht.Va(1:length(Vaheq)) - repmat(mean(1e9*ht.Va(1:length(Vaheq))), length(uh.t)/length(Vaheq),1); +#+end_src + +#+begin_src matlab :exports none + figure; + ax1 = subplot(1, 2, 1); + hold on; + plot(uh.Unh, 1e9*(uh.Va - repmat(Vahm, length(uh.t)/length(Vahm),1))); + plot(uh.Unh, 1e9*ht.Va(1:length(Vaheq))-mean(1e9*ht.Va(1:length(Vaheq)))); + plot(uh.Unh, 1e9*Vaheq); + hold off; + xlabel('$V_{n,h}$ [V]'); ylabel('$V_a$ [nm]'); + + ax2 = subplot(1, 2, 2); + hold on; + plot(uv.Unv, 1e9*(uv.Va - repmat(Vavm, length(uv.t)/length(Vavm),1)), 'DisplayName', 'Measured Non-Repeatability'); + plot(uv.Unv, 1e9*ht.Va(1:length(Vaveq))-mean(1e9*ht.Va(1:length(Vaveq))), 'DisplayName', 'Huddle Test'); + plot(uv.Unv, 1e9*Vaveq, 'DisplayName', 'Due to Sercalo Angle Error'); + hold off; + xlabel('$V_{n,v}$ [V]'); ylabel('$V_a$ [nm]'); + legend('location', 'northeast'); + + linkaxes([ax1,ax2],'xy'); + ylim([-100 100]); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/non-repeatability-parts.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:non-repeatability-parts +#+CAPTION: Non repeatabilities ([[./figs/non-repeatability-parts.png][png]], [[./figs/non-repeatability-parts.pdf][pdf]]) +[[file:figs/non-repeatability-parts.png]] diff --git a/matlab/run_test.m b/matlab/run_test.m index 4518ef0..031c91b 100644 --- a/matlab/run_test.m +++ b/matlab/run_test.m @@ -96,6 +96,6 @@ save('mat/data_rep_1.mat', 't', 'Uch', 'Ucv', ... 'Vch', 'Vcv', ... 'Vnh', 'Vnv', ... 'Va'); - + %% Save - Huddle Test save('mat/data_huddle_test_4.mat', 't', 'Vph', 'Vpv', 'Va');