Analyze data
BIN
figs/comp_encoder_probe_linear_fit.pdf
Normal file
BIN
figs/comp_encoder_probe_linear_fit.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
figs/comp_encoder_probe_mismatch.pdf
Normal file
BIN
figs/comp_encoder_probe_mismatch.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
figs/comp_encoder_probe_time.pdf
Normal file
BIN
figs/comp_encoder_probe_time.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
figs/comp_encoder_probe_time_zoom.pdf
Normal file
BIN
figs/comp_encoder_probe_time_zoom.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
figs/mahr_stiffness_f_d_plot.pdf
Normal file
BIN
figs/mahr_stiffness_f_d_plot.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
figs/mahr_time_domain.pdf
Normal file
BIN
figs/mahr_time_domain.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
figs/setup_mahr_stiff_meas_side.jpg
Normal file
After Width: | Height: | Size: 276 KiB |
BIN
figs/setup_mahr_stiff_meas_top.jpg
Normal file
After Width: | Height: | Size: 353 KiB |
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2021-02-02 mar. 19:12 -->
|
||||
<!-- 2021-02-16 mar. 19:15 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Flexible Joint - Test Bench</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
@ -39,17 +39,27 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org0ce044b">1. Flexible Joints - Requirements</a></li>
|
||||
<li><a href="#orgdb39e09">2. Test Bench Description</a>
|
||||
<li><a href="#org108197d">1. Flexible Joints - Requirements</a></li>
|
||||
<li><a href="#org0e51a3c">2. Test Bench Description</a>
|
||||
<ul>
|
||||
<li><a href="#org5eb807b">2.1. Flexible joint Geometry</a></li>
|
||||
<li><a href="#org48c52dd">2.2. Required external applied force</a></li>
|
||||
<li><a href="#org1d2ec69">2.3. Required actuator stroke and sensors range</a></li>
|
||||
<li><a href="#orge2c3db5">2.4. First try with the APA95ML</a></li>
|
||||
<li><a href="#orge4c6045">2.5. Test Bench</a></li>
|
||||
<li><a href="#orgd387cac">2.1. Flexible joint Geometry</a></li>
|
||||
<li><a href="#org8da94ef">2.2. Required external applied force</a></li>
|
||||
<li><a href="#orgdda06ee">2.3. Required actuator stroke and sensors range</a></li>
|
||||
<li><a href="#orgb6763c2">2.4. First try with the APA95ML</a></li>
|
||||
<li><a href="#orge3df316">2.5. Test Bench</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgfa48374">3. Experimental measurement</a></li>
|
||||
<li><a href="#orgb94416f">3. Agreement between the probe and the encoder</a>
|
||||
<ul>
|
||||
<li><a href="#org57bb37e">3.1. Results</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgaca8c01">4. Measurement of the Millimar 1318 probe stiffness</a>
|
||||
<ul>
|
||||
<li><a href="#org837827a">4.1. Results</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgac55925">5. Experimental measurement</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -57,8 +67,8 @@
|
||||
<p>This report is also available as a <a href="./test-bench-flexible-joints.pdf">pdf</a>.</p>
|
||||
<hr>
|
||||
|
||||
<div id="outline-container-org0ce044b" class="outline-2">
|
||||
<h2 id="org0ce044b"><span class="section-number-2">1</span> Flexible Joints - Requirements</h2>
|
||||
<div id="outline-container-org108197d" class="outline-2">
|
||||
<h2 id="org108197d"><span class="section-number-2">1</span> Flexible Joints - Requirements</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
@ -109,8 +119,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgdb39e09" class="outline-2">
|
||||
<h2 id="orgdb39e09"><span class="section-number-2">2</span> Test Bench Description</h2>
|
||||
<div id="outline-container-org0e51a3c" class="outline-2">
|
||||
<h2 id="org0e51a3c"><span class="section-number-2">2</span> Test Bench Description</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
The main characteristic of the flexible joint that we want to measure is its bending stiffness \(k_{R_x} \approx k_{R_y}\).
|
||||
@ -126,23 +136,23 @@ The basic idea is to measured the angular deflection of the flexible joint as a
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org73fb3d5" class="figure">
|
||||
<div id="org43c60ee" class="figure">
|
||||
<p><img src="figs/test-bench-schematic.png" alt="test-bench-schematic.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Schematic of the test bench to measure the bending stiffness of the flexible joints</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5eb807b" class="outline-3">
|
||||
<h3 id="org5eb807b"><span class="section-number-3">2.1</span> Flexible joint Geometry</h3>
|
||||
<div id="outline-container-orgd387cac" class="outline-3">
|
||||
<h3 id="orgd387cac"><span class="section-number-3">2.1</span> Flexible joint Geometry</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
The flexible joint used for the Nano-Hexapod is shown in Figure <a href="#orge14f21a">2</a>.
|
||||
The flexible joint used for the Nano-Hexapod is shown in Figure <a href="#org6500c8a">2</a>.
|
||||
Its bending stiffness is foreseen to be \(k_{R_y}\approx 20\,\frac{Nm}{rad}\) and its stroke \(\theta_{y,\text{max}}\approx 20\,mrad\).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orge14f21a" class="figure">
|
||||
<div id="org6500c8a" class="figure">
|
||||
<p><img src="figs/flexible_joint_geometry.png" alt="flexible_joint_geometry.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Geometry of the flexible joint</p>
|
||||
@ -164,8 +174,8 @@ Let’s define the parameters on Matlab.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org48c52dd" class="outline-3">
|
||||
<h3 id="org48c52dd"><span class="section-number-3">2.2</span> Required external applied force</h3>
|
||||
<div id="outline-container-org8da94ef" class="outline-3">
|
||||
<h3 id="org8da94ef"><span class="section-number-3">2.2</span> Required external applied force</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
The bending \(\theta_y\) of the flexible joint due to the force \(F_x\) is:
|
||||
@ -197,8 +207,8 @@ The measurement range of the force sensor should then be higher than \(20\,N\).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1d2ec69" class="outline-3">
|
||||
<h3 id="org1d2ec69"><span class="section-number-3">2.3</span> Required actuator stroke and sensors range</h3>
|
||||
<div id="outline-container-orgdda06ee" class="outline-3">
|
||||
<h3 id="orgdda06ee"><span class="section-number-3">2.3</span> Required actuator stroke and sensors range</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
The flexible joint is designed to allow a bending motion of \(\pm 20\,mrad\).
|
||||
@ -223,8 +233,8 @@ The measurement range of the displacement sensor should also be higher than \(0.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge2c3db5" class="outline-3">
|
||||
<h3 id="orge2c3db5"><span class="section-number-3">2.4</span> First try with the APA95ML</h3>
|
||||
<div id="outline-container-orgb6763c2" class="outline-3">
|
||||
<h3 id="orgb6763c2"><span class="section-number-3">2.4</span> First try with the APA95ML</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<p>
|
||||
The APA95ML as a stroke of \(100\,\mu m\) and the encoder in parallel can easily measure the required stroke.
|
||||
@ -252,21 +262,22 @@ And the tested angular range is:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge4c6045" class="outline-3">
|
||||
<h3 id="orge4c6045"><span class="section-number-3">2.5</span> Test Bench</h3>
|
||||
<div id="outline-container-orge3df316" class="outline-3">
|
||||
<h3 id="orge3df316"><span class="section-number-3">2.5</span> Test Bench</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
|
||||
<div id="org8101cfa" class="figure">
|
||||
<div id="org2a1f8c7" class="figure">
|
||||
<p><img src="figs/test-bench-schematic.png" alt="test-bench-schematic.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Schematic of the test bench to measure the bending stiffness of the flexible joints</p>
|
||||
</div>
|
||||
|
||||
<div class="note" id="orgfde2443">
|
||||
<div class="note" id="orgf1de4cf">
|
||||
<ul class="org-ul">
|
||||
<li>Manual Translation Stage</li>
|
||||
<li>Load Cell TE Connectivity <a href="doc/A700000007147087.pdf">FC2231-0000-0010-L</a></li>
|
||||
<li>Encoder: Renishaw <a href="doc/L-9517-9448-05-B_Data_sheet_RESOLUTE_BiSS_en.pdf">Resolute 1nm</a></li>
|
||||
<li><b>Translation Stage</b>: <a href="doc/V-408-Datasheet.pdf">V-408</a></li>
|
||||
<li><b>Load Cells</b>: <a href="doc/A700000007147087.pdf">FC2231-0000-0010-L</a> and <a href="doc/FRE_DS_XFL212R_FR_A3.pdf">XFL212R</a></li>
|
||||
<li><b>Encoder</b>: <a href="doc/L-9517-9448-05-B_Data_sheet_RESOLUTE_BiSS_en.pdf">Renishaw Resolute 1nm</a></li>
|
||||
<li><b>Displacement Probe</b>: <a href="doc/Millimar--3723046--BA--C1208-C1216-C1240--FR--2016-11-08.pdf">Millimar C1216 electronics</a> and <a href="doc/tmp3m0cvmue_7888038c-cdc8-48d8-a837-35de02760685.pdf">Millimar 1318 probe</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -274,13 +285,150 @@ And the tested angular range is:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfa48374" class="outline-2">
|
||||
<h2 id="orgfa48374"><span class="section-number-2">3</span> Experimental measurement</h2>
|
||||
<div id="outline-container-orgb94416f" class="outline-2">
|
||||
<h2 id="orgb94416f"><span class="section-number-2">3</span> Agreement between the probe and the encoder</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-org57bb37e" class="outline-3">
|
||||
<h3 id="org57bb37e"><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">load(<span class="org-string">'meas_probe_against_encoder.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'d'</span>, <span class="org-string">'dp'</span>, <span class="org-string">'F'</span>)
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org090f800" class="figure">
|
||||
<p><img src="figs/comp_encoder_probe_time.png" alt="comp_encoder_probe_time.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Time domain measurement</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgeedac3e" class="figure">
|
||||
<p><img src="figs/comp_encoder_probe_time_zoom.png" alt="comp_encoder_probe_time_zoom.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>Time domain measurement (Zoom)</p>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">finddelay(d, dp)
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example">
|
||||
316
|
||||
</pre>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ts<span class="org-type">*</span>finddelay(d, dp)
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example">
|
||||
0.0158
|
||||
</pre>
|
||||
|
||||
|
||||
|
||||
<div id="org196ee5e" class="figure">
|
||||
<p><img src="figs/comp_encoder_probe_mismatch.png" alt="comp_encoder_probe_mismatch.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Measurement mismatch, with and without delay compensation</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org4c16552" class="figure">
|
||||
<p><img src="figs/comp_encoder_probe_linear_fit.png" alt="comp_encoder_probe_linear_fit.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>Measured displacement by the probe as a function of the measured displacement by the encoder</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgaca8c01" class="outline-2">
|
||||
<h2 id="orgaca8c01"><span class="section-number-2">4</span> Measurement of the Millimar 1318 probe stiffness</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<div class="note" id="org2b211f7">
|
||||
<ul class="org-ul">
|
||||
<li><b>Translation Stage</b>: <a href="doc/V-408-Datasheet.pdf">V-408</a></li>
|
||||
<li><b>Load Cell</b>: <a href="doc/A700000007147087.pdf">FC2231-0000-0010-L</a></li>
|
||||
<li><b>Encoder</b>: <a href="doc/L-9517-9448-05-B_Data_sheet_RESOLUTE_BiSS_en.pdf">Renishaw Resolute 1nm</a></li>
|
||||
<li><b>Displacement Probe</b>: <a href="doc/Millimar--3723046--BA--C1208-C1216-C1240--FR--2016-11-08.pdf">Millimar C1216 electronics</a> and <a href="doc/tmp3m0cvmue_7888038c-cdc8-48d8-a837-35de02760685.pdf">Millimar 1318 probe</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org68dec3a" class="figure">
|
||||
<p><img src="figs/setup_mahr_stiff_meas_side.jpg" alt="setup_mahr_stiff_meas_side.jpg" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Setup - Side View</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org28e5fd0" class="figure">
|
||||
<p><img src="figs/setup_mahr_stiff_meas_top.jpg" alt="setup_mahr_stiff_meas_top.jpg" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 9: </span>Setup - Top View</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org837827a" class="outline-3">
|
||||
<h3 id="org837827a"><span class="section-number-3">4.1</span> Results</h3>
|
||||
<div class="outline-text-3" id="text-4-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load(<span class="org-string">'meas_stiff_probe.mat'</span>, <span class="org-string">'t'</span>, <span class="org-string">'d'</span>, <span class="org-string">'dp'</span>, <span class="org-string">'F'</span>)
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The time domain measured force and displacement are shown in Figure <a href="#orged81df2">10</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orged81df2" class="figure">
|
||||
<p><img src="figs/mahr_time_domain.png" alt="mahr_time_domain.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 10: </span>Time domain measurements</p>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
Now we can estimate the stiffness with a linear fit.
|
||||
</p>
|
||||
|
||||
<pre class="example">
|
||||
Stiffness is 0.039 [N/mm]
|
||||
</pre>
|
||||
|
||||
|
||||
<p>
|
||||
This is very close to the 0.04 [N/mm] written in the <a href="doc/tmp3m0cvmue_7888038c-cdc8-48d8-a837-35de02760685.pdf">Millimar 1318 probe datasheet</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
And compare the linear fit with the raw measurement data (Figure <a href="#orgba688b9">11</a>).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgba688b9" class="figure">
|
||||
<p><img src="figs/mahr_stiffness_f_d_plot.png" alt="mahr_stiffness_f_d_plot.png" />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgac55925" class="outline-2">
|
||||
<h2 id="orgac55925"><span class="section-number-2">5</span> Experimental measurement</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2021-02-02 mar. 19:12</p>
|
||||
<p class="date">Created: 2021-02-16 mar. 19:15</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -185,4 +185,268 @@ And the tested angular range is:
|
||||
- *Displacement Probe*: [[file:doc/Millimar--3723046--BA--C1208-C1216-C1240--FR--2016-11-08.pdf][Millimar C1216 electronics]] and [[file:doc/tmp3m0cvmue_7888038c-cdc8-48d8-a837-35de02760685.pdf][Millimar 1318 probe]]
|
||||
#+end_note
|
||||
|
||||
* Agreement between the probe and the encoder
|
||||
** Introduction :ignore:
|
||||
** Setup
|
||||
The measurement setup is made such that the probe measured the translation table displacement.
|
||||
It should then measure the same displacement as the encoder.
|
||||
Using this setup, we should be able to compare the probe and the encoder.
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
<<matlab-init>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no
|
||||
addpath('./matlab/mat/');
|
||||
addpath('./matlab/');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :eval no
|
||||
addpath('./mat/');
|
||||
#+end_src
|
||||
|
||||
** Results
|
||||
Let's load the measurements.
|
||||
|
||||
#+begin_src matlab
|
||||
load('meas_probe_against_encoder.mat', 't', 'd', 'dp', 'F')
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Sampling time [s]
|
||||
Ts = (t(end) - t(1))/(length(t)-1);
|
||||
|
||||
%% Remove first second
|
||||
t = t(ceil(1/Ts):end);
|
||||
d = -d(ceil(1/Ts):end);
|
||||
dp = -dp(ceil(1/Ts):end);
|
||||
F = F(ceil(1/Ts):end);
|
||||
#+end_src
|
||||
|
||||
The time domain measured displacement by the probe and by the encoder is shown in Figure [[fig:comp_encoder_probe_time]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Time Domain plots
|
||||
figure;
|
||||
hold on;
|
||||
plot(t, d, 'DisplayName', 'Encoder');
|
||||
plot(t, dp, 'DisplayName', 'Probe');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/comp_encoder_probe_time.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:comp_encoder_probe_time
|
||||
#+caption: Time domain measurement
|
||||
#+RESULTS:
|
||||
[[file:figs/comp_encoder_probe_time.png]]
|
||||
|
||||
If we zoom, we see that there is some delay between the encoder and the probe (Figure [[fig:comp_encoder_probe_time_zoom]]).
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Zoom
|
||||
figure;
|
||||
hold on;
|
||||
plot(t, d, 'DisplayName', 'Encoder');
|
||||
plot(t, dp, 'DisplayName', 'Probe');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
xlim([7.7, 7.9])
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/comp_encoder_probe_time_zoom.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:comp_encoder_probe_time_zoom
|
||||
#+caption: Time domain measurement (Zoom)
|
||||
#+RESULTS:
|
||||
[[file:figs/comp_encoder_probe_time_zoom.png]]
|
||||
|
||||
This delay is estimated using the =finddelay= command.
|
||||
|
||||
#+begin_src matlab :results value replace :exports results :tangle no
|
||||
sprintf('The time delay is approximately %.1f [ms]', 1e3*Ts*finddelay(d, dp))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: The time delay is approximately 15.8 [ms]
|
||||
|
||||
The measured mismatch between the encoder and the probe with and without compensating for the time delay are shown in Figure [[fig:comp_encoder_probe_mismatch]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(t, d-dp, 'DisplayName', 'Raw Mismatch');
|
||||
plot(t(1:end-finddelay(d, dp)), d(1:end-finddelay(d, dp))-dp(finddelay(d, dp)+1:end), 'DisplayName', 'Removed Delay');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Measurement Missmatch [m]');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/comp_encoder_probe_mismatch.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:comp_encoder_probe_mismatch
|
||||
#+caption: Measurement mismatch, with and without delay compensation
|
||||
#+RESULTS:
|
||||
[[file:figs/comp_encoder_probe_mismatch.png]]
|
||||
|
||||
Finally, the displacement of the probe is shown as a function of the displacement of the encoder and a linear fit is made (Figure [[fig:comp_encoder_probe_linear_fit]]).
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(1e3*d, 1e3*dp, 'DisplayName', 'Raw data');
|
||||
plot(1e3*d, 1e3*d*(d\dp), 'DisplayName', sprintf('Linear fit: $\\alpha = %.5f$', (d\dp)));
|
||||
hold on;
|
||||
xlabel('Encoder [mm]'); ylabel('Probe [mm]');
|
||||
legend('location', 'southeast')
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/comp_encoder_probe_linear_fit.pdf', 'width', 'normal', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:comp_encoder_probe_linear_fit
|
||||
#+caption: Measured displacement by the probe as a function of the measured displacement by the encoder
|
||||
#+RESULTS:
|
||||
[[file:figs/comp_encoder_probe_linear_fit.png]]
|
||||
|
||||
#+begin_important
|
||||
From the measurement, it is shown that the probe is well calibrated.
|
||||
However, there is some time delay of tens of milliseconds that could induce some measurement errors.
|
||||
#+end_important
|
||||
|
||||
* Measurement of the Millimar 1318 probe stiffness
|
||||
** Introduction :ignore:
|
||||
|
||||
#+begin_note
|
||||
- *Translation Stage*: [[file:doc/V-408-Datasheet.pdf][V-408]]
|
||||
- *Load Cell*: [[file:doc/A700000007147087.pdf][FC2231-0000-0010-L]]
|
||||
- *Encoder*: [[file:doc/L-9517-9448-05-B_Data_sheet_RESOLUTE_BiSS_en.pdf][Renishaw Resolute 1nm]]
|
||||
- *Displacement Probe*: [[file:doc/Millimar--3723046--BA--C1208-C1216-C1240--FR--2016-11-08.pdf][Millimar C1216 electronics]] and [[file:doc/tmp3m0cvmue_7888038c-cdc8-48d8-a837-35de02760685.pdf][Millimar 1318 probe]]
|
||||
#+end_note
|
||||
|
||||
#+name: fig:setup_mahr_stiff_meas_side
|
||||
#+caption: Setup - Side View
|
||||
#+attr_latex: :width \linewidth
|
||||
[[file:figs/setup_mahr_stiff_meas_side.jpg]]
|
||||
|
||||
#+name: fig:setup_mahr_stiff_meas_top
|
||||
#+caption: Setup - Top View
|
||||
#+attr_latex: :width \linewidth
|
||||
[[file:figs/setup_mahr_stiff_meas_top.jpg]]
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
<<matlab-init>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no
|
||||
addpath('./matlab/mat/');
|
||||
addpath('./matlab/');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :eval no
|
||||
addpath('./mat/');
|
||||
#+end_src
|
||||
|
||||
** Results
|
||||
Let's load the measurement results.
|
||||
#+begin_src matlab
|
||||
load('meas_stiff_probe.mat', 't', 'd', 'dp', 'F')
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Sampling time [s]
|
||||
Ts = (t(end) - t(1))/(length(t)-1);
|
||||
|
||||
%% Remove first second
|
||||
t = t(ceil(1/Ts):end);
|
||||
d = d(ceil(1/Ts):end);
|
||||
dp = dp(ceil(1/Ts):end);
|
||||
F = F(ceil(1/Ts):end);
|
||||
|
||||
|
||||
%% Remove Offset
|
||||
t = t - t(1);
|
||||
F = F - mean(F(1:ceil(1/Ts)));
|
||||
#+end_src
|
||||
|
||||
The time domain measured force and displacement are shown in Figure [[fig:mahr_time_domain]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Time Domain plots
|
||||
figure;
|
||||
tiledlayout(2, 1, 'TileSpacing', 'None', 'Padding', 'None');
|
||||
|
||||
ax1 = nexttile;
|
||||
plot(t, F);
|
||||
ylabel('Force [N]'); set(gca, 'XTickLabel',[]);
|
||||
|
||||
ax2 = nexttile;
|
||||
plot(t, d);
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/mahr_time_domain.pdf', 'width', 'wide', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:mahr_time_domain
|
||||
#+caption: Time domain measurements
|
||||
#+RESULTS:
|
||||
[[file:figs/mahr_time_domain.png]]
|
||||
|
||||
|
||||
Now we can estimate the stiffness with a linear fit.
|
||||
|
||||
#+begin_src matlab :results value replace :exports results :tangle no
|
||||
sprintf('Stiffness is %.3f [N/mm]', abs(1e-3*(d\F)))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Stiffness is 0.039 [N/mm]
|
||||
|
||||
This is very close to the 0.04 [N/mm] written in the [[file:doc/tmp3m0cvmue_7888038c-cdc8-48d8-a837-35de02760685.pdf][Millimar 1318 probe datasheet]].
|
||||
|
||||
And compare the linear fit with the raw measurement data (Figure [[fig:mahr_stiffness_f_d_plot]]).
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(F, d, 'DisplayName', 'Raw data');
|
||||
plot(F, F/(d\F), 'DisplayName', 'Linear fit');
|
||||
hold off;
|
||||
xlabel('Measured Force [N]');
|
||||
ylabel('Measured Displacement [m]');
|
||||
legend('location', 'southeast');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/mahr_stiffness_f_d_plot.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:mahr_stiffness_f_d_plot
|
||||
#+caption: Measured displacement as a function of the measured force. Raw data and linear fit
|
||||
#+RESULTS:
|
||||
[[file:figs/mahr_stiffness_f_d_plot.png]]
|
||||
|
||||
#+begin_summary
|
||||
The Millimar 1318 probe has a stiffness of $\approx 0.04\,[N/mm]$.
|
||||
#+end_summary
|
||||
|
||||
* Experimental measurement
|
||||
|