483 lines
16 KiB
HTML
483 lines
16 KiB
HTML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
|
<head>
|
|
<!-- 2021-02-16 mar. 21:23 -->
|
|
<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>
|
|
<li><a href="#org7706130">1. Flexible Joints - Requirements</a></li>
|
|
<li><a href="#org2925cfa">2. Test Bench Description</a>
|
|
<ul>
|
|
<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>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#org169b47f">3. Agreement between the probe and the encoder</a>
|
|
<ul>
|
|
<li><a href="#org5ed49b7">3.1. Setup</a></li>
|
|
<li><a href="#orga83f29f">3.2. Results</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#org0fbb329">4. Measurement of the Millimar 1318 probe stiffness</a>
|
|
<ul>
|
|
<li><a href="#orgc7d7173">4.1. Results</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#orgda9e689">5. Experimental measurement</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<p>This report is also available as a <a href="./test-bench-flexible-joints.pdf">pdf</a>.</p>
|
|
<hr>
|
|
|
|
<div id="outline-container-org7706130" class="outline-2">
|
|
<h2 id="org7706130"><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">
|
|
|
|
|
|
<colgroup>
|
|
<col class="org-left" />
|
|
|
|
<col class="org-left" />
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" class="org-left"> </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">> 200 [N/um]</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="org-left">Shear Stiffness</td>
|
|
<td class="org-left">> 1 [N/um]</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="org-left">Bending Stiffness</td>
|
|
<td class="org-left">< 100 [Nm/rad]</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="org-left">Torsion Stiffness</td>
|
|
<td class="org-left">< 500 [Nm/rad]</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="org-left">Bending Stroke</td>
|
|
<td class="org-left">> 1 [mrad]</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="org-left">Torsion Stroke</td>
|
|
<td class="org-left">> 5 [urad]</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-org2925cfa" class="outline-2">
|
|
<h2 id="org2925cfa"><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}\).
|
|
</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>
|
|
|
|
|
|
<div id="org5c42ee1" 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-org1121b59" class="outline-3">
|
|
<h3 id="org1121b59"><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="#org4639f1b">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="org4639f1b" 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>
|
|
</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’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>
|
|
|
|
<div id="outline-container-org8e5eddc" class="outline-3">
|
|
<h3 id="org8e5eddc"><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:
|
|
</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>
|
|
|
|
<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>
|
|
<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>
|
|
|
|
<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>
|
|
<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>
|
|
|
|
<div id="outline-container-orgfd806d9" class="outline-3">
|
|
<h3 id="orgfd806d9"><span class="section-number-3">2.5</span> Test Bench</h3>
|
|
<div class="outline-text-3" id="text-2-5">
|
|
|
|
<div id="org0957ecc" class="figure">
|
|
<p><img src="figs/test_bench_flex_overview.png" alt="test_bench_flex_overview.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 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">
|
|
<ul class="org-ul">
|
|
<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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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>
|
|
<div class="outline-text-2" id="text-3">
|
|
</div>
|
|
<div id="outline-container-org5ed49b7" class="outline-3">
|
|
<h3 id="org5ed49b7"><span class="section-number-3">3.1</span> Setup</h3>
|
|
<div class="outline-text-3" id="text-3-1">
|
|
<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’s load the measurements.
|
|
</p>
|
|
|
|
<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>
|
|
|
|
<p>
|
|
The time domain measured displacement by the probe and by the encoder is shown in Figure <a href="#orgfed4851">5</a>.
|
|
</p>
|
|
|
|
|
|
<div id="orgfed4851" class="figure">
|
|
<p><img src="figs/comp_encoder_probe_time.png" alt="comp_encoder_probe_time.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 5: </span>Time domain measurement</p>
|
|
</div>
|
|
|
|
<p>
|
|
If we zoom, we see that there is some delay between the encoder and the probe (Figure <a href="#org8b829e0">6</a>).
|
|
</p>
|
|
|
|
|
|
<div id="org8b829e0" 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 6: </span>Time domain measurement (Zoom)</p>
|
|
</div>
|
|
|
|
<p>
|
|
This delay is estimated using the <code>finddelay</code> command.
|
|
</p>
|
|
|
|
<pre class="example">
|
|
The time delay is approximately 15.8 [ms]
|
|
</pre>
|
|
|
|
|
|
<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>
|
|
|
|
|
|
<div id="org325c41d" class="figure">
|
|
<p><img src="figs/comp_encoder_probe_mismatch.png" alt="comp_encoder_probe_mismatch.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 7: </span>Measurement mismatch, with and without delay compensation</p>
|
|
</div>
|
|
|
|
<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>
|
|
|
|
|
|
<div id="org6b2fa2a" 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 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>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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>
|
|
<div class="outline-text-2" id="text-4">
|
|
<div class="note" id="org8fed4a1">
|
|
<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="org2cc75ab" 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 9: </span>Setup - Side View</p>
|
|
</div>
|
|
|
|
|
|
<div id="org91485ce" 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 10: </span>Setup - Top View</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orgc7d7173" class="outline-3">
|
|
<h3 id="orgc7d7173"><span class="section-number-3">4.1</span> Results</h3>
|
|
<div class="outline-text-3" id="text-4-1">
|
|
<p>
|
|
Let’s load the measurement results.
|
|
</p>
|
|
<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="#orgd45dfc2">11</a>.
|
|
</p>
|
|
|
|
|
|
<div id="orgd45dfc2" class="figure">
|
|
<p><img src="figs/mahr_time_domain.png" alt="mahr_time_domain.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 11: </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="#org4939523">12</a>).
|
|
</p>
|
|
|
|
|
|
<div id="org4939523" class="figure">
|
|
<p><img src="figs/mahr_stiffness_f_d_plot.png" alt="mahr_stiffness_f_d_plot.png" />
|
|
</p>
|
|
<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>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orgda9e689" class="outline-2">
|
|
<h2 id="orgda9e689"><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-16 mar. 21:23</p>
|
|
</div>
|
|
</body>
|
|
</html>
|