428 lines
13 KiB
HTML
428 lines
13 KiB
HTML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"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-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" />
|
|
<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"/>
|
|
<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: {
|
|
tags: 'ams',
|
|
macros: {bm: ["\\boldsymbol{#1}",1],}
|
|
}
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="content">
|
|
<h1 class="title">Measurement of Piezoelectric Amplifiers</h1>
|
|
<div id="table-of-contents">
|
|
<h2>Table of Contents</h2>
|
|
<div id="text-table-of-contents">
|
|
<ul>
|
|
<li><a href="#org4336ef2">1. Effect of a change of capacitance</a>
|
|
<ul>
|
|
<li><a href="#org5f28beb">1.1. Cedrat Technology</a></li>
|
|
<li><a href="#org657a286">1.2. PI</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#org281ab28">2. Effect of a change in Voltage level</a>
|
|
<ul>
|
|
<li><a href="#orgcd8bd87">2.1. Cedrat Technology</a></li>
|
|
<li><a href="#orgf9d7754">2.2. PI</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#orgcdf9f3d">3. Comparison PI / Cedrat</a>
|
|
<ul>
|
|
<li><a href="#org338c451">3.1. Results</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#orga918cc8">4. Impedance Measurement</a>
|
|
<ul>
|
|
<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>
|
|
</div>
|
|
</div>
|
|
|
|
<p>
|
|
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>
|
|
</ul>
|
|
|
|
<p>
|
|
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-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-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
|
|
</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>
|
|
</div>
|
|
|
|
<p>
|
|
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));
|
|
|
|
[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, ~] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
|
|
[co_2, ~] = mscohere(piezo2.V_in, piezo2.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="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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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');
|
|
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>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">Ts = 1e-4;
|
|
win = hann(ceil(0.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, ~] = tfestimate(piezo2.V_in, piezo2.V_out, win, [], [], 1/Ts);
|
|
[co_2, ~] = mscohere(piezo2.V_in, piezo2.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="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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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-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');
|
|
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>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">Ts = 1e-4;
|
|
win = hann(ceil(0.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, ~] = tfestimate(me.V_in, me.V_out, win, [], [], 1/Ts);
|
|
[co_me, ~] = mscohere(me.V_in, me.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="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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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');
|
|
lo = load('mat/pi_505_low.mat', 't', 'V_in', 'V_out');
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">Ts = 1e-4;
|
|
win = hann(ceil(0.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, ~] = 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="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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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-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');
|
|
pi_results = load('mat/pi_505_high.mat', 't', 'V_in', 'V_out');
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">Ts = 1e-4;
|
|
win = hann(ceil(0.1/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);
|
|
</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="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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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.
|
|
</p>
|
|
|
|
<p>
|
|
To do so, the output voltage is first measure without any load (\(V\)).
|
|
It is then measure when a 10Ohm load is used (\(V^\prime\)).
|
|
</p>
|
|
|
|
<p>
|
|
The load (\(R = 10\Omega\)) and the internal resistor (\(R_i\)) form a voltage divider, and thus:
|
|
\[ V^\prime = \frac{R}{R + R_i} V \]
|
|
</p>
|
|
|
|
<p>
|
|
From the two values of voltage, the internal resistor value can be computed:
|
|
\[ R_i = R \frac{V - V^\prime}{V^\prime} \]
|
|
</p>
|
|
</div>
|
|
|
|
<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]
|
|
Vp = 0.912; % Output Voltage with resistice load [V]
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">R * (V - Vp)/Vp;
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
0.94298
|
|
</pre>
|
|
|
|
|
|
<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>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">R * (V - Vp)/Vp;
|
|
</pre>
|
|
</div>
|
|
|
|
<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_1 = 5e-6; % Capacitance in [F]
|
|
C_2 = 10e-6; % Capacitance in [F]
|
|
C_3 = 15e-6; % Capacitance in [F]
|
|
|
|
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-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]
|
|
V = 1.059; % Output Voltage without any load [V]
|
|
Vp = 0.828; % Output Voltage with resistice load [V]
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">R * (V - Vp)/Vp
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
2.7899
|
|
</pre>
|
|
|
|
|
|
<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>
|
|
</div>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">R * (V - Vp)/Vp
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
2.7795
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="postamble" class="status">
|
|
<p class="author">Author: Dehaeze Thomas</p>
|
|
<p class="date">Created: 2020-08-20 jeu. 12:48</p>
|
|
</div>
|
|
</body>
|
|
</html>
|