test-bench-nass-flexible-jo.../test-bench-flexible-joints.html

483 lines
16 KiB
HTML
Raw Normal View History

2021-02-02 19:13:38 +01:00
<?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>
2021-02-16 21:24:22 +01:00
<!-- 2021-02-16 mar. 21:23 -->
2021-02-02 19:13:38 +01:00
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Flexible Joint - Test Bench</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script>
MathJax = {
svg: {
scale: 1,
fontCache: "global"
},
tex: {
tags: "ams",
multlineWidth: "%MULTLINEWIDTH",
tagSide: "right",
macros: {bm: ["\\boldsymbol{#1}",1],},
tagIndent: ".8em"
}
};
</script>
<script id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Flexible Joint - Test Bench</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
2021-02-16 21:24:22 +01:00
<li><a href="#org7706130">1. Flexible Joints - Requirements</a></li>
<li><a href="#org2925cfa">2. Test Bench Description</a>
2021-02-02 19:13:38 +01:00
<ul>
2021-02-16 21:24:22 +01:00
<li><a href="#org1121b59">2.1. Flexible joint Geometry</a></li>
<li><a href="#org8e5eddc">2.2. Required external applied force</a></li>
<li><a href="#org5baf14d">2.3. Required actuator stroke and sensors range</a></li>
<li><a href="#orge82143e">2.4. First try with the APA95ML</a></li>
<li><a href="#orgfd806d9">2.5. Test Bench</a></li>
2021-02-02 19:13:38 +01:00
</ul>
</li>
2021-02-16 21:24:22 +01:00
<li><a href="#org169b47f">3. Agreement between the probe and the encoder</a>
2021-02-16 19:32:48 +01:00
<ul>
2021-02-16 21:24:22 +01:00
<li><a href="#org5ed49b7">3.1. Setup</a></li>
<li><a href="#orga83f29f">3.2. Results</a></li>
2021-02-16 19:32:48 +01:00
</ul>
</li>
2021-02-16 21:24:22 +01:00
<li><a href="#org0fbb329">4. Measurement of the Millimar 1318 probe stiffness</a>
2021-02-16 19:32:48 +01:00
<ul>
2021-02-16 21:24:22 +01:00
<li><a href="#orgc7d7173">4.1. Results</a></li>
2021-02-16 19:32:48 +01:00
</ul>
</li>
2021-02-16 21:24:22 +01:00
<li><a href="#orgda9e689">5. Experimental measurement</a></li>
2021-02-02 19:13:38 +01:00
</ul>
</div>
</div>
<hr>
<p>This report is also available as a <a href="./test-bench-flexible-joints.pdf">pdf</a>.</p>
<hr>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org7706130" class="outline-2">
<h2 id="org7706130"><span class="section-number-2">1</span> Flexible Joints - Requirements</h2>
2021-02-02 19:13:38 +01:00
<div class="outline-text-2" id="text-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left"><b>Specification</b></th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Axial Stiffness</td>
<td class="org-left">&gt; 200 [N/um]</td>
</tr>
<tr>
<td class="org-left">Shear Stiffness</td>
<td class="org-left">&gt; 1 [N/um]</td>
</tr>
<tr>
<td class="org-left">Bending Stiffness</td>
<td class="org-left">&lt; 100 [Nm/rad]</td>
</tr>
<tr>
<td class="org-left">Torsion Stiffness</td>
<td class="org-left">&lt; 500 [Nm/rad]</td>
</tr>
<tr>
<td class="org-left">Bending Stroke</td>
<td class="org-left">&gt; 1 [mrad]</td>
</tr>
<tr>
<td class="org-left">Torsion Stroke</td>
<td class="org-left">&gt; 5 [urad]</td>
</tr>
</tbody>
</table>
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org2925cfa" class="outline-2">
<h2 id="org2925cfa"><span class="section-number-2">2</span> Test Bench Description</h2>
2021-02-02 19:13:38 +01:00
<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}\).
</p>
<p>
To do so, a test bench is used.
Specifications of the test bench to precisely measure the bending stiffness are described in this section.
</p>
<p>
The basic idea is to measured the angular deflection of the flexible joint as a function of the applied torque.
</p>
2021-02-16 21:24:22 +01:00
<div id="org5c42ee1" class="figure">
2021-02-02 19:13:38 +01:00
<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>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org1121b59" class="outline-3">
<h3 id="org1121b59"><span class="section-number-3">2.1</span> Flexible joint Geometry</h3>
2021-02-02 19:13:38 +01:00
<div class="outline-text-3" id="text-2-1">
<p>
2021-02-16 21:24:22 +01:00
The flexible joint used for the Nano-Hexapod is shown in Figure <a href="#org4639f1b">2</a>.
2021-02-02 19:13:38 +01:00
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>
2021-02-16 21:24:22 +01:00
<div id="org4639f1b" class="figure">
2021-02-02 19:13:38 +01:00
<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>
</div>
<p>
The height between the flexible point (center of the joint) and the point where external forces are applied is \(h = 20\,mm\).
</p>
<p>
Let&rsquo;s define the parameters on Matlab.
</p>
<div class="org-src-container">
<pre class="src src-matlab"> kRx = 20; <span class="org-comment">% Bending Stiffness [Nm/rad]</span>
Rxmax = 20e<span class="org-type">-</span>3; <span class="org-comment">% Bending Stroke [rad]</span>
h = 20e<span class="org-type">-</span>3; <span class="org-comment">% Height [m]</span>
</pre>
</div>
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org8e5eddc" class="outline-3">
<h3 id="org8e5eddc"><span class="section-number-3">2.2</span> Required external applied force</h3>
2021-02-02 19:13:38 +01:00
<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:
</p>
\begin{equation}
\theta_y = \frac{M_y}{k_{R_y}} = \frac{F_x h}{k_{R_y}}
\end{equation}
<p>
Therefore, the applied force to test the full range of the flexible joint is:
</p>
\begin{equation}
F_{x,\text{max}} = \frac{k_{R_y} \theta_{y,\text{max}}}{h}
\end{equation}
<div class="org-src-container">
<pre class="src src-matlab"> Fxmax = kRx<span class="org-type">*</span>Rxmax<span class="org-type">/</span>h; <span class="org-comment">% Force to induce maximum stroke [N]</span>
</pre>
</div>
<p>
And we obtain:
</p>
\begin{equation} F_{max} = 20.0\, [N] \end{equation}
<p>
The measurement range of the force sensor should then be higher than \(20\,N\).
</p>
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org5baf14d" class="outline-3">
<h3 id="org5baf14d"><span class="section-number-3">2.3</span> Required actuator stroke and sensors range</h3>
2021-02-02 19:13:38 +01:00
<div class="outline-text-3" id="text-2-3">
<p>
The flexible joint is designed to allow a bending motion of \(\pm 20\,mrad\).
The corresponding actuator stroke to impose such motion is:
</p>
<p>
\[ d_{x,\text{max}} = h \tan(R_{x,\text{max}}) \]
</p>
<div class="org-src-container">
<pre class="src src-matlab"> dxmax = h<span class="org-type">*</span>tan(Rxmax);
</pre>
</div>
\begin{equation} d_{max} = 0.4\, [mm] \end{equation}
<p>
In order to test the full range of the flexible joint, the stroke of the actuator should be higher than \(0.4\,mm\).
The measurement range of the displacement sensor should also be higher than \(0.4\,mm\).
</p>
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-orge82143e" class="outline-3">
<h3 id="orge82143e"><span class="section-number-3">2.4</span> First try with the APA95ML</h3>
2021-02-02 19:13:38 +01:00
<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.
</p>
<p>
Suppose the full stroke of the APA can be used to bend the flexible joint (ideal case), the measured force will be:
</p>
<div class="org-src-container">
<pre class="src src-matlab"> Fxmax = kRx<span class="org-type">*</span>100e<span class="org-type">-</span>6<span class="org-type">/</span>h<span class="org-type">^</span>2; <span class="org-comment">% Force at maximum stroke [N]</span>
</pre>
</div>
\begin{equation} F_{max} = 5.0\, [N] \end{equation}
<p>
And the tested angular range is:
</p>
<div class="org-src-container">
<pre class="src src-matlab"> Rmax = tan(100e<span class="org-type">-</span>6<span class="org-type">/</span>h);
</pre>
</div>
\begin{equation} \theta_{max} = 5.0\, [mrad] \end{equation}
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-orgfd806d9" class="outline-3">
<h3 id="orgfd806d9"><span class="section-number-3">2.5</span> Test Bench</h3>
2021-02-02 19:13:38 +01:00
<div class="outline-text-3" id="text-2-5">
2021-02-16 21:24:22 +01:00
<div id="org0957ecc" class="figure">
<p><img src="figs/test_bench_flex_overview.png" alt="test_bench_flex_overview.png" />
2021-02-02 19:13:38 +01:00
</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>
2021-02-16 21:24:22 +01:00
<div id="org5b8e491" class="figure">
<p><img src="figs/test_bench_flex_side.png" alt="test_bench_flex_side.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Schematic of the test bench to measure the bending stiffness of the flexible joints</p>
</div>
<div class="note" id="org96d3620">
2021-02-02 19:13:38 +01:00
<ul class="org-ul">
2021-02-16 19:32:48 +01:00
<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>
2021-02-02 19:13:38 +01:00
</ul>
</div>
</div>
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org169b47f" class="outline-2">
<h2 id="org169b47f"><span class="section-number-2">3</span> Agreement between the probe and the encoder</h2>
2021-02-16 19:32:48 +01:00
<div class="outline-text-2" id="text-3">
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org5ed49b7" class="outline-3">
<h3 id="org5ed49b7"><span class="section-number-3">3.1</span> Setup</h3>
2021-02-16 19:32:48 +01:00
<div class="outline-text-3" id="text-3-1">
2021-02-16 21:24:22 +01:00
<p>
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.
</p>
</div>
</div>
<div id="outline-container-orga83f29f" class="outline-3">
<h3 id="orga83f29f"><span class="section-number-3">3.2</span> Results</h3>
<div class="outline-text-3" id="text-3-2">
<p>
Let&rsquo;s load the measurements.
</p>
2021-02-16 19:32:48 +01:00
<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>
2021-02-16 21:24:22 +01:00
<p>
The time domain measured displacement by the probe and by the encoder is shown in Figure <a href="#orgfed4851">5</a>.
</p>
2021-02-16 19:32:48 +01:00
2021-02-16 21:24:22 +01:00
<div id="orgfed4851" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/comp_encoder_probe_time.png" alt="comp_encoder_probe_time.png" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 5: </span>Time domain measurement</p>
2021-02-16 19:32:48 +01:00
</div>
2021-02-16 21:24:22 +01:00
<p>
If we zoom, we see that there is some delay between the encoder and the probe (Figure <a href="#org8b829e0">6</a>).
</p>
2021-02-16 19:32:48 +01:00
2021-02-16 21:24:22 +01:00
<div id="org8b829e0" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/comp_encoder_probe_time_zoom.png" alt="comp_encoder_probe_time_zoom.png" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 6: </span>Time domain measurement (Zoom)</p>
2021-02-16 19:32:48 +01:00
</div>
2021-02-16 21:24:22 +01:00
<p>
This delay is estimated using the <code>finddelay</code> command.
</p>
2021-02-16 19:32:48 +01:00
<pre class="example">
2021-02-16 21:24:22 +01:00
The time delay is approximately 15.8 [ms]
2021-02-16 19:32:48 +01:00
</pre>
2021-02-16 21:24:22 +01:00
<p>
The measured mismatch between the encoder and the probe with and without compensating for the time delay are shown in Figure <a href="#org325c41d">7</a>.
</p>
2021-02-16 19:32:48 +01:00
2021-02-16 21:24:22 +01:00
<div id="org325c41d" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/comp_encoder_probe_mismatch.png" alt="comp_encoder_probe_mismatch.png" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 7: </span>Measurement mismatch, with and without delay compensation</p>
2021-02-16 19:32:48 +01:00
</div>
2021-02-16 21:24:22 +01:00
<p>
Finally, the displacement of the probe is shown as a function of the displacement of the encoder and a linear fit is made (Figure <a href="#org6b2fa2a">8</a>).
</p>
2021-02-16 19:32:48 +01:00
2021-02-16 21:24:22 +01:00
<div id="org6b2fa2a" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/comp_encoder_probe_linear_fit.png" alt="comp_encoder_probe_linear_fit.png" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 8: </span>Measured displacement by the probe as a function of the measured displacement by the encoder</p>
</div>
<div class="important" id="orgd63f29c">
<p>
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.
</p>
2021-02-16 19:32:48 +01:00
</div>
</div>
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-org0fbb329" class="outline-2">
<h2 id="org0fbb329"><span class="section-number-2">4</span> Measurement of the Millimar 1318 probe stiffness</h2>
2021-02-16 19:32:48 +01:00
<div class="outline-text-2" id="text-4">
2021-02-16 21:24:22 +01:00
<div class="note" id="org8fed4a1">
2021-02-16 19:32:48 +01:00
<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>
2021-02-16 21:24:22 +01:00
<div id="org2cc75ab" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/setup_mahr_stiff_meas_side.jpg" alt="setup_mahr_stiff_meas_side.jpg" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 9: </span>Setup - Side View</p>
2021-02-16 19:32:48 +01:00
</div>
2021-02-16 21:24:22 +01:00
<div id="org91485ce" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/setup_mahr_stiff_meas_top.jpg" alt="setup_mahr_stiff_meas_top.jpg" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 10: </span>Setup - Top View</p>
2021-02-16 19:32:48 +01:00
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-orgc7d7173" class="outline-3">
<h3 id="orgc7d7173"><span class="section-number-3">4.1</span> Results</h3>
2021-02-16 19:32:48 +01:00
<div class="outline-text-3" id="text-4-1">
2021-02-16 21:24:22 +01:00
<p>
Let&rsquo;s load the measurement results.
</p>
2021-02-16 19:32:48 +01:00
<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>
2021-02-16 21:24:22 +01:00
The time domain measured force and displacement are shown in Figure <a href="#orgd45dfc2">11</a>.
2021-02-16 19:32:48 +01:00
</p>
2021-02-16 21:24:22 +01:00
<div id="orgd45dfc2" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/mahr_time_domain.png" alt="mahr_time_domain.png" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 11: </span>Time domain measurements</p>
2021-02-16 19:32:48 +01:00
</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>
2021-02-16 21:24:22 +01:00
And compare the linear fit with the raw measurement data (Figure <a href="#org4939523">12</a>).
2021-02-16 19:32:48 +01:00
</p>
2021-02-16 21:24:22 +01:00
<div id="org4939523" class="figure">
2021-02-16 19:32:48 +01:00
<p><img src="figs/mahr_stiffness_f_d_plot.png" alt="mahr_stiffness_f_d_plot.png" />
</p>
2021-02-16 21:24:22 +01:00
<p><span class="figure-number">Figure 12: </span>Measured displacement as a function of the measured force. Raw data and linear fit</p>
</div>
<div class="summary" id="org18e09dc">
<p>
The Millimar 1318 probe has a stiffness of \(\approx 0.04\,[N/mm]\).
</p>
2021-02-16 19:32:48 +01:00
</div>
</div>
</div>
</div>
2021-02-16 21:24:22 +01:00
<div id="outline-container-orgda9e689" class="outline-2">
<h2 id="orgda9e689"><span class="section-number-2">5</span> Experimental measurement</h2>
2021-02-02 19:13:38 +01:00
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
2021-02-16 21:24:22 +01:00
<p class="date">Created: 2021-02-16 mar. 21:23</p>
2021-02-02 19:13:38 +01:00
</div>
</body>
</html>