diff --git a/figs/PI_E505_coh.pdf b/figs/PI_E505_coh.pdf new file mode 100644 index 0000000..587aad8 Binary files /dev/null and b/figs/PI_E505_coh.pdf differ diff --git a/figs/PI_E505_coh.png b/figs/PI_E505_coh.png new file mode 100644 index 0000000..0f53bfc Binary files /dev/null and b/figs/PI_E505_coh.png differ diff --git a/figs/PI_E505_tf.pdf b/figs/PI_E505_tf.pdf new file mode 100644 index 0000000..a9c5246 Binary files /dev/null and b/figs/PI_E505_tf.pdf differ diff --git a/figs/PI_E505_tf.png b/figs/PI_E505_tf.png new file mode 100644 index 0000000..f9231b2 Binary files /dev/null and b/figs/PI_E505_tf.png differ diff --git a/index.html b/index.html index b01409a..2da3714 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Test Bench APA95ML @@ -35,37 +35,42 @@

Table of Contents

@@ -73,26 +78,26 @@
-
+

setup_picture.png

Figure 1: Picture of the Setup

-
+

setup_zoom.png

Figure 2: Zoom on the APA

-
-

1 Setup

+
+

1 Setup

-
-

1.1 Parameters

+
+

1.1 Parameters

Ts = 1e-4;
@@ -101,8 +106,8 @@
 
-
-

1.2 Filter White Noise

+
+

1.2 Filter White Noise

Glpf = 1/(1 + s/2/pi/500);
@@ -114,13 +119,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;
@@ -129,8 +134,8 @@ Gz = c2d(Glpf, Ts, 'tustin');
 
-
-

2.2 Save Data

+
+

2.2 Save Data

u = data(:, 1); % Input Voltage [V]
@@ -147,16 +152,16 @@ 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 3: Measurement of the Mass displacement during Huddle Test

@@ -164,8 +169,8 @@ t = data(:, 3); % Time [s]
-
-

3.2 PSD of Measurement Noise

+
+

3.2 PSD of Measurement Noise

Ts = t(end)/(length(t)-1);
@@ -181,7 +186,7 @@ win = hanning(ceil(1*Fs));
 
-
+

huddle_test_pdf.png

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

@@ -190,16 +195,16 @@ win = hanning(ceil(1*Fs));
-
-

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 5: Time domain signals during the test

@@ -207,8 +212,8 @@ win = hanning(ceil(1*Fs));
-
-

4.2 Comparison of the PSD with Huddle Test

+
+

4.2 Comparison of the PSD with Huddle Test

Ts = t(end)/(length(t)-1);
@@ -225,7 +230,7 @@ win = hanning(ceil(1*Fs));
 
-
+

apa95ml_5kg_10V_pdf_comp_huddle.png

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

@@ -233,8 +238,8 @@ win = hanning(ceil(1*Fs));
-
-

4.3 Compute TF estimate and Coherence

+
+

4.3 Compute TF estimate and Coherence

Ts = t(end)/(length(t)-1);
@@ -251,14 +256,14 @@ Fs = 1/Ts;
 
-
+

apa95ml_5kg_10V_coh.png

Figure 7: Coherence

-
+

apa95ml_5kg_10V_tf.png

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

@@ -266,8 +271,8 @@ Fs = 1/Ts;
-
-

4.4 Comparison with the FEM model

+
+

4.4 Comparison with the FEM model

load('mat/fem_model_5kg.mat', 'Ghm');
@@ -275,25 +280,85 @@ Fs = 1/Ts;
 
-
+

apa95ml_5kg_comp_fem.png

Figure 9: Comparison of the identified transfer function and the one estimated from the FE model

+
+
+ +
+
+

+The problem comes from the fact that the piezo is driven directly by the DAC that cannot deliver enought current. +In the next section, a current amplifier is used. +

+
-
-

5 PI Amplifier

+
+

5 Transfer function of the PI Amplifier

-
-

5.1 Comparison of the PSD with Huddle Test

+
+

5.1 Compute TF estimate and Coherence

Ts = t(end)/(length(t)-1);
 Fs = 1/Ts;
+
+
+ +

+The coherence and the transfer function are estimate from the voltage input of the PI amplifier to its voltage inputs. +

+ +

+The coherence is very good as expected (Figure 10). +

+ +

+The transfer function show a low pass filter behavior with a lot of phase drop (Figure 11). +

+ +
+
win = hann(ceil(10/Ts));
+
+[tf_est, f] = tfestimate(u, um, win, [], [], 1/Ts);
+[co_est, ~] = mscohere(  u, um, win, [], [], 1/Ts);
+
+
+ + +
+

PI_E505_coh.png +

+

Figure 10: Coherence

+
+ + +
+

PI_E505_tf.png +

+

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

+
+
+
+
+ +
+

6 PI Amplifier

+
+
+
+

6.1 Comparison of the PSD with Huddle Test

+
+
+
Ts = t(end)/(length(t)-1);
+Fs = 1/Ts;
 
 win = hanning(ceil(1*Fs));
 
@@ -306,17 +371,17 @@ win = hanning(ceil(1*Fs));
-
+

apa95ml_5kg_PI_pdf_comp_huddle.png

-

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

+

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

-
-

5.2 Compute TF estimate and Coherence

-
+
+

6.2 Compute TF estimate and Coherence

+
Ts = t(end)/(length(t)-1);
 Fs = 1/Ts;
@@ -332,34 +397,34 @@ Fs = 1/Ts;
 
-
+

apa95ml_5kg_PI_coh.png

-

Figure 11: Coherence

+

Figure 13: Coherence

-
+

apa95ml_5kg_PI_tf.png

-

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

+

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

-
-

5.3 Comparison with the FEM model

-
+
+

6.3 Comparison with the FEM model

+
load('mat/fem_model_5kg.mat', 'Ghm');
 
-
+

apa95ml_5kg_pi_comp_fem.png

-

Figure 13: Comparison of the identified transfer function and the one estimated from the FE model

+

Figure 15: Comparison of the identified transfer function and the one estimated from the FE model

@@ -367,7 +432,7 @@ Fs = 1/Ts;

Author: Dehaeze Thomas

-

Created: 2020-07-23 jeu. 09:33

+

Created: 2020-07-24 ven. 11:34

diff --git a/index.org b/index.org index bccfcef..924b16c 100644 --- a/index.org +++ b/index.org @@ -339,6 +339,91 @@ The problem comes from the fact that the piezo is driven directly by the DAC tha In the next section, a current amplifier is used. #+end_important +* Transfer function of the PI Amplifier +** 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 + +** Load Data :noexport: +#+begin_src matlab + load('./mat/apa95ml_5kg_Amp_E505.mat', 't', 'u', 'um'); +#+end_src + +** Compute TF estimate and Coherence +#+begin_src matlab + Ts = t(end)/(length(t)-1); + Fs = 1/Ts; +#+end_src + +The coherence and the transfer function are estimate from the voltage input of the PI amplifier to its voltage inputs. + +The coherence is very good as expected (Figure [[fig:PI_E505_coh]]). + +The transfer function show a low pass filter behavior with a lot of phase drop (Figure [[fig:PI_E505_tf]]). + +#+begin_src matlab + win = hann(ceil(10/Ts)); + + [tf_est, f] = tfestimate(u, um, win, [], [], 1/Ts); + [co_est, ~] = mscohere( u, um, win, [], [], 1/Ts); +#+end_src + +#+begin_src matlab :exports none + figure; + + hold on; + plot(f, co_est, 'k-') + set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'lin'); + ylabel('Coherence'); xlabel('Frequency [Hz]'); + hold off; + xlim([10, 5e3]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/PI_E505_coh.pdf', 'width', 'wide', 'height', 'normal'); +#+end_src + +#+name: fig:PI_E505_coh +#+caption: Coherence +#+RESULTS: +[[file:figs/PI_E505_coh.png]] + +#+begin_src matlab :exports none + figure; + ax1 = subplot(2, 1, 1); + hold on; + plot(f, abs(tf_est), '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), 'k-') + set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'lin'); + ylabel('Phase'); xlabel('Frequency [Hz]'); + hold off; + ylim([-180, 180]); + yticks(-180:90:180); + + linkaxes([ax1,ax2], 'x'); + xlim([10, 5e3]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/PI_E505_tf.pdf', 'width', 'full', 'height', 'full'); +#+end_src + +#+name: fig:PI_E505_tf +#+caption: Estimation of the transfer function from input voltage to displacement +#+RESULTS: +[[file:figs/PI_E505_tf.png]] + * PI Amplifier ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)