Create Matlab file / Tangle scripts / Add CSS
This commit is contained in:
309
index.html
309
index.html
@@ -3,17 +3,16 @@
|
||||
"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-09-03 jeu. 14:08 -->
|
||||
<!-- 2020-11-10 mar. 12:34 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Measurement of Piezoelectric Amplifiers</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="Dehaeze Thomas" />
|
||||
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="./css/zenburn.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="./css/custom.css"/>
|
||||
<script type="text/javascript" src="./js/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="./js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="./js/readtheorg.js"></script>
|
||||
<script>MathJax = {
|
||||
tex: {
|
||||
@@ -31,38 +30,39 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org38c98dd">1. Effect of a change of capacitance</a>
|
||||
<li><a href="#orgbf340db">1. Effect of a change of capacitance</a>
|
||||
<ul>
|
||||
<li><a href="#orgd444b8f">1.1. Cedrat Technology</a></li>
|
||||
<li><a href="#orgc284cd7">1.2. PI</a></li>
|
||||
<li><a href="#org641e8fa">1.1. Cedrat Technology</a></li>
|
||||
<li><a href="#org1418126">1.2. PI</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org8e51ecb">2. Effect of a change in Voltage level</a>
|
||||
<li><a href="#org759da67">2. Effect of a change in Voltage level</a>
|
||||
<ul>
|
||||
<li><a href="#org78c90ac">2.1. Cedrat Technology</a></li>
|
||||
<li><a href="#org34fdac0">2.2. PI</a></li>
|
||||
<li><a href="#org6a05198">2.1. Cedrat Technology</a></li>
|
||||
<li><a href="#orga82864e">2.2. PI</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org51adef6">3. Comparison PI / Cedrat</a>
|
||||
<li><a href="#orgda5e46f">3. Comparison PI / Cedrat</a>
|
||||
<ul>
|
||||
<li><a href="#org8b66dbb">3.1. Results</a></li>
|
||||
<li><a href="#orgf81af9e">3.1. Results</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgbaa04fd">4. Impedance Measurement</a>
|
||||
<li><a href="#org2ac1966">4. Impedance Measurement</a>
|
||||
<ul>
|
||||
<li><a href="#org9225a6f">4.1. Cedrat Technology</a>
|
||||
<li><a href="#orgabf5b9a">4.1. Cedrat Technology</a>
|
||||
<ul>
|
||||
<li><a href="#orgf9c6ba6">4.1.1. Compute Impedance</a></li>
|
||||
<li><a href="#orgde9b8ca">4.1.2. Effect of Impedance on the phase drop</a></li>
|
||||
<li><a href="#org373f123">4.1.1. Compute Impedance</a></li>
|
||||
<li><a href="#orgc9002d7">4.1.2. Effect of Impedance on the phase drop</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org7d1ffb3">4.2. PI</a></li>
|
||||
<li><a href="#org3134308">4.2. PI</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org224f00f">5. New PI amplifier measurements</a>
|
||||
<li><a href="#org84728eb">5. New PI amplifier measurements</a>
|
||||
<ul>
|
||||
<li><a href="#orgeba0bc7">5.1. PI</a></li>
|
||||
<li><a href="#org08c572e">5.2. Transfer function of the Voltage Amplifier</a></li>
|
||||
<li><a href="#org5ca1305">5.1. PI</a></li>
|
||||
<li><a href="#org091ce77">5.2. Transfer function of the Voltage Amplifier</a></li>
|
||||
<li><a href="#org78406e1">5.3. With Load</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -73,29 +73,29 @@
|
||||
Two voltage amplifiers are tested:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>PI E-505.00 (<a href="https://www.pi-usa.us/en/products/controllers-drivers-motion-control-software/piezo-drivers-controllers-power-supplies-high-voltage-amplifiers/e-505-piezo-amplifier-module-602300/">link</a>)</li>
|
||||
<li>Cedrat Technology LA75B (<a href="https://www.cedrat-technologies.com/en/products/piezo-controllers/electronic-amplifier-boards.html">link</a>)</li>
|
||||
<li>PI E-505.00 (<a href="doc/E-505-Datasheet.pdf">doc</a>)</li>
|
||||
<li>Cedrat Technology LA75B (<a href="doc/LA75B.pdf">doc</a>)</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The piezoelectric actuator under test is an APA95ML from Cedrat technology.
|
||||
The piezoelectric actuator under test is an APA95ML from Cedrat technology (<a href="doc/APA95ML.pdf">doc</a>).
|
||||
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-org38c98dd" class="outline-2">
|
||||
<h2 id="org38c98dd"><span class="section-number-2">1</span> Effect of a change of capacitance</h2>
|
||||
<div id="outline-container-orgbf340db" class="outline-2">
|
||||
<h2 id="orgbf340db"><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-orgd444b8f" class="outline-3">
|
||||
<h3 id="orgd444b8f"><span class="section-number-3">1.1</span> Cedrat Technology</h3>
|
||||
<div id="outline-container-org641e8fa" class="outline-3">
|
||||
<h3 id="org641e8fa"><span class="section-number-3">1.1</span> Cedrat Technology</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
Load Data
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">piezo1 = load('mat/cedrat_la75b_med_1_stack.mat', 't', 'V_in', 'V_out');
|
||||
piezo2 = load('mat/cedrat_la75b_med_2_stack.mat', 't', 'V_in', 'V_out');
|
||||
piezo3 = load('mat/cedrat_la75b_med_3_stack.mat', 't', 'V_in', 'V_out');
|
||||
<pre class="src src-matlab">piezo1 = load(<span class="org-string">'cedrat_la75b_med_1_stack.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
piezo2 = load(<span class="org-string">'cedrat_la75b_med_2_stack.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
piezo3 = load(<span class="org-string">'cedrat_la75b_med_3_stack.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -103,17 +103,17 @@ piezo3 = load('mat/cedrat_la75b_med_3_stack.mat', 't', 'V_in', 'V_out');
|
||||
Compute Coherence and Transfer functions
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ts = 1e-4;
|
||||
win = hann(ceil(0.1/Ts));
|
||||
<pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
|
||||
win = hann(ceil(0.1<span class="org-type">/</span>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_1, f] = tfestimate(piezo1.V_in, piezo1.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_1, <span class="org-type">~</span>] = mscohere(piezo1.V_in, piezo1.V_out, win, [], [], 1<span class="org-type">/</span>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_2, <span class="org-type">~</span>] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_2, <span class="org-type">~</span>] = mscohere(piezo2.V_in, piezo2.V_out, win, [], [], 1<span class="org-type">/</span>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);
|
||||
[tf_3, <span class="org-type">~</span>] = tfestimate(piezo3.V_in, piezo3.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_3, <span class="org-type">~</span>] = mscohere(piezo3.V_in, piezo3.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -121,12 +121,12 @@ win = hann(ceil(0.1/Ts));
|
||||
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 class="src src-matlab">angle_delay = 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts), f, <span class="org-string">'Hz'</span>)));
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org0777d11" class="figure">
|
||||
<div id="org51f0c1d" 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>
|
||||
@@ -134,28 +134,28 @@ We remove the phase delay due to the time delay of the ADC/DAC:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc284cd7" class="outline-3">
|
||||
<h3 id="orgc284cd7"><span class="section-number-3">1.2</span> PI</h3>
|
||||
<div id="outline-container-org1418126" class="outline-3">
|
||||
<h3 id="org1418126"><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');
|
||||
piezo2 = load('mat/pi_505_high_2_stacks.mat', 't', 'V_in', 'V_out');
|
||||
piezo3 = load('mat/pi_505_high_3_stacks.mat', 't', 'V_in', 'V_out');
|
||||
<pre class="src src-matlab">piezo1 = load(<span class="org-string">'pi_505_high.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
piezo2 = load(<span class="org-string">'pi_505_high_2_stacks.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
piezo3 = load(<span class="org-string">'pi_505_high_3_stacks.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ts = 1e-4;
|
||||
win = hann(ceil(0.1/Ts));
|
||||
<pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
|
||||
win = hann(ceil(0.1<span class="org-type">/</span>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_1, f] = tfestimate(piezo1.V_in, piezo1.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_1, <span class="org-type">~</span>] = mscohere(piezo1.V_in, piezo1.V_out, win, [], [], 1<span class="org-type">/</span>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_2, <span class="org-type">~</span>] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_2, <span class="org-type">~</span>] = mscohere(piezo2.V_in, piezo2.V_out, win, [], [], 1<span class="org-type">/</span>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);
|
||||
[tf_3, <span class="org-type">~</span>] = tfestimate(piezo3.V_in, piezo3.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_3, <span class="org-type">~</span>] = mscohere(piezo3.V_in, piezo3.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -163,12 +163,12 @@ win = hann(ceil(0.1/Ts));
|
||||
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 class="src src-matlab">angle_delay = 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts), f, <span class="org-string">'Hz'</span>)));
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgd6b252a" class="figure">
|
||||
<div id="org94c038d" 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>
|
||||
@@ -177,32 +177,32 @@ We remove the phase delay due to the time delay of the ADC/DAC:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8e51ecb" class="outline-2">
|
||||
<h2 id="org8e51ecb"><span class="section-number-2">2</span> Effect of a change in Voltage level</h2>
|
||||
<div id="outline-container-org759da67" class="outline-2">
|
||||
<h2 id="org759da67"><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-org78c90ac" class="outline-3">
|
||||
<h3 id="org78c90ac"><span class="section-number-3">2.1</span> Cedrat Technology</h3>
|
||||
<div id="outline-container-org6a05198" class="outline-3">
|
||||
<h3 id="org6a05198"><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');
|
||||
me = load('mat/cedrat_la75b_med_1_stack.mat', 't', 'V_in', 'V_out');
|
||||
lo = load('mat/cedrat_la75b_low_1_stack.mat', 't', 'V_in', 'V_out');
|
||||
<pre class="src src-matlab">hi = load(<span class="org-string">'cedrat_la75b_high_1_stack.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
me = load(<span class="org-string">'cedrat_la75b_med_1_stack.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
lo = load(<span class="org-string">'cedrat_la75b_low_1_stack.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ts = 1e-4;
|
||||
win = hann(ceil(0.1/Ts));
|
||||
<pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
|
||||
win = hann(ceil(0.1<span class="org-type">/</span>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_hi, f] = tfestimate(hi.V_in, hi.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_hi, <span class="org-type">~</span>] = mscohere(hi.V_in, hi.V_out, win, [], [], 1<span class="org-type">/</span>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_me, <span class="org-type">~</span>] = tfestimate(me.V_in, me.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_me, <span class="org-type">~</span>] = mscohere(me.V_in, me.V_out, win, [], [], 1<span class="org-type">/</span>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);
|
||||
[tf_lo, <span class="org-type">~</span>] = tfestimate(lo.V_in, lo.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_lo, <span class="org-type">~</span>] = mscohere(lo.V_in, lo.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -210,12 +210,12 @@ win = hann(ceil(0.1/Ts));
|
||||
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 class="src src-matlab">angle_delay = 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts), f, <span class="org-string">'Hz'</span>)));
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org3fcbc82" class="figure">
|
||||
<div id="org413319b" 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>
|
||||
@@ -223,29 +223,29 @@ We remove the phase delay due to the time delay of the ADC/DAC:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org34fdac0" class="outline-3">
|
||||
<h3 id="org34fdac0"><span class="section-number-3">2.2</span> PI</h3>
|
||||
<div id="outline-container-orga82864e" class="outline-3">
|
||||
<h3 id="orga82864e"><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');
|
||||
lo = load('mat/pi_505_low.mat', 't', 'V_in', 'V_out');
|
||||
<pre class="src src-matlab">hi = load(<span class="org-string">'pi_505_high.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
lo = load(<span class="org-string">'pi_505_low.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ts = 1e-4;
|
||||
win = hann(ceil(0.1/Ts));
|
||||
<pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
|
||||
win = hann(ceil(0.1<span class="org-type">/</span>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_hi, f] = tfestimate(hi.V_in, hi.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_hi, <span class="org-type">~</span>] = mscohere(hi.V_in, hi.V_out, win, [], [], 1<span class="org-type">/</span>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);
|
||||
[tf_lo, <span class="org-type">~</span>] = tfestimate(lo.V_in, lo.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[co_lo, <span class="org-type">~</span>] = mscohere(lo.V_in, lo.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgf3a50ce" class="figure">
|
||||
<div id="orgfdd759e" 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>
|
||||
@@ -254,25 +254,25 @@ win = hann(ceil(0.1/Ts));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org51adef6" class="outline-2">
|
||||
<h2 id="org51adef6"><span class="section-number-2">3</span> Comparison PI / Cedrat</h2>
|
||||
<div id="outline-container-orgda5e46f" class="outline-2">
|
||||
<h2 id="orgda5e46f"><span class="section-number-2">3</span> Comparison PI / Cedrat</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-org8b66dbb" class="outline-3">
|
||||
<h3 id="org8b66dbb"><span class="section-number-3">3.1</span> Results</h3>
|
||||
<div id="outline-container-orgf81af9e" class="outline-3">
|
||||
<h3 id="orgf81af9e"><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');
|
||||
pi_results = load('mat/pi_505_high.mat', 't', 'V_in', 'V_out');
|
||||
<pre class="src src-matlab">ce_results = load(<span class="org-string">'cedrat_la75b_high_1_stack.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
pi_results = load(<span class="org-string">'pi_505_high.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'V_in'</span>, <span class="org-string">'V_out'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ts = 1e-4;
|
||||
win = hann(ceil(0.1/Ts));
|
||||
<pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
|
||||
win = hann(ceil(0.1<span class="org-type">/</span>Ts));
|
||||
|
||||
[tf_ce, f] = tfestimate(ce_results.V_in, ce_results.V_out, win, [], [], 1/Ts);
|
||||
[tf_pi, ~] = tfestimate(pi_results.V_in, pi_results.V_out, win, [], [], 1/Ts);
|
||||
[tf_ce, f] = tfestimate(ce_results.V_in, ce_results.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[tf_pi, <span class="org-type">~</span>] = tfestimate(pi_results.V_in, pi_results.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -280,12 +280,12 @@ win = hann(ceil(0.1/Ts));
|
||||
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 class="src src-matlab">angle_delay = 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts), f, <span class="org-string">'Hz'</span>)));
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org2e2f88d" class="figure">
|
||||
<div id="orga60ef1b" 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>
|
||||
@@ -294,8 +294,8 @@ We remove the phase delay due to the time delay of the ADC/DAC:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbaa04fd" class="outline-2">
|
||||
<h2 id="orgbaa04fd"><span class="section-number-2">4</span> Impedance Measurement</h2>
|
||||
<div id="outline-container-org2ac1966" class="outline-2">
|
||||
<h2 id="org2ac1966"><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.
|
||||
@@ -317,22 +317,22 @@ From the two values of voltage, the internal resistor value can be computed:
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9225a6f" class="outline-3">
|
||||
<h3 id="org9225a6f"><span class="section-number-3">4.1</span> Cedrat Technology</h3>
|
||||
<div id="outline-container-orgabf5b9a" class="outline-3">
|
||||
<h3 id="orgabf5b9a"><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-orgf9c6ba6" class="outline-4">
|
||||
<h4 id="orgf9c6ba6"><span class="section-number-4">4.1.1</span> Compute Impedance</h4>
|
||||
<div id="outline-container-org373f123" class="outline-4">
|
||||
<h4 id="org373f123"><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]
|
||||
Vp = 0.912; % Output Voltage with resistice load [V]
|
||||
<pre class="src src-matlab">R = 10; <span class="org-comment">% Resistive Load used [Ohm]</span>
|
||||
V = 0.998; <span class="org-comment">% Output Voltage without any load [V]</span>
|
||||
Vp = 0.912; <span class="org-comment">% Output Voltage with resistice load [V]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">R * (V - Vp)/Vp;
|
||||
<pre class="src src-matlab">R <span class="org-type">*</span> (V <span class="org-type">-</span> Vp)<span class="org-type">/</span>Vp;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -342,14 +342,14 @@ Vp = 0.912; % Output Voltage with resistice load [V]
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">R = 47; % Resistive Load used [Ohm]
|
||||
V = 4.960; % Output Voltage without any load [V]
|
||||
Vp = 4.874; % Output Voltage with resistice load [V]
|
||||
<pre class="src src-matlab">R = 47; <span class="org-comment">% Resistive Load used [Ohm]</span>
|
||||
V = 4.960; <span class="org-comment">% Output Voltage without any load [V]</span>
|
||||
Vp = 4.874; <span class="org-comment">% Output Voltage with resistice load [V]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">R * (V - Vp)/Vp;
|
||||
<pre class="src src-matlab">R <span class="org-type">*</span> (V <span class="org-type">-</span> Vp)<span class="org-type">/</span>Vp;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -359,25 +359,25 @@ Vp = 4.874; % Output Voltage with resistice load [V]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgde9b8ca" class="outline-4">
|
||||
<h4 id="orgde9b8ca"><span class="section-number-4">4.1.2</span> Effect of Impedance on the phase drop</h4>
|
||||
<div id="outline-container-orgc9002d7" class="outline-4">
|
||||
<h4 id="orgc9002d7"><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_1 = 5e-6; % Capacitance in [F]
|
||||
C_2 = 10e-6; % Capacitance in [F]
|
||||
C_3 = 15e-6; % Capacitance in [F]
|
||||
<pre class="src src-matlab">C_1 = 5e<span class="org-type">-</span>6; <span class="org-comment">% Capacitance in [F]</span>
|
||||
C_2 = 10e<span class="org-type">-</span>6; <span class="org-comment">% Capacitance in [F]</span>
|
||||
C_3 = 15e<span class="org-type">-</span>6; <span class="org-comment">% Capacitance in [F]</span>
|
||||
|
||||
Ri = R * (V - Vp)/Vp; % Internal resistance [Ohm]
|
||||
Ri = R <span class="org-type">*</span> (V <span class="org-type">-</span> Vp)<span class="org-type">/</span>Vp; <span class="org-comment">% Internal resistance [Ohm]</span>
|
||||
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);
|
||||
G_1 = G0<span class="org-type">/</span>(1<span class="org-type">+</span>Ri<span class="org-type">*</span>C_1<span class="org-type">*</span>s);
|
||||
G_2 = G0<span class="org-type">/</span>(1<span class="org-type">+</span>Ri<span class="org-type">*</span>C_2<span class="org-type">*</span>s);
|
||||
G_3 = G0<span class="org-type">/</span>(1<span class="org-type">+</span>Ri<span class="org-type">*</span>C_3<span class="org-type">*</span>s);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orge30d566" class="figure">
|
||||
<div id="orgcbac798" 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>
|
||||
@@ -386,18 +386,18 @@ G_3 = G0/(1+Ri*C_3*s);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7d1ffb3" class="outline-3">
|
||||
<h3 id="org7d1ffb3"><span class="section-number-3">4.2</span> PI</h3>
|
||||
<div id="outline-container-org3134308" class="outline-3">
|
||||
<h3 id="org3134308"><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]
|
||||
V = 1.059; % Output Voltage without any load [V]
|
||||
Vp = 0.828; % Output Voltage with resistice load [V]
|
||||
<pre class="src src-matlab">R = 10; <span class="org-comment">% Resistive Load used [Ohm]</span>
|
||||
V = 1.059; <span class="org-comment">% Output Voltage without any load [V]</span>
|
||||
Vp = 0.828; <span class="org-comment">% Output Voltage with resistice load [V]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">R * (V - Vp)/Vp
|
||||
<pre class="src src-matlab">R <span class="org-type">*</span> (V <span class="org-type">-</span> Vp)<span class="org-type">/</span>Vp
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -407,14 +407,14 @@ Vp = 0.828; % Output Voltage with resistice load [V]
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">R = 10; % Resistive Load used [Ohm]
|
||||
V = 2.092; % Output Voltage without any load [V]
|
||||
Vp = 1.637; % Output Voltage with resistice load [V]
|
||||
<pre class="src src-matlab">R = 10; <span class="org-comment">% Resistive Load used [Ohm]</span>
|
||||
V = 2.092; <span class="org-comment">% Output Voltage without any load [V]</span>
|
||||
Vp = 1.637; <span class="org-comment">% Output Voltage with resistice load [V]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">R * (V - Vp)/Vp
|
||||
<pre class="src src-matlab">R <span class="org-type">*</span> (V <span class="org-type">-</span> Vp)<span class="org-type">/</span>Vp
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -425,12 +425,12 @@ Vp = 1.637; % Output Voltage with resistice load [V]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org224f00f" class="outline-2">
|
||||
<h2 id="org224f00f"><span class="section-number-2">5</span> New PI amplifier measurements</h2>
|
||||
<div id="outline-container-org84728eb" class="outline-2">
|
||||
<h2 id="org84728eb"><span class="section-number-2">5</span> New PI amplifier measurements</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
</div>
|
||||
<div id="outline-container-orgeba0bc7" class="outline-3">
|
||||
<h3 id="orgeba0bc7"><span class="section-number-3">5.1</span> PI</h3>
|
||||
<div id="outline-container-org5ca1305" class="outline-3">
|
||||
<h3 id="org5ca1305"><span class="section-number-3">5.1</span> PI</h3>
|
||||
<div class="outline-text-3" id="text-5-1">
|
||||
<p>
|
||||
Three measurements are done:
|
||||
@@ -442,29 +442,31 @@ Three measurements are done:
|
||||
</ul>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">pi_sr_min = load('mat/pi_slew_rate_min.mat');
|
||||
pi_sr_max = load('mat/pi_slew_rate_max.mat');
|
||||
pi_sr_max_notch = load('mat/pi_slew_rate_max_notch_high.mat');
|
||||
<pre class="src src-matlab">pi_sr_min = load(<span class="org-string">'pi_slew_rate_min.mat'</span>);
|
||||
pi_sr_max = load(<span class="org-string">'pi_slew_rate_max.mat'</span>);
|
||||
pi_sr_max_notch = load(<span class="org-string">'pi_slew_rate_max_notch_high.mat'</span>);
|
||||
pi_sr_load = load(<span class="org-string">'pi_slew_rate_max_notch_high_2stacks.mat'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ts = 1e-4;
|
||||
win = hann(ceil(0.1/Ts));
|
||||
<pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
|
||||
win = hann(ceil(0.1<span class="org-type">/</span>Ts));
|
||||
|
||||
[tf_sr_min, f] = tfestimate(pi_sr_min.V_in, pi_sr_min.V_out, win, [], [], 1/Ts);
|
||||
[tf_sr_max, ~] = tfestimate(pi_sr_max.V_in, pi_sr_max.V_out, win, [], [], 1/Ts);
|
||||
[tf_sr_max_notch, ~] = tfestimate(pi_sr_max_notch.V_in, pi_sr_max_notch.V_out, win, [], [], 1/Ts);
|
||||
[tf_sr_min, f] = tfestimate(pi_sr_min.V_in, pi_sr_min.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[tf_sr_max, <span class="org-type">~</span>] = tfestimate(pi_sr_max.V_in, pi_sr_max.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[tf_sr_max_notch, <span class="org-type">~</span>] = tfestimate(pi_sr_max_notch.V_in, pi_sr_max_notch.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
[tf_sr_load, <span class="org-type">~</span>] = tfestimate(pi_sr_load.V_in, pi_sr_load.V_out, win, [], [], 1<span class="org-type">/</span>Ts);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">angle_delay = 180/pi*angle(squeeze(freqresp(exp(-s*Ts), f, 'Hz')));
|
||||
<pre class="src src-matlab">angle_delay = 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts), f, <span class="org-string">'Hz'</span>)));
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orga46f3c0" class="figure">
|
||||
<div id="org431d6ed" class="figure">
|
||||
<p><img src="figs/pi_slew_rate_notch.png" alt="pi_slew_rate_notch.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>Effect of a change in the slew rate limitation and notch filter</p>
|
||||
@@ -472,16 +474,29 @@ win = hann(ceil(0.1/Ts));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org08c572e" class="outline-3">
|
||||
<h3 id="org08c572e"><span class="section-number-3">5.2</span> Transfer function of the Voltage Amplifier</h3>
|
||||
<div id="outline-container-org091ce77" class="outline-3">
|
||||
<h3 id="org091ce77"><span class="section-number-3">5.2</span> Transfer function of the Voltage Amplifier</h3>
|
||||
<div class="outline-text-3" id="text-5-2">
|
||||
<p>
|
||||
The identified transfer function still seems to match the one of a notch filter at 5kHz.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">w_nf = 2*pi*5e3; % Notch Filter Frequency [rad/s]
|
||||
G = 10.5*(s^2 + 2*w_nf*0.12*s + w_nf^2)/(s^2 + 2*w_nf*s + w_nf^2);
|
||||
<pre class="src src-matlab">w_nf = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>5e3; <span class="org-comment">% Notch Filter Frequency [rad/s]</span>
|
||||
G = 10.5<span class="org-type">*</span>(s<span class="org-type">^</span>2 <span class="org-type">+</span> 2<span class="org-type">*</span>w_nf<span class="org-type">*</span>0.12<span class="org-type">*</span>s <span class="org-type">+</span> w_nf<span class="org-type">^</span>2)<span class="org-type">/</span>(s<span class="org-type">^</span>2 <span class="org-type">+</span> 2<span class="org-type">*</span>w_nf<span class="org-type">*</span>s <span class="org-type">+</span> w_nf<span class="org-type">^</span>2);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org78406e1" class="outline-3">
|
||||
<h3 id="org78406e1"><span class="section-number-3">5.3</span> With Load</h3>
|
||||
<div class="outline-text-3" id="text-5-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">R = 2.78; <span class="org-comment">% Output Impedance [Ohm]</span>
|
||||
C = 9e<span class="org-type">-</span>6; <span class="org-comment">% Load capacitance [F]</span>
|
||||
|
||||
G_amp = 10<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">*</span>R<span class="org-type">*</span>C);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
@@ -490,7 +505,7 @@ G = 10.5*(s^2 + 2*w_nf*0.12*s + w_nf^2)/(s^2 + 2*w_nf*s + w_nf^2);
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2020-09-03 jeu. 14:08</p>
|
||||
<p class="date">Created: 2020-11-10 mar. 12:34</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user