Initial commit
This commit is contained in:
commit
cd5f1e5922
260
.gitignore
vendored
Normal file
260
.gitignore
vendored
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
mat/
|
||||||
|
figures/
|
||||||
|
ltximg/
|
||||||
|
slprj/
|
||||||
|
matlab/slprj/
|
||||||
|
*.slxc
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# ============================================================
|
||||||
|
# LATEX
|
||||||
|
# ============================================================
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
## Core latex/pdflatex auxiliary files:
|
||||||
|
*.aux
|
||||||
|
*.lof
|
||||||
|
*.log
|
||||||
|
*.lot
|
||||||
|
*.fls
|
||||||
|
*.out
|
||||||
|
*.toc
|
||||||
|
*.fmt
|
||||||
|
*.fot
|
||||||
|
*.cb
|
||||||
|
*.cb2
|
||||||
|
.*.lb
|
||||||
|
|
||||||
|
## Intermediate documents:
|
||||||
|
*.dvi
|
||||||
|
*.xdv
|
||||||
|
*-converted-to.*
|
||||||
|
# these rules might exclude image files for figures etc.
|
||||||
|
# *.ps
|
||||||
|
# *.eps
|
||||||
|
# *.pdf
|
||||||
|
|
||||||
|
## Generated if empty string is given at "Please type another file name for output:"
|
||||||
|
.pdf
|
||||||
|
|
||||||
|
## Bibliography auxiliary files (bibtex/biblatex/biber):
|
||||||
|
*.bbl
|
||||||
|
*.bcf
|
||||||
|
*.blg
|
||||||
|
*-blx.aux
|
||||||
|
*-blx.bib
|
||||||
|
*.run.xml
|
||||||
|
|
||||||
|
## Build tool auxiliary files:
|
||||||
|
*.fdb_latexmk
|
||||||
|
*.synctex
|
||||||
|
*.synctex(busy)
|
||||||
|
*.synctex.gz
|
||||||
|
*.synctex.gz(busy)
|
||||||
|
*.pdfsync
|
||||||
|
|
||||||
|
## Build tool directories for auxiliary files
|
||||||
|
# latexrun
|
||||||
|
latex.out/
|
||||||
|
|
||||||
|
## Auxiliary and intermediate files from other packages:
|
||||||
|
# algorithms
|
||||||
|
*.alg
|
||||||
|
*.loa
|
||||||
|
|
||||||
|
# achemso
|
||||||
|
acs-*.bib
|
||||||
|
|
||||||
|
# amsthm
|
||||||
|
*.thm
|
||||||
|
|
||||||
|
# beamer
|
||||||
|
*.nav
|
||||||
|
*.pre
|
||||||
|
*.snm
|
||||||
|
*.vrb
|
||||||
|
|
||||||
|
# changes
|
||||||
|
*.soc
|
||||||
|
|
||||||
|
# cprotect
|
||||||
|
*.cpt
|
||||||
|
|
||||||
|
# elsarticle (documentclass of Elsevier journals)
|
||||||
|
*.spl
|
||||||
|
|
||||||
|
# endnotes
|
||||||
|
*.ent
|
||||||
|
|
||||||
|
# fixme
|
||||||
|
*.lox
|
||||||
|
|
||||||
|
# feynmf/feynmp
|
||||||
|
*.mf
|
||||||
|
*.mp
|
||||||
|
*.t[1-9]
|
||||||
|
*.t[1-9][0-9]
|
||||||
|
*.tfm
|
||||||
|
|
||||||
|
#(r)(e)ledmac/(r)(e)ledpar
|
||||||
|
*.end
|
||||||
|
*.?end
|
||||||
|
*.[1-9]
|
||||||
|
*.[1-9][0-9]
|
||||||
|
*.[1-9][0-9][0-9]
|
||||||
|
*.[1-9]R
|
||||||
|
*.[1-9][0-9]R
|
||||||
|
*.[1-9][0-9][0-9]R
|
||||||
|
*.eledsec[1-9]
|
||||||
|
*.eledsec[1-9]R
|
||||||
|
*.eledsec[1-9][0-9]
|
||||||
|
*.eledsec[1-9][0-9]R
|
||||||
|
*.eledsec[1-9][0-9][0-9]
|
||||||
|
*.eledsec[1-9][0-9][0-9]R
|
||||||
|
|
||||||
|
# glossaries
|
||||||
|
*.acn
|
||||||
|
*.acr
|
||||||
|
*.glg
|
||||||
|
*.glo
|
||||||
|
*.gls
|
||||||
|
*.glsdefs
|
||||||
|
|
||||||
|
# gnuplottex
|
||||||
|
*-gnuplottex-*
|
||||||
|
|
||||||
|
# gregoriotex
|
||||||
|
*.gaux
|
||||||
|
*.gtex
|
||||||
|
|
||||||
|
# htlatex
|
||||||
|
*.4ct
|
||||||
|
*.4tc
|
||||||
|
*.idv
|
||||||
|
*.lg
|
||||||
|
*.trc
|
||||||
|
*.xref
|
||||||
|
|
||||||
|
# hyperref
|
||||||
|
*.brf
|
||||||
|
|
||||||
|
# knitr
|
||||||
|
*-concordance.tex
|
||||||
|
# TODO Comment the next line if you want to keep your tikz graphics files
|
||||||
|
*.tikz
|
||||||
|
*-tikzDictionary
|
||||||
|
|
||||||
|
# listings
|
||||||
|
*.lol
|
||||||
|
|
||||||
|
# makeidx
|
||||||
|
*.idx
|
||||||
|
*.ilg
|
||||||
|
*.ind
|
||||||
|
*.ist
|
||||||
|
|
||||||
|
# minitoc
|
||||||
|
*.maf
|
||||||
|
*.mlf
|
||||||
|
*.mlt
|
||||||
|
*.mtc[0-9]*
|
||||||
|
*.slf[0-9]*
|
||||||
|
*.slt[0-9]*
|
||||||
|
*.stc[0-9]*
|
||||||
|
|
||||||
|
# minted
|
||||||
|
_minted*
|
||||||
|
*.pyg
|
||||||
|
|
||||||
|
# morewrites
|
||||||
|
*.mw
|
||||||
|
|
||||||
|
# nomencl
|
||||||
|
*.nlg
|
||||||
|
*.nlo
|
||||||
|
*.nls
|
||||||
|
|
||||||
|
# pax
|
||||||
|
*.pax
|
||||||
|
|
||||||
|
# pdfpcnotes
|
||||||
|
*.pdfpc
|
||||||
|
|
||||||
|
# sagetex
|
||||||
|
*.sagetex.sage
|
||||||
|
*.sagetex.py
|
||||||
|
*.sagetex.scmd
|
||||||
|
|
||||||
|
# scrwfile
|
||||||
|
*.wrt
|
||||||
|
|
||||||
|
# sympy
|
||||||
|
*.sout
|
||||||
|
*.sympy
|
||||||
|
sympy-plots-for-*.tex/
|
||||||
|
|
||||||
|
# pdfcomment
|
||||||
|
*.upa
|
||||||
|
*.upb
|
||||||
|
|
||||||
|
# pythontex
|
||||||
|
*.pytxcode
|
||||||
|
pythontex-files-*/
|
||||||
|
|
||||||
|
# thmtools
|
||||||
|
*.loe
|
||||||
|
|
||||||
|
# TikZ & PGF
|
||||||
|
*.dpth
|
||||||
|
*.md5
|
||||||
|
*.auxlock
|
||||||
|
|
||||||
|
# todonotes
|
||||||
|
*.tdo
|
||||||
|
|
||||||
|
# easy-todo
|
||||||
|
*.lod
|
||||||
|
|
||||||
|
# xmpincl
|
||||||
|
*.xmpi
|
||||||
|
|
||||||
|
# xindy
|
||||||
|
*.xdy
|
||||||
|
|
||||||
|
# xypic precompiled matrices
|
||||||
|
*.xyc
|
||||||
|
|
||||||
|
# endfloat
|
||||||
|
*.ttt
|
||||||
|
*.fff
|
||||||
|
|
||||||
|
# Latexian
|
||||||
|
TSWLatexianTemp*
|
||||||
|
|
||||||
|
## Editors:
|
||||||
|
# WinEdt
|
||||||
|
*.bak
|
||||||
|
*.sav
|
||||||
|
|
||||||
|
# Texpad
|
||||||
|
.texpadtmp
|
||||||
|
|
||||||
|
# LyX
|
||||||
|
*.lyx~
|
||||||
|
|
||||||
|
# Kile
|
||||||
|
*.backup
|
||||||
|
|
||||||
|
# KBibTeX
|
||||||
|
*~[0-9]*
|
||||||
|
|
||||||
|
# auto folder when using emacs and auctex
|
||||||
|
./auto/*
|
||||||
|
*.el
|
||||||
|
|
||||||
|
# expex forward references with \gathertags
|
||||||
|
*-tags.tex
|
||||||
|
|
||||||
|
# standalone packages
|
||||||
|
*.sta
|
111
.latexmkrc
Normal file
111
.latexmkrc
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
#!/bin/env perl
|
||||||
|
|
||||||
|
# Shebang is only to get syntax highlighting right across GitLab, GitHub and IDEs.
|
||||||
|
# This file is not meant to be run, but read by `latexmk`.
|
||||||
|
|
||||||
|
# ======================================================================================
|
||||||
|
# Perl `latexmk` configuration file
|
||||||
|
# ======================================================================================
|
||||||
|
|
||||||
|
# ======================================================================================
|
||||||
|
# PDF Generation/Building/Compilation
|
||||||
|
# ======================================================================================
|
||||||
|
|
||||||
|
@default_files=('nass-flexible-joints.tex');
|
||||||
|
|
||||||
|
# PDF-generating modes are:
|
||||||
|
# 1: pdflatex, as specified by $pdflatex variable (still largely in use)
|
||||||
|
# 2: postscript conversion, as specified by the $ps2pdf variable (useless)
|
||||||
|
# 3: dvi conversion, as specified by the $dvipdf variable (useless)
|
||||||
|
# 4: lualatex, as specified by the $lualatex variable (best)
|
||||||
|
# 5: xelatex, as specified by the $xelatex variable (second best)
|
||||||
|
$pdf_mode = 1;
|
||||||
|
|
||||||
|
# Treat undefined references and citations as well as multiply defined references as
|
||||||
|
# ERRORS instead of WARNINGS.
|
||||||
|
# This is only checked in the *last* run, since naturally, there are undefined references
|
||||||
|
# in initial runs.
|
||||||
|
# This setting is potentially annoying when debugging/editing, but highly desirable
|
||||||
|
# in the CI pipeline, where such a warning should result in a failed pipeline, since the
|
||||||
|
# final document is incomplete/corrupted.
|
||||||
|
#
|
||||||
|
# However, I could not eradicate all warnings, so that `latexmk` currently fails with
|
||||||
|
# this option enabled.
|
||||||
|
# Specifically, `microtype` fails together with `fontawesome`/`fontawesome5`, see:
|
||||||
|
# https://tex.stackexchange.com/a/547514/120853
|
||||||
|
# The fix in that answer did not help.
|
||||||
|
# Setting `verbose=silent` to mute `microtype` warnings did not work.
|
||||||
|
# Switching between `fontawesome` and `fontawesome5` did not help.
|
||||||
|
$warnings_as_errors = 0;
|
||||||
|
|
||||||
|
# Show used CPU time. Looks like: https://tex.stackexchange.com/a/312224/120853
|
||||||
|
$show_time = 1;
|
||||||
|
|
||||||
|
# Default is 5; we seem to need more owed to the complexity of the document.
|
||||||
|
# Actual documents probably don't need this many since they won't use all features,
|
||||||
|
# plus won't be compiling from cold each time.
|
||||||
|
$max_repeat=7;
|
||||||
|
|
||||||
|
# --shell-escape option (execution of code outside of latex) is required for the
|
||||||
|
#'svg' package.
|
||||||
|
# It converts raw SVG files to the PDF+PDF_TEX combo using InkScape.
|
||||||
|
#
|
||||||
|
# SyncTeX allows to jump between source (code) and output (PDF) in IDEs with support
|
||||||
|
# (many have it). A value of `1` is enabled (gzipped), `-1` is enabled but uncompressed,
|
||||||
|
# `0` is off.
|
||||||
|
# Testing in VSCode w/ LaTeX Workshop only worked for the compressed version.
|
||||||
|
# Adjust this as needed. Of course, only relevant for local use, no effect on a remote
|
||||||
|
# CI pipeline (except for slower compilation, probably).
|
||||||
|
#
|
||||||
|
# %O and %S will forward Options and the Source file, respectively, given to latexmk.
|
||||||
|
#
|
||||||
|
# `set_tex_cmds` applies to all *latex commands (latex, xelatex, lualatex, ...), so
|
||||||
|
# no need to specify these each. This allows to simply change `$pdf_mode` to get a
|
||||||
|
# different engine. Check if this works with `latexmk --commands`.
|
||||||
|
set_tex_cmds("--shell-escape -interaction=nonstopmode --synctex=1 %O %S");
|
||||||
|
|
||||||
|
# Use default pdf viewer
|
||||||
|
$pdf_previewer = 'zathura';
|
||||||
|
|
||||||
|
# option 2 is same as 1 (run biber when necessary), but also deletes the
|
||||||
|
# regeneratable bbl-file in a clenaup (`latexmk -c`). Do not use if original
|
||||||
|
# bib file is not available!
|
||||||
|
$bibtex_use = 2; # default: 1
|
||||||
|
|
||||||
|
# Change default `biber` call, help catch errors faster/clearer. See
|
||||||
|
# https://web.archive.org/web/20200526101657/https://www.semipol.de/2018/06/12/latex-best-practices.html#database-entries
|
||||||
|
$biber = "biber --validate-datamodel %O %S";
|
||||||
|
|
||||||
|
# Glossaries
|
||||||
|
add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
|
||||||
|
add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');
|
||||||
|
|
||||||
|
sub run_makeglossaries {
|
||||||
|
if ( $silent ) {
|
||||||
|
system "makeglossaries -q -s '$_[0].ist' '$_[0]'";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
system "makeglossaries -s '$_[0].ist' '$_[0]'";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# ======================================================================================
|
||||||
|
# Auxiliary Files
|
||||||
|
# ======================================================================================
|
||||||
|
|
||||||
|
# Let latexmk know about generated files, so they can be used to detect if a
|
||||||
|
# rerun is required, or be deleted in a cleanup.
|
||||||
|
# loe: List of Examples (KOMAScript)
|
||||||
|
# lol: List of Listings (`listings` and `minted` packages)
|
||||||
|
# run.xml: biber runs
|
||||||
|
# glg: glossaries log
|
||||||
|
# glstex: generated from glossaries-extra
|
||||||
|
push @generated_exts, 'loe', 'lol', 'run.xml', 'glstex', 'glo', 'gls', 'glg', 'acn', 'acr', 'alg';
|
||||||
|
|
||||||
|
# Also delete the *.glstex files from package glossaries-extra. Problem is,
|
||||||
|
# that that package generates files of the form "basename-digit.glstex" if
|
||||||
|
# multiple glossaries are present. Latexmk looks for "basename.glstex" and so
|
||||||
|
# does not find those. For that purpose, use wildcard.
|
||||||
|
# Also delete files generated by gnuplot/pgfplots contour plots
|
||||||
|
# (.dat, .script, .table).
|
||||||
|
$clean_ext = "%R-*.glstex %R_contourtmp*.*";
|
0
nass-flexible-joints.bib
Normal file
0
nass-flexible-joints.bib
Normal file
1439
nass-flexible-joints.org
Normal file
1439
nass-flexible-joints.org
Normal file
File diff suppressed because it is too large
Load Diff
BIN
nass-flexible-joints.pdf
Normal file
BIN
nass-flexible-joints.pdf
Normal file
Binary file not shown.
245
nass-flexible-joints.tex
Normal file
245
nass-flexible-joints.tex
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
% Created 2024-03-19 Tue 11:11
|
||||||
|
% Intended LaTeX compiler: pdflatex
|
||||||
|
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||||
|
|
||||||
|
\input{preamble.tex}
|
||||||
|
\bibliography{nass-flexible-joints.bib}
|
||||||
|
\author{Dehaeze Thomas}
|
||||||
|
\date{\today}
|
||||||
|
\title{Nano-Hexapod - Flexible Joints Optimization}
|
||||||
|
\hypersetup{
|
||||||
|
pdfauthor={Dehaeze Thomas},
|
||||||
|
pdftitle={Nano-Hexapod - Flexible Joints Optimization},
|
||||||
|
pdfkeywords={},
|
||||||
|
pdfsubject={},
|
||||||
|
pdfcreator={Emacs 29.2 (Org mode 9.7)},
|
||||||
|
pdflang={English}}
|
||||||
|
\usepackage{biblatex}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\maketitle
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
|
\clearpage
|
||||||
|
In this document is studied the effect of the mechanical behavior of the flexible joints that are located the extremities of each nano-hexapod's legs.
|
||||||
|
|
||||||
|
Ideally, we want the x and y rotations to be free and all the translations to be blocked.
|
||||||
|
However, this is never the case and be have to consider:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Finite bending stiffnesses (Section \ref{sec:rot_stiffness})
|
||||||
|
\item Axial stiffness in the direction of the legs (Section \ref{sec:trans_stiffness})
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
This may impose some limitations, also, the goal is to specify the required joints stiffnesses (summarized in Section \ref{sec:conclusion}).
|
||||||
|
|
||||||
|
\begin{table}[htbp]
|
||||||
|
\caption{\label{tab:nass_flexible_joints_section_matlab_code}Report sections and corresponding Matlab files}
|
||||||
|
\centering
|
||||||
|
\begin{tabularx}{0.6\linewidth}{lX}
|
||||||
|
\toprule
|
||||||
|
\textbf{Sections} & \textbf{Matlab File}\\
|
||||||
|
\midrule
|
||||||
|
Section \ref{sec:nass_flexible_joints_1_a} & \texttt{nass\_flexible\_joints\_1\_.m}\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
\end{table}
|
||||||
|
\chapter{Bending and Torsional Stiffness}
|
||||||
|
\label{sec:rot_stiffness}
|
||||||
|
|
||||||
|
In this section, we wish to study the effect of the rotation flexibility of the nano-hexapod joints.
|
||||||
|
\section{Initialization}
|
||||||
|
Let's initialize all the stages with default parameters.
|
||||||
|
Let's consider the heaviest mass which should we the most problematic with it comes to the flexible joints.
|
||||||
|
\section{Realistic Bending Stiffness Values}
|
||||||
|
Let's compare the ideal case (zero stiffness in rotation and infinite stiffness in translation) with a more realistic case:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \(K_{\theta, \phi} = 15\,[Nm/rad]\) stiffness in flexion
|
||||||
|
\item \(K_{\psi} = 20\,[Nm/rad]\) stiffness in torsion
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The stiffness and damping of the nano-hexapod's legs are:
|
||||||
|
This corresponds to the optimal identified stiffness.
|
||||||
|
\subsection{Direct Velocity Feedback}
|
||||||
|
We identify the dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with and without considering the flexible joint stiffness.
|
||||||
|
|
||||||
|
The obtained dynamics are shown in Figure \ref{fig:flex_joint_rot_dvf}.
|
||||||
|
It is shown that the adding of stiffness for the flexible joints does increase a little bit the frequencies of the mass suspension modes. It stiffen the structure.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joint_rot_dvf.png}
|
||||||
|
\caption{\label{fig:flex_joint_rot_dvf}Dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with (blue) and without (red) considering the flexible joint stiffness}
|
||||||
|
\end{figure}
|
||||||
|
\subsection{Primary Plant}
|
||||||
|
Let's now identify the dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs).
|
||||||
|
|
||||||
|
The dynamics is compare with and without the joint flexibility in Figure \ref{fig:flex_joints_rot_primary_plant_L}.
|
||||||
|
The plant dynamics is not found to be changing significantly.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_rot_primary_plant_L.png}
|
||||||
|
\caption{\label{fig:flex_joints_rot_primary_plant_L}Dynamics from \(\bm{\tau}^\prime_i\) to \(\bm{\epsilon}_{\mathcal{X}_n,i}\) with perfect joints and with flexible joints}
|
||||||
|
\end{figure}
|
||||||
|
\subsection{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
Considering realistic flexible joint bending stiffness for the nano-hexapod does not seems to impose any limitation on the DVF control nor on the primary control.
|
||||||
|
|
||||||
|
It only increases a little bit the suspension modes of the sample on top of the nano-hexapod.
|
||||||
|
\end{important}
|
||||||
|
\section{Parametric Study}
|
||||||
|
We wish now to see what is the impact of the rotation stiffness of the flexible joints on the dynamics.
|
||||||
|
This will help to determine the requirements on the joint's stiffness.
|
||||||
|
|
||||||
|
Let's consider the following bending stiffness of the flexible joints:
|
||||||
|
We also consider here a nano-hexapod with the identified optimal actuator stiffness.
|
||||||
|
\subsection{Direct Velocity Feedback}
|
||||||
|
The dynamics from the actuators to the relative displacement sensor in each leg is identified and shown in Figure \ref{fig:flex_joints_rot_study_dvf}.
|
||||||
|
|
||||||
|
The corresponding Root Locus plot is shown in Figure \ref{fig:flex_joints_rot_study_dvf_root_locus}.
|
||||||
|
|
||||||
|
It is shown that the bending stiffness of the flexible joints does indeed change a little the dynamics, but critical damping is stiff achievable with Direct Velocity Feedback.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_rot_study_dvf.png}
|
||||||
|
\caption{\label{fig:flex_joints_rot_study_dvf}Dynamics from \(\tau_i\) to \(d\mathcal{L}_i\) for all the considered Rotation Stiffnesses}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_rot_study_dvf_root_locus.png}
|
||||||
|
\caption{\label{fig:flex_joints_rot_study_dvf_root_locus}Root Locus for all the considered Rotation Stiffnesses}
|
||||||
|
\end{figure}
|
||||||
|
\subsection{Primary Control}
|
||||||
|
The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs) is shown in Figure \ref{fig:flex_joints_rot_study_primary_plant}.
|
||||||
|
|
||||||
|
It is shown that the bending stiffness of the flexible joints have very little impact on the dynamics.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_rot_study_primary_plant.png}
|
||||||
|
\caption{\label{fig:flex_joints_rot_study_primary_plant}Diagonal elements of the transfer function matrix from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) for the considered bending stiffnesses}
|
||||||
|
\end{figure}
|
||||||
|
\subsection{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
The bending stiffness of the flexible joint does not significantly change the dynamics.
|
||||||
|
\end{important}
|
||||||
|
\chapter{Axial Stiffness}
|
||||||
|
\label{sec:trans_stiffness}
|
||||||
|
|
||||||
|
Let's know consider a flexibility in translation of the flexible joint, in the axis of the legs.
|
||||||
|
\section{Realistic Translation Stiffness Values}
|
||||||
|
We choose realistic values of the axial stiffness of the joints:
|
||||||
|
\[ K_a = 60\,[N/\mu m] \]
|
||||||
|
\subsection{Initialization}
|
||||||
|
Let's initialize all the stages with default parameters.
|
||||||
|
Let's consider the heaviest mass which should we the most problematic with it comes to the flexible joints.
|
||||||
|
\subsection{Direct Velocity Feedback}
|
||||||
|
The dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with and without considering the flexible joint stiffness are identified.
|
||||||
|
|
||||||
|
The obtained dynamics are shown in Figure \ref{fig:flex_joint_trans_dvf}.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joint_trans_dvf.png}
|
||||||
|
\caption{\label{fig:flex_joint_trans_dvf}Dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with (blue) and without (red) considering the flexible joint axis stiffness}
|
||||||
|
\end{figure}
|
||||||
|
\subsection{Primary Plant}
|
||||||
|
Let's now identify the dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs).
|
||||||
|
|
||||||
|
The dynamics is compare with and without the joint flexibility in Figure \ref{fig:flex_joints_trans_primary_plant_L}.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_trans_primary_plant_L.png}
|
||||||
|
\caption{\label{fig:flex_joints_trans_primary_plant_L}Dynamics from \(\bm{\tau}^\prime_i\) to \(\bm{\epsilon}_{\mathcal{X}_n,i}\) with infinite axis stiffnes (solid) and with realistic axial stiffness (dashed)}
|
||||||
|
\end{figure}
|
||||||
|
\subsection{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
For the realistic value of the flexible joint axial stiffness, the dynamics is not much impact, and this should not be a problem for control.
|
||||||
|
\end{important}
|
||||||
|
\section{Parametric study}
|
||||||
|
We wish now to see what is the impact of the \textbf{axial} stiffness of the flexible joints on the dynamics.
|
||||||
|
|
||||||
|
Let's consider the following values for the axial stiffness:
|
||||||
|
We also consider here a nano-hexapod with the identified optimal actuator stiffness (\(k = 10^5\,[N/m]\)).
|
||||||
|
\subsection{Direct Velocity Feedback}
|
||||||
|
The dynamics from the actuators to the relative displacement sensor in each leg is identified and shown in Figure \ref{fig:flex_joints_trans_study_dvf}.
|
||||||
|
|
||||||
|
It is shown that the axial stiffness of the flexible joints does have a huge impact on the dynamics.
|
||||||
|
|
||||||
|
If the axial stiffness of the flexible joints is \(K_a > 10^7\,[N/m]\) (here \(100\) times higher than the actuator stiffness), then the change of dynamics stays reasonably small.
|
||||||
|
|
||||||
|
This is more clear by looking at the root locus (Figures \ref{fig:flex_joints_trans_study_dvf_root_locus} and \ref{fig:flex_joints_trans_study_root_locus_unzoom}).
|
||||||
|
It can be seen that very little active damping can be achieve for axial stiffnesses below \(10^7\,[N/m]\).
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_trans_study_dvf.png}
|
||||||
|
\caption{\label{fig:flex_joints_trans_study_dvf}Dynamics from \(\tau_i\) to \(d\mathcal{L}_i\) for all the considered axis Stiffnesses}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_trans_study_dvf_root_locus.png}
|
||||||
|
\caption{\label{fig:flex_joints_trans_study_dvf_root_locus}Root Locus for all the considered axial Stiffnesses}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_trans_study_root_locus_unzoom.png}
|
||||||
|
\caption{\label{fig:flex_joints_trans_study_root_locus_unzoom}Root Locus (unzoom) for all the considered axial Stiffnesses}
|
||||||
|
\end{figure}
|
||||||
|
\subsection{Primary Control}
|
||||||
|
The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs) is shown in Figure \ref{fig:flex_joints_trans_study_primary_plant}.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=1]{figs/flex_joints_trans_study_primary_plant.png}
|
||||||
|
\caption{\label{fig:flex_joints_trans_study_primary_plant}Diagonal elements of the transfer function matrix from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) for the considered axial stiffnesses}
|
||||||
|
\end{figure}
|
||||||
|
\section{Conclusion}
|
||||||
|
\begin{important}
|
||||||
|
The axial stiffness of the flexible joints should be maximized.
|
||||||
|
|
||||||
|
For the considered actuator stiffness \(k = 10^5\,[N/m]\), the axial stiffness of the flexible joints should ideally be above \(10^7\,[N/m]\).
|
||||||
|
|
||||||
|
This is a reasonable stiffness value for such joints.
|
||||||
|
|
||||||
|
We may interpolate the results and say that the axial joint stiffness should be 100 times higher than the actuator stiffness, but this should be confirmed with further analysis.
|
||||||
|
\end{important}
|
||||||
|
\chapter{Designed Flexible Joints}
|
||||||
|
\section{Initialization}
|
||||||
|
Let's initialize all the stages with default parameters.
|
||||||
|
Let's consider the heaviest mass which should we the most problematic with it comes to the flexible joints.
|
||||||
|
\section{Direct Velocity Feedback}
|
||||||
|
\section{Integral Force Feedback}
|
||||||
|
\chapter{Conclusion}
|
||||||
|
\label{sec:conclusion}
|
||||||
|
|
||||||
|
\begin{important}
|
||||||
|
In this study we considered the bending, torsional and axial stiffnesses of the flexible joints used for the nano-hexapod.
|
||||||
|
|
||||||
|
The bending and torsional stiffnesses somehow adds a parasitic stiffness in parallel with the legs.
|
||||||
|
It is not found to be much problematic for the considered control architecture (it is however, if Integral Force Feedback is to be used).
|
||||||
|
As a consequence of the added stiffness, it could increase a little bit the required actuator force.
|
||||||
|
|
||||||
|
|
||||||
|
The axial stiffness of the flexible joints can be very problematic for control.
|
||||||
|
Small values of the axial stiffness are shown to limit the achievable damping with Direct Velocity Feedback.
|
||||||
|
The axial stiffness should therefore be maximized and taken into account in the model of the nano-hexapod.
|
||||||
|
|
||||||
|
|
||||||
|
For the identified optimal actuator stiffness \(k = 10^5\,[N/m]\), the flexible joint should have the following stiffness properties:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Axial Stiffness: \(K_a > 10^7\,[N/m]\)
|
||||||
|
\item Bending Stiffness: \(K_b < 50\,[Nm/rad]\)
|
||||||
|
\item Torsion Stiffness: \(K_t < 50\,[Nm/rad]\)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
As there is generally a trade-off between bending stiffness and axial stiffness, it should be highlighted that the \textbf{axial} stiffness is the most important property of the flexible joints.
|
||||||
|
\end{important}
|
||||||
|
\printbibliography[heading=bibintoc,title={Bibliography}]
|
||||||
|
\end{document}
|
137
preamble.tex
Normal file
137
preamble.tex
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
\usepackage{float}
|
||||||
|
|
||||||
|
\usepackage{caption,tabularx,booktabs}
|
||||||
|
\usepackage{bm}
|
||||||
|
|
||||||
|
\usepackage{xpatch} % Recommanded for biblatex
|
||||||
|
\usepackage[ % use biblatex for bibliography
|
||||||
|
backend=biber, % use biber backend (bibtex replacement) or bibtex
|
||||||
|
style=ieee, % bib style
|
||||||
|
hyperref=true, % activate hyperref support
|
||||||
|
backref=true, % activate backrefs
|
||||||
|
isbn=false, % don't show isbn tags
|
||||||
|
url=false, % don't show url tags
|
||||||
|
doi=false, % don't show doi tags
|
||||||
|
urldate=long, % display type for dates
|
||||||
|
maxnames=3, %
|
||||||
|
minnames=1, %
|
||||||
|
maxbibnames=5, %
|
||||||
|
minbibnames=3, %
|
||||||
|
maxcitenames=2, %
|
||||||
|
mincitenames=1 %
|
||||||
|
]{biblatex}
|
||||||
|
|
||||||
|
\setlength\bibitemsep{1.1\itemsep}
|
||||||
|
|
||||||
|
% \renewcommand*{\bibfont}{\footnotesize}
|
||||||
|
|
||||||
|
\usepackage{fontawesome}
|
||||||
|
|
||||||
|
\usepackage{caption}
|
||||||
|
\usepackage{subcaption}
|
||||||
|
|
||||||
|
\captionsetup[figure]{labelfont=bf}
|
||||||
|
\captionsetup[subfigure]{labelfont=bf}
|
||||||
|
\captionsetup[listing]{labelfont=bf}
|
||||||
|
\captionsetup[table]{labelfont=bf}
|
||||||
|
|
||||||
|
\usepackage{xcolor}
|
||||||
|
|
||||||
|
\definecolor{my-blue}{HTML}{6b7adb}
|
||||||
|
\definecolor{my-pale-blue}{HTML}{e6e9f9}
|
||||||
|
\definecolor{my-red}{HTML}{db6b6b}
|
||||||
|
\definecolor{my-pale-red}{HTML}{f9e6e6}
|
||||||
|
\definecolor{my-green}{HTML}{6bdbb6}
|
||||||
|
\definecolor{my-pale-green}{HTML}{e6f9f3}
|
||||||
|
\definecolor{my-yellow}{HTML}{dbd26b}
|
||||||
|
\definecolor{my-pale-yellow}{HTML}{f9f7e6}
|
||||||
|
\definecolor{my-orange}{HTML}{dba76b}
|
||||||
|
\definecolor{my-pale-orange}{HTML}{f9f0e6}
|
||||||
|
\definecolor{my-grey}{HTML}{a3a3a3}
|
||||||
|
\definecolor{my-pale-grey}{HTML}{f0f0f0}
|
||||||
|
\definecolor{my-turq}{HTML}{6bc7db}
|
||||||
|
\definecolor{my-pale-turq}{HTML}{e6f6f9}
|
||||||
|
|
||||||
|
\usepackage{inconsolata}
|
||||||
|
|
||||||
|
\usepackage[newfloat=true, chapter]{minted}
|
||||||
|
\usemintedstyle{autumn}
|
||||||
|
|
||||||
|
\setminted{frame=lines,breaklines=true,tabsize=4,fontsize=\scriptsize,autogobble=true,labelposition=topline,bgcolor=my-pale-grey}
|
||||||
|
\setminted[matlab]{label=Matlab}
|
||||||
|
\setminted[latex]{label=LaTeX}
|
||||||
|
\setminted[bash]{label=Bash}
|
||||||
|
\setminted[python]{label=Python}
|
||||||
|
\setminted[text]{label=Results}
|
||||||
|
\setminted[md]{label=Org Mode}
|
||||||
|
|
||||||
|
\setmintedinline{fontsize=\normalsize,bgcolor=my-pale-grey}
|
||||||
|
|
||||||
|
\usepackage[most]{tcolorbox}
|
||||||
|
|
||||||
|
\tcbuselibrary{minted}
|
||||||
|
|
||||||
|
\newtcolorbox{seealso}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=See Also}
|
||||||
|
\newtcolorbox{hint}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=Hint}
|
||||||
|
\newtcolorbox{definition}{enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Definition}
|
||||||
|
\newtcolorbox{important}{ enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Important}
|
||||||
|
\newtcolorbox{exampl}[1][]{ enhanced,breakable,colback=my-pale-green,colframe=my-green,fonttitle=\bfseries,title=Example,#1}
|
||||||
|
\newtcolorbox{exercice}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Exercice}
|
||||||
|
\newtcolorbox{question}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Question}
|
||||||
|
\newtcolorbox{answer}{ enhanced,breakable,colback=my-pale-turq,colframe=my-turq,fonttitle=\bfseries,title=Answer}
|
||||||
|
\newtcolorbox{summary}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Summary}
|
||||||
|
\newtcolorbox{note}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Note}
|
||||||
|
\newtcolorbox{caution}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Caution}
|
||||||
|
\newtcolorbox{warning}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Warning}
|
||||||
|
|
||||||
|
\newtcolorbox{my-quote}[1]{%
|
||||||
|
colback=my-pale-grey,
|
||||||
|
grow to right by=-10mm,
|
||||||
|
grow to left by=-10mm,
|
||||||
|
boxrule=0pt,
|
||||||
|
boxsep=0pt,
|
||||||
|
breakable,
|
||||||
|
enhanced jigsaw,
|
||||||
|
borderline west={4pt}{0pt}{my-grey}}
|
||||||
|
|
||||||
|
\renewenvironment{quote}{\begin{my-quote}}{\end{my-quote}}
|
||||||
|
|
||||||
|
\newtcolorbox{my-verse}[1]{%
|
||||||
|
colback=my-pale-grey,
|
||||||
|
grow to right by=-10mm,
|
||||||
|
grow to left by=-10mm,
|
||||||
|
boxrule=0pt,
|
||||||
|
boxsep=0pt,
|
||||||
|
breakable,
|
||||||
|
enhanced jigsaw,
|
||||||
|
borderline west={4pt}{0pt}{my-grey}}
|
||||||
|
|
||||||
|
\renewenvironment{verse}{\begin{my-verse}}{\end{my-verse}}
|
||||||
|
|
||||||
|
\usepackage{environ}% http://ctan.org/pkg/environ
|
||||||
|
\NewEnviron{aside}{%
|
||||||
|
\marginpar{\BODY}
|
||||||
|
}
|
||||||
|
|
||||||
|
\renewenvironment{verbatim}{\VerbatimEnvironment\begin{minted}[]{text}}{\end{minted}}
|
||||||
|
|
||||||
|
\usepackage{soul}
|
||||||
|
\sethlcolor{my-pale-grey}
|
||||||
|
|
||||||
|
\let\OldTexttt\texttt
|
||||||
|
\renewcommand{\texttt}[1]{{\ttfamily\hl{\mbox{\,#1\,}}}}
|
||||||
|
|
||||||
|
\makeatletter
|
||||||
|
\preto\Gin@extensions{png,}
|
||||||
|
\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
|
||||||
|
\preto\Gin@extensions{gif,}
|
||||||
|
\DeclareGraphicsRule{.gif}{png}{.png}{\noexpand\Gin@base.png}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\hypersetup{
|
||||||
|
colorlinks = true,
|
||||||
|
allcolors = my-blue
|
||||||
|
}
|
||||||
|
|
||||||
|
\usepackage{hypcap}
|
Loading…
Reference in New Issue
Block a user