Add analysis about Cedrat Piezo actuators

This commit is contained in:
Thomas Dehaeze 2019-10-29 10:52:59 +01:00
parent f6e543ffcc
commit 7682fc64a3
12 changed files with 907 additions and 156 deletions

1
cedrat-actuator/figs Symbolic link
View File

@ -0,0 +1 @@
../figs

445
cedrat-actuator/index.html Normal file
View File

@ -0,0 +1,445 @@
<?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>
<!-- 2019-10-29 mar. 10:51 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Cedrat Actuator</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
<link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
<script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="../js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></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">Cedrat Actuator</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org001e432">1. Documentation</a></li>
<li><a href="#orgc953781">2. Parameters</a></li>
<li><a href="#org168aa38">3. Identification</a></li>
<li><a href="#org0681d7e">4. Integral Force Feedback</a></li>
<li><a href="#org364fbd0">5. Damped System</a></li>
</ul>
</div>
</div>
<div id="outline-container-org001e432" class="outline-2">
<h2 id="org001e432"><span class="section-number-2">1</span> Documentation</h2>
<div class="outline-text-2" id="text-1">
<ul class="org-ul">
<li>Blocked force: \(1400\ N\)</li>
<li>Stiffness: \(10.8\ N/\mu m\)</li>
<li>Resonance (free-free): \(6450\ Hz\)</li>
<li>Resonance (blocked-free): \(1750\ Hz\)</li>
<li>Height: \(45\ mm\)</li>
<li>Length: \(80\ mm\)</li>
<li>Width: \(22\ mm\)</li>
<li>Mass: \(160\ g\)</li>
</ul>
</div>
</div>
<div id="outline-container-orgc953781" class="outline-2">
<h2 id="orgc953781"><span class="section-number-2">2</span> Parameters</h2>
<div class="outline-text-2" id="text-2">
<div class="org-src-container">
<pre class="src src-matlab">cedrat.L = <span class="org-highlight-numbers-number">80</span>; <span class="org-comment">% Total Width of the Actuator[mm]</span>
cedrat.H = <span class="org-highlight-numbers-number">45</span>; <span class="org-comment">% Total Height of the Actuator [mm]</span>
cedrat.L2 = sqrt<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">(</span>cedrat.L<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">^</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> <span class="org-rainbow-delimiters-depth-2">(</span>cedrat.H<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Length of the elipsoidal sections [mm]</span>
cedrat.alpha = <span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>atan2<span class="org-rainbow-delimiters-depth-1">(</span>cedrat.L<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span>, cedrat.H<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [deg]</span>
cedrat.mtot = <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">160</span>; <span class="org-comment">% Total mass of the Actuator [kg]</span>
cedrat.m = cedrat.mtot<span class="org-type">/</span><span class="org-highlight-numbers-number">6</span>; <span class="org-comment">% Mass of each single element [kg]</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">cedrat.k = <span class="org-highlight-numbers-number">1e9</span>; <span class="org-comment">% Linear Stiffness of each "blade" [N/m]</span>
cedrat.c = <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span><span class="org-type">*</span>sqrt<span class="org-rainbow-delimiters-depth-1">(</span>cedrat.mtot<span class="org-type">*</span>cedrat.k<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [N/(m/s)]</span>
cedrat.ka = <span class="org-highlight-numbers-number">5e7</span>; <span class="org-comment">% Linear Stiffness of the stack [N/m]</span>
cedrat.ca = <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span><span class="org-type">*</span>sqrt<span class="org-rainbow-delimiters-depth-1">(</span>cedrat.mtot<span class="org-type">*</span>cedrat.ka<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [N/(m/s)]</span>
cedrat.kr = <span class="org-highlight-numbers-number">10</span>; <span class="org-comment">% Rotation Stiffness [N*m/(deg)]</span>
cedrat.cr = <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">0001</span>; <span class="org-comment">% Rotation Damping [N*m/(deg/s)]</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">K_iff = tf<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">% dummy_mass = <span class="org-highlight-numbers-number">140</span>; % [kg]
dummy_mass = <span class="org-highlight-numbers-number">1</span>; <span class="org-comment">% [kg]</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org168aa38" class="outline-2">
<h2 id="org168aa38"><span class="section-number-2">3</span> Identification</h2>
<div class="outline-text-2" id="text-3">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
options = linearizeOptions;
options.SampleTime = <span class="org-highlight-numbers-number">0</span>;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
mdl = <span class="org-string">'cedrat_piezo'</span>;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/F'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Fz'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Dw'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Dz'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'output'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Fm'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'output'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
G = linearize<span class="org-rainbow-delimiters-depth-1">(</span>mdl, io, options<span class="org-rainbow-delimiters-depth-1">)</span>;
G.InputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'F'</span>, <span class="org-string">'Fz'</span>, <span class="org-string">'Dw'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Dz'</span>, <span class="org-string">'Fm'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
</pre>
</div>
<div id="org829aed3" class="figure">
<p><img src="figs/cedrat_piezo_identified_tf.png" alt="cedrat_piezo_identified_tf.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Identified Transfer function (<a href="./figs/cedrat_piezo_identified_tf.png">png</a>, <a href="./figs/cedrat_piezo_identified_tf.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org0681d7e" class="outline-2">
<h2 id="org0681d7e"><span class="section-number-2">4</span> Integral Force Feedback</h2>
<div class="outline-text-2" id="text-4">
<div id="orgf87cbd6" class="figure">
<p><img src="figs/iff_plant_cedrat.png" alt="iff_plant_cedrat.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Transfer function from \(F\) to \(F_m\) (<a href="./figs/iff_plant_cedrat.png">png</a>, <a href="./figs/iff_plant_cedrat.pdf">pdf</a>)</p>
</div>
<div class="org-src-container">
<pre class="src src-matlab">K_iff = <span class="org-type">-</span><span class="org-highlight-numbers-number">100000</span><span class="org-type">/</span>s<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span> <span class="org-type">+</span> s<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span> <span class="org-type">+</span> s<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="org97388b4" class="figure">
<p><img src="figs/iff_open_loop_cedrat.png" alt="iff_open_loop_cedrat.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Open Loop Gain Transfer Function - Cedrat (<a href="./figs/iff_open_loop_cedrat.png">png</a>, <a href="./figs/iff_open_loop_cedrat.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org364fbd0" class="outline-2">
<h2 id="org364fbd0"><span class="section-number-2">5</span> Damped System</h2>
<div class="outline-text-2" id="text-5">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
options = linearizeOptions;
options.SampleTime = <span class="org-highlight-numbers-number">0</span>;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
mdl = <span class="org-string">'cedrat_piezo'</span>;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/F'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Fz'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Dw'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Dz'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'output'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Fm'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'output'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
G_iff = linearize<span class="org-rainbow-delimiters-depth-1">(</span>mdl, io, options<span class="org-rainbow-delimiters-depth-1">)</span>;
G_iff.InputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'F'</span>, <span class="org-string">'Fz'</span>, <span class="org-string">'Dw'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
G_iff.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Dz'</span>, <span class="org-string">'Fm'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
</pre>
</div>
<div id="orgd56e05f" class="figure">
<p><img src="figs/cedrat_iff_piezo_identified_tf.png" alt="cedrat_iff_piezo_identified_tf.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Identified Transfer function (<a href="./figs/cedrat_iff_piezo_identified_tf.png">png</a>, <a href="./figs/cedrat_iff_piezo_identified_tf.pdf">pdf</a>)</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-10-29 mar. 10:51</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>

303
cedrat-actuator/index.org Normal file
View File

@ -0,0 +1,303 @@
#+TITLE: Cedrat Actuator
:DRAWER:
#+STARTUP: overview
#+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="../css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script>
#+HTML_MATHJAX: align: center tagside: right font: TeX
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs
#+PROPERTY: header-args:matlab+ :tangle matlab/modal_frf_coh.m
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:shell :eval no-export
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/thesis/latex/}{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 raw replace :buffer no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports both
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :output-dir figs
:END:
* Documentation
- Blocked force: $1400\ N$
- Stiffness: $10.8\ N/\mu m$
- Resonance (free-free): $6450\ Hz$
- Resonance (blocked-free): $1750\ Hz$
- Height: $45\ mm$
- Length: $80\ mm$
- Width: $22\ mm$
- Mass: $160\ g$
* 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
#+begin_src matlab :tangle no
simulinkproject('../');
#+end_src
#+begin_src matlab
open 'simscape/cedrat_piezo.slx'
#+end_src
* Parameters
#+begin_src matlab
cedrat.L = 80; % Total Width of the Actuator[mm]
cedrat.H = 45; % Total Height of the Actuator [mm]
cedrat.L2 = sqrt((cedrat.L/2)^2 + (cedrat.H/2)^2); % Length of the elipsoidal sections [mm]
cedrat.alpha = 180/pi*atan2(cedrat.L/2, cedrat.H/2); % [deg]
cedrat.mtot = 0.160; % Total mass of the Actuator [kg]
cedrat.m = cedrat.mtot/6; % Mass of each single element [kg]
#+end_src
#+begin_src matlab
cedrat.k = 1e9; % Linear Stiffness of each "blade" [N/m]
cedrat.c = 0.1*sqrt(cedrat.mtot*cedrat.k); % [N/(m/s)]
cedrat.ka = 5e7; % Linear Stiffness of the stack [N/m]
cedrat.ca = 0.1*sqrt(cedrat.mtot*cedrat.ka); % [N/(m/s)]
cedrat.kr = 10; % Rotation Stiffness [N*m/(deg)]
cedrat.cr = 0.0001; % Rotation Damping [N*m/(deg/s)]
#+end_src
#+begin_src matlab
K_iff = tf(0);
#+end_src
#+begin_src matlab
% dummy_mass = 140; % [kg]
dummy_mass = 1; % [kg]
#+end_src
* Identification
#+begin_src matlab
%% Options for Linearized
options = linearizeOptions;
options.SampleTime = 0;
%% Name of the Simulink File
mdl = 'cedrat_piezo';
%% Input/Output definition
io(1) = linio([mdl, '/F'], 1, 'input');
io(2) = linio([mdl, '/Fz'], 1, 'input');
io(3) = linio([mdl, '/Dw'], 1, 'input');
io(4) = linio([mdl, '/Dz'], 1, 'output');
io(5) = linio([mdl, '/Fm'], 1, 'output');
%% Run the linearization
G = linearize(mdl, io, options);
G.InputName = {'F', 'Fz', 'Dw'};
G.OutputName = {'Dz', 'Fm'};
#+end_src
#+begin_src matlab :exports none
freqs = logspace(0, 5, 1000);
figure;
subplot(2, 2, 1);
title('From $F_z$ to $D_z$ - Compliance');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Dz', 'Fz'), freqs, 'Hz'))), 'k-');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
subplot(2, 2, 2);
title('From $D_w$ to $D_z$ - Transmissibility');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Dz', 'Dw'), freqs, 'Hz'))), 'k-');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]');
subplot(2, 2, 3);
title('From $F$ to $D_z$ - Plant');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Dz', 'F'), freqs, 'Hz'))), 'k-');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
subplot(2, 2, 4);
title('From $F$ to $F_m$ - IFF Plant');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Fm', 'F'), freqs, 'Hz'))), 'k-');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]');
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/cedrat_piezo_identified_tf.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:cedrat_piezo_identified_tf
#+CAPTION: Identified Transfer function ([[./figs/cedrat_piezo_identified_tf.png][png]], [[./figs/cedrat_piezo_identified_tf.pdf][pdf]])
[[file:figs/cedrat_piezo_identified_tf.png]]
* Integral Force Feedback
#+begin_src matlab :exports none
freqs = logspace(1, 5, 1000);
figure;
ax1 = subplot(2, 1, 1);
plot(freqs, abs(squeeze(freqresp(-G('Fm', 'F'), freqs, 'Hz'))), 'k-');
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ax2 = subplot(2, 1, 2);
plot(freqs, 180/pi*angle(squeeze(freqresp(-G('Fm', 'F'), freqs, 'Hz'))), 'k-');
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
linkaxes([ax1,ax2],'x');
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/iff_plant_cedrat.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:iff_plant_cedrat
#+CAPTION: Transfer function from $F$ to $F_m$ ([[./figs/iff_plant_cedrat.png][png]], [[./figs/iff_plant_cedrat.pdf][pdf]])
[[file:figs/iff_plant_cedrat.png]]
#+begin_src matlab
K_iff = -100000/s*(s/2/pi/100)/(1 + s/2/pi/100)*(s/2/pi/100)/(1 + s/2/pi/100);
#+end_src
#+begin_src matlab :exports none
freqs = logspace(0, 5, 1000);
figure;
ax1 = subplot(2, 1, 1);
plot(freqs, abs(squeeze(freqresp(K_iff*G('Fm', 'F'), freqs, 'Hz'))), 'k-');
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ax2 = subplot(2, 1, 2);
plot(freqs, 180/pi*angle(squeeze(freqresp(K_iff*G('Fm', 'F'), freqs, 'Hz'))), 'k-');
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
linkaxes([ax1,ax2],'x');
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/iff_open_loop_cedrat.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:iff_open_loop_cedrat
#+CAPTION: Open Loop Gain Transfer Function - Cedrat ([[./figs/iff_open_loop_cedrat.png][png]], [[./figs/iff_open_loop_cedrat.pdf][pdf]])
[[file:figs/iff_open_loop_cedrat.png]]
* Damped System
#+begin_src matlab
%% Options for Linearized
options = linearizeOptions;
options.SampleTime = 0;
%% Name of the Simulink File
mdl = 'cedrat_piezo';
%% Input/Output definition
io(1) = linio([mdl, '/F'], 1, 'input');
io(2) = linio([mdl, '/Fz'], 1, 'input');
io(3) = linio([mdl, '/Dw'], 1, 'input');
io(4) = linio([mdl, '/Dz'], 1, 'output');
io(5) = linio([mdl, '/Fm'], 1, 'output');
%% Run the linearization
G_iff = linearize(mdl, io, options);
G_iff.InputName = {'F', 'Fz', 'Dw'};
G_iff.OutputName = {'Dz', 'Fm'};
#+end_src
#+begin_src matlab :exports none
freqs = logspace(0, 5, 1000);
figure;
subplot(2, 2, 1);
title('From $F_z$ to $D_z$ - Compliance');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Dz', 'Fz'), freqs, 'Hz'))), 'k-');
plot(freqs, abs(squeeze(freqresp(G_iff('Dz', 'Fz'), freqs, 'Hz'))), 'k--');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
subplot(2, 2, 2);
title('From $D_w$ to $D_z$ - Transmissibility');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Dz', 'Dw'), freqs, 'Hz'))), 'k-');
plot(freqs, abs(squeeze(freqresp(G_iff('Dz', 'Dw'), freqs, 'Hz'))), 'k--');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]');
subplot(2, 2, 3);
title('From $F$ to $D_z$ - Plant');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Dz', 'F'), freqs, 'Hz'))), 'k-');
plot(freqs, abs(squeeze(freqresp(G_iff('Dz', 'F'), freqs, 'Hz'))), 'k--');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
subplot(2, 2, 4);
title('From $F$ to $F_m$ - IFF Plant');
hold on;
plot(freqs, abs(squeeze(freqresp(G('Fm', 'F'), freqs, 'Hz'))), 'k-');
plot(freqs, abs(squeeze(freqresp(G_iff('Fm', 'F'), freqs, 'Hz'))), 'k--');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]');
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/cedrat_iff_piezo_identified_tf.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:cedrat_iff_piezo_identified_tf
#+CAPTION: Identified Transfer function ([[./figs/cedrat_iff_piezo_identified_tf.png][png]], [[./figs/cedrat_iff_piezo_identified_tf.pdf][pdf]])
[[file:figs/cedrat_iff_piezo_identified_tf.png]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
figs/iff_plant_cedrat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-10-24 jeu. 17:45 --> <!-- 2019-10-29 mar. 10:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Simscape Model of the Nano-Active-Stabilization-System</title> <title>Simscape Model of the Nano-Active-Stabilization-System</title>
@ -258,69 +258,69 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#orgd5f16ac">1. Simulink project</a></li> <li><a href="#org6af5373">1. Simulink project</a></li>
<li><a href="#org56e7a51">2. Simscape Model</a> <li><a href="#org2e621fc">2. Simscape Model</a>
<ul> <ul>
<li><a href="#org82961d5">2.1. Solid bodies</a></li> <li><a href="#orga525a01">2.1. Solid bodies</a></li>
<li><a href="#orga42124d">2.2. Frames</a></li> <li><a href="#orgfcbb75d">2.2. Frames</a></li>
<li><a href="#orge055114">2.3. Joints</a></li> <li><a href="#orga9f9a27">2.3. Joints</a></li>
<li><a href="#org47e566a">2.4. Measurements</a></li> <li><a href="#org09ee778">2.4. Measurements</a></li>
<li><a href="#org5a09b26">2.5. Excitation</a></li> <li><a href="#org318de2c">2.5. Excitation</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org51638cf">3. Notes</a> <li><a href="#orgc7f7e1c">3. Notes</a>
<ul> <ul>
<li><a href="#orga5a0c46">3.1. Simscape files for identification</a></li> <li><a href="#orgb12490c">3.1. Simscape files for identification</a></li>
<li><a href="#org8110e77">3.2. Inputs</a> <li><a href="#orgb836c01">3.2. Inputs</a>
<ul> <ul>
<li><a href="#org20accd3">3.2.1. Perturbations</a></li> <li><a href="#orgf1bf5dd">3.2.1. Perturbations</a></li>
<li><a href="#org250d2cd">3.2.2. Measurement Noise</a></li> <li><a href="#org0810896">3.2.2. Measurement Noise</a></li>
<li><a href="#org8ebaf8b">3.2.3. Control Inputs</a></li> <li><a href="#org5c2d540">3.2.3. Control Inputs</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgdd1e381">3.3. Outputs</a></li> <li><a href="#org6e0a79a">3.3. Outputs</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgce45fdc">4. Simulink files</a></li> <li><a href="#orgd49784d">4. Simulink files</a></li>
<li><a href="#org35afb3e">5. Simulink Library</a> <li><a href="#orgc98892e">5. Simulink Library</a>
<ul> <ul>
<li><a href="#org3b81522">5.1. inputs</a></li> <li><a href="#orgb55d4ab">5.1. inputs</a></li>
<li><a href="#org2e62458">5.2. nass<sub>library</sub></a></li> <li><a href="#org41c1e10">5.2. nass<sub>library</sub></a></li>
<li><a href="#org4592162">5.3. pos<sub>error</sub><sub>wrt</sub><sub>nass</sub><sub>base</sub></a></li> <li><a href="#orgded2da1">5.3. pos<sub>error</sub><sub>wrt</sub><sub>nass</sub><sub>base</sub></a></li>
<li><a href="#orgfef0294">5.4. QuaternionToAngles</a></li> <li><a href="#org7c4f21d">5.4. QuaternionToAngles</a></li>
<li><a href="#org9ee7350">5.5. RotationMatrixToAngle</a></li> <li><a href="#org9c713f6">5.5. RotationMatrixToAngle</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org6a9cdc6">6. Scripts</a> <li><a href="#org3048f9a">6. Scripts</a>
<ul> <ul>
<li><a href="#org9f215f0">6.1. Simulation Initialization</a></li> <li><a href="#orgff52b6c">6.1. Simulation Initialization</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgdd5b11a">7. Functions</a> <li><a href="#org28ec0bd">7. Functions</a>
<ul> <ul>
<li><a href="#orgb083f84">7.1. computePsdDispl</a></li> <li><a href="#org0dfda5a">7.1. computePsdDispl</a></li>
<li><a href="#orgd7d21da">7.2. computeSetpoint</a></li> <li><a href="#org553eea9">7.2. computeSetpoint</a></li>
<li><a href="#org2ccb600">7.3. converErrorBasis</a></li> <li><a href="#org786af26">7.3. converErrorBasis</a></li>
<li><a href="#orgba91549">7.4. generateDiagPidControl</a></li> <li><a href="#org9ea9883">7.4. generateDiagPidControl</a></li>
<li><a href="#orgb444802">7.5. identifyPlant</a></li> <li><a href="#org219d806">7.5. identifyPlant</a></li>
<li><a href="#org560b5ac">7.6. runSimulation</a></li> <li><a href="#orgffb2167">7.6. runSimulation</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orga41103e">8. Initialize Elements</a> <li><a href="#orgcee9dda">8. Initialize Elements</a>
<ul> <ul>
<li><a href="#org19ab520">8.1. Simulation Configuration</a></li> <li><a href="#org870f9ac">8.1. Simulation Configuration</a></li>
<li><a href="#org97baa7d">8.2. Experiment</a></li> <li><a href="#orge30fdf8">8.2. Experiment</a></li>
<li><a href="#org1a1b2ea">8.3. Inputs</a></li> <li><a href="#orgab84833">8.3. Inputs</a></li>
<li><a href="#org349675b">8.4. Ground</a></li> <li><a href="#org103cc41">8.4. Ground</a></li>
<li><a href="#orgf88a64c">8.5. Granite</a></li> <li><a href="#org6619477">8.5. Granite</a></li>
<li><a href="#org4e944ba">8.6. Translation Stage</a></li> <li><a href="#org77a28f7">8.6. Translation Stage</a></li>
<li><a href="#org1b5749b">8.7. Tilt Stage</a></li> <li><a href="#orge78d8a3">8.7. Tilt Stage</a></li>
<li><a href="#org013488a">8.8. Spindle</a></li> <li><a href="#org567c23d">8.8. Spindle</a></li>
<li><a href="#org57a0c6b">8.9. Micro Hexapod</a></li> <li><a href="#orgc032b1e">8.9. Micro Hexapod</a></li>
<li><a href="#org5e378e9">8.10. Center of gravity compensation</a></li> <li><a href="#org3b5edf8">8.10. Center of gravity compensation</a></li>
<li><a href="#org736e9aa">8.11. Mirror</a></li> <li><a href="#orgf300722">8.11. Mirror</a></li>
<li><a href="#orge518bd0">8.12. Nano Hexapod</a></li> <li><a href="#orgf57d858">8.12. Nano Hexapod</a></li>
<li><a href="#org2d2670c">8.13. Sample</a></li> <li><a href="#org2e21283">8.13. Sample</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -337,10 +337,11 @@ for the JavaScript code in this tag.
<li><a href="hac_lac/index.html">HAC LAC</a></li> <li><a href="hac_lac/index.html">HAC LAC</a></li>
<li><a href="kinematics/index.html">Kinematics</a></li> <li><a href="kinematics/index.html">Kinematics</a></li>
<li><a href="modal_test/index.html">Modal Analysis</a></li> <li><a href="modal_test/index.html">Modal Analysis</a></li>
<li><a href="cedrat-actuator/index.html">Cedrat Piezo Actuator</a></li>
</ul> </ul>
<div id="outline-container-orgd5f16ac" class="outline-2"> <div id="outline-container-org6af5373" class="outline-2">
<h2 id="orgd5f16ac"><span class="section-number-2">1</span> Simulink project</h2> <h2 id="org6af5373"><span class="section-number-2">1</span> Simulink project</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
From the <a href="https://mathworks.com/products/simulink/projects.html">Simulink project</a> mathworks page: From the <a href="https://mathworks.com/products/simulink/projects.html">Simulink project</a> mathworks page:
@ -405,8 +406,8 @@ The project also permits to automatically add defined folder to the path when th
</div> </div>
</div> </div>
<div id="outline-container-org56e7a51" class="outline-2"> <div id="outline-container-org2e621fc" class="outline-2">
<h2 id="org56e7a51"><span class="section-number-2">2</span> Simscape Model</h2> <h2 id="org2e621fc"><span class="section-number-2">2</span> Simscape Model</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
A <a href="https://.mathworks.com/products/simscape.html">simscape</a> model permits to model multi-physics systems. A <a href="https://.mathworks.com/products/simscape.html">simscape</a> model permits to model multi-physics systems.
@ -417,8 +418,8 @@ A <a href="https://.mathworks.com/products/simscape.html">simscape</a> model per
</p> </p>
</div> </div>
<div id="outline-container-org82961d5" class="outline-3"> <div id="outline-container-orga525a01" class="outline-3">
<h3 id="org82961d5"><span class="section-number-3">2.1</span> Solid bodies</h3> <h3 id="orga525a01"><span class="section-number-3">2.1</span> Solid bodies</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
Each solid body is represented by a <a href="https://mathworks.com/help/physmod/sm/ref/solid.html">solid block</a>. Each solid body is represented by a <a href="https://mathworks.com/help/physmod/sm/ref/solid.html">solid block</a>.
@ -427,8 +428,8 @@ The geometry of the solid body can be imported using a <code>step</code> file. T
</div> </div>
</div> </div>
<div id="outline-container-orga42124d" class="outline-3"> <div id="outline-container-orgfcbb75d" class="outline-3">
<h3 id="orga42124d"><span class="section-number-3">2.2</span> Frames</h3> <h3 id="orgfcbb75d"><span class="section-number-3">2.2</span> Frames</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<p> <p>
Frames are very important in simscape multibody, they defined where the forces are applied, where the joints are located and where the measurements are made. Frames are very important in simscape multibody, they defined where the forces are applied, where the joints are located and where the measurements are made.
@ -440,8 +441,8 @@ They can be defined from the solid body geometry, or using the <a href="https://
</div> </div>
</div> </div>
<div id="outline-container-orge055114" class="outline-3"> <div id="outline-container-orga9f9a27" class="outline-3">
<h3 id="orge055114"><span class="section-number-3">2.3</span> Joints</h3> <h3 id="orga9f9a27"><span class="section-number-3">2.3</span> Joints</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<p> <p>
Solid Bodies are connected with joints (between frames of the two solid bodies). Solid Bodies are connected with joints (between frames of the two solid bodies).
@ -451,7 +452,7 @@ Solid Bodies are connected with joints (between frames of the two solid bodies).
There are various types of joints that are all described <a href="https://mathworks.com/help/physmod/sm/ug/joints.html">here</a>. There are various types of joints that are all described <a href="https://mathworks.com/help/physmod/sm/ug/joints.html">here</a>.
</p> </p>
<table id="org689a1a2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="orgbcf1bb7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Degrees of freedom associated with each joint</caption> <caption class="t-above"><span class="table-number">Table 1:</span> Degrees of freedom associated with each joint</caption>
<colgroup> <colgroup>
@ -584,7 +585,7 @@ Joint blocks are assortments of joint primitives:
<li><b>Constant Velocity</b>: Allows rotation at constant velocity between intersection through arbitrarily aligned shafts: <code>CV</code></li> <li><b>Constant Velocity</b>: Allows rotation at constant velocity between intersection through arbitrarily aligned shafts: <code>CV</code></li>
</ul> </ul>
<table id="org85b64fc" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="orgcdffc88" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Joint primitives for each joint type</caption> <caption class="t-above"><span class="table-number">Table 2:</span> Joint primitives for each joint type</caption>
<colgroup> <colgroup>
@ -876,8 +877,8 @@ Composite Force/Torque sensing:
</div> </div>
</div> </div>
<div id="outline-container-org47e566a" class="outline-3"> <div id="outline-container-org09ee778" class="outline-3">
<h3 id="org47e566a"><span class="section-number-3">2.4</span> Measurements</h3> <h3 id="org09ee778"><span class="section-number-3">2.4</span> Measurements</h3>
<div class="outline-text-3" id="text-2-4"> <div class="outline-text-3" id="text-2-4">
<p> <p>
A transform sensor block measures the spatial relationship between two frames: the base <code>B</code> and the follower <code>F</code>. A transform sensor block measures the spatial relationship between two frames: the base <code>B</code> and the follower <code>F</code>.
@ -901,8 +902,8 @@ If we want to simulate an <b>inertial sensor</b>, we just have to choose <code>B
</div> </div>
</div> </div>
<div id="outline-container-org5a09b26" class="outline-3"> <div id="outline-container-org318de2c" class="outline-3">
<h3 id="org5a09b26"><span class="section-number-3">2.5</span> Excitation</h3> <h3 id="org318de2c"><span class="section-number-3">2.5</span> Excitation</h3>
<div class="outline-text-3" id="text-2-5"> <div class="outline-text-3" id="text-2-5">
<p> <p>
We can apply <b>external forces</b> to the model by using an <a href="https://mathworks.com/help/physmod/sm/ref/externalforceandtorque.html">external force and torque block</a>. We can apply <b>external forces</b> to the model by using an <a href="https://mathworks.com/help/physmod/sm/ref/externalforceandtorque.html">external force and torque block</a>.
@ -915,12 +916,12 @@ Internal force, acting reciprocally between base and following origins is implem
</div> </div>
</div> </div>
<div id="outline-container-org51638cf" class="outline-2"> <div id="outline-container-orgc7f7e1c" class="outline-2">
<h2 id="org51638cf"><span class="section-number-2">3</span> Notes</h2> <h2 id="orgc7f7e1c"><span class="section-number-2">3</span> Notes</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
</div> </div>
<div id="outline-container-orga5a0c46" class="outline-3"> <div id="outline-container-orgb12490c" class="outline-3">
<h3 id="orga5a0c46"><span class="section-number-3">3.1</span> Simscape files for identification</h3> <h3 id="orgb12490c"><span class="section-number-3">3.1</span> Simscape files for identification</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -989,12 +990,12 @@ Internal force, acting reciprocally between base and following origins is implem
</div> </div>
</div> </div>
<div id="outline-container-org8110e77" class="outline-3"> <div id="outline-container-orgb836c01" class="outline-3">
<h3 id="org8110e77"><span class="section-number-3">3.2</span> Inputs</h3> <h3 id="orgb836c01"><span class="section-number-3">3.2</span> Inputs</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
</div> </div>
<div id="outline-container-org20accd3" class="outline-4"> <div id="outline-container-orgf1bf5dd" class="outline-4">
<h4 id="org20accd3"><span class="section-number-4">3.2.1</span> Perturbations</h4> <h4 id="orgf1bf5dd"><span class="section-number-4">3.2.1</span> Perturbations</h4>
<div class="outline-text-4" id="text-3-2-1"> <div class="outline-text-4" id="text-3-2-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -1042,8 +1043,8 @@ Internal force, acting reciprocally between base and following origins is implem
</div> </div>
</div> </div>
<div id="outline-container-org250d2cd" class="outline-4"> <div id="outline-container-org0810896" class="outline-4">
<h4 id="org250d2cd"><span class="section-number-4">3.2.2</span> Measurement Noise</h4> <h4 id="org0810896"><span class="section-number-4">3.2.2</span> Measurement Noise</h4>
<div class="outline-text-4" id="text-3-2-2"> <div class="outline-text-4" id="text-3-2-2">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -1077,8 +1078,8 @@ Internal force, acting reciprocally between base and following origins is implem
</div> </div>
</div> </div>
<div id="outline-container-org8ebaf8b" class="outline-4"> <div id="outline-container-org5c2d540" class="outline-4">
<h4 id="org8ebaf8b"><span class="section-number-4">3.2.3</span> Control Inputs</h4> <h4 id="org5c2d540"><span class="section-number-4">3.2.3</span> Control Inputs</h4>
<div class="outline-text-4" id="text-3-2-3"> <div class="outline-text-4" id="text-3-2-3">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -1202,8 +1203,8 @@ Internal force, acting reciprocally between base and following origins is implem
</div> </div>
</div> </div>
<div id="outline-container-orgdd1e381" class="outline-3"> <div id="outline-container-org6e0a79a" class="outline-3">
<h3 id="orgdd1e381"><span class="section-number-3">3.3</span> Outputs</h3> <h3 id="org6e0a79a"><span class="section-number-3">3.3</span> Outputs</h3>
<div class="outline-text-3" id="text-3-3"> <div class="outline-text-3" id="text-3-3">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -1321,8 +1322,8 @@ Internal force, acting reciprocally between base and following origins is implem
</div> </div>
</div> </div>
<div id="outline-container-orgce45fdc" class="outline-2"> <div id="outline-container-orgd49784d" class="outline-2">
<h2 id="orgce45fdc"><span class="section-number-2">4</span> Simulink files</h2> <h2 id="orgd49784d"><span class="section-number-2">4</span> Simulink files</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<p> <p>
Few different Simulink files are used: Few different Simulink files are used:
@ -1336,44 +1337,44 @@ Few different Simulink files are used:
</div> </div>
</div> </div>
<div id="outline-container-org35afb3e" class="outline-2"> <div id="outline-container-orgc98892e" class="outline-2">
<h2 id="org35afb3e"><span class="section-number-2">5</span> Simulink Library</h2> <h2 id="orgc98892e"><span class="section-number-2">5</span> Simulink Library</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
<p> <p>
A simulink library is developed in order to share elements between the different simulink files. A simulink library is developed in order to share elements between the different simulink files.
</p> </p>
</div> </div>
<div id="outline-container-org3b81522" class="outline-3"> <div id="outline-container-orgb55d4ab" class="outline-3">
<h3 id="org3b81522"><span class="section-number-3">5.1</span> inputs</h3> <h3 id="orgb55d4ab"><span class="section-number-3">5.1</span> inputs</h3>
</div> </div>
<div id="outline-container-org2e62458" class="outline-3"> <div id="outline-container-org41c1e10" class="outline-3">
<h3 id="org2e62458"><span class="section-number-3">5.2</span> nass<sub>library</sub></h3> <h3 id="org41c1e10"><span class="section-number-3">5.2</span> nass<sub>library</sub></h3>
</div> </div>
<div id="outline-container-org4592162" class="outline-3"> <div id="outline-container-orgded2da1" class="outline-3">
<h3 id="org4592162"><span class="section-number-3">5.3</span> pos<sub>error</sub><sub>wrt</sub><sub>nass</sub><sub>base</sub></h3> <h3 id="orgded2da1"><span class="section-number-3">5.3</span> pos<sub>error</sub><sub>wrt</sub><sub>nass</sub><sub>base</sub></h3>
</div> </div>
<div id="outline-container-orgfef0294" class="outline-3"> <div id="outline-container-org7c4f21d" class="outline-3">
<h3 id="orgfef0294"><span class="section-number-3">5.4</span> QuaternionToAngles</h3> <h3 id="org7c4f21d"><span class="section-number-3">5.4</span> QuaternionToAngles</h3>
</div> </div>
<div id="outline-container-org9ee7350" class="outline-3"> <div id="outline-container-org9c713f6" class="outline-3">
<h3 id="org9ee7350"><span class="section-number-3">5.5</span> RotationMatrixToAngle</h3> <h3 id="org9c713f6"><span class="section-number-3">5.5</span> RotationMatrixToAngle</h3>
</div> </div>
</div> </div>
<div id="outline-container-org6a9cdc6" class="outline-2"> <div id="outline-container-org3048f9a" class="outline-2">
<h2 id="org6a9cdc6"><span class="section-number-2">6</span> Scripts</h2> <h2 id="org3048f9a"><span class="section-number-2">6</span> Scripts</h2>
<div class="outline-text-2" id="text-6"> <div class="outline-text-2" id="text-6">
</div> </div>
<div id="outline-container-org9f215f0" class="outline-3"> <div id="outline-container-orgff52b6c" class="outline-3">
<h3 id="org9f215f0"><span class="section-number-3">6.1</span> Simulation Initialization</h3> <h3 id="orgff52b6c"><span class="section-number-3">6.1</span> Simulation Initialization</h3>
<div class="outline-text-3" id="text-6-1"> <div class="outline-text-3" id="text-6-1">
<p> <p>
<a id="orgd49f9d3"></a> <a id="org1cdf096"></a>
</p> </p>
<p> <p>
@ -1397,15 +1398,15 @@ load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string
</div> </div>
</div> </div>
<div id="outline-container-orgdd5b11a" class="outline-2"> <div id="outline-container-org28ec0bd" class="outline-2">
<h2 id="orgdd5b11a"><span class="section-number-2">7</span> Functions</h2> <h2 id="org28ec0bd"><span class="section-number-2">7</span> Functions</h2>
<div class="outline-text-2" id="text-7"> <div class="outline-text-2" id="text-7">
</div> </div>
<div id="outline-container-orgb083f84" class="outline-3"> <div id="outline-container-org0dfda5a" class="outline-3">
<h3 id="orgb083f84"><span class="section-number-3">7.1</span> computePsdDispl</h3> <h3 id="org0dfda5a"><span class="section-number-3">7.1</span> computePsdDispl</h3>
<div class="outline-text-3" id="text-7-1"> <div class="outline-text-3" id="text-7-1">
<p> <p>
<a id="orgd3a1da9"></a> <a id="orgb5eb383"></a>
</p> </p>
<p> <p>
@ -1440,11 +1441,11 @@ This Matlab function is accessible <a href="src/computePsdDispl.m">here</a>.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgd7d21da" class="outline-3"> <div id="outline-container-org553eea9" class="outline-3">
<h3 id="orgd7d21da"><span class="section-number-3">7.2</span> computeSetpoint</h3> <h3 id="org553eea9"><span class="section-number-3">7.2</span> computeSetpoint</h3>
<div class="outline-text-3" id="text-7-2"> <div class="outline-text-3" id="text-7-2">
<p> <p>
<a id="orgcc44bdf"></a> <a id="orgd3c6bc1"></a>
</p> </p>
<p> <p>
@ -1515,11 +1516,11 @@ setpoint<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-hi
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org2ccb600" class="outline-3"> <div id="outline-container-org786af26" class="outline-3">
<h3 id="org2ccb600"><span class="section-number-3">7.3</span> converErrorBasis</h3> <h3 id="org786af26"><span class="section-number-3">7.3</span> converErrorBasis</h3>
<div class="outline-text-3" id="text-7-3"> <div class="outline-text-3" id="text-7-3">
<p> <p>
<a id="orgf2d385b"></a> <a id="orga13b9f1"></a>
</p> </p>
<p> <p>
@ -1656,11 +1657,11 @@ error_nass = <span class="org-rainbow-delimiters-depth-1">[</span>dx; dy; dz; th
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgba91549" class="outline-3"> <div id="outline-container-org9ea9883" class="outline-3">
<h3 id="orgba91549"><span class="section-number-3">7.4</span> generateDiagPidControl</h3> <h3 id="org9ea9883"><span class="section-number-3">7.4</span> generateDiagPidControl</h3>
<div class="outline-text-3" id="text-7-4"> <div class="outline-text-3" id="text-7-4">
<p> <p>
<a id="org6d0f979"></a> <a id="orgdff51b6"></a>
</p> </p>
<p> <p>
@ -1690,11 +1691,11 @@ This Matlab function is accessible <a href="src/generateDiagPidControl.m">here</
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgb444802" class="outline-3"> <div id="outline-container-org219d806" class="outline-3">
<h3 id="orgb444802"><span class="section-number-3">7.5</span> identifyPlant</h3> <h3 id="org219d806"><span class="section-number-3">7.5</span> identifyPlant</h3>
<div class="outline-text-3" id="text-7-5"> <div class="outline-text-3" id="text-7-5">
<p> <p>
<a id="org9561857"></a> <a id="org0ed2644"></a>
</p> </p>
<p> <p>
@ -1759,11 +1760,11 @@ This Matlab function is accessible <a href="src/identifyPlant.m">here</a>.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org560b5ac" class="outline-3"> <div id="outline-container-orgffb2167" class="outline-3">
<h3 id="org560b5ac"><span class="section-number-3">7.6</span> runSimulation</h3> <h3 id="orgffb2167"><span class="section-number-3">7.6</span> runSimulation</h3>
<div class="outline-text-3" id="text-7-6"> <div class="outline-text-3" id="text-7-6">
<p> <p>
<a id="org1e8aa6c"></a> <a id="orge0cdc60"></a>
</p> </p>
<p> <p>
@ -1832,15 +1833,15 @@ This Matlab function is accessible <a href="src/runSimulation.m">here</a>.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orga41103e" class="outline-2"> <div id="outline-container-orgcee9dda" class="outline-2">
<h2 id="orga41103e"><span class="section-number-2">8</span> Initialize Elements</h2> <h2 id="orgcee9dda"><span class="section-number-2">8</span> Initialize Elements</h2>
<div class="outline-text-2" id="text-8"> <div class="outline-text-2" id="text-8">
</div> </div>
<div id="outline-container-org19ab520" class="outline-3"> <div id="outline-container-org870f9ac" class="outline-3">
<h3 id="org19ab520"><span class="section-number-3">8.1</span> Simulation Configuration</h3> <h3 id="org870f9ac"><span class="section-number-3">8.1</span> Simulation Configuration</h3>
<div class="outline-text-3" id="text-8-1"> <div class="outline-text-3" id="text-8-1">
<p> <p>
<a id="org590e5d6"></a> <a id="org0e8d931"></a>
</p> </p>
<p> <p>
@ -1886,11 +1887,11 @@ This Matlab function is accessible <a href="src/initializeSimConf.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-org97baa7d" class="outline-3"> <div id="outline-container-orge30fdf8" class="outline-3">
<h3 id="org97baa7d"><span class="section-number-3">8.2</span> Experiment</h3> <h3 id="orge30fdf8"><span class="section-number-3">8.2</span> Experiment</h3>
<div class="outline-text-3" id="text-8-2"> <div class="outline-text-3" id="text-8-2">
<p> <p>
<a id="org8949bdb"></a> <a id="org27259e7"></a>
</p> </p>
<p> <p>
@ -1930,11 +1931,11 @@ This Matlab function is accessible <a href="src/initializeExperiment.m">here</a>
</div> </div>
</div> </div>
<div id="outline-container-org1a1b2ea" class="outline-3"> <div id="outline-container-orgab84833" class="outline-3">
<h3 id="org1a1b2ea"><span class="section-number-3">8.3</span> Inputs</h3> <h3 id="orgab84833"><span class="section-number-3">8.3</span> Inputs</h3>
<div class="outline-text-3" id="text-8-3"> <div class="outline-text-3" id="text-8-3">
<p> <p>
<a id="orge91025a"></a> <a id="org9834d3d"></a>
</p> </p>
<p> <p>
@ -2122,11 +2123,11 @@ This Matlab function is accessible <a href="src/initializeInputs.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-org349675b" class="outline-3"> <div id="outline-container-org103cc41" class="outline-3">
<h3 id="org349675b"><span class="section-number-3">8.4</span> Ground</h3> <h3 id="org103cc41"><span class="section-number-3">8.4</span> Ground</h3>
<div class="outline-text-3" id="text-8-4"> <div class="outline-text-3" id="text-8-4">
<p> <p>
<a id="org27ddd7c"></a> <a id="orga991e31"></a>
</p> </p>
<p> <p>
@ -2150,11 +2151,11 @@ This Matlab function is accessible <a href="src/initializeGround.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-orgf88a64c" class="outline-3"> <div id="outline-container-org6619477" class="outline-3">
<h3 id="orgf88a64c"><span class="section-number-3">8.5</span> Granite</h3> <h3 id="org6619477"><span class="section-number-3">8.5</span> Granite</h3>
<div class="outline-text-3" id="text-8-5"> <div class="outline-text-3" id="text-8-5">
<p> <p>
<a id="org2366704"></a> <a id="org15c259d"></a>
</p> </p>
<p> <p>
@ -2194,11 +2195,11 @@ This Matlab function is accessible <a href="src/initializeGranite.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-org4e944ba" class="outline-3"> <div id="outline-container-org77a28f7" class="outline-3">
<h3 id="org4e944ba"><span class="section-number-3">8.6</span> Translation Stage</h3> <h3 id="org77a28f7"><span class="section-number-3">8.6</span> Translation Stage</h3>
<div class="outline-text-3" id="text-8-6"> <div class="outline-text-3" id="text-8-6">
<p> <p>
<a id="orgef84318"></a> <a id="org98bfb5b"></a>
</p> </p>
<p> <p>
@ -2279,11 +2280,11 @@ This Matlab function is accessible <a href="src/initializeTy.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-org1b5749b" class="outline-3"> <div id="outline-container-orge78d8a3" class="outline-3">
<h3 id="org1b5749b"><span class="section-number-3">8.7</span> Tilt Stage</h3> <h3 id="orge78d8a3"><span class="section-number-3">8.7</span> Tilt Stage</h3>
<div class="outline-text-3" id="text-8-7"> <div class="outline-text-3" id="text-8-7">
<p> <p>
<a id="orgd4a1cef"></a> <a id="org87f3ecd"></a>
</p> </p>
<p> <p>
@ -2352,11 +2353,11 @@ This Matlab function is accessible <a href="src/initializeRy.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-org013488a" class="outline-3"> <div id="outline-container-org567c23d" class="outline-3">
<h3 id="org013488a"><span class="section-number-3">8.8</span> Spindle</h3> <h3 id="org567c23d"><span class="section-number-3">8.8</span> Spindle</h3>
<div class="outline-text-3" id="text-8-8"> <div class="outline-text-3" id="text-8-8">
<p> <p>
<a id="orgf0294ef"></a> <a id="orga6d2fea"></a>
</p> </p>
<p> <p>
@ -2421,11 +2422,11 @@ This Matlab function is accessible <a href="src/initializeRz.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-org57a0c6b" class="outline-3"> <div id="outline-container-orgc032b1e" class="outline-3">
<h3 id="org57a0c6b"><span class="section-number-3">8.9</span> Micro Hexapod</h3> <h3 id="orgc032b1e"><span class="section-number-3">8.9</span> Micro Hexapod</h3>
<div class="outline-text-3" id="text-8-9"> <div class="outline-text-3" id="text-8-9">
<p> <p>
<a id="org179b1f0"></a> <a id="orgbd011a3"></a>
</p> </p>
<p> <p>
@ -2631,11 +2632,11 @@ This Matlab function is accessible <a href="src/initializeMicroHexapod.m">here</
</div> </div>
</div> </div>
<div id="outline-container-org5e378e9" class="outline-3"> <div id="outline-container-org3b5edf8" class="outline-3">
<h3 id="org5e378e9"><span class="section-number-3">8.10</span> Center of gravity compensation</h3> <h3 id="org3b5edf8"><span class="section-number-3">8.10</span> Center of gravity compensation</h3>
<div class="outline-text-3" id="text-8-10"> <div class="outline-text-3" id="text-8-10">
<p> <p>
<a id="orgbd4fe61"></a> <a id="org908ebcf"></a>
</p> </p>
<p> <p>
@ -2678,11 +2679,11 @@ This Matlab function is accessible <a href="src/initializeAxisc.m">here</a>.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org736e9aa" class="outline-3"> <div id="outline-container-orgf300722" class="outline-3">
<h3 id="org736e9aa"><span class="section-number-3">8.11</span> Mirror</h3> <h3 id="orgf300722"><span class="section-number-3">8.11</span> Mirror</h3>
<div class="outline-text-3" id="text-8-11"> <div class="outline-text-3" id="text-8-11">
<p> <p>
<a id="orgba578b7"></a> <a id="orgb5894e5"></a>
</p> </p>
<p> <p>
@ -2748,11 +2749,11 @@ This Matlab function is accessible <a href="src/initializeMirror.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-orge518bd0" class="outline-3"> <div id="outline-container-orgf57d858" class="outline-3">
<h3 id="orge518bd0"><span class="section-number-3">8.12</span> Nano Hexapod</h3> <h3 id="orgf57d858"><span class="section-number-3">8.12</span> Nano Hexapod</h3>
<div class="outline-text-3" id="text-8-12"> <div class="outline-text-3" id="text-8-12">
<p> <p>
<a id="orgcdeabe8"></a> <a id="org9b0c46a"></a>
</p> </p>
<p> <p>
@ -2965,11 +2966,11 @@ This Matlab function is accessible <a href="src/initializeNanoHexapod.m">here</a
</div> </div>
</div> </div>
<div id="outline-container-org2d2670c" class="outline-3"> <div id="outline-container-org2e21283" class="outline-3">
<h3 id="org2d2670c"><span class="section-number-3">8.13</span> Sample</h3> <h3 id="org2e21283"><span class="section-number-3">8.13</span> Sample</h3>
<div class="outline-text-3" id="text-8-13"> <div class="outline-text-3" id="text-8-13">
<p> <p>
<a id="org1911a0c"></a> <a id="org0a4b50f"></a>
</p> </p>
<p> <p>
@ -3014,7 +3015,7 @@ This Matlab function is accessible <a href="src/initializeSample.m">here</a>.
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-10-24 jeu. 17:45</p> <p class="date">Created: 2019-10-29 mar. 10:52</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View File

@ -50,6 +50,7 @@
- [[file:hac_lac/index.org][HAC LAC]] - [[file:hac_lac/index.org][HAC LAC]]
- [[file:kinematics/index.org][Kinematics]] - [[file:kinematics/index.org][Kinematics]]
- [[file:modal_test/index.org][Modal Analysis]] - [[file:modal_test/index.org][Modal Analysis]]
- [[file:cedrat-actuator/index.org][Cedrat Piezo Actuator]]
* Matlab Init :noexport:ignore: * Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)

BIN
simscape/cedrat_piezo.slx Normal file

Binary file not shown.