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">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<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 name="viewport" content="width=device-width, initial-scale=1" />
<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>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgd5f16ac">1. Simulink project</a></li>
<li><a href="#org56e7a51">2. Simscape Model</a>
<li><a href="#org6af5373">1. Simulink project</a></li>
<li><a href="#org2e621fc">2. Simscape Model</a>
<ul>
<li><a href="#org82961d5">2.1. Solid bodies</a></li>
<li><a href="#orga42124d">2.2. Frames</a></li>
<li><a href="#orge055114">2.3. Joints</a></li>
<li><a href="#org47e566a">2.4. Measurements</a></li>
<li><a href="#org5a09b26">2.5. Excitation</a></li>
<li><a href="#orga525a01">2.1. Solid bodies</a></li>
<li><a href="#orgfcbb75d">2.2. Frames</a></li>
<li><a href="#orga9f9a27">2.3. Joints</a></li>
<li><a href="#org09ee778">2.4. Measurements</a></li>
<li><a href="#org318de2c">2.5. Excitation</a></li>
</ul>
</li>
<li><a href="#org51638cf">3. Notes</a>
<li><a href="#orgc7f7e1c">3. Notes</a>
<ul>
<li><a href="#orga5a0c46">3.1. Simscape files for identification</a></li>
<li><a href="#org8110e77">3.2. Inputs</a>
<li><a href="#orgb12490c">3.1. Simscape files for identification</a></li>
<li><a href="#orgb836c01">3.2. Inputs</a>
<ul>
<li><a href="#org20accd3">3.2.1. Perturbations</a></li>
<li><a href="#org250d2cd">3.2.2. Measurement Noise</a></li>
<li><a href="#org8ebaf8b">3.2.3. Control Inputs</a></li>
<li><a href="#orgf1bf5dd">3.2.1. Perturbations</a></li>
<li><a href="#org0810896">3.2.2. Measurement Noise</a></li>
<li><a href="#org5c2d540">3.2.3. Control Inputs</a></li>
</ul>
</li>
<li><a href="#orgdd1e381">3.3. Outputs</a></li>
<li><a href="#org6e0a79a">3.3. Outputs</a></li>
</ul>
</li>
<li><a href="#orgce45fdc">4. Simulink files</a></li>
<li><a href="#org35afb3e">5. Simulink Library</a>
<li><a href="#orgd49784d">4. Simulink files</a></li>
<li><a href="#orgc98892e">5. Simulink Library</a>
<ul>
<li><a href="#org3b81522">5.1. inputs</a></li>
<li><a href="#org2e62458">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="#orgfef0294">5.4. QuaternionToAngles</a></li>
<li><a href="#org9ee7350">5.5. RotationMatrixToAngle</a></li>
<li><a href="#orgb55d4ab">5.1. inputs</a></li>
<li><a href="#org41c1e10">5.2. nass<sub>library</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="#org7c4f21d">5.4. QuaternionToAngles</a></li>
<li><a href="#org9c713f6">5.5. RotationMatrixToAngle</a></li>
</ul>
</li>
<li><a href="#org6a9cdc6">6. Scripts</a>
<li><a href="#org3048f9a">6. Scripts</a>
<ul>
<li><a href="#org9f215f0">6.1. Simulation Initialization</a></li>
<li><a href="#orgff52b6c">6.1. Simulation Initialization</a></li>
</ul>
</li>
<li><a href="#orgdd5b11a">7. Functions</a>
<li><a href="#org28ec0bd">7. Functions</a>
<ul>
<li><a href="#orgb083f84">7.1. computePsdDispl</a></li>
<li><a href="#orgd7d21da">7.2. computeSetpoint</a></li>
<li><a href="#org2ccb600">7.3. converErrorBasis</a></li>
<li><a href="#orgba91549">7.4. generateDiagPidControl</a></li>
<li><a href="#orgb444802">7.5. identifyPlant</a></li>
<li><a href="#org560b5ac">7.6. runSimulation</a></li>
<li><a href="#org0dfda5a">7.1. computePsdDispl</a></li>
<li><a href="#org553eea9">7.2. computeSetpoint</a></li>
<li><a href="#org786af26">7.3. converErrorBasis</a></li>
<li><a href="#org9ea9883">7.4. generateDiagPidControl</a></li>
<li><a href="#org219d806">7.5. identifyPlant</a></li>
<li><a href="#orgffb2167">7.6. runSimulation</a></li>
</ul>
</li>
<li><a href="#orga41103e">8. Initialize Elements</a>
<li><a href="#orgcee9dda">8. Initialize Elements</a>
<ul>
<li><a href="#org19ab520">8.1. Simulation Configuration</a></li>
<li><a href="#org97baa7d">8.2. Experiment</a></li>
<li><a href="#org1a1b2ea">8.3. Inputs</a></li>
<li><a href="#org349675b">8.4. Ground</a></li>
<li><a href="#orgf88a64c">8.5. Granite</a></li>
<li><a href="#org4e944ba">8.6. Translation Stage</a></li>
<li><a href="#org1b5749b">8.7. Tilt Stage</a></li>
<li><a href="#org013488a">8.8. Spindle</a></li>
<li><a href="#org57a0c6b">8.9. Micro Hexapod</a></li>
<li><a href="#org5e378e9">8.10. Center of gravity compensation</a></li>
<li><a href="#org736e9aa">8.11. Mirror</a></li>
<li><a href="#orge518bd0">8.12. Nano Hexapod</a></li>
<li><a href="#org2d2670c">8.13. Sample</a></li>
<li><a href="#org870f9ac">8.1. Simulation Configuration</a></li>
<li><a href="#orge30fdf8">8.2. Experiment</a></li>
<li><a href="#orgab84833">8.3. Inputs</a></li>
<li><a href="#org103cc41">8.4. Ground</a></li>
<li><a href="#org6619477">8.5. Granite</a></li>
<li><a href="#org77a28f7">8.6. Translation Stage</a></li>
<li><a href="#orge78d8a3">8.7. Tilt Stage</a></li>
<li><a href="#org567c23d">8.8. Spindle</a></li>
<li><a href="#orgc032b1e">8.9. Micro Hexapod</a></li>
<li><a href="#org3b5edf8">8.10. Center of gravity compensation</a></li>
<li><a href="#orgf300722">8.11. Mirror</a></li>
<li><a href="#orgf57d858">8.12. Nano Hexapod</a></li>
<li><a href="#org2e21283">8.13. Sample</a></li>
</ul>
</li>
</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="kinematics/index.html">Kinematics</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>
<div id="outline-container-orgd5f16ac" class="outline-2">
<h2 id="orgd5f16ac"><span class="section-number-2">1</span> Simulink project</h2>
<div id="outline-container-org6af5373" class="outline-2">
<h2 id="org6af5373"><span class="section-number-2">1</span> Simulink project</h2>
<div class="outline-text-2" id="text-1">
<p>
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 id="outline-container-org56e7a51" class="outline-2">
<h2 id="org56e7a51"><span class="section-number-2">2</span> Simscape Model</h2>
<div id="outline-container-org2e621fc" class="outline-2">
<h2 id="org2e621fc"><span class="section-number-2">2</span> Simscape Model</h2>
<div class="outline-text-2" id="text-2">
<p>
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>
</div>
<div id="outline-container-org82961d5" class="outline-3">
<h3 id="org82961d5"><span class="section-number-3">2.1</span> Solid bodies</h3>
<div id="outline-container-orga525a01" class="outline-3">
<h3 id="orga525a01"><span class="section-number-3">2.1</span> Solid bodies</h3>
<div class="outline-text-3" id="text-2-1">
<p>
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 id="outline-container-orga42124d" class="outline-3">
<h3 id="orga42124d"><span class="section-number-3">2.2</span> Frames</h3>
<div id="outline-container-orgfcbb75d" class="outline-3">
<h3 id="orgfcbb75d"><span class="section-number-3">2.2</span> Frames</h3>
<div class="outline-text-3" id="text-2-2">
<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.
@ -440,8 +441,8 @@ They can be defined from the solid body geometry, or using the <a href="https://
</div>
</div>
<div id="outline-container-orge055114" class="outline-3">
<h3 id="orge055114"><span class="section-number-3">2.3</span> Joints</h3>
<div id="outline-container-orga9f9a27" class="outline-3">
<h3 id="orga9f9a27"><span class="section-number-3">2.3</span> Joints</h3>
<div class="outline-text-3" id="text-2-3">
<p>
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>.
</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>
<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>
</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>
<colgroup>
@ -876,8 +877,8 @@ Composite Force/Torque sensing:
</div>
</div>
<div id="outline-container-org47e566a" class="outline-3">
<h3 id="org47e566a"><span class="section-number-3">2.4</span> Measurements</h3>
<div id="outline-container-org09ee778" class="outline-3">
<h3 id="org09ee778"><span class="section-number-3">2.4</span> Measurements</h3>
<div class="outline-text-3" id="text-2-4">
<p>
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 id="outline-container-org5a09b26" class="outline-3">
<h3 id="org5a09b26"><span class="section-number-3">2.5</span> Excitation</h3>
<div id="outline-container-org318de2c" class="outline-3">
<h3 id="org318de2c"><span class="section-number-3">2.5</span> Excitation</h3>
<div class="outline-text-3" id="text-2-5">
<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>.
@ -915,12 +916,12 @@ Internal force, acting reciprocally between base and following origins is implem
</div>
</div>
<div id="outline-container-org51638cf" class="outline-2">
<h2 id="org51638cf"><span class="section-number-2">3</span> Notes</h2>
<div id="outline-container-orgc7f7e1c" class="outline-2">
<h2 id="orgc7f7e1c"><span class="section-number-2">3</span> Notes</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-orga5a0c46" class="outline-3">
<h3 id="orga5a0c46"><span class="section-number-3">3.1</span> Simscape files for identification</h3>
<div id="outline-container-orgb12490c" class="outline-3">
<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">
<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 id="outline-container-org8110e77" class="outline-3">
<h3 id="org8110e77"><span class="section-number-3">3.2</span> Inputs</h3>
<div id="outline-container-orgb836c01" class="outline-3">
<h3 id="orgb836c01"><span class="section-number-3">3.2</span> Inputs</h3>
<div class="outline-text-3" id="text-3-2">
</div>
<div id="outline-container-org20accd3" class="outline-4">
<h4 id="org20accd3"><span class="section-number-4">3.2.1</span> Perturbations</h4>
<div id="outline-container-orgf1bf5dd" class="outline-4">
<h4 id="orgf1bf5dd"><span class="section-number-4">3.2.1</span> Perturbations</h4>
<div class="outline-text-4" id="text-3-2-1">
<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 id="outline-container-org250d2cd" class="outline-4">
<h4 id="org250d2cd"><span class="section-number-4">3.2.2</span> Measurement Noise</h4>
<div id="outline-container-org0810896" class="outline-4">
<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">
<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 id="outline-container-org8ebaf8b" class="outline-4">
<h4 id="org8ebaf8b"><span class="section-number-4">3.2.3</span> Control Inputs</h4>
<div id="outline-container-org5c2d540" class="outline-4">
<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">
<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 id="outline-container-orgdd1e381" class="outline-3">
<h3 id="orgdd1e381"><span class="section-number-3">3.3</span> Outputs</h3>
<div id="outline-container-org6e0a79a" class="outline-3">
<h3 id="org6e0a79a"><span class="section-number-3">3.3</span> Outputs</h3>
<div class="outline-text-3" id="text-3-3">
<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 id="outline-container-orgce45fdc" class="outline-2">
<h2 id="orgce45fdc"><span class="section-number-2">4</span> Simulink files</h2>
<div id="outline-container-orgd49784d" class="outline-2">
<h2 id="orgd49784d"><span class="section-number-2">4</span> Simulink files</h2>
<div class="outline-text-2" id="text-4">
<p>
Few different Simulink files are used:
@ -1336,44 +1337,44 @@ Few different Simulink files are used:
</div>
</div>
<div id="outline-container-org35afb3e" class="outline-2">
<h2 id="org35afb3e"><span class="section-number-2">5</span> Simulink Library</h2>
<div id="outline-container-orgc98892e" class="outline-2">
<h2 id="orgc98892e"><span class="section-number-2">5</span> Simulink Library</h2>
<div class="outline-text-2" id="text-5">
<p>
A simulink library is developed in order to share elements between the different simulink files.
</p>
</div>
<div id="outline-container-org3b81522" class="outline-3">
<h3 id="org3b81522"><span class="section-number-3">5.1</span> inputs</h3>
<div id="outline-container-orgb55d4ab" class="outline-3">
<h3 id="orgb55d4ab"><span class="section-number-3">5.1</span> inputs</h3>
</div>
<div id="outline-container-org2e62458" class="outline-3">
<h3 id="org2e62458"><span class="section-number-3">5.2</span> nass<sub>library</sub></h3>
<div id="outline-container-org41c1e10" class="outline-3">
<h3 id="org41c1e10"><span class="section-number-3">5.2</span> nass<sub>library</sub></h3>
</div>
<div id="outline-container-org4592162" 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>
<div id="outline-container-orgded2da1" class="outline-3">
<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 id="outline-container-orgfef0294" class="outline-3">
<h3 id="orgfef0294"><span class="section-number-3">5.4</span> QuaternionToAngles</h3>
<div id="outline-container-org7c4f21d" class="outline-3">
<h3 id="org7c4f21d"><span class="section-number-3">5.4</span> QuaternionToAngles</h3>
</div>
<div id="outline-container-org9ee7350" class="outline-3">
<h3 id="org9ee7350"><span class="section-number-3">5.5</span> RotationMatrixToAngle</h3>
<div id="outline-container-org9c713f6" class="outline-3">
<h3 id="org9c713f6"><span class="section-number-3">5.5</span> RotationMatrixToAngle</h3>
</div>
</div>
<div id="outline-container-org6a9cdc6" class="outline-2">
<h2 id="org6a9cdc6"><span class="section-number-2">6</span> Scripts</h2>
<div id="outline-container-org3048f9a" class="outline-2">
<h2 id="org3048f9a"><span class="section-number-2">6</span> Scripts</h2>
<div class="outline-text-2" id="text-6">
</div>
<div id="outline-container-org9f215f0" class="outline-3">
<h3 id="org9f215f0"><span class="section-number-3">6.1</span> Simulation Initialization</h3>
<div id="outline-container-orgff52b6c" class="outline-3">
<h3 id="orgff52b6c"><span class="section-number-3">6.1</span> Simulation Initialization</h3>
<div class="outline-text-3" id="text-6-1">
<p>
<a id="orgd49f9d3"></a>
<a id="org1cdf096"></a>
</p>
<p>
@ -1397,15 +1398,15 @@ load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string
</div>
</div>
<div id="outline-container-orgdd5b11a" class="outline-2">
<h2 id="orgdd5b11a"><span class="section-number-2">7</span> Functions</h2>
<div id="outline-container-org28ec0bd" class="outline-2">
<h2 id="org28ec0bd"><span class="section-number-2">7</span> Functions</h2>
<div class="outline-text-2" id="text-7">
</div>
<div id="outline-container-orgb083f84" class="outline-3">
<h3 id="orgb083f84"><span class="section-number-3">7.1</span> computePsdDispl</h3>
<div id="outline-container-org0dfda5a" class="outline-3">
<h3 id="org0dfda5a"><span class="section-number-3">7.1</span> computePsdDispl</h3>
<div class="outline-text-3" id="text-7-1">
<p>
<a id="orgd3a1da9"></a>
<a id="orgb5eb383"></a>
</p>
<p>
@ -1440,11 +1441,11 @@ This Matlab function is accessible <a href="src/computePsdDispl.m">here</a>.
</div>
</div>
</div>
<div id="outline-container-orgd7d21da" class="outline-3">
<h3 id="orgd7d21da"><span class="section-number-3">7.2</span> computeSetpoint</h3>
<div id="outline-container-org553eea9" class="outline-3">
<h3 id="org553eea9"><span class="section-number-3">7.2</span> computeSetpoint</h3>
<div class="outline-text-3" id="text-7-2">
<p>
<a id="orgcc44bdf"></a>
<a id="orgd3c6bc1"></a>
</p>
<p>
@ -1515,11 +1516,11 @@ setpoint<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-hi
</div>
</div>
</div>
<div id="outline-container-org2ccb600" class="outline-3">
<h3 id="org2ccb600"><span class="section-number-3">7.3</span> converErrorBasis</h3>
<div id="outline-container-org786af26" class="outline-3">
<h3 id="org786af26"><span class="section-number-3">7.3</span> converErrorBasis</h3>
<div class="outline-text-3" id="text-7-3">
<p>
<a id="orgf2d385b"></a>
<a id="orga13b9f1"></a>
</p>
<p>
@ -1656,11 +1657,11 @@ error_nass = <span class="org-rainbow-delimiters-depth-1">[</span>dx; dy; dz; th
</div>
</div>
</div>
<div id="outline-container-orgba91549" class="outline-3">
<h3 id="orgba91549"><span class="section-number-3">7.4</span> generateDiagPidControl</h3>
<div id="outline-container-org9ea9883" class="outline-3">
<h3 id="org9ea9883"><span class="section-number-3">7.4</span> generateDiagPidControl</h3>
<div class="outline-text-3" id="text-7-4">
<p>
<a id="org6d0f979"></a>
<a id="orgdff51b6"></a>
</p>
<p>
@ -1690,11 +1691,11 @@ This Matlab function is accessible <a href="src/generateDiagPidControl.m">here</
</div>
</div>
</div>
<div id="outline-container-orgb444802" class="outline-3">
<h3 id="orgb444802"><span class="section-number-3">7.5</span> identifyPlant</h3>
<div id="outline-container-org219d806" class="outline-3">
<h3 id="org219d806"><span class="section-number-3">7.5</span> identifyPlant</h3>
<div class="outline-text-3" id="text-7-5">
<p>
<a id="org9561857"></a>
<a id="org0ed2644"></a>
</p>
<p>
@ -1759,11 +1760,11 @@ This Matlab function is accessible <a href="src/identifyPlant.m">here</a>.
</div>
</div>
</div>
<div id="outline-container-org560b5ac" class="outline-3">
<h3 id="org560b5ac"><span class="section-number-3">7.6</span> runSimulation</h3>
<div id="outline-container-orgffb2167" class="outline-3">
<h3 id="orgffb2167"><span class="section-number-3">7.6</span> runSimulation</h3>
<div class="outline-text-3" id="text-7-6">
<p>
<a id="org1e8aa6c"></a>
<a id="orge0cdc60"></a>
</p>
<p>
@ -1832,15 +1833,15 @@ This Matlab function is accessible <a href="src/runSimulation.m">here</a>.
</div>
</div>
</div>
<div id="outline-container-orga41103e" class="outline-2">
<h2 id="orga41103e"><span class="section-number-2">8</span> Initialize Elements</h2>
<div id="outline-container-orgcee9dda" class="outline-2">
<h2 id="orgcee9dda"><span class="section-number-2">8</span> Initialize Elements</h2>
<div class="outline-text-2" id="text-8">
</div>
<div id="outline-container-org19ab520" class="outline-3">
<h3 id="org19ab520"><span class="section-number-3">8.1</span> Simulation Configuration</h3>
<div id="outline-container-org870f9ac" class="outline-3">
<h3 id="org870f9ac"><span class="section-number-3">8.1</span> Simulation Configuration</h3>
<div class="outline-text-3" id="text-8-1">
<p>
<a id="org590e5d6"></a>
<a id="org0e8d931"></a>
</p>
<p>
@ -1886,11 +1887,11 @@ This Matlab function is accessible <a href="src/initializeSimConf.m">here</a>.
</div>
</div>
<div id="outline-container-org97baa7d" class="outline-3">
<h3 id="org97baa7d"><span class="section-number-3">8.2</span> Experiment</h3>
<div id="outline-container-orge30fdf8" class="outline-3">
<h3 id="orge30fdf8"><span class="section-number-3">8.2</span> Experiment</h3>
<div class="outline-text-3" id="text-8-2">
<p>
<a id="org8949bdb"></a>
<a id="org27259e7"></a>
</p>
<p>
@ -1930,11 +1931,11 @@ This Matlab function is accessible <a href="src/initializeExperiment.m">here</a>
</div>
</div>
<div id="outline-container-org1a1b2ea" class="outline-3">
<h3 id="org1a1b2ea"><span class="section-number-3">8.3</span> Inputs</h3>
<div id="outline-container-orgab84833" class="outline-3">
<h3 id="orgab84833"><span class="section-number-3">8.3</span> Inputs</h3>
<div class="outline-text-3" id="text-8-3">
<p>
<a id="orge91025a"></a>
<a id="org9834d3d"></a>
</p>
<p>
@ -2122,11 +2123,11 @@ This Matlab function is accessible <a href="src/initializeInputs.m">here</a>.
</div>
</div>
<div id="outline-container-org349675b" class="outline-3">
<h3 id="org349675b"><span class="section-number-3">8.4</span> Ground</h3>
<div id="outline-container-org103cc41" class="outline-3">
<h3 id="org103cc41"><span class="section-number-3">8.4</span> Ground</h3>
<div class="outline-text-3" id="text-8-4">
<p>
<a id="org27ddd7c"></a>
<a id="orga991e31"></a>
</p>
<p>
@ -2150,11 +2151,11 @@ This Matlab function is accessible <a href="src/initializeGround.m">here</a>.
</div>
</div>
<div id="outline-container-orgf88a64c" class="outline-3">
<h3 id="orgf88a64c"><span class="section-number-3">8.5</span> Granite</h3>
<div id="outline-container-org6619477" class="outline-3">
<h3 id="org6619477"><span class="section-number-3">8.5</span> Granite</h3>
<div class="outline-text-3" id="text-8-5">
<p>
<a id="org2366704"></a>
<a id="org15c259d"></a>
</p>
<p>
@ -2194,11 +2195,11 @@ This Matlab function is accessible <a href="src/initializeGranite.m">here</a>.
</div>
</div>
<div id="outline-container-org4e944ba" class="outline-3">
<h3 id="org4e944ba"><span class="section-number-3">8.6</span> Translation Stage</h3>
<div id="outline-container-org77a28f7" class="outline-3">
<h3 id="org77a28f7"><span class="section-number-3">8.6</span> Translation Stage</h3>
<div class="outline-text-3" id="text-8-6">
<p>
<a id="orgef84318"></a>
<a id="org98bfb5b"></a>
</p>
<p>
@ -2279,11 +2280,11 @@ This Matlab function is accessible <a href="src/initializeTy.m">here</a>.
</div>
</div>
<div id="outline-container-org1b5749b" class="outline-3">
<h3 id="org1b5749b"><span class="section-number-3">8.7</span> Tilt Stage</h3>
<div id="outline-container-orge78d8a3" class="outline-3">
<h3 id="orge78d8a3"><span class="section-number-3">8.7</span> Tilt Stage</h3>
<div class="outline-text-3" id="text-8-7">
<p>
<a id="orgd4a1cef"></a>
<a id="org87f3ecd"></a>
</p>
<p>
@ -2352,11 +2353,11 @@ This Matlab function is accessible <a href="src/initializeRy.m">here</a>.
</div>
</div>
<div id="outline-container-org013488a" class="outline-3">
<h3 id="org013488a"><span class="section-number-3">8.8</span> Spindle</h3>
<div id="outline-container-org567c23d" class="outline-3">
<h3 id="org567c23d"><span class="section-number-3">8.8</span> Spindle</h3>
<div class="outline-text-3" id="text-8-8">
<p>
<a id="orgf0294ef"></a>
<a id="orga6d2fea"></a>
</p>
<p>
@ -2421,11 +2422,11 @@ This Matlab function is accessible <a href="src/initializeRz.m">here</a>.
</div>
</div>
<div id="outline-container-org57a0c6b" class="outline-3">
<h3 id="org57a0c6b"><span class="section-number-3">8.9</span> Micro Hexapod</h3>
<div id="outline-container-orgc032b1e" class="outline-3">
<h3 id="orgc032b1e"><span class="section-number-3">8.9</span> Micro Hexapod</h3>
<div class="outline-text-3" id="text-8-9">
<p>
<a id="org179b1f0"></a>
<a id="orgbd011a3"></a>
</p>
<p>
@ -2631,11 +2632,11 @@ This Matlab function is accessible <a href="src/initializeMicroHexapod.m">here</
</div>
</div>
<div id="outline-container-org5e378e9" class="outline-3">
<h3 id="org5e378e9"><span class="section-number-3">8.10</span> Center of gravity compensation</h3>
<div id="outline-container-org3b5edf8" class="outline-3">
<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">
<p>
<a id="orgbd4fe61"></a>
<a id="org908ebcf"></a>
</p>
<p>
@ -2678,11 +2679,11 @@ This Matlab function is accessible <a href="src/initializeAxisc.m">here</a>.
</div>
</div>
</div>
<div id="outline-container-org736e9aa" class="outline-3">
<h3 id="org736e9aa"><span class="section-number-3">8.11</span> Mirror</h3>
<div id="outline-container-orgf300722" class="outline-3">
<h3 id="orgf300722"><span class="section-number-3">8.11</span> Mirror</h3>
<div class="outline-text-3" id="text-8-11">
<p>
<a id="orgba578b7"></a>
<a id="orgb5894e5"></a>
</p>
<p>
@ -2748,11 +2749,11 @@ This Matlab function is accessible <a href="src/initializeMirror.m">here</a>.
</div>
</div>
<div id="outline-container-orge518bd0" class="outline-3">
<h3 id="orge518bd0"><span class="section-number-3">8.12</span> Nano Hexapod</h3>
<div id="outline-container-orgf57d858" class="outline-3">
<h3 id="orgf57d858"><span class="section-number-3">8.12</span> Nano Hexapod</h3>
<div class="outline-text-3" id="text-8-12">
<p>
<a id="orgcdeabe8"></a>
<a id="org9b0c46a"></a>
</p>
<p>
@ -2965,11 +2966,11 @@ This Matlab function is accessible <a href="src/initializeNanoHexapod.m">here</a
</div>
</div>
<div id="outline-container-org2d2670c" class="outline-3">
<h3 id="org2d2670c"><span class="section-number-3">8.13</span> Sample</h3>
<div id="outline-container-org2e21283" class="outline-3">
<h3 id="org2e21283"><span class="section-number-3">8.13</span> Sample</h3>
<div class="outline-text-3" id="text-8-13">
<p>
<a id="org1911a0c"></a>
<a id="org0a4b50f"></a>
</p>
<p>
@ -3014,7 +3015,7 @@ This Matlab function is accessible <a href="src/initializeSample.m">here</a>.
</div>
<div id="postamble" class="status">
<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>
</div>
</body>

View File

@ -50,6 +50,7 @@
- [[file:hac_lac/index.org][HAC LAC]]
- [[file:kinematics/index.org][Kinematics]]
- [[file:modal_test/index.org][Modal Analysis]]
- [[file:cedrat-actuator/index.org][Cedrat Piezo Actuator]]
* Matlab Init :noexport:ignore:
#+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.