diff --git a/figs/max_frequency_voltage.pdf b/figs/max_frequency_voltage.pdf new file mode 100644 index 0000000..098eed7 Binary files /dev/null and b/figs/max_frequency_voltage.pdf differ diff --git a/figs/max_frequency_voltage.png b/figs/max_frequency_voltage.png new file mode 100644 index 0000000..334d107 Binary files /dev/null and b/figs/max_frequency_voltage.png differ diff --git a/figs/pd200_tf_voltage.pdf b/figs/pd200_tf_voltage.pdf new file mode 100644 index 0000000..a6c8e7a Binary files /dev/null and b/figs/pd200_tf_voltage.pdf differ diff --git a/figs/pd200_tf_voltage.png b/figs/pd200_tf_voltage.png new file mode 100644 index 0000000..95fae44 Binary files /dev/null and b/figs/pd200_tf_voltage.png differ diff --git a/figs/tf_pd200_model.pdf b/figs/tf_pd200_model.pdf new file mode 100644 index 0000000..f01a632 Binary files /dev/null and b/figs/tf_pd200_model.pdf differ diff --git a/figs/tf_pd200_model.png b/figs/tf_pd200_model.png new file mode 100644 index 0000000..709e0aa Binary files /dev/null and b/figs/tf_pd200_model.png differ diff --git a/index.html b/index.html index 5f00975..524110a 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Voltage Amplifier PD200 - Test Bench @@ -39,41 +39,36 @@

Table of Contents

-
-

1 Introduction

+
+

1 Introduction

The goal of this test bench is to characterize the Voltage amplifier PD200 from PiezoDrive. @@ -84,7 +79,7 @@ The documentation of the PD200 is accessible here<

- -
-

2 Voltage Amplifier Requirements

+
+

2 Voltage Amplifier Requirements

- +
@@ -139,10 +134,10 @@ The documentation of the PD200 is accessible here< -
-

3 PD200 Expected characteristics

+
+

3 PD200 Expected characteristics

-
Table 1: Requirements for the Voltage Amplifier
+
@@ -217,18 +212,18 @@ The documentation of the PD200 is accessible here<
Table 2: Characteristics of the PD200

-For a load capacitance of \(10\,\mu F\), the expected \(-3\,dB\) bandwidth is \(6.4\,kHz\) (Figure 2) and the low frequency noise is \(650\,\mu V\,\text{rms}\) (Figure 3). +For a load capacitance of \(10\,\mu F\), the expected \(-3\,dB\) bandwidth is \(6.4\,kHz\) (Figure 2) and the low frequency noise is \(650\,\mu V\,\text{rms}\) (Figure 3).

-
+

pd200_expected_small_signal_bandwidth.png

Figure 2: Expected small signal bandwidth

-
+

pd200_expected_noise.png

Figure 3: Expected Low frequency noise from 0.03Hz to 20Hz

@@ -236,8 +231,8 @@ For a load capacitance of \(10\,\mu F\), the expected \(-3\,dB\) bandwidth is \(
-
-

4 Voltage Amplifier Model

+
+

4 Voltage Amplifier Model

The Amplifier is characterized by its dynamics \(G_a(s)\) from voltage inputs \(V_{in}\) to voltage output \(V_{out}\). @@ -258,7 +253,7 @@ As both \(G_a\) and \(S_n\) depends on the load capacitance, they should be meas

-
+

pd200-model-schematic.png

Figure 4: Model of the voltage amplifier

@@ -266,29 +261,29 @@ As both \(G_a\) and \(S_n\) depends on the load capacitance, they should be meas
-
-

5 Noise measurement

+
+

5 Noise measurement

-
-

5.1 Setup

+
+

5.1 Setup

- +

-
+

Here are the documentation of the equipment used for this test bench:

@@ -321,7 +316,7 @@ This gain should be around 1000.

-
+

setup-noise-measurement.png

Figure 5: Schematic of the test bench to measure the Power Spectral Density of the Voltage amplifier noise \(n\)

@@ -334,15 +329,15 @@ An high pass filter at low frequency can be added if there is a problem of large
-
-

5.2 Model of the setup

+
+

5.2 Model of the setup

- +

-As shown in Figure 6, there are 4 equipment involved in the measurement: +As shown in Figure 6, there are 4 equipment involved in the measurement:

  • a Digital to Analog Convert (DAC)
  • @@ -363,7 +358,7 @@ Each of these equipment has some noise:
-
+

noise_meas_procedure.png

Figure 6: Sources of noise in the experimental setup

@@ -371,11 +366,11 @@ Each of these equipment has some noise:
-
-

5.3 Quantization Noise

+
+

5.3 Quantization Noise

- +

@@ -410,11 +405,11 @@ The obtained Amplitude Spectral Density is 6.2294e-07 \(V/\sqrt{Hz}

-
-

5.4 Pre Amplifier noise measurement

+
+

5.4 Pre Amplifier noise measurement

- +

@@ -436,7 +431,7 @@ This is true if the quantization noise \(\Gamma_{q_{ad}}\) is negligible.

-
+

noise_measure_setup_preamp.png

Figure 7: Sources of noise in the experimental setup

@@ -460,12 +455,12 @@ preamp.f = f;

-The obtained Amplitude Spectral Density of the Low Noise Voltage Amplifier is shown in Figure 8. +The obtained Amplitude Spectral Density of the Low Noise Voltage Amplifier is shown in Figure 8. The obtained noise amplitude is very closed to the one specified in the documentation of \(4nV/\sqrt{Hz}\) at 1kHZ.

-
+

asd_preamp.png

Figure 8: Obtained Amplitude Spectral Density of the Low Noise Voltage Amplifier

@@ -473,11 +468,11 @@ The obtained noise amplitude is very closed to the one specified in the document
-
-

5.5 PD200 noise measurement

+
+

5.5 PD200 noise measurement

- +

@@ -498,27 +493,27 @@ And we verify that this is indeed the noise of the PD200 and not the noise of th \end{equation} -

+

noise_measure_setup_pd200.png

Figure 9: Sources of noise in the experimental setup

-The measured low frequency noise \(n_p\) of one of the amplifiers is shown in Figure 10. -It is very similar to the one specified in the datasheet in Figure 3. +The measured low frequency noise \(n_p\) of one of the amplifiers is shown in Figure 10. +It is very similar to the one specified in the datasheet in Figure 3.

-
+

pd200_noise_time_lpf.png

Figure 10: Measured low frequency noise of the PD200 from 0.01Hz to 20Hz

-The obtained RMS and peak to peak values of the measured noises are shown in Table 3. +The obtained RMS and peak to peak values of the measured noises are shown in Table 3.

- +
@@ -587,10 +582,10 @@ The obtained RMS and peak to peak values of the measured noises are shown in Tab
Table 3: RMS and Peak to Peak measured low frequency noise (0.01Hz to 20Hz)

-The Amplitude Spectral Density of the measured noise is now computed and shown in Figure 11. +The Amplitude Spectral Density of the measured noise is now computed and shown in Figure 11.

-
+

asd_noise_3uF_warmup.png

Figure 11: Amplitude Spectral Density of the measured noise

@@ -598,11 +593,11 @@ The Amplitude Spectral Density of the measured noise is now computed and shown i
-
-

5.6 DAC noise measurement

+
+

5.6 DAC noise measurement

- +

@@ -626,33 +621,33 @@ And it is verify that the Amplitude Spectral Density of \(n_{da}\) is much large \end{equation} -

+

noise_measure_setup_dac.png

Figure 12: Sources of noise in the experimental setup

-
+

asd_noise_dac.png

-
-

5.7 Total noise measurement

+
+

5.7 Total noise measurement

- +

-Let’s now analyze the measurement of the setup in Figure 6. +Let’s now analyze the measurement of the setup in Figure 6.

-The PSD of the measured noise is computed and the ASD is shown in Figure 14. +The PSD of the measured noise is computed and the ASD is shown in Figure 14.

win = hanning(ceil(0.5/Ts));
@@ -666,13 +661,13 @@ The PSD of the measured noise is computed and the ASD is shown in Figure 
 
 
-
+

asd_noise_tot.png

Figure 14: Amplitude Spectral Density of the measured noise and of the individual sources of noise

-
+

The output noise of the PD200 amplifier is limited by the noise of the DAC. Having a DAC with lower noise could lower the output noise of the PD200. @@ -683,17 +678,17 @@ SSI2V DACs will be used to verify that.

-
-

5.8 20bits DAC noise measurement

+
+

5.8 20bits DAC noise measurement

- + Let’s now measure the noise of another DAC called the “SSI2V” (doc). It is a 20bits DAC with an output of +/-10.48 V and a very low noise.

-The measurement setup is the same as the one in Figure 12. +The measurement setup is the same as the one in Figure 12.

@@ -706,18 +701,18 @@ ssi2v.f = f;

-The obtained noise of the SSI2V DAC is shown in Figure 15 and compared with the noise of the 16bits DAC. +The obtained noise of the SSI2V DAC is shown in Figure 15 and compared with the noise of the 16bits DAC. It is shown to be much smaller (~1 order of magnitude).

-
+

asd_ssi2v_noise.png

Figure 15: Amplitude Spectral Density of the SSI2V DAC’s noise

-
+

Using the SSI2V as the DAC with the PD200 should give much better noise output than using the 16bits DAC. The limiting factor should then be the noise of the PD200 itself. @@ -728,18 +723,18 @@ The limiting factor should then be the noise of the PD200 itself.

-
-

6 Transfer Function measurement

+
+

6 Transfer Function measurement

-
-

6.1 Setup

+
+

6.1 Setup

-In order to measure the transfer function from the input voltage \(V_{in}\) to the output voltage \(V_{out}\), the test bench shown in Figure 16 is used. +In order to measure the transfer function from the input voltage \(V_{in}\) to the output voltage \(V_{out}\), the test bench shown in Figure 16 is used.

-
+

Here are the documentation of the equipment used for this test bench:

@@ -756,7 +751,7 @@ For this measurement, the sampling frequency of the Speedgoat ADC should be as h

-
+

setup-dynamics-measurement.png

Figure 16: Schematic of the test bench to estimate the dynamics from voltage input \(V_{in}\) to voltage output \(V_{out}\)

@@ -764,8 +759,8 @@ For this measurement, the sampling frequency of the Speedgoat ADC should be as h
-
-

6.2 Maximum Frequency/Voltage to not overload the amplifier

+
+

6.2 Maximum Frequency/Voltage to not overload the amplifier

The maximum current is 1A [rms] which corresponds to 0.7A in amplitude of the sin wave. @@ -777,145 +772,79 @@ The impedance of the capacitance is:

-Therefore the relation between the output current and the output voltage is (in amplitude): +Therefore the relation between the output current amplitude and the output voltage amplitude for sinusoidal waves of frequency \(\omega\): \[ V_{out} = \frac{1}{C\omega} I_{out} \]

-There is a gain of 20 between the input voltage and the output voltage: +Moreover, there is a gain of 20 between the input voltage and the output voltage: \[ 20 V_{in} = \frac{1}{C\omega} I_{out} \]

-For a specified voltage input amplitude \(V_{in}\), the maximum frequency is then: +For a specified voltage input amplitude \(V_{in}\), the maximum frequency at which the output current reaches its maximum value is: \[ \omega_{\text{max}} = \frac{1}{20 C V_{in}} I_{out,\text{max}} \]

-
-
Iout_max = 0.57; % Maximum output current [A]
-C = 2.7e-6; % Load Capacitance [F]
+

+\(\omega_max\) as a function of \(V_{in}\) is shown in Figure 17. +

-V_in = linspace(0, 5, 100); % Input Voltage [V] -w_max = 1./(20*C*V_in) * Iout_max; % [rad/s] - -figure; -plot(V_in, w_max/2/pi); -xlabel('Input Voltage Amplitude [V]'); -ylabel('Maximum Frequency [Hz]'); -set(gca, 'yscale', 'log'); -
+
+

max_frequency_voltage.png +

+

Figure 17: Maximum frequency as a function of the excitation voltage amplitude

-
-

6.3 Results

+
+

6.3 Obtained Transfer Functions

+

+Several identifications using sweep sin were performed with input voltage amplitude ranging from 0.1V to 4V. +

+ +

+The obtained frequency response functions are shown in Figure 18. +As the input voltage increases, the voltage drop is increasing. +

+ + +
+

pd200_tf_voltage.png +

+

Figure 18: Transfer function for the PD200 amplitude between \(V_{in}\) and \(V_{out}\) for multiple voltage amplitudes

-
-

6.3.1 First test

-
+ +

+The small signal transfer function of the amplifier can be approximated by a first order low pass filter. +

+
-
pd200_1V_1 = load('mat/tf_pd200_7_1V.mat', 't', 'Vin', 'Vout', 'Iout');
+
Gp = 19.95/(1 + s/2/pi/35e3);
 
-
-
Ts = (pd200_1V_1.t(end) - pd200_1V_1.t(1))/(length(pd200_1V_1.t)-1);
-Fs = 1/Ts;
-
-
- -
-
win = hanning(ceil(1*Fs));
-
-[tf_1, f] = tfestimate(pd200_1V_1.Vin, pd200_1V_1.Vout, win, [], [], 1/Ts);
-
-
-
-
- -
-

6.3.2 Results

-
-
-
Ts = (pd200{1}.t(end) - pd200{1}.t(1))/(length(pd200{1}.t)-1);
-Fs = 1/Ts;
-
-
- -
-
win = hanning(ceil(0.5*Fs));
-
-for i = 1:length(pd200)
-    [tf_est, f] = tfestimate(pd200{i}.Vin, 20*pd200{i}.Vout, win, [], [], 1/Ts);
-    pd200{i}.tf = tf_est(f < 0.99*pd200{i}.notes.pd200.f_max);
-    pd200{i}.f = f(f < 0.99*pd200{i}.notes.pd200.f_max);
-end
-
-
- -
-
f_max = zeros(1, length(pd200));
-Vin_ampl = zeros(1, length(pd200));
-for i = 1:length(pd200)
-    f_max(i) = pd200{i}.notes.pd200.f_max;
-    Vin_ampl(i) = pd200{i}.notes.pd200.Vin;
-end
-
-
- - +

+The comparison from the model and measurements are shown in Figure 19. +

--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VinFmax
0.15000.0
0.53801.3
1.01900.7
2.0950.3
4.0475.2
+
+

tf_pd200_model.png +

+

Figure 19: Comparison of the model transfer function and the measured frequency response function

-
-

7 Conclusion

+
+

7 Conclusion

- +
@@ -1005,7 +934,7 @@ Vin_ampl = zeros(1, length(pd200));

Author: Dehaeze Thomas

-

Created: 2021-01-22 ven. 23:44

+

Created: 2021-01-23 sam. 15:38

diff --git a/index.org b/index.org index c4d7646..41ddb3c 100644 --- a/index.org +++ b/index.org @@ -1397,39 +1397,7 @@ For this measurement, the sampling frequency of the Speedgoat ADC should be as h #+caption: Schematic of the test bench to estimate the dynamics from voltage input $V_{in}$ to voltage output $V_{out}$ [[file:figs/setup-dynamics-measurement.png]] -** Maximum Frequency/Voltage to not overload the amplifier - -The maximum current is 1A [rms] which corresponds to 0.7A in amplitude of the sin wave. - -The impedance of the capacitance is: -\[ Z_C(\omega) = \frac{1}{jC\omega} \] - -Therefore the relation between the output current and the output voltage is (in amplitude): -\[ V_{out} = \frac{1}{C\omega} I_{out} \] - -There is a gain of 20 between the input voltage and the output voltage: -\[ 20 V_{in} = \frac{1}{C\omega} I_{out} \] - -For a specified voltage input amplitude $V_{in}$, the maximum frequency is then: -\[ \omega_{\text{max}} = \frac{1}{20 C V_{in}} I_{out,\text{max}} \] - -#+begin_src matlab -Iout_max = 0.57; % Maximum output current [A] -C = 2.7e-6; % Load Capacitance [F] - -V_in = linspace(0, 5, 100); % Input Voltage [V] - -w_max = 1./(20*C*V_in) * Iout_max; % [rad/s] - -figure; -plot(V_in, w_max/2/pi); -xlabel('Input Voltage Amplitude [V]'); -ylabel('Maximum Frequency [Hz]'); -set(gca, 'yscale', 'log'); -#+end_src - -** Results -*** Matlab Init :noexport:ignore: +** 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 @@ -1447,49 +1415,51 @@ addpath('./matlab/'); addpath('./mat/'); #+end_src -*** First test -#+begin_src matlab -pd200_1V_1 = load('mat/tf_pd200_7_1V.mat', 't', 'Vin', 'Vout', 'Iout'); -#+end_src +** Maximum Frequency/Voltage to not overload the amplifier -#+begin_src matlab -Ts = (pd200_1V_1.t(end) - pd200_1V_1.t(1))/(length(pd200_1V_1.t)-1); -Fs = 1/Ts; -#+end_src +The maximum current is 1A [rms] which corresponds to 0.7A in amplitude of the sin wave. -#+begin_src matlab -win = hanning(ceil(1*Fs)); +The impedance of the capacitance is: +\[ Z_C(\omega) = \frac{1}{jC\omega} \] -[tf_1, f] = tfestimate(pd200_1V_1.Vin, pd200_1V_1.Vout, win, [], [], 1/Ts); -#+end_src +Therefore the relation between the output current amplitude and the output voltage amplitude for sinusoidal waves of frequency $\omega$: +\[ V_{out} = \frac{1}{C\omega} I_{out} \] + +Moreover, there is a gain of 20 between the input voltage and the output voltage: +\[ 20 V_{in} = \frac{1}{C\omega} I_{out} \] + +For a specified voltage input amplitude $V_{in}$, the maximum frequency at which the output current reaches its maximum value is: +\[ \omega_{\text{max}} = \frac{1}{20 C V_{in}} I_{out,\text{max}} \] + +$\omega_max$ as a function of $V_{in}$ is shown in Figure [[fig:max_frequency_voltage]]. #+begin_src matlab :exports none +Iout_max = 0.57; % Maximum output current [A] +C = 2.7e-6; % Load Capacitance [F] + +V_in = linspace(0, 5, 100); % Input Voltage [V] + +w_max = 1./(20*C*V_in) * Iout_max; % [rad/s] + figure; -tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None'); - -ax1 = nexttile([2,1]); -hold on; -plot(f, abs(tf_1)); -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -ylabel('Amplitude $V_{out}/V_{in}$ [V/V]'); set(gca, 'XTickLabel',[]); -hold off; -ylim([1e-1, 1e1]); - -ax2 = nexttile; -hold on; -plot(f, 180/pi*angle(tf_1)); -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -yticks(-360:15:360); -xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); -hold off; -ylim([-45, 15]); - -linkaxes([ax1,ax2],'x'); -xlim([1, 2e3]); +plot(V_in, w_max/2/pi); +xlabel('Input Voltage Amplitude [V]'); +ylabel('Maximum Frequency [Hz]'); +set(gca, 'yscale', 'log'); #+end_src -*** Results +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/max_frequency_voltage.pdf', 'width', 'wide', 'height', 'normal'); +#+end_src + +#+name: fig:max_frequency_voltage +#+caption: Maximum frequency as a function of the excitation voltage amplitude +#+RESULTS: +[[file:figs/max_frequency_voltage.png]] + +** Obtained Transfer Functions +Several identifications using sweep sin were performed with input voltage amplitude ranging from 0.1V to 4V. + #+begin_src matlab :exports none %% Load all the measurements Vin_ampl = {'0_1', '0_5', '1', '2', '4'}; @@ -1500,14 +1470,17 @@ for i = 1:length(Vin_ampl) end #+end_src -#+begin_src matlab +#+begin_src matlab :exports none +% Compute sampling Frequency Ts = (pd200{1}.t(end) - pd200{1}.t(1))/(length(pd200{1}.t)-1); Fs = 1/Ts; #+end_src -#+begin_src matlab +#+begin_src matlab :exports none +% Hannning Windows win = hanning(ceil(0.5*Fs)); +% Compute all the transfer functions for i = 1:length(pd200) [tf_est, f] = tfestimate(pd200{i}.Vin, 20*pd200{i}.Vout, win, [], [], 1/Ts); pd200{i}.tf = tf_est(f < 0.99*pd200{i}.notes.pd200.f_max); @@ -1515,6 +1488,9 @@ for i = 1:length(pd200) end #+end_src +The obtained frequency response functions are shown in Figure [[fig:pd200_tf_voltage]]. +As the input voltage increases, the voltage drop is increasing. + #+begin_src matlab :exports none figure; tiledlayout(2, 1, 'TileSpacing', 'None', 'Padding', 'None'); @@ -1546,27 +1522,65 @@ linkaxes([ax1,ax2],'x'); xlim([10, 5e3]); #+end_src -#+begin_src matlab -f_max = zeros(1, length(pd200)); -Vin_ampl = zeros(1, length(pd200)); -for i = 1:length(pd200) - f_max(i) = pd200{i}.notes.pd200.f_max; - Vin_ampl(i) = pd200{i}.notes.pd200.Vin; -end -#+end_src - -#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) -data2orgtable([Vin_ampl; f_max]', {}, {'Vin', 'Fmax'}, ' %.1f '); +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/pd200_tf_voltage.pdf', 'width', 'wide', 'height', 'tall'); #+end_src +#+name: fig:pd200_tf_voltage +#+caption: Transfer function for the PD200 amplitude between $V_{in}$ and $V_{out}$ for multiple voltage amplitudes #+RESULTS: -| Vin | Fmax | -|-----+--------| -| 0.1 | 5000.0 | -| 0.5 | 3801.3 | -| 1.0 | 1900.7 | -| 2.0 | 950.3 | -| 4.0 | 475.2 | +[[file:figs/pd200_tf_voltage.png]] + +The small signal transfer function of the amplifier can be approximated by a first order low pass filter. + +#+begin_src matlab +Gp = 19.95/(1 + s/2/pi/35e3); +#+end_src + +The comparison from the model and measurements are shown in Figure [[fig:tf_pd200_model]]. + +#+begin_src matlab :exports none +freqs = logspace(1, 4, 1000); +figure; +tiledlayout(2, 1, 'TileSpacing', 'None', 'Padding', 'None'); + +ax1 = nexttile; +hold on; +for i = 1:length(pd200) + plot(pd200{i}.f, abs(pd200{i}.tf)) +end +plot(freqs, abs(squeeze(freqresp(Gp, freqs, 'Hz'))), 'k--'); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Amplitude $V_{out}/V_{in}$ [V/V]'); set(gca, 'XTickLabel',[]); +hold off; +ylim([19, 21]); + +ax2 = nexttile; +hold on; +for i = 1:length(pd200) + plot(pd200{i}.f, 180/pi*angle(pd200{i}.tf), 'DisplayName', sprintf('$V_{in} = %.1f [V]$', pd200{i}.notes.pd200.Vin)) +end +plot(freqs, 180/pi*angle(squeeze(freqresp(Gp, freqs, 'Hz'))), 'k--', 'DisplayName', '$G_p(j\omega)$'); +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +yticks(-5:1:5); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +ylim([-3, 1]); +legend('location', 'southwest'); + +linkaxes([ax1,ax2],'x'); +xlim([10, 1e3]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/tf_pd200_model.pdf', 'width', 'wide', 'height', 'tall'); +#+end_src + +#+name: fig:tf_pd200_model +#+caption: Comparison of the model transfer function and the measured frequency response function +#+RESULTS: +[[file:figs/tf_pd200_model.png]] * Conclusion
Table 4: Measured characteristics, Manual characterstics and specified ones