Add few figures

This commit is contained in:
Thomas Dehaeze 2020-11-03 10:11:21 +01:00
parent 3859eca154
commit 054ae6e094
13 changed files with 190 additions and 190 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2020-08-21 ven. 15:26 --> <!-- 2020-11-03 mar. 10:11 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Test Bench APA95ML</title> <title>Test Bench APA95ML</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
@ -27,50 +27,50 @@
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org6c2cfcc">1. Setup</a> <li><a href="#orgdcc1f5c">1. Setup</a>
<ul> <ul>
<li><a href="#org9e42c6d">1.1. Parameters</a></li> <li><a href="#orgf7defdc">1.1. Parameters</a></li>
<li><a href="#org8bb3ebf">1.2. Filter White Noise</a></li> <li><a href="#org6e2beab">1.2. Filter White Noise</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org229c57e">2. Run Experiment and Save Data</a> <li><a href="#org6fb223c">2. Run Experiment and Save Data</a>
<ul> <ul>
<li><a href="#org79522ee">2.1. Load Data</a></li> <li><a href="#orge108931">2.1. Load Data</a></li>
<li><a href="#org050454c">2.2. Save Data</a></li> <li><a href="#org4c370ec">2.2. Save Data</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org178348e">3. Huddle Test</a> <li><a href="#org78464fb">3. Huddle Test</a>
<ul> <ul>
<li><a href="#org7eb915d">3.1. Time Domain Data</a></li> <li><a href="#org1d3dde0">3.1. Time Domain Data</a></li>
<li><a href="#org959048f">3.2. PSD of Measurement Noise</a></li> <li><a href="#org01c740a">3.2. PSD of Measurement Noise</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org4742221">4. Transfer Function Estimation using the DAC as the driver</a> <li><a href="#orgf4b384a">4. Transfer Function Estimation using the DAC as the driver</a>
<ul> <ul>
<li><a href="#org3d81de2">4.1. Time Domain Data</a></li> <li><a href="#orgc3e175d">4.1. Time Domain Data</a></li>
<li><a href="#org39e0140">4.2. Comparison of the PSD with Huddle Test</a></li> <li><a href="#orge6e7a4a">4.2. Comparison of the PSD with Huddle Test</a></li>
<li><a href="#org8b00bfb">4.3. Compute TF estimate and Coherence</a></li> <li><a href="#org4fe238a">4.3. Compute TF estimate and Coherence</a></li>
<li><a href="#orgbf49872">4.4. Comparison with the FEM model</a></li> <li><a href="#orgdfa1999">4.4. Comparison with the FEM model</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orga133ef0">5. Transfer Function Estimation using the PI Amplifier</a> <li><a href="#org3a522d2">5. Transfer Function Estimation using the PI Amplifier</a>
<ul> <ul>
<li><a href="#orgb86aac7">5.1. Load Data</a></li> <li><a href="#org37ebc58">5.1. Load Data</a></li>
<li><a href="#orgf221216">5.2. Comparison of the PSD with Huddle Test</a></li> <li><a href="#org96481d0">5.2. Comparison of the PSD with Huddle Test</a></li>
<li><a href="#orgeb0ef60">5.3. Compute TF estimate and Coherence</a></li> <li><a href="#org0d0f5af">5.3. Compute TF estimate and Coherence</a></li>
<li><a href="#orgc786d54">5.4. Comparison with the FEM model</a></li> <li><a href="#org3e6bc68">5.4. Comparison with the FEM model</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org7363765">6. Transfer function from force actuator to force sensor</a> <li><a href="#org97bbea0">6. Transfer function from force actuator to force sensor</a>
<ul> <ul>
<li><a href="#org5ad8bf1">6.1. System Identification</a></li> <li><a href="#org89a469b">6.1. System Identification</a></li>
<li><a href="#orgf1d7d77">6.2. Integral Force Feedback</a></li> <li><a href="#org5101bab">6.2. Integral Force Feedback</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgabc1447">7. IFF Tests</a> <li><a href="#orgea75537">7. IFF Tests</a>
<ul> <ul>
<li><a href="#org8a1d06a">7.1. First tests with few gains</a></li> <li><a href="#orgd2939f8">7.1. First tests with few gains</a></li>
<li><a href="#org1241f3d">7.2. Second test with many Gains</a></li> <li><a href="#org7987703">7.2. Second test with many Gains</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -78,90 +78,90 @@
</div> </div>
<div id="org0b2119e" class="figure"> <div id="orgf074020" class="figure">
<p><img src="figs/setup_picture.png" alt="setup_picture.png" /> <p><img src="figs/setup_picture.png" alt="setup_picture.png" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Picture of the Setup</p> <p><span class="figure-number">Figure 1: </span>Picture of the Setup</p>
</div> </div>
<div id="org0256fb0" class="figure"> <div id="org3fc88d7" class="figure">
<p><img src="figs/setup_zoom.png" alt="setup_zoom.png" /> <p><img src="figs/setup_zoom.png" alt="setup_zoom.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Zoom on the APA</p> <p><span class="figure-number">Figure 2: </span>Zoom on the APA</p>
</div> </div>
<div id="outline-container-org6c2cfcc" class="outline-2"> <div id="outline-container-orgdcc1f5c" class="outline-2">
<h2 id="org6c2cfcc"><span class="section-number-2">1</span> Setup</h2> <h2 id="orgdcc1f5c"><span class="section-number-2">1</span> Setup</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
</div> </div>
<div id="outline-container-org9e42c6d" class="outline-3"> <div id="outline-container-orgf7defdc" class="outline-3">
<h3 id="org9e42c6d"><span class="section-number-3">1.1</span> Parameters</h3> <h3 id="orgf7defdc"><span class="section-number-3">1.1</span> Parameters</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = 1e-4; <pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org8bb3ebf" class="outline-3"> <div id="outline-container-org6e2beab" class="outline-3">
<h3 id="org8bb3ebf"><span class="section-number-3">1.2</span> Filter White Noise</h3> <h3 id="org6e2beab"><span class="section-number-3">1.2</span> Filter White Noise</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Glpf = 1/(1 + s/2/pi/500); <pre class="src src-matlab">Glpf = 1<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>500);
Gz = c2d(Glpf, Ts, 'tustin'); Gz = c2d(Glpf, Ts, <span class="org-string">'tustin'</span>);
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org229c57e" class="outline-2"> <div id="outline-container-org6fb223c" class="outline-2">
<h2 id="org229c57e"><span class="section-number-2">2</span> Run Experiment and Save Data</h2> <h2 id="org6fb223c"><span class="section-number-2">2</span> Run Experiment and Save Data</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
</div> </div>
<div id="outline-container-org79522ee" class="outline-3"> <div id="outline-container-orge108931" class="outline-3">
<h3 id="org79522ee"><span class="section-number-3">2.1</span> Load Data</h3> <h3 id="orge108931"><span class="section-number-3">2.1</span> Load Data</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">data = SimulinkRealTime.utils.getFileScopeData('data/apa95ml.dat').data; <pre class="src src-matlab">data = SimulinkRealTime.utils.getFileScopeData(<span class="org-string">'data/apa95ml.dat'</span>).data;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org050454c" class="outline-3"> <div id="outline-container-org4c370ec" class="outline-3">
<h3 id="org050454c"><span class="section-number-3">2.2</span> Save Data</h3> <h3 id="org4c370ec"><span class="section-number-3">2.2</span> Save Data</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">u = data(:, 1); % Input Voltage [V] <pre class="src src-matlab">u = data(<span class="org-type">:</span>, 1); <span class="org-comment">% Input Voltage [V]</span>
y = data(:, 2); % Output Displacement [m] y = data(<span class="org-type">:</span>, 2); <span class="org-comment">% Output Displacement [m]</span>
t = data(:, 3); % Time [s] t = data(<span class="org-type">:</span>, 3); <span class="org-comment">% Time [s]</span>
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">save('./mat/huddle_test.mat', 't', 'u', 'y', 'Glpf'); <pre class="src src-matlab">save(<span class="org-string">'./mat/huddle_test.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'u'</span>, <span class="org-string">'y'</span>, <span class="org-string">'Glpf'</span>);
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org178348e" class="outline-2"> <div id="outline-container-org78464fb" class="outline-2">
<h2 id="org178348e"><span class="section-number-2">3</span> Huddle Test</h2> <h2 id="org78464fb"><span class="section-number-2">3</span> Huddle Test</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
</div> </div>
<div id="outline-container-org7eb915d" class="outline-3"> <div id="outline-container-org1d3dde0" class="outline-3">
<h3 id="org7eb915d"><span class="section-number-3">3.1</span> Time Domain Data</h3> <h3 id="org1d3dde0"><span class="section-number-3">3.1</span> Time Domain Data</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<div id="orgedb79ed" class="figure"> <div id="orgc626b0d" class="figure">
<p><img src="figs/huddle_test_time_domain.png" alt="huddle_test_time_domain.png" /> <p><img src="figs/huddle_test_time_domain.png" alt="huddle_test_time_domain.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>Measurement of the Mass displacement during Huddle Test</p> <p><span class="figure-number">Figure 3: </span>Measurement of the Mass displacement during Huddle Test</p>
@ -169,24 +169,24 @@ t = data(:, 3); % Time [s]
</div> </div>
</div> </div>
<div id="outline-container-org959048f" class="outline-3"> <div id="outline-container-org01c740a" class="outline-3">
<h3 id="org959048f"><span class="section-number-3">3.2</span> PSD of Measurement Noise</h3> <h3 id="org01c740a"><span class="section-number-3">3.2</span> PSD of Measurement Noise</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = t(end)/(length(t)-1); <pre class="src src-matlab">Ts = t(end)<span class="org-type">/</span>(length(t)<span class="org-type">-</span>1);
Fs = 1/Ts; Fs = 1<span class="org-type">/</span>Ts;
win = hanning(ceil(1*Fs)); win = hanning(ceil(1<span class="org-type">*</span>Fs));
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">[pxx, f] = pwelch(y(1000:end), win, [], [], Fs); <pre class="src src-matlab">[pxx, f] = pwelch(y(1000<span class="org-type">:</span>end), win, [], [], Fs);
</pre> </pre>
</div> </div>
<div id="org4ad69f0" class="figure"> <div id="orgca5cf6e" class="figure">
<p><img src="figs/huddle_test_pdf.png" alt="huddle_test_pdf.png" /> <p><img src="figs/huddle_test_pdf.png" alt="huddle_test_pdf.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Amplitude Spectral Density of the Displacement during Huddle Test</p> <p><span class="figure-number">Figure 4: </span>Amplitude Spectral Density of the Displacement during Huddle Test</p>
@ -195,10 +195,10 @@ win = hanning(ceil(1*Fs));
</div> </div>
</div> </div>
<div id="outline-container-org4742221" class="outline-2"> <div id="outline-container-orgf4b384a" class="outline-2">
<h2 id="org4742221"><span class="section-number-2">4</span> Transfer Function Estimation using the DAC as the driver</h2> <h2 id="orgf4b384a"><span class="section-number-2">4</span> Transfer Function Estimation using the DAC as the driver</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<div class="important"> <div class="important" id="org6ea9dc1">
<p> <p>
Results presented in this sections are wrong as the ADC cannot deliver enought current to the piezoelectric actuator. Results presented in this sections are wrong as the ADC cannot deliver enought current to the piezoelectric actuator.
</p> </p>
@ -206,11 +206,11 @@ Results presented in this sections are wrong as the ADC cannot deliver enought c
</div> </div>
</div> </div>
<div id="outline-container-org3d81de2" class="outline-3"> <div id="outline-container-orgc3e175d" class="outline-3">
<h3 id="org3d81de2"><span class="section-number-3">4.1</span> Time Domain Data</h3> <h3 id="orgc3e175d"><span class="section-number-3">4.1</span> Time Domain Data</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<div id="orgdf6c7aa" class="figure"> <div id="org45e7018" class="figure">
<p><img src="figs/apa95ml_5kg_10V_time_domain.png" alt="apa95ml_5kg_10V_time_domain.png" /> <p><img src="figs/apa95ml_5kg_10V_time_domain.png" alt="apa95ml_5kg_10V_time_domain.png" />
</p> </p>
<p><span class="figure-number">Figure 5: </span>Time domain signals during the test</p> <p><span class="figure-number">Figure 5: </span>Time domain signals during the test</p>
@ -218,25 +218,25 @@ Results presented in this sections are wrong as the ADC cannot deliver enought c
</div> </div>
</div> </div>
<div id="outline-container-org39e0140" class="outline-3"> <div id="outline-container-orge6e7a4a" class="outline-3">
<h3 id="org39e0140"><span class="section-number-3">4.2</span> Comparison of the PSD with Huddle Test</h3> <h3 id="orge6e7a4a"><span class="section-number-3">4.2</span> Comparison of the PSD with Huddle Test</h3>
<div class="outline-text-3" id="text-4-2"> <div class="outline-text-3" id="text-4-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = t(end)/(length(t)-1); <pre class="src src-matlab">Ts = t(end)<span class="org-type">/</span>(length(t)<span class="org-type">-</span>1);
Fs = 1/Ts; Fs = 1<span class="org-type">/</span>Ts;
win = hanning(ceil(1*Fs)); win = hanning(ceil(1<span class="org-type">*</span>Fs));
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">[pxx, f] = pwelch(y, win, [], [], Fs); <pre class="src src-matlab">[pxx, f] = pwelch(y, win, [], [], Fs);
[pht, ~] = pwelch(ht.y, win, [], [], Fs); [pht, <span class="org-type">~</span>] = pwelch(ht.y, win, [], [], Fs);
</pre> </pre>
</div> </div>
<div id="org6c52ffe" class="figure"> <div id="org2f464a0" class="figure">
<p><img src="figs/apa95ml_5kg_10V_pdf_comp_huddle.png" alt="apa95ml_5kg_10V_pdf_comp_huddle.png" /> <p><img src="figs/apa95ml_5kg_10V_pdf_comp_huddle.png" alt="apa95ml_5kg_10V_pdf_comp_huddle.png" />
</p> </p>
<p><span class="figure-number">Figure 6: </span>Comparison of the ASD for the identification test and the huddle test</p> <p><span class="figure-number">Figure 6: </span>Comparison of the ASD for the identification test and the huddle test</p>
@ -244,32 +244,32 @@ win = hanning(ceil(1*Fs));
</div> </div>
</div> </div>
<div id="outline-container-org8b00bfb" class="outline-3"> <div id="outline-container-org4fe238a" class="outline-3">
<h3 id="org8b00bfb"><span class="section-number-3">4.3</span> Compute TF estimate and Coherence</h3> <h3 id="org4fe238a"><span class="section-number-3">4.3</span> Compute TF estimate and Coherence</h3>
<div class="outline-text-3" id="text-4-3"> <div class="outline-text-3" id="text-4-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = t(end)/(length(t)-1); <pre class="src src-matlab">Ts = t(end)<span class="org-type">/</span>(length(t)<span class="org-type">-</span>1);
Fs = 1/Ts; Fs = 1<span class="org-type">/</span>Ts;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">win = hann(ceil(1/Ts)); <pre class="src src-matlab">win = hann(ceil(1<span class="org-type">/</span>Ts));
[tf_est, f] = tfestimate(u, -y, win, [], [], 1/Ts); [tf_est, f] = tfestimate(u, <span class="org-type">-</span>y, win, [], [], 1<span class="org-type">/</span>Ts);
[co_est, ~] = mscohere( u, -y, win, [], [], 1/Ts); [co_est, <span class="org-type">~</span>] = mscohere( u, <span class="org-type">-</span>y, win, [], [], 1<span class="org-type">/</span>Ts);
</pre> </pre>
</div> </div>
<div id="org8bed71a" class="figure"> <div id="org81de8a0" class="figure">
<p><img src="figs/apa95ml_5kg_10V_coh.png" alt="apa95ml_5kg_10V_coh.png" /> <p><img src="figs/apa95ml_5kg_10V_coh.png" alt="apa95ml_5kg_10V_coh.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </span>Coherence</p> <p><span class="figure-number">Figure 7: </span>Coherence</p>
</div> </div>
<div id="org80b2e97" class="figure"> <div id="org297b2fb" class="figure">
<p><img src="figs/apa95ml_5kg_10V_tf.png" alt="apa95ml_5kg_10V_tf.png" /> <p><img src="figs/apa95ml_5kg_10V_tf.png" alt="apa95ml_5kg_10V_tf.png" />
</p> </p>
<p><span class="figure-number">Figure 8: </span>Estimation of the transfer function from input voltage to displacement</p> <p><span class="figure-number">Figure 8: </span>Estimation of the transfer function from input voltage to displacement</p>
@ -277,16 +277,16 @@ Fs = 1/Ts;
</div> </div>
</div> </div>
<div id="outline-container-orgbf49872" class="outline-3"> <div id="outline-container-orgdfa1999" class="outline-3">
<h3 id="orgbf49872"><span class="section-number-3">4.4</span> Comparison with the FEM model</h3> <h3 id="orgdfa1999"><span class="section-number-3">4.4</span> Comparison with the FEM model</h3>
<div class="outline-text-3" id="text-4-4"> <div class="outline-text-3" id="text-4-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">load('mat/fem_model_5kg.mat', 'Ghm'); <pre class="src src-matlab">load(<span class="org-string">'mat/fem_model_5kg.mat'</span>, <span class="org-string">'Ghm'</span>);
</pre> </pre>
</div> </div>
<div id="orgc255f7f" class="figure"> <div id="org4247213" class="figure">
<p><img src="figs/apa95ml_5kg_comp_fem.png" alt="apa95ml_5kg_comp_fem.png" /> <p><img src="figs/apa95ml_5kg_comp_fem.png" alt="apa95ml_5kg_comp_fem.png" />
</p> </p>
<p><span class="figure-number">Figure 9: </span>Comparison of the identified transfer function and the one estimated from the FE model</p> <p><span class="figure-number">Figure 9: </span>Comparison of the identified transfer function and the one estimated from the FE model</p>
@ -295,7 +295,7 @@ Fs = 1/Ts;
</div> </div>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<div class="important"> <div class="important" id="orgf487d60">
<p> <p>
The problem comes from the fact that the piezo is driven directly by the DAC that cannot deliver enought current. The problem comes from the fact that the piezo is driven directly by the DAC that cannot deliver enought current.
In the next section, a current amplifier is used. In the next section, a current amplifier is used.
@ -305,50 +305,50 @@ In the next section, a current amplifier is used.
</div> </div>
</div> </div>
<div id="outline-container-orga133ef0" class="outline-2"> <div id="outline-container-org3a522d2" class="outline-2">
<h2 id="orga133ef0"><span class="section-number-2">5</span> Transfer Function Estimation using the PI Amplifier</h2> <h2 id="org3a522d2"><span class="section-number-2">5</span> Transfer Function Estimation using the PI Amplifier</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
</div> </div>
<div id="outline-container-orgb86aac7" class="outline-3"> <div id="outline-container-org37ebc58" class="outline-3">
<h3 id="orgb86aac7"><span class="section-number-3">5.1</span> Load Data</h3> <h3 id="org37ebc58"><span class="section-number-3">5.1</span> Load Data</h3>
<div class="outline-text-3" id="text-5-1"> <div class="outline-text-3" id="text-5-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">ht = load('./mat/huddle_test.mat', 't', 'u', 'y'); <pre class="src src-matlab">ht = load(<span class="org-string">'./mat/huddle_test.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'u'</span>, <span class="org-string">'y'</span>);
load('./mat/apa95ml_5kg_Amp_E505.mat', 't', 'u', 'um', 'y'); load(<span class="org-string">'./mat/apa95ml_5kg_Amp_E505.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'u'</span>, <span class="org-string">'um'</span>, <span class="org-string">'y'</span>);
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">u = 10*(u - mean(u)); % Input Voltage of Piezo [V] <pre class="src src-matlab">u = 10<span class="org-type">*</span>(u <span class="org-type">-</span> mean(u)); <span class="org-comment">% Input Voltage of Piezo [V]</span>
um = 10*(um - mean(um)); % Monitor [V] um = 10<span class="org-type">*</span>(um <span class="org-type">-</span> mean(um)); <span class="org-comment">% Monitor [V]</span>
y = y - mean(y); % Mass displacement [m] y = y <span class="org-type">-</span> mean(y); <span class="org-comment">% Mass displacement [m]</span>
ht.u = 10*(ht.u - mean(ht.u)); ht.u = 10<span class="org-type">*</span>(ht.u <span class="org-type">-</span> mean(ht.u));
ht.y = ht.y - mean(ht.y); ht.y = ht.y <span class="org-type">-</span> mean(ht.y);
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgf221216" class="outline-3"> <div id="outline-container-org96481d0" class="outline-3">
<h3 id="orgf221216"><span class="section-number-3">5.2</span> Comparison of the PSD with Huddle Test</h3> <h3 id="org96481d0"><span class="section-number-3">5.2</span> Comparison of the PSD with Huddle Test</h3>
<div class="outline-text-3" id="text-5-2"> <div class="outline-text-3" id="text-5-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = t(end)/(length(t)-1); <pre class="src src-matlab">Ts = t(end)<span class="org-type">/</span>(length(t)<span class="org-type">-</span>1);
Fs = 1/Ts; Fs = 1<span class="org-type">/</span>Ts;
win = hanning(ceil(1*Fs)); win = hanning(ceil(1<span class="org-type">*</span>Fs));
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">[pxx, f] = pwelch(y, win, [], [], Fs); <pre class="src src-matlab">[pxx, f] = pwelch(y, win, [], [], Fs);
[pht, ~] = pwelch(ht.y, win, [], [], Fs); [pht, <span class="org-type">~</span>] = pwelch(ht.y, win, [], [], Fs);
</pre> </pre>
</div> </div>
<div id="orgc3cf37d" class="figure"> <div id="orgdd13db1" class="figure">
<p><img src="figs/apa95ml_5kg_PI_pdf_comp_huddle.png" alt="apa95ml_5kg_PI_pdf_comp_huddle.png" /> <p><img src="figs/apa95ml_5kg_PI_pdf_comp_huddle.png" alt="apa95ml_5kg_PI_pdf_comp_huddle.png" />
</p> </p>
<p><span class="figure-number">Figure 10: </span>Comparison of the ASD for the identification test and the huddle test</p> <p><span class="figure-number">Figure 10: </span>Comparison of the ASD for the identification test and the huddle test</p>
@ -356,33 +356,33 @@ win = hanning(ceil(1*Fs));
</div> </div>
</div> </div>
<div id="outline-container-orgeb0ef60" class="outline-3"> <div id="outline-container-org0d0f5af" class="outline-3">
<h3 id="orgeb0ef60"><span class="section-number-3">5.3</span> Compute TF estimate and Coherence</h3> <h3 id="org0d0f5af"><span class="section-number-3">5.3</span> Compute TF estimate and Coherence</h3>
<div class="outline-text-3" id="text-5-3"> <div class="outline-text-3" id="text-5-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = t(end)/(length(t)-1); <pre class="src src-matlab">Ts = t(end)<span class="org-type">/</span>(length(t)<span class="org-type">-</span>1);
Fs = 1/Ts; Fs = 1<span class="org-type">/</span>Ts;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">win = hann(ceil(1/Ts)); <pre class="src src-matlab">win = hann(ceil(1<span class="org-type">/</span>Ts));
[tf_est, f] = tfestimate(u, -y, win, [], [], 1/Ts); [tf_est, f] = tfestimate(u, <span class="org-type">-</span>y, win, [], [], 1<span class="org-type">/</span>Ts);
[tf_um , ~] = tfestimate(um, -y, win, [], [], 1/Ts); [tf_um , <span class="org-type">~</span>] = tfestimate(um, <span class="org-type">-</span>y, win, [], [], 1<span class="org-type">/</span>Ts);
[co_est, ~] = mscohere( um, -y, win, [], [], 1/Ts); [co_est, <span class="org-type">~</span>] = mscohere( um, <span class="org-type">-</span>y, win, [], [], 1<span class="org-type">/</span>Ts);
</pre> </pre>
</div> </div>
<div id="orgbf0faa3" class="figure"> <div id="orga4ba98f" class="figure">
<p><img src="figs/apa95ml_5kg_PI_coh.png" alt="apa95ml_5kg_PI_coh.png" /> <p><img src="figs/apa95ml_5kg_PI_coh.png" alt="apa95ml_5kg_PI_coh.png" />
</p> </p>
<p><span class="figure-number">Figure 11: </span>Coherence</p> <p><span class="figure-number">Figure 11: </span>Coherence</p>
</div> </div>
<div id="org408425b" class="figure"> <div id="org565db50" class="figure">
<p><img src="figs/apa95ml_5kg_PI_tf.png" alt="apa95ml_5kg_PI_tf.png" /> <p><img src="figs/apa95ml_5kg_PI_tf.png" alt="apa95ml_5kg_PI_tf.png" />
</p> </p>
<p><span class="figure-number">Figure 12: </span>Estimation of the transfer function from input voltage to displacement</p> <p><span class="figure-number">Figure 12: </span>Estimation of the transfer function from input voltage to displacement</p>
@ -390,16 +390,16 @@ Fs = 1/Ts;
</div> </div>
</div> </div>
<div id="outline-container-orgc786d54" class="outline-3"> <div id="outline-container-org3e6bc68" class="outline-3">
<h3 id="orgc786d54"><span class="section-number-3">5.4</span> Comparison with the FEM model</h3> <h3 id="org3e6bc68"><span class="section-number-3">5.4</span> Comparison with the FEM model</h3>
<div class="outline-text-3" id="text-5-4"> <div class="outline-text-3" id="text-5-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">load('mat/fem_model_5kg.mat', 'G'); <pre class="src src-matlab">load(<span class="org-string">'mat/fem_model_5kg.mat'</span>, <span class="org-string">'G'</span>);
</pre> </pre>
</div> </div>
<div id="org5c02e5d" class="figure"> <div id="org9580a6b" class="figure">
<p><img src="figs/apa95ml_5kg_pi_comp_fem.png" alt="apa95ml_5kg_pi_comp_fem.png" /> <p><img src="figs/apa95ml_5kg_pi_comp_fem.png" alt="apa95ml_5kg_pi_comp_fem.png" />
</p> </p>
<p><span class="figure-number">Figure 13: </span>Comparison of the identified transfer function and the one estimated from the FE model</p> <p><span class="figure-number">Figure 13: </span>Comparison of the identified transfer function and the one estimated from the FE model</p>
@ -408,8 +408,8 @@ Fs = 1/Ts;
</div> </div>
</div> </div>
<div id="outline-container-org7363765" class="outline-2"> <div id="outline-container-org97bbea0" class="outline-2">
<h2 id="org7363765"><span class="section-number-2">6</span> Transfer function from force actuator to force sensor</h2> <h2 id="org97bbea0"><span class="section-number-2">6</span> Transfer function from force actuator to force sensor</h2>
<div class="outline-text-2" id="text-6"> <div class="outline-text-2" id="text-6">
<p> <p>
Two measurements are performed: Two measurements are performed:
@ -426,9 +426,9 @@ The obtained dynamics from force actuator to force sensor are compare with the F
The data are loaded: The data are loaded:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">a_ss = load('mat/apa95ml_5kg_1a_2s.mat', 't', 'u', 'y', 'v'); <pre class="src src-matlab">a_ss = load(<span class="org-string">'mat/apa95ml_5kg_1a_2s.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'u'</span>, <span class="org-string">'y'</span>, <span class="org-string">'v'</span>);
aa_s = load('mat/apa95ml_5kg_2a_1s.mat', 't', 'u', 'y', 'v'); aa_s = load(<span class="org-string">'mat/apa95ml_5kg_2a_1s.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'u'</span>, <span class="org-string">'y'</span>, <span class="org-string">'v'</span>);
load('mat/G_force_sensor_5kg.mat', 'G'); load(<span class="org-string">'mat/G_force_sensor_5kg.mat'</span>, <span class="org-string">'G'</span>);
</pre> </pre>
</div> </div>
<p> <p>
@ -439,11 +439,11 @@ Let&rsquo;s use the amplifier gain to obtain the true voltage applied to the act
The parameters of the piezoelectric stacks are defined below: The parameters of the piezoelectric stacks are defined below:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">d33 = 3e-10; % Strain constant [m/V] <pre class="src src-matlab">d33 = 3e<span class="org-type">-</span>10; <span class="org-comment">% Strain constant [m/V]</span>
n = 80; % Number of layers per stack n = 80; <span class="org-comment">% Number of layers per stack</span>
eT = 1.6e-8; % Permittivity under constant stress [F/m] eT = 1.6e<span class="org-type">-</span>8; <span class="org-comment">% Permittivity under constant stress [F/m]</span>
sD = 2e-11; % Elastic compliance under constant electric displacement [m2/N] sD = 2e<span class="org-type">-</span>11; <span class="org-comment">% Elastic compliance under constant electric displacement [m2/N]</span>
ka = 235e6; % Stack stiffness [N/m] ka = 235e6; <span class="org-comment">% Stack stiffness [N/m]</span>
</pre> </pre>
</div> </div>
@ -451,51 +451,51 @@ ka = 235e6; % Stack stiffness [N/m]
From the FEM, we construct the transfer function from DAC voltage to ADC voltage. From the FEM, we construct the transfer function from DAC voltage to ADC voltage.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Gfem_aa_s = exp(-s/1e4)*20*(2*d33*n*ka)*(G(3,1)+G(3,2))*d33/(eT*sD*n); <pre class="src src-matlab">Gfem_aa_s = exp(<span class="org-type">-</span>s<span class="org-type">/</span>1e4)<span class="org-type">*</span>20<span class="org-type">*</span>(2<span class="org-type">*</span>d33<span class="org-type">*</span>n<span class="org-type">*</span>ka)<span class="org-type">*</span>(G(3,1)<span class="org-type">+</span>G(3,2))<span class="org-type">*</span>d33<span class="org-type">/</span>(eT<span class="org-type">*</span>sD<span class="org-type">*</span>n);
Gfem_a_ss = exp(-s/1e4)*20*( d33*n*ka)*(G(3,1)+G(2,1))*d33/(eT*sD*n); Gfem_a_ss = exp(<span class="org-type">-</span>s<span class="org-type">/</span>1e4)<span class="org-type">*</span>20<span class="org-type">*</span>( d33<span class="org-type">*</span>n<span class="org-type">*</span>ka)<span class="org-type">*</span>(G(3,1)<span class="org-type">+</span>G(2,1))<span class="org-type">*</span>d33<span class="org-type">/</span>(eT<span class="org-type">*</span>sD<span class="org-type">*</span>n);
</pre> </pre>
</div> </div>
<p> <p>
The transfer function from input voltage to output voltage are computed and shown in Figure <a href="#org819df41">14</a>. The transfer function from input voltage to output voltage are computed and shown in Figure <a href="#org23238ab">14</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = a_ss.t(end)/(length(a_ss.t)-1); <pre class="src src-matlab">Ts = a_ss.t(end)<span class="org-type">/</span>(length(a_ss.t)<span class="org-type">-</span>1);
Fs = 1/Ts; Fs = 1<span class="org-type">/</span>Ts;
win = hann(ceil(10/Ts)); win = hann(ceil(10<span class="org-type">/</span>Ts));
[tf_a_ss, f] = tfestimate(a_ss.u, a_ss.v, win, [], [], 1/Ts); [tf_a_ss, f] = tfestimate(a_ss.u, a_ss.v, win, [], [], 1<span class="org-type">/</span>Ts);
[coh_a_ss, ~] = mscohere( a_ss.u, a_ss.v, win, [], [], 1/Ts); [coh_a_ss, <span class="org-type">~</span>] = mscohere( a_ss.u, a_ss.v, win, [], [], 1<span class="org-type">/</span>Ts);
[tf_aa_s, f] = tfestimate(aa_s.u, aa_s.v, win, [], [], 1/Ts); [tf_aa_s, f] = tfestimate(aa_s.u, aa_s.v, win, [], [], 1<span class="org-type">/</span>Ts);
[coh_aa_s, ~] = mscohere( aa_s.u, aa_s.v, win, [], [], 1/Ts); [coh_aa_s, <span class="org-type">~</span>] = mscohere( aa_s.u, aa_s.v, win, [], [], 1<span class="org-type">/</span>Ts);
</pre> </pre>
</div> </div>
<div id="org819df41" class="figure"> <div id="org23238ab" class="figure">
<p><img src="figs/bode_plot_force_sensor_voltage_comp_fem.png" alt="bode_plot_force_sensor_voltage_comp_fem.png" /> <p><img src="figs/bode_plot_force_sensor_voltage_comp_fem.png" alt="bode_plot_force_sensor_voltage_comp_fem.png" />
</p> </p>
<p><span class="figure-number">Figure 14: </span>Comparison of the identified dynamics from voltage output to voltage input and the FEM</p> <p><span class="figure-number">Figure 14: </span>Comparison of the identified dynamics from voltage output to voltage input and the FEM</p>
</div> </div>
</div> </div>
<div id="outline-container-org5ad8bf1" class="outline-3"> <div id="outline-container-org89a469b" class="outline-3">
<h3 id="org5ad8bf1"><span class="section-number-3">6.1</span> System Identification</h3> <h3 id="org89a469b"><span class="section-number-3">6.1</span> System Identification</h3>
<div class="outline-text-3" id="text-6-1"> <div class="outline-text-3" id="text-6-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">w_z = 2*pi*111; % Zeros frequency [rad/s] <pre class="src src-matlab">w_z = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>111; <span class="org-comment">% Zeros frequency [rad/s]</span>
w_p = 2*pi*255; % Pole frequency [rad/s] w_p = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>255; <span class="org-comment">% Pole frequency [rad/s]</span>
xi_z = 0.05; xi_z = 0.05;
xi_p = 0.015; xi_p = 0.015;
G_inf = 2; G_inf = 2;
Gi = G_inf*(s^2 - 2*xi_z*w_z*s + w_z^2)/(s^2 + 2*xi_p*w_p*s + w_p^2); Gi = G_inf<span class="org-type">*</span>(s<span class="org-type">^</span>2 <span class="org-type">-</span> 2<span class="org-type">*</span>xi_z<span class="org-type">*</span>w_z<span class="org-type">*</span>s <span class="org-type">+</span> w_z<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>xi_p<span class="org-type">*</span>w_p<span class="org-type">*</span>s <span class="org-type">+</span> w_p<span class="org-type">^</span>2);
</pre> </pre>
</div> </div>
<div id="orgc283618" class="figure"> <div id="org506d2b4" class="figure">
<p><img src="figs/iff_plant_identification_apa95ml.png" alt="iff_plant_identification_apa95ml.png" /> <p><img src="figs/iff_plant_identification_apa95ml.png" alt="iff_plant_identification_apa95ml.png" />
</p> </p>
<p><span class="figure-number">Figure 15: </span>Identification of the IFF plant</p> <p><span class="figure-number">Figure 15: </span>Identification of the IFF plant</p>
@ -504,11 +504,11 @@ Gi = G_inf*(s^2 - 2*xi_z*w_z*s + w_z^2)/(s^2 + 2*xi_p*w_p*s + w_p^2);
</div> </div>
<div id="outline-container-orgf1d7d77" class="outline-3"> <div id="outline-container-org5101bab" class="outline-3">
<h3 id="orgf1d7d77"><span class="section-number-3">6.2</span> Integral Force Feedback</h3> <h3 id="org5101bab"><span class="section-number-3">6.2</span> Integral Force Feedback</h3>
<div class="outline-text-3" id="text-6-2"> <div class="outline-text-3" id="text-6-2">
<div id="org6524816" class="figure"> <div id="orga196955" class="figure">
<p><img src="figs/root_locus_iff_apa95ml_identification.png" alt="root_locus_iff_apa95ml_identification.png" /> <p><img src="figs/root_locus_iff_apa95ml_identification.png" alt="root_locus_iff_apa95ml_identification.png" />
</p> </p>
<p><span class="figure-number">Figure 16: </span>Root Locus for IFF</p> <p><span class="figure-number">Figure 16: </span>Root Locus for IFF</p>
@ -517,37 +517,37 @@ Gi = G_inf*(s^2 - 2*xi_z*w_z*s + w_z^2)/(s^2 + 2*xi_p*w_p*s + w_p^2);
</div> </div>
</div> </div>
<div id="outline-container-orgabc1447" class="outline-2"> <div id="outline-container-orgea75537" class="outline-2">
<h2 id="orgabc1447"><span class="section-number-2">7</span> IFF Tests</h2> <h2 id="orgea75537"><span class="section-number-2">7</span> IFF Tests</h2>
<div class="outline-text-2" id="text-7"> <div class="outline-text-2" id="text-7">
</div> </div>
<div id="outline-container-org8a1d06a" class="outline-3"> <div id="outline-container-orgd2939f8" class="outline-3">
<h3 id="org8a1d06a"><span class="section-number-3">7.1</span> First tests with few gains</h3> <h3 id="orgd2939f8"><span class="section-number-3">7.1</span> First tests with few gains</h3>
<div class="outline-text-3" id="text-7-1"> <div class="outline-text-3" id="text-7-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">iff_g10 = load('./mat/apa95ml_iff_g10_res.mat', 'u', 't', 'y', 'v'); <pre class="src src-matlab">iff_g10 = load(<span class="org-string">'./mat/apa95ml_iff_g10_res.mat'</span>, <span class="org-string">'u'</span>, <span class="org-string">'t'</span>, <span class="org-string">'y'</span>, <span class="org-string">'v'</span>);
iff_g100 = load('./mat/apa95ml_iff_g100_res.mat', 'u', 't', 'y', 'v'); iff_g100 = load(<span class="org-string">'./mat/apa95ml_iff_g100_res.mat'</span>, <span class="org-string">'u'</span>, <span class="org-string">'t'</span>, <span class="org-string">'y'</span>, <span class="org-string">'v'</span>);
iff_of = load('./mat/apa95ml_iff_off_res.mat', 'u', 't', 'y', 'v'); iff_of = load(<span class="org-string">'./mat/apa95ml_iff_off_res.mat'</span>, <span class="org-string">'u'</span>, <span class="org-string">'t'</span>, <span class="org-string">'y'</span>, <span class="org-string">'v'</span>);
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = 1e-4; <pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
win = hann(ceil(10/Ts)); win = hann(ceil(10<span class="org-type">/</span>Ts));
[tf_iff_g10, f] = tfestimate(iff_g10.u, iff_g10.y, win, [], [], 1/Ts); [tf_iff_g10, f] = tfestimate(iff_g10.u, iff_g10.y, win, [], [], 1<span class="org-type">/</span>Ts);
[co_iff_g10, ~] = mscohere(iff_g10.u, iff_g10.y, win, [], [], 1/Ts); [co_iff_g10, <span class="org-type">~</span>] = mscohere(iff_g10.u, iff_g10.y, win, [], [], 1<span class="org-type">/</span>Ts);
[tf_iff_g100, f] = tfestimate(iff_g100.u, iff_g100.y, win, [], [], 1/Ts); [tf_iff_g100, f] = tfestimate(iff_g100.u, iff_g100.y, win, [], [], 1<span class="org-type">/</span>Ts);
[co_iff_g100, ~] = mscohere(iff_g100.u, iff_g100.y, win, [], [], 1/Ts); [co_iff_g100, <span class="org-type">~</span>] = mscohere(iff_g100.u, iff_g100.y, win, [], [], 1<span class="org-type">/</span>Ts);
[tf_iff_of, ~] = tfestimate(iff_of.u, iff_of.y, win, [], [], 1/Ts); [tf_iff_of, <span class="org-type">~</span>] = tfestimate(iff_of.u, iff_of.y, win, [], [], 1<span class="org-type">/</span>Ts);
[co_iff_of, ~] = mscohere(iff_of.u, iff_of.y, win, [], [], 1/Ts); [co_iff_of, <span class="org-type">~</span>] = mscohere(iff_of.u, iff_of.y, win, [], [], 1<span class="org-type">/</span>Ts);
</pre> </pre>
</div> </div>
<div id="orgbc64698" class="figure"> <div id="org6ca73df" class="figure">
<p><img src="figs/iff_first_test_coherence.png" alt="iff_first_test_coherence.png" /> <p><img src="figs/iff_first_test_coherence.png" alt="iff_first_test_coherence.png" />
</p> </p>
<p><span class="figure-number">Figure 17: </span>Coherence</p> <p><span class="figure-number">Figure 17: </span>Coherence</p>
@ -555,7 +555,7 @@ win = hann(ceil(10/Ts));
<div id="org16a4139" class="figure"> <div id="orgb430e51" class="figure">
<p><img src="figs/iff_first_test_bode_plot.png" alt="iff_first_test_bode_plot.png" /> <p><img src="figs/iff_first_test_bode_plot.png" alt="iff_first_test_bode_plot.png" />
</p> </p>
<p><span class="figure-number">Figure 18: </span>Bode plot for different values of IFF gain</p> <p><span class="figure-number">Figure 18: </span>Bode plot for different values of IFF gain</p>
@ -563,17 +563,17 @@ win = hann(ceil(10/Ts));
</div> </div>
</div> </div>
<div id="outline-container-org1241f3d" class="outline-3"> <div id="outline-container-org7987703" class="outline-3">
<h3 id="org1241f3d"><span class="section-number-3">7.2</span> Second test with many Gains</h3> <h3 id="org7987703"><span class="section-number-3">7.2</span> Second test with many Gains</h3>
<div class="outline-text-3" id="text-7-2"> <div class="outline-text-3" id="text-7-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">load('./mat/apa95ml_iff_test.mat', 'results'); <pre class="src src-matlab">load(<span class="org-string">'./mat/apa95ml_iff_test.mat'</span>, <span class="org-string">'results'</span>);
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ts = 1e-4; <pre class="src src-matlab">Ts = 1e<span class="org-type">-</span>4;
win = hann(ceil(10/Ts)); win = hann(ceil(10<span class="org-type">/</span>Ts));
</pre> </pre>
</div> </div>
@ -582,18 +582,18 @@ win = hann(ceil(10/Ts));
co_iff = {zeros(1, length(results))}; co_iff = {zeros(1, length(results))};
g_iff = [0, 1, 5, 10, 50, 100]; g_iff = [0, 1, 5, 10, 50, 100];
for i=1:length(results) <span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span>=<span class="org-constant">1:length(results)</span>
[tf_est, f] = tfestimate(results{i}.u, results{i}.y, win, [], [], 1/Ts); [tf_est, f] = tfestimate(results{<span class="org-constant">i</span>}.u, results{<span class="org-constant">i</span>}.y, win, [], [], 1<span class="org-type">/</span>Ts);
[co_est, ~] = mscohere(results{i}.u, results{i}.y, win, [], [], 1/Ts); [co_est, <span class="org-type">~</span>] = mscohere(results{<span class="org-constant">i</span>}.u, results{<span class="org-constant">i</span>}.y, win, [], [], 1<span class="org-type">/</span>Ts);
tf_iff(i) = {tf_est}; tf_iff(<span class="org-constant">i</span>) = {tf_est};
co_iff(i) = {co_est}; co_iff(<span class="org-constant">i</span>) = {co_est};
end <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
<div id="orgcc7302c" class="figure"> <div id="orgb6055a9" class="figure">
<p><img src="figs/iff_results_bode_plots.png" alt="iff_results_bode_plots.png" /> <p><img src="figs/iff_results_bode_plots.png" alt="iff_results_bode_plots.png" />
</p> </p>
</div> </div>
@ -601,27 +601,27 @@ end
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">G_id = {zeros(1,length(results))}; <pre class="src src-matlab">G_id = {zeros(1,length(results))};
f_start = 70; % [Hz] f_start = 70; <span class="org-comment">% [Hz]</span>
f_end = 500; % [Hz] f_end = 500; <span class="org-comment">% [Hz]</span>
for i = 1:length(results) <span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant">1:length(results)</span>
tf_id = tf_iff{i}(sum(f&lt;f_start):length(f)-sum(f&gt;f_end)); tf_id = tf_iff{<span class="org-constant">i</span>}(sum(f<span class="org-type">&lt;</span>f_start)<span class="org-type">:</span>length(f)<span class="org-type">-</span>sum(f<span class="org-type">&gt;</span>f_end));
f_id = f(sum(f&lt;f_start):length(f)-sum(f&gt;f_end)); f_id = f(sum(f<span class="org-type">&lt;</span>f_start)<span class="org-type">:</span>length(f)<span class="org-type">-</span>sum(f<span class="org-type">&gt;</span>f_end));
gfr = idfrd(tf_id, 2*pi*f_id, Ts); gfr = idfrd(tf_id, 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>f_id, Ts);
G_id(i) = {procest(gfr,'P2UDZ')}; G_id(<span class="org-constant">i</span>) = {procest(gfr,<span class="org-string">'P2UDZ'</span>)};
end <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
<div id="org435aaa6" class="figure"> <div id="orgf5bb2b0" class="figure">
<p><img src="figs/iff_results_bode_plots_identification.png" alt="iff_results_bode_plots_identification.png" /> <p><img src="figs/iff_results_bode_plots_identification.png" alt="iff_results_bode_plots_identification.png" />
</p> </p>
</div> </div>
<div id="org9db1293" class="figure"> <div id="org4ef9435" class="figure">
<p><img src="figs/iff_results_root_locus.png" alt="iff_results_root_locus.png" /> <p><img src="figs/iff_results_root_locus.png" alt="iff_results_root_locus.png" />
</p> </p>
</div> </div>
@ -631,7 +631,7 @@ end
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-08-21 ven. 15:26</p> <p class="date">Created: 2020-11-03 mar. 10:11</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -680,7 +680,7 @@ The transfer function from input voltage to output voltage are computed and show
plot(real(pole(Gi)), imag(pole(Gi)), 'kx'); plot(real(pole(Gi)), imag(pole(Gi)), 'kx');
plot(real(tzero(Gi)), imag(tzero(Gi)), 'ko'); plot(real(tzero(Gi)), imag(tzero(Gi)), 'ko');
for i = 1:length(gains) for i = 1:length(gains)
cl_poles = pole(feedback(Gi, (gains(i)/s))); cl_poles = pole(feedback(Gi, (gains(i)/(s + 2*2*pi)*s/(s + 0.5*2*pi))));
plot(real(cl_poles), imag(cl_poles), 'k.'); plot(real(cl_poles), imag(cl_poles), 'k.');
end end
ylim([0, 1800]); ylim([0, 1800]);

BIN
mat/G_force_sensor_5kg.mat Normal file

Binary file not shown.

Binary file not shown.

BIN
mat/fem_model_Gf_5kg.mat Normal file

Binary file not shown.