Add analysis about Cedrat Piezo actuators
This commit is contained in:
parent
f6e543ffcc
commit
7682fc64a3
BIN
cedrat-actuator/docs/Amplified_Piezo_Actuator_APA120ML-PP.pdf
Normal file
BIN
cedrat-actuator/docs/Amplified_Piezo_Actuator_APA120ML-PP.pdf
Normal file
Binary file not shown.
1
cedrat-actuator/figs
Symbolic link
1
cedrat-actuator/figs
Symbolic link
@ -0,0 +1 @@
|
||||
../figs
|
445
cedrat-actuator/index.html
Normal file
445
cedrat-actuator/index.html
Normal 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
303
cedrat-actuator/index.org
Normal 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]]
|
BIN
figs/cedrat_iff_piezo_identified_tf.png
Normal file
BIN
figs/cedrat_iff_piezo_identified_tf.png
Normal file
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 |
BIN
figs/iff_open_loop_cedrat.png
Normal file
BIN
figs/iff_open_loop_cedrat.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
BIN
figs/iff_plant_cedrat.png
Normal file
BIN
figs/iff_plant_cedrat.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 123 KiB |
313
index.html
313
index.html
@ -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>
|
||||
|
@ -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
BIN
simscape/cedrat_piezo.slx
Normal file
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user