159 lines
5.6 KiB
Org Mode
159 lines
5.6 KiB
Org Mode
|
#+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}
|
||
|
|
||
|
* Experimental measurement
|