diff --git a/figs/setup_picture.png b/figs/setup_picture.png new file mode 100644 index 0000000..a999270 Binary files /dev/null and b/figs/setup_picture.png differ diff --git a/figs/setup_zoom.png b/figs/setup_zoom.png new file mode 100644 index 0000000..23fbe2b Binary files /dev/null and b/figs/setup_zoom.png differ diff --git a/index.html b/index.html index 77f3d32..c40b042 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Test Bench APA95ML @@ -27,42 +27,56 @@

Table of Contents

-
-

1 Setup

+ +
+

setup_picture.png +

+

Figure 1: Picture of the Setup

+
+ + +
+

setup_zoom.png +

+

Figure 2: Zoom on the APA

+
+ +
+

1 Setup

-
-

1.1 Parameters

+
+

1.1 Parameters

Ts = 1e-4;
@@ -71,8 +85,8 @@
 
-
-

1.2 Filter White Noise

+
+

1.2 Filter White Noise

Glpf = 1/(1 + s/2/pi/500);
@@ -84,13 +98,13 @@ Gz = c2d(Glpf, Ts, 'tustin');
 
-
-

2 Run Experiment and Save Data

+
+

2 Run Experiment and Save Data

-
-

2.1 Load Data

+
+

2.1 Load Data

data = SimulinkRealTime.utils.getFileScopeData('data/apa95ml.dat').data;
@@ -99,8 +113,8 @@ Gz = c2d(Glpf, Ts, 'tustin');
 
-
-

2.2 Save Data

+
+

2.2 Save Data

u = data(:, 1); % Input Voltage [V]
@@ -117,25 +131,25 @@ t = data(:, 3); % Time [s]
 
-
-

3 Huddle Test

+
+

3 Huddle Test

-
-

3.1 Time Domain Data

+
+

3.1 Time Domain Data

-
+

huddle_test_time_domain.png

-

Figure 1: Measurement of the Mass displacement during Huddle Test

+

Figure 3: Measurement of the Mass displacement during Huddle Test

-
-

3.2 PSD of Measurement Noise

+
+

3.2 PSD of Measurement Noise

Ts = t(end)/(length(t)-1);
@@ -151,34 +165,34 @@ win = hanning(ceil(1*Fs));
 
-
+

huddle_test_pdf.png

-

Figure 2: Amplitude Spectral Density of the Displacement during Huddle Test

+

Figure 4: Amplitude Spectral Density of the Displacement during Huddle Test

-
-

4 Transfer Function Estimation with m=5kg

+
+

4 Transfer Function Estimation with m=5kg

-
-

4.1 Time Domain Data

+
+

4.1 Time Domain Data

-
+

apa95ml_5kg_10V_time_domain.png

-

Figure 3: Time domain signals during the test

+

Figure 5: Time domain signals during the test

-
-

4.2 Comparison of the PSD with Huddle Test

+
+

4.2 Comparison of the PSD with Huddle Test

Ts = t(end)/(length(t)-1);
@@ -195,16 +209,16 @@ win = hanning(ceil(1*Fs));
 
-
+

apa95ml_5kg_10V_pdf_comp_huddle.png

-

Figure 4: Comparison of the ASD for the identification test and the huddle test

+

Figure 6: Comparison of the ASD for the identification test and the huddle test

-
-

4.3 Compute TF estimate and Coherence

+
+

4.3 Compute TF estimate and Coherence

win = hann(ceil(1/Ts));
@@ -215,17 +229,22 @@ win = hanning(ceil(1*Fs));
 
-
+

apa95ml_5kg_10V_coh.png

-

Figure 5: Coherence

+

Figure 7: Coherence

-
+

apa95ml_5kg_10V_tf.png

-

Figure 6: Estimation of the transfer function from input voltage to displacement

+

Figure 8: Estimation of the transfer function from input voltage to displacement

+
+ +
+
Glpf = 1/(1 + s/2/pi/500);
+
@@ -233,7 +252,7 @@ win = hanning(ceil(1*Fs));

Author: Dehaeze Thomas

-

Created: 2020-07-20 lun. 12:55

+

Created: 2020-07-20 lun. 13:17

diff --git a/index.org b/index.org index f52a61d..828562a 100644 --- a/index.org +++ b/index.org @@ -41,6 +41,16 @@ #+PROPERTY: header-args:latex+ :output-dir figs :END: +* Introduction :ignore: + +#+name: fig:setup_picture +#+caption: Picture of the Setup +[[file:figs/setup_picture.png]] + +#+name: fig:setup_zoom +#+caption: Zoom on the APA +[[file:figs/setup_zoom.png]] + * Setup :PROPERTIES: :header-args:matlab+: :tangle matlab/setup_experiment.m @@ -280,3 +290,29 @@ #+caption: Estimation of the transfer function from input voltage to displacement #+RESULTS: [[file:figs/apa95ml_5kg_10V_tf.png]] + +#+begin_src matlab + Glpf = 1/(1 + s/2/pi/500); +#+end_src + +#+begin_src matlab :exports none + figure; + ax1 = subplot(2, 1, 1); + hold on; + plot(f, abs(tf_est./squeeze(freqresp(Glpf, f, 'Hz'))), 'k-') + set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); + ylabel('Amplitude'); xlabel('Frequency [Hz]'); + hold off; + + ax2 = subplot(2, 1, 2); + hold on; + plot(f, 180/pi*(angle(tf_est./squeeze(freqresp(Glpf, f, 'Hz')))), 'k-') + set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'lin'); + ylabel('Phase'); xlabel('Frequency [Hz]'); + hold off; + ylim([-180, 180]); + yticks([-180, -90, 0, 90, 180]); + + linkaxes([ax1,ax2], 'x'); + xlim([10, 5e3]); +#+end_src