Compare commits
21 Commits
988caf32b5
...
master
Author | SHA1 | Date | |
---|---|---|---|
1e3b14eb57 | |||
e18d8db4bb | |||
8f729963ee | |||
b4c03be3ef | |||
d432e1de25 | |||
0fd8fddc34 | |||
02b86e883e | |||
4006603d23 | |||
d7a8a125c3 | |||
e7fa0d0b80 | |||
a71218a739 | |||
af4fd4fe55 | |||
ac4536c426 | |||
19f003e172 | |||
29ebdc27e0 | |||
77f2339a9d | |||
a45916ca7e | |||
dee3acdce7 | |||
d7116e94ee | |||
1435f92167 | |||
0edcc871dd |
BIN
doc/FRE_DS_XFL212R_FR_A3.pdf
Normal file
BIN
doc/Millimar--3723046--BA--C1208-C1216-C1240--FR--2016-11-08.pdf
Normal file
BIN
doc/V-408-Datasheet.pdf
Normal file
BIN
doc/flex_joints.pdf
Normal file
BIN
doc/tmp3m0cvmue_7888038c-cdc8-48d8-a837-35de02760685.pdf
Normal file
BIN
figs/CaptureScreen_1.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
figs/CaptureScreen_2.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
figs/IMG_20210302_144000.jpg
Normal file
After Width: | Height: | Size: 3.8 MiB |
BIN
figs/IMG_20210302_173619.jpg
Normal file
After Width: | Height: | Size: 415 KiB |
BIN
figs/IMG_20210309_145242.jpg
Normal file
After Width: | Height: | Size: 360 KiB |
BIN
figs/IMG_20210309_145333.jpg
Normal file
After Width: | Height: | Size: 217 KiB |
BIN
figs/beam_dim_histogram.pdf
Normal file
BIN
figs/beam_dim_histogram.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
figs/bending_stiffness_histogram.pdf
Normal file
BIN
figs/bending_stiffness_histogram.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
figs/bending_stroke_histogram.pdf
Normal file
BIN
figs/bending_stroke_histogram.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
figs/calibrated_force_dit.pdf
Normal file
BIN
figs/calibrated_force_dit.png
Normal file
After Width: | Height: | Size: 22 KiB |
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/flex_joint_meas_example_F_d.pdf
Normal file
BIN
figs/flex_joint_meas_example_F_d.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
figs/flex_joint_meas_example_F_d_lin_fit.pdf
Normal file
BIN
figs/flex_joint_meas_example_F_d_lin_fit.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
figs/flex_joint_meas_example_time_domain.pdf
Normal file
BIN
figs/flex_joint_meas_example_time_domain.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
figs/flex_thickness_vs_bending_stiff.pdf
Normal file
BIN
figs/flex_thickness_vs_bending_stiff.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
figs/flexible_joint_axis.pdf
Normal file
BIN
figs/flexible_joint_axis.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
2409
figs/flexible_joint_axis.svg
Normal file
After Width: | Height: | Size: 167 KiB |
BIN
figs/flexible_joint_fem_geometry.pdf
Normal file
BIN
figs/flexible_joint_fem_geometry.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
figs/flexible_joint_y_flex_meas_setup.jpg
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
figs/flexible_joint_y_flex_meas_setup.pdf
Normal file
BIN
figs/flexible_joint_y_flex_meas_setup.png
Normal file
After Width: | Height: | Size: 630 KiB |
BIN
figs/force_calibration_time.pdf
Normal file
BIN
figs/force_calibration_time.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
figs/force_meas_error.pdf
Normal file
BIN
figs/force_meas_error.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
figs/force_meas_error_percentage.pdf
Normal file
BIN
figs/force_meas_error_percentage.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
figs/force_noise_asd.pdf
Normal file
BIN
figs/force_noise_asd.png
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
figs/force_noise_time.pdf
Normal file
BIN
figs/force_noise_time.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
figs/force_sensor_stiffness_fit.pdf
Normal file
BIN
figs/force_sensor_stiffness_fit.png
Normal file
After Width: | Height: | Size: 30 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/nano_hexapod.pdf
Normal file
BIN
figs/nano_hexapod.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
figs/picture_bending_x_meas_side_close.jpg
Normal file
After Width: | Height: | Size: 230 KiB |
BIN
figs/picture_bending_x_meas_side_overview.jpg
Normal file
After Width: | Height: | Size: 233 KiB |
BIN
figs/picture_bending_x_meas_side_zoom.jpg
Normal file
After Width: | Height: | Size: 237 KiB |
BIN
figs/picture_bending_y_meas_side_close.jpg
Normal file
After Width: | Height: | Size: 212 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 |
BIN
figs/setup_meas_flex_dim_y.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
figs/soft_measure_flex_size.jpg
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
figs/test_bench_flex_overview.pdf
Normal file
BIN
figs/test_bench_flex_overview.png
Normal file
After Width: | Height: | Size: 185 KiB |
262
figs/test_bench_flex_overview.svg
Normal file
After Width: | Height: | Size: 396 KiB |
BIN
figs/test_bench_flex_side.pdf
Normal file
BIN
figs/test_bench_flex_side.png
Normal file
After Width: | Height: | Size: 98 KiB |
184
figs/test_bench_flex_side.svg
Normal file
After Width: | Height: | Size: 110 KiB |
BIN
figs/test_bench_principle.pdf
Normal file
BIN
figs/test_bench_principle.png
Normal file
After Width: | Height: | Size: 12 KiB |
2447
figs/test_bench_principle.svg
Normal file
After Width: | Height: | Size: 168 KiB |
221
index.html
@@ -1,221 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2020-12-17 jeu. 14:47 -->
|
||||
<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 = {
|
||||
tex: {
|
||||
tags: 'ams',
|
||||
macros: {bm: ["\\boldsymbol{#1}",1],}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="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="#org7f5c1ab">1. Test Bench Description</a>
|
||||
<ul>
|
||||
<li><a href="#orgb03e5df">1.1. Flexible joint Geometry</a></li>
|
||||
<li><a href="#org57bd1c6">1.2. Required external applied force</a></li>
|
||||
<li><a href="#org944d593">1.3. Required actuator stroke and sensors range</a></li>
|
||||
<li><a href="#org334e651">1.4. First try with the APA95ML</a></li>
|
||||
<li><a href="#orgc4f4cc8">1.5. Test Bench</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgbe54fa0">2. Experimental measurement</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7f5c1ab" class="outline-2">
|
||||
<h2 id="org7f5c1ab"><span class="section-number-2">1</span> Test Bench Description</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<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="org9b87bf2" 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-orgb03e5df" class="outline-3">
|
||||
<h3 id="orgb03e5df"><span class="section-number-3">1.1</span> Flexible joint Geometry</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
The flexible joint used for the Nano-Hexapod is shown in Figure <a href="#orga662ff4">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="orga662ff4" 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-org57bd1c6" class="outline-3">
|
||||
<h3 id="org57bd1c6"><span class="section-number-3">1.2</span> Required external applied force</h3>
|
||||
<div class="outline-text-3" id="text-1-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-org944d593" class="outline-3">
|
||||
<h3 id="org944d593"><span class="section-number-3">1.3</span> Required actuator stroke and sensors range</h3>
|
||||
<div class="outline-text-3" id="text-1-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-org334e651" class="outline-3">
|
||||
<h3 id="org334e651"><span class="section-number-3">1.4</span> First try with the APA95ML</h3>
|
||||
<div class="outline-text-3" id="text-1-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-orgc4f4cc8" class="outline-3">
|
||||
<h3 id="orgc4f4cc8"><span class="section-number-3">1.5</span> Test Bench</h3>
|
||||
<div class="outline-text-3" id="text-1-5">
|
||||
|
||||
<div id="org9367697" 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="org93975e7">
|
||||
<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>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbe54fa0" class="outline-2">
|
||||
<h2 id="orgbe54fa0"><span class="section-number-2">2</span> Experimental measurement</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2020-12-17 jeu. 14:47</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
1
index.html
Symbolic link
@@ -0,0 +1 @@
|
||||
test-bench-flexible-joints.html
|
170
index.org
@@ -1,170 +0,0 @@
|
||||
#+TITLE: Flexible Joint - Test Bench
|
||||
:DRAWER:
|
||||
#+LANGUAGE: en
|
||||
#+EMAIL: dehaeze.thomas@gmail.com
|
||||
#+AUTHOR: Dehaeze Thomas
|
||||
|
||||
#+HTML_LINK_HOME: ../index.html
|
||||
#+HTML_LINK_UP: ../index.html
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||
|
||||
#+BIND: org-latex-image-default-option "scale=1"
|
||||
#+BIND: org-latex-image-default-width ""
|
||||
|
||||
#+LaTeX_CLASS: scrreprt
|
||||
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full]
|
||||
#+LaTeX_HEADER_EXTRA: \input{preamble.tex}
|
||||
|
||||
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||||
#+PROPERTY: header-args:matlab+ :comments org
|
||||
#+PROPERTY: header-args:matlab+ :exports both
|
||||
#+PROPERTY: header-args:matlab+ :results none
|
||||
#+PROPERTY: header-args:matlab+ :eval no-export
|
||||
#+PROPERTY: header-args:matlab+ :noweb yes
|
||||
#+PROPERTY: header-args:matlab+ :mkdirp yes
|
||||
#+PROPERTY: header-args:matlab+ :output-dir figs
|
||||
|
||||
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
|
||||
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
|
||||
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
|
||||
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
|
||||
#+PROPERTY: header-args:latex+ :results file raw replace
|
||||
#+PROPERTY: header-args:latex+ :buffer no
|
||||
#+PROPERTY: header-args:latex+ :tangle no
|
||||
#+PROPERTY: header-args:latex+ :eval no-export
|
||||
#+PROPERTY: header-args:latex+ :exports results
|
||||
#+PROPERTY: header-args:latex+ :mkdirp yes
|
||||
#+PROPERTY: header-args:latex+ :output-dir figs
|
||||
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
|
||||
:END:
|
||||
|
||||
* Test Bench Description
|
||||
** Introduction :ignore:
|
||||
|
||||
The main characteristic of the flexible joint that we want to measure is its bending stiffness $k_{R_x} \approx k_{R_y}$.
|
||||
|
||||
To do so, a test bench is used.
|
||||
Specifications of the test bench to precisely measure the bending stiffness are described in this section.
|
||||
|
||||
The basic idea is to measured the angular deflection of the flexible joint as a function of the applied torque.
|
||||
|
||||
#+name: fig:test-bench-schematic
|
||||
#+caption: Schematic of the test bench to measure the bending stiffness of the flexible joints
|
||||
[[file:figs/test-bench-schematic.png]]
|
||||
|
||||
** 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
|
||||
|
||||
** Flexible joint Geometry
|
||||
The flexible joint used for the Nano-Hexapod is shown in Figure [[fig:flexible_joint_geometry]].
|
||||
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$.
|
||||
|
||||
#+name: fig:flexible_joint_geometry
|
||||
#+caption: Geometry of the flexible joint
|
||||
[[file:figs/flexible_joint_geometry.png]]
|
||||
|
||||
The height between the flexible point (center of the joint) and the point where external forces are applied is $h = 20\,mm$.
|
||||
|
||||
Let's define the parameters on Matlab.
|
||||
#+begin_src matlab
|
||||
kRx = 20; % Bending Stiffness [Nm/rad]
|
||||
Rxmax = 20e-3; % Bending Stroke [rad]
|
||||
h = 20e-3; % Height [m]
|
||||
#+end_src
|
||||
|
||||
** Required external applied force
|
||||
|
||||
The bending $\theta_y$ of the flexible joint due to the force $F_x$ is:
|
||||
\begin{equation}
|
||||
\theta_y = \frac{M_y}{k_{R_y}} = \frac{F_x h}{k_{R_y}}
|
||||
\end{equation}
|
||||
|
||||
Therefore, the applied force to test the full range of the flexible joint is:
|
||||
\begin{equation}
|
||||
F_{x,\text{max}} = \frac{k_{R_y} \theta_{y,\text{max}}}{h}
|
||||
\end{equation}
|
||||
|
||||
#+begin_src matlab
|
||||
Fxmax = kRx*Rxmax/h; % Force to induce maximum stroke [N]
|
||||
#+end_src
|
||||
|
||||
And we obtain:
|
||||
#+begin_src matlab :results value raw replace :exports results
|
||||
sprintf('\\begin{equation} F_{max} = %.1f\\, [N] \\end{equation}', Fxmax)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
\begin{equation} F_{max} = 20.0\, [N] \end{equation}
|
||||
|
||||
The measurement range of the force sensor should then be higher than $20\,N$.
|
||||
|
||||
** Required actuator stroke and sensors range
|
||||
|
||||
The flexible joint is designed to allow a bending motion of $\pm 20\,mrad$.
|
||||
The corresponding actuator stroke to impose such motion is:
|
||||
|
||||
\[ d_{x,\text{max}} = h \tan(R_{x,\text{max}}) \]
|
||||
|
||||
#+begin_src matlab
|
||||
dxmax = h*tan(Rxmax);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results value raw replace :exports results
|
||||
sprintf('\\begin{equation} d_{max} = %.1f\\, [mm] \\end{equation}', 1e3*dxmax)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
\begin{equation} d_{max} = 0.4\, [mm] \end{equation}
|
||||
|
||||
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$.
|
||||
|
||||
** First try with the APA95ML
|
||||
|
||||
The APA95ML as a stroke of $100\,\mu m$ and the encoder in parallel can easily measure the required stroke.
|
||||
|
||||
Suppose the full stroke of the APA can be used to bend the flexible joint (ideal case), the measured force will be:
|
||||
#+begin_src matlab
|
||||
Fxmax = kRx*100e-6/h^2; % Force at maximum stroke [N]
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results value raw replace :exports results
|
||||
sprintf('\\begin{equation} F_{max} = %.1f\\, [N] \\end{equation}', Fxmax)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
\begin{equation} F_{max} = 5.0\, [N] \end{equation}
|
||||
|
||||
And the tested angular range is:
|
||||
#+begin_src matlab
|
||||
Rmax = tan(100e-6/h);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results value raw replace :exports results
|
||||
sprintf('\\begin{equation} \\theta_{max} = %.1f\\, [mrad] \\end{equation}', 1e3*Rmax)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
\begin{equation} \theta_{max} = 5.0\, [mrad] \end{equation}
|
||||
|
||||
** Test Bench
|
||||
|
||||
#+name: fig:test-bench-schematic
|
||||
#+caption: Schematic of the test bench to measure the bending stiffness of the flexible joints
|
||||
[[file:figs/test-bench-schematic.png]]
|
||||
|
||||
#+begin_note
|
||||
- Manual Translation Stage
|
||||
- Load Cell TE Connectivity [[file:doc/A700000007147087.pdf][FC2231-0000-0010-L]]
|
||||
- Encoder: Renishaw [[file:doc/L-9517-9448-05-B_Data_sheet_RESOLUTE_BiSS_en.pdf][Resolute 1nm]]
|
||||
#+end_note
|
||||
|
||||
* Experimental measurement
|
53
matlab/bench_dimensioning.m
Normal file
@@ -0,0 +1,53 @@
|
||||
%% Clear Workspace and Close figures
|
||||
clear; close all; clc;
|
||||
|
||||
%% Intialize Laplace variable
|
||||
s = zpk('s');
|
||||
|
||||
% Flexible joint Geometry
|
||||
% The flexible joint used for the Nano-Hexapod is shown in Figure [[fig:flexible_joint_geometry]].
|
||||
% Its bending stiffness is foreseen to be $k_{R_y}\approx 5\,\frac{Nm}{rad}$ and its stroke $\theta_{y,\text{max}}\approx 25\,mrad$.
|
||||
|
||||
% #+name: fig:flexible_joint_geometry
|
||||
% #+caption: Geometry of the flexible joint
|
||||
% [[file:figs/flexible_joint_geometry.png]]
|
||||
|
||||
% The height between the flexible point (center of the joint) and the point where external forces are applied is $h = 20\,mm$.
|
||||
|
||||
% Let's define the parameters on Matlab.
|
||||
|
||||
kRx = 5; % Bending Stiffness [Nm/rad]
|
||||
Rxmax = 25e-3; % Bending Stroke [rad]
|
||||
h = 20e-3; % Height [m]
|
||||
|
||||
% Required external applied force
|
||||
|
||||
% The bending $\theta_y$ of the flexible joint due to the force $F_x$ is:
|
||||
% \begin{equation}
|
||||
% \theta_y = \frac{M_y}{k_{R_y}} = \frac{F_x h}{k_{R_y}}
|
||||
% \end{equation}
|
||||
|
||||
% Therefore, the applied force to test the full range of the flexible joint is:
|
||||
% \begin{equation}
|
||||
% F_{x,\text{max}} = \frac{k_{R_y} \theta_{y,\text{max}}}{h}
|
||||
% \end{equation}
|
||||
|
||||
|
||||
Fxmax = kRx*Rxmax/h; % Force to induce maximum stroke [N]
|
||||
|
||||
|
||||
|
||||
% And we obtain:
|
||||
|
||||
sprintf('\\begin{equation} F_{x,max} = %.1f\\, [N] \\end{equation}', Fxmax)
|
||||
|
||||
% Required actuator stroke and sensors range
|
||||
|
||||
% The flexible joint is designed to allow a bending motion of $\pm 25\,mrad$.
|
||||
% The corresponding stroke at the location of the force sensor is:
|
||||
% \[ d_{x,\text{max}} = h \tan(R_{x,\text{max}}) \]
|
||||
|
||||
|
||||
dxmax = h*tan(Rxmax);
|
||||
|
||||
sprintf('\\begin{equation} d_{max} = %.1f\\, [mm] \\end{equation}', 1e3*dxmax)
|
67
matlab/error_budget.m
Normal file
@@ -0,0 +1,67 @@
|
||||
%% Clear Workspace and Close figures
|
||||
clear; close all; clc;
|
||||
|
||||
%% Intialize Laplace variable
|
||||
s = zpk('s');
|
||||
|
||||
% Finite Element Model
|
||||
% From the Finite Element Model, the stiffness and stroke of the flexible joint have been computed and summarized in Tables [[tab:axial_shear_characteristics]] and [[tab:bending_torsion_characteristics]].
|
||||
|
||||
|
||||
%% Stiffness
|
||||
ka = 94e6; % Axial Stiffness [N/m]
|
||||
ks = 13e6; % Shear Stiffness [N/m]
|
||||
kb = 5; % Bending Stiffness [Nm/rad]
|
||||
kt = 260; % Torsional Stiffness [Nm/rad]
|
||||
|
||||
%% Maximum force
|
||||
Fa = 469; % Axial Force before yield [N]
|
||||
Fs = 242; % Shear Force before yield [N]
|
||||
Fb = 0.118; % Bending Force before yield [Nm]
|
||||
Ft = 1.508; % Torsional Force before yield [Nm]
|
||||
|
||||
%% Compute the corresponding stroke
|
||||
Xa = Fa/ka; % Axial Stroke before yield [m]
|
||||
Xs = Fs/ks; % Shear Stroke before yield [m]
|
||||
Xb = Fb/kb; % Bending Stroke before yield [rad]
|
||||
Xt = Ft/kt; % Torsional Stroke before yield [rad]
|
||||
|
||||
% Setup
|
||||
|
||||
% The setup is schematically represented in Figure [[fig:test_bench_flex_side_bis]].
|
||||
|
||||
% The force is applied on top of the flexible joint with a distance $h$ with the joint's center.
|
||||
% The displacement of the flexible joint is also measured at the same height.
|
||||
|
||||
% The height between the joint's center and the force application point is:
|
||||
|
||||
h = 25e-3; % Height [m]
|
||||
|
||||
% Estimation error due to force sensor compression
|
||||
% The measured displacement is not done directly at the joint's location.
|
||||
% The force sensor compression will then induce an error on the joint's stiffness.
|
||||
|
||||
% The force sensor stiffness $k_F$ is estimated to be around:
|
||||
|
||||
kF = 50/0.05e-3; % [N/m]
|
||||
|
||||
sprintf('k_F = %.1e [N/m]', kF)
|
||||
|
||||
% Estimation error due to height estimation error
|
||||
% Let's consider an error in the estimation of the height from the application of the force to the joint's center:
|
||||
% \begin{equation}
|
||||
% h_{\text{est}} = h (1 + \epsilon)
|
||||
% \end{equation}
|
||||
|
||||
% The computed bending stiffness will be:
|
||||
% \begin{equation}
|
||||
% k_\text{est} \approx h_{\text{est}}^2 \frac{F_x}{d_x}
|
||||
% \end{equation}
|
||||
|
||||
% And the stiffness estimation error is:
|
||||
% \begin{equation}
|
||||
% \frac{k_{\text{est}}}{k_{R_y}} = (1 + \epsilon)^2
|
||||
% \end{equation}
|
||||
|
||||
|
||||
h_err = 0.2e-3; % Height estimation error [m]
|