<?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-09-03 jeu. 14:08 --> <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="#org38c98dd">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> </ul> </li> <li><a href="#org8e51ecb">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> </ul> </li> <li><a href="#org51adef6">3. Comparison PI / Cedrat</a> <ul> <li><a href="#org8b66dbb">3.1. Results</a></li> </ul> </li> <li><a href="#orgbaa04fd">4. Impedance Measurement</a> <ul> <li><a href="#org9225a6f">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> </ul> </li> <li><a href="#org7d1ffb3">4.2. PI</a></li> </ul> </li> <li><a href="#org224f00f">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> </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-org38c98dd" class="outline-2"> <h2 id="org38c98dd"><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 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="org0777d11" 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-orgc284cd7" class="outline-3"> <h3 id="orgc284cd7"><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="orgd6b252a" 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-org8e51ecb" class="outline-2"> <h2 id="org8e51ecb"><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 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="org3fcbc82" 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-org34fdac0" class="outline-3"> <h3 id="org34fdac0"><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="orgf3a50ce" 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-org51adef6" class="outline-2"> <h2 id="org51adef6"><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 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="org2e2f88d" 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-orgbaa04fd" class="outline-2"> <h2 id="orgbaa04fd"><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-org9225a6f" class="outline-3"> <h3 id="org9225a6f"><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 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-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 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="orge30d566" 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-org7d1ffb3" class="outline-3"> <h3 id="org7d1ffb3"><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 id="outline-container-org224f00f" class="outline-2"> <h2 id="org224f00f"><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 class="outline-text-3" id="text-5-1"> <p> Three measurements are done: </p> <ul class="org-ul"> <li>Slew Rate limitation at maximum</li> <li>Slew Rate limitation at minimum</li> <li>Notch Filter at maximum frequency</li> </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> </div> <div class="org-src-container"> <pre class="src src-matlab">Ts = 1e-4; win = hann(ceil(0.1/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); </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> </div> <div id="orga46f3c0" 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> </div> </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 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> </div> </div> </div> </div> </div> <div id="postamble" class="status"> <p class="author">Author: Dehaeze Thomas</p> <p class="date">Created: 2020-09-03 jeu. 14:08</p> </div> </body> </html>