381 lines
12 KiB
HTML
381 lines
12 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-17 lun. 08:41 -->
|
|
<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="#org89d3be5">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>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#org75c5c14">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>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#orgc4fcf01">3. Comparison PI / Cedrat</a>
|
|
<ul>
|
|
<li><a href="#org942d663">3.1. Results</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#org983e8a7">4. Impedance Measurement</a>
|
|
<ul>
|
|
<li><a href="#org0c06989">4.1. Cedrat Technology</a></li>
|
|
<li><a href="#orgf8cf0b3">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-org89d3be5" class="outline-2">
|
|
<h2 id="org89d3be5"><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 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_1] = 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);
|
|
[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);
|
|
[co_3, ~] = mscohere(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
|
|
</pre>
|
|
</div>
|
|
|
|
|
|
<div id="org46b30a6" 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-orgef44c57" class="outline-3">
|
|
<h3 id="orgef44c57"><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_1] = 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);
|
|
[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);
|
|
[co_3, ~] = mscohere(piezo3.V_in, piezo3.V_out, win, [], [], 1/Ts);
|
|
</pre>
|
|
</div>
|
|
|
|
|
|
<div id="orgfea7926" 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-org75c5c14" class="outline-2">
|
|
<h2 id="org75c5c14"><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 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_hi] = 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);
|
|
[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);
|
|
[co_lo, ~] = mscohere(lo.V_in, lo.V_out, win, [], [], 1/Ts);
|
|
</pre>
|
|
</div>
|
|
|
|
|
|
<div id="org4b115b8" 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-orgdffe7af" class="outline-3">
|
|
<h3 id="orgdffe7af"><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_hi] = 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);
|
|
[co_lo, ~] = mscohere(lo.V_in, lo.V_out, win, [], [], 1/Ts);
|
|
</pre>
|
|
</div>
|
|
|
|
|
|
<div id="org741394d" 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-orgc4fcf01" class="outline-2">
|
|
<h2 id="orgc4fcf01"><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 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="orga707bec" 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-org983e8a7" class="outline-2">
|
|
<h2 id="org983e8a7"><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-org0c06989" class="outline-3">
|
|
<h3 id="org0c06989"><span class="section-number-3">4.1</span> Cedrat Technology</h3>
|
|
<div class="outline-text-3" id="text-4-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 class="org-src-container">
|
|
<pre class="src src-matlab">C = 5e-6; % Capacitance in [F]
|
|
Ri = R * (V - Vp)/Vp; % Internal resistance [Ohm]
|
|
|
|
G_ce = 1/(1+Ri*C*s);
|
|
</pre>
|
|
</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 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-17 lun. 08:41</p>
|
|
</div>
|
|
</body>
|
|
</html>
|