Remove phase drop due to ADC time delay

This commit is contained in:
2020-08-20 12:48:28 +02:00
parent 6a2457fb32
commit 35639274f8
11 changed files with 211 additions and 103 deletions

View File

@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-08-17 lun. 08:41 -->
<!-- 2020-08-20 jeu. 12:48 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Measurement of Piezoelectric Amplifiers</title>
<meta name="generator" content="Org mode" />
@@ -31,27 +31,32 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org89d3be5">1. Effect of a change of capacitance</a>
<li><a href="#org4336ef2">1. Effect of a change of capacitance</a>
<ul>
<li><a href="#org1211753">1.1. Cedrat Technology</a></li>
<li><a href="#orgef44c57">1.2. PI</a></li>
<li><a href="#org5f28beb">1.1. Cedrat Technology</a></li>
<li><a href="#org657a286">1.2. PI</a></li>
</ul>
</li>
<li><a href="#org75c5c14">2. Effect of a change in Voltage level</a>
<li><a href="#org281ab28">2. Effect of a change in Voltage level</a>
<ul>
<li><a href="#org1454a61">2.1. Cedrat Technology</a></li>
<li><a href="#orgdffe7af">2.2. PI</a></li>
<li><a href="#orgcd8bd87">2.1. Cedrat Technology</a></li>
<li><a href="#orgf9d7754">2.2. PI</a></li>
</ul>
</li>
<li><a href="#orgc4fcf01">3. Comparison PI / Cedrat</a>
<li><a href="#orgcdf9f3d">3. Comparison PI / Cedrat</a>
<ul>
<li><a href="#org942d663">3.1. Results</a></li>
<li><a href="#org338c451">3.1. Results</a></li>
</ul>
</li>
<li><a href="#org983e8a7">4. Impedance Measurement</a>
<li><a href="#orga918cc8">4. Impedance Measurement</a>
<ul>
<li><a href="#org0c06989">4.1. Cedrat Technology</a></li>
<li><a href="#orgf8cf0b3">4.2. PI</a></li>
<li><a href="#org9e3aa02">4.1. Cedrat Technology</a>
<ul>
<li><a href="#org84e00e0">4.1.1. Compute Impedance</a></li>
<li><a href="#orge2e6f5d">4.1.2. Effect of Impedance on the phase drop</a></li>
</ul>
</li>
<li><a href="#orgf166435">4.2. PI</a></li>
</ul>
</li>
</ul>
@@ -71,12 +76,12 @@ The piezoelectric actuator under test is an APA95ML from Cedrat technology.
It contains three stacks with a capacitance of \(5 \mu F\) each that can be connected independently to the amplifier.
</p>
<div id="outline-container-org89d3be5" class="outline-2">
<h2 id="org89d3be5"><span class="section-number-2">1</span> Effect of a change of capacitance</h2>
<div id="outline-container-org4336ef2" class="outline-2">
<h2 id="org4336ef2"><span class="section-number-2">1</span> Effect of a change of capacitance</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org1211753" class="outline-3">
<h3 id="org1211753"><span class="section-number-3">1.1</span> Cedrat Technology</h3>
<div id="outline-container-org5f28beb" class="outline-3">
<h3 id="org5f28beb"><span class="section-number-3">1.1</span> Cedrat Technology</h3>
<div class="outline-text-3" id="text-1-1">
<p>
Load Data
@@ -95,21 +100,27 @@ Compute Coherence and Transfer functions
<pre class="src src-matlab">Ts = 1e-4;
win = hann(ceil(0.1/Ts));
[tf_1, f_1] = tfestimate(piezo1.V_in, piezo1.V_out, win, [], [], 1/Ts);
[tf_1, f] = tfestimate(piezo1.V_in, piezo1.V_out, win, [], [], 1/Ts);
[co_1, ~] = mscohere(piezo1.V_in, piezo1.V_out, win, [], [], 1/Ts);
[tf_2, f_2] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
[tf_2, ~] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
[co_2, ~] = mscohere(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
[tf_3, f_3] = tfestimate(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
[tf_3, ~] = tfestimate(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
[co_3, ~] = mscohere(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
</pre>
</div>
<p>
We remove the phase delay due to the time delay of the ADC/DAC:
</p>
<div class="org-src-container">
<pre class="src src-matlab">angle_delay = 180/pi*angle(squeeze(freqresp(exp(-s*Ts), f, 'Hz')));
</pre>
</div>
<div id="org46b30a6" class="figure">
<div id="orgec9af25" class="figure">
<p><img src="figs/change_capa_cedrat.png" alt="change_capa_cedrat.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Effect of a change of the piezo capacitance on the Amplifier transfer function</p>
@@ -117,8 +128,8 @@ win = hann(ceil(0.1/Ts));
</div>
</div>
<div id="outline-container-orgef44c57" class="outline-3">
<h3 id="orgef44c57"><span class="section-number-3">1.2</span> PI</h3>
<div id="outline-container-org657a286" class="outline-3">
<h3 id="org657a286"><span class="section-number-3">1.2</span> PI</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-matlab">piezo1 = load('mat/pi_505_high.mat', 't', 'V_in', 'V_out');
@@ -131,21 +142,27 @@ piezo3 = load('mat/pi_505_high_3_stacks.mat', 't', 'V_in', 'V_out');
<pre class="src src-matlab">Ts = 1e-4;
win = hann(ceil(0.1/Ts));
[tf_1, f_1] = tfestimate(piezo1.V_in, piezo1.V_out, win, [], [], 1/Ts);
[tf_1, f] = tfestimate(piezo1.V_in, piezo1.V_out, win, [], [], 1/Ts);
[co_1, ~] = mscohere(piezo1.V_in, piezo1.V_out, win, [], [], 1/Ts);
[tf_2, f_2] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
[tf_2, ~] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
[co_2, ~] = mscohere(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
[tf_3, f_3] = tfestimate(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
[tf_3, ~] = tfestimate(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
[co_3, ~] = mscohere(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
</pre>
</div>
<p>
We remove the phase delay due to the time delay of the ADC/DAC:
</p>
<div class="org-src-container">
<pre class="src src-matlab">angle_delay = 180/pi*angle(squeeze(freqresp(exp(-s*Ts), f, 'Hz')));
</pre>
</div>
<div id="orgfea7926" class="figure">
<div id="org5423cb8" class="figure">
<p><img src="figs/change_capa_pi.png" alt="change_capa_pi.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Effect of a change of the piezo capacitance on the Amplifier transfer function</p>
@@ -154,12 +171,12 @@ win = hann(ceil(0.1/Ts));
</div>
</div>
<div id="outline-container-org75c5c14" class="outline-2">
<h2 id="org75c5c14"><span class="section-number-2">2</span> Effect of a change in Voltage level</h2>
<div id="outline-container-org281ab28" class="outline-2">
<h2 id="org281ab28"><span class="section-number-2">2</span> Effect of a change in Voltage level</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org1454a61" class="outline-3">
<h3 id="org1454a61"><span class="section-number-3">2.1</span> Cedrat Technology</h3>
<div id="outline-container-orgcd8bd87" class="outline-3">
<h3 id="orgcd8bd87"><span class="section-number-3">2.1</span> Cedrat Technology</h3>
<div class="outline-text-3" id="text-2-1">
<div class="org-src-container">
<pre class="src src-matlab">hi = load('mat/cedrat_la75b_high_1_stack.mat', 't', 'V_in', 'V_out');
@@ -172,19 +189,27 @@ lo = load('mat/cedrat_la75b_low_1_stack.mat', 't', 'V_in', 'V_out');
<pre class="src src-matlab">Ts = 1e-4;
win = hann(ceil(0.1/Ts));
[tf_hi, f_hi] = tfestimate(hi.V_in, hi.V_out, win, [], [], 1/Ts);
[tf_hi, f] = tfestimate(hi.V_in, hi.V_out, win, [], [], 1/Ts);
[co_hi, ~] = mscohere(hi.V_in, hi.V_out, win, [], [], 1/Ts);
[tf_me, f_me] = tfestimate(me.V_in, me.V_out, win, [], [], 1/Ts);
[tf_me, ~] = tfestimate(me.V_in, me.V_out, win, [], [], 1/Ts);
[co_me, ~] = mscohere(me.V_in, me.V_out, win, [], [], 1/Ts);
[tf_lo, f_lo] = tfestimate(lo.V_in, lo.V_out, win, [], [], 1/Ts);
[tf_lo, ~] = tfestimate(lo.V_in, lo.V_out, win, [], [], 1/Ts);
[co_lo, ~] = mscohere(lo.V_in, lo.V_out, win, [], [], 1/Ts);
</pre>
</div>
<p>
We remove the phase delay due to the time delay of the ADC/DAC:
</p>
<div class="org-src-container">
<pre class="src src-matlab">angle_delay = 180/pi*angle(squeeze(freqresp(exp(-s*Ts), f, 'Hz')));
</pre>
</div>
<div id="org4b115b8" class="figure">
<div id="org0ee1f80" class="figure">
<p><img src="figs/change_level_cedrat.png" alt="change_level_cedrat.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Effect of a change of voltage level on the Amplifier transfer function</p>
@@ -192,8 +217,8 @@ win = hann(ceil(0.1/Ts));
</div>
</div>
<div id="outline-container-orgdffe7af" class="outline-3">
<h3 id="orgdffe7af"><span class="section-number-3">2.2</span> PI</h3>
<div id="outline-container-orgf9d7754" class="outline-3">
<h3 id="orgf9d7754"><span class="section-number-3">2.2</span> PI</h3>
<div class="outline-text-3" id="text-2-2">
<div class="org-src-container">
<pre class="src src-matlab">hi = load('mat/pi_505_high.mat', 't', 'V_in', 'V_out');
@@ -205,16 +230,16 @@ lo = load('mat/pi_505_low.mat', 't', 'V_in', 'V_out');
<pre class="src src-matlab">Ts = 1e-4;
win = hann(ceil(0.1/Ts));
[tf_hi, f_hi] = tfestimate(hi.V_in, hi.V_out, win, [], [], 1/Ts);
[tf_hi, f] = tfestimate(hi.V_in, hi.V_out, win, [], [], 1/Ts);
[co_hi, ~] = mscohere(hi.V_in, hi.V_out, win, [], [], 1/Ts);
[tf_lo, f_lo] = tfestimate(lo.V_in, lo.V_out, win, [], [], 1/Ts);
[tf_lo, ~] = tfestimate(lo.V_in, lo.V_out, win, [], [], 1/Ts);
[co_lo, ~] = mscohere(lo.V_in, lo.V_out, win, [], [], 1/Ts);
</pre>
</div>
<div id="org741394d" class="figure">
<div id="org83d2edd" class="figure">
<p><img src="figs/change_level_pi.png" alt="change_level_pi.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Effect of a change of voltage level on the Amplifier transfer function</p>
@@ -223,12 +248,12 @@ win = hann(ceil(0.1/Ts));
</div>
</div>
<div id="outline-container-orgc4fcf01" class="outline-2">
<h2 id="orgc4fcf01"><span class="section-number-2">3</span> Comparison PI / Cedrat</h2>
<div id="outline-container-orgcdf9f3d" class="outline-2">
<h2 id="orgcdf9f3d"><span class="section-number-2">3</span> Comparison PI / Cedrat</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-org942d663" class="outline-3">
<h3 id="org942d663"><span class="section-number-3">3.1</span> Results</h3>
<div id="outline-container-org338c451" class="outline-3">
<h3 id="org338c451"><span class="section-number-3">3.1</span> Results</h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-matlab">ce_results = load('mat/cedrat_la75b_high_1_stack.mat', 't', 'V_in', 'V_out');
@@ -254,7 +279,7 @@ We remove the phase delay due to the time delay of the ADC/DAC:
</div>
<div id="orga707bec" class="figure">
<div id="orgfe80000" class="figure">
<p><img src="figs/tf_amplifiers_comp.png" alt="tf_amplifiers_comp.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Comparison of the two Amplifier transfer functions</p>
@@ -263,8 +288,8 @@ We remove the phase delay due to the time delay of the ADC/DAC:
</div>
</div>
<div id="outline-container-org983e8a7" class="outline-2">
<h2 id="org983e8a7"><span class="section-number-2">4</span> Impedance Measurement</h2>
<div id="outline-container-orga918cc8" class="outline-2">
<h2 id="orga918cc8"><span class="section-number-2">4</span> Impedance Measurement</h2>
<div class="outline-text-2" id="text-4">
<p>
The goal is to experimentally measure the output impedance of the voltage amplifiers.
@@ -286,9 +311,13 @@ From the two values of voltage, the internal resistor value can be computed:
</p>
</div>
<div id="outline-container-org0c06989" class="outline-3">
<h3 id="org0c06989"><span class="section-number-3">4.1</span> Cedrat Technology</h3>
<div id="outline-container-org9e3aa02" class="outline-3">
<h3 id="org9e3aa02"><span class="section-number-3">4.1</span> Cedrat Technology</h3>
<div class="outline-text-3" id="text-4-1">
</div>
<div id="outline-container-org84e00e0" class="outline-4">
<h4 id="org84e00e0"><span class="section-number-4">4.1.1</span> Compute Impedance</h4>
<div class="outline-text-4" id="text-4-1-1">
<div class="org-src-container">
<pre class="src src-matlab">R = 10; % Resistive Load used [Ohm]
V = 0.998; % Output Voltage without any load [V]
@@ -321,20 +350,38 @@ Vp = 4.874; % Output Voltage with resistice load [V]
<pre class="example">
0.8293
</pre>
</div>
</div>
<div id="outline-container-orge2e6f5d" class="outline-4">
<h4 id="orge2e6f5d"><span class="section-number-4">4.1.2</span> Effect of Impedance on the phase drop</h4>
<div class="outline-text-4" id="text-4-1-2">
<div class="org-src-container">
<pre class="src src-matlab">C = 5e-6; % Capacitance in [F]
Ri = R * (V - Vp)/Vp; % Internal resistance [Ohm]
<pre class="src src-matlab">C_1 = 5e-6; % Capacitance in [F]
C_2 = 10e-6; % Capacitance in [F]
C_3 = 15e-6; % Capacitance in [F]
G_ce = 1/(1+Ri*C*s);
Ri = R * (V - Vp)/Vp; % Internal resistance [Ohm]
G0 = 20;
G_1 = G0/(1+Ri*C_1*s);
G_2 = G0/(1+Ri*C_2*s);
G_3 = G0/(1+Ri*C_3*s);
</pre>
</div>
<div id="orgeb39756" class="figure">
<p><img src="figs/change_capa_cedrat.png" alt="change_capa_cedrat.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Effect of a change of the piezo capacitance on the Amplifier transfer function</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgf8cf0b3" class="outline-3">
<h3 id="orgf8cf0b3"><span class="section-number-3">4.2</span> PI</h3>
<div id="outline-container-orgf166435" class="outline-3">
<h3 id="orgf166435"><span class="section-number-3">4.2</span> PI</h3>
<div class="outline-text-3" id="text-4-2">
<div class="org-src-container">
<pre class="src src-matlab">R = 10; % Resistive Load used [Ohm]
@@ -374,7 +421,7 @@ Vp = 1.637; % Output Voltage with resistice load [V]
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-08-17 lun. 08:41</p>
<p class="date">Created: 2020-08-20 jeu. 12:48</p>
</div>
</body>
</html>