Initial Commit

This commit is contained in:
2021-08-27 18:48:24 +02:00
commit 7dae826a5c
127 changed files with 43456 additions and 0 deletions

964
tikz/config.html Normal file
View File

@@ -0,0 +1,964 @@
<?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>
<!-- 2020-11-12 jeu. 10:40 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>LaTeX Configuration for Tikz export</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></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">LaTeX Configuration for Tikz export</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org867af51">1. Packages</a></li>
<li><a href="#org0ce4790">2. Tikz related packages</a></li>
<li><a href="#org8bcc408">3. Tikz Libraries</a></li>
<li><a href="#orgde57bbd">4. PGF Plot libraries and config</a></li>
<li><a href="#org94164aa">5. Setup size of figures</a></li>
<li><a href="#org502b962">6. Setup Arrows style</a></li>
<li><a href="#orgf6c80f8">7. Colors</a></li>
<li><a href="#org6bc9bcf">8. Control</a>
<ul>
<li><a href="#org1d11095">8.1. Blocks</a></li>
<li><a href="#org2c3854c">8.2. Branches</a></li>
<li><a href="#orgf96b1b7">8.3. Hand Writen Style</a></li>
<li><a href="#org37871dd">8.4. DAC</a></li>
<li><a href="#orgbe02fb3">8.5. ADC</a></li>
<li><a href="#org1589875">8.6. Gain</a></li>
<li><a href="#orgbda9747">8.7. Add / Substract / Divide / Multiply block</a></li>
</ul>
</li>
<li><a href="#org419f26c">9. Plots</a>
<ul>
<li><a href="#org1e09080">9.1. Grid</a></li>
<li><a href="#orgfbf200f">9.2. Lines</a></li>
<li><a href="#orgb0c9fcd">9.3. Ticks</a></li>
<li><a href="#org6657c23">9.4. Size</a></li>
<li><a href="#org834808f">9.5. Label</a></li>
<li><a href="#org3d4f938">9.6. Legend</a></li>
<li><a href="#org834d8fb">9.7. Upper and Lower bounds</a></li>
<li><a href="#org006768d">9.8. Pole</a></li>
<li><a href="#org4d0b582">9.9. Zero</a></li>
</ul>
</li>
<li><a href="#orgf4cc3ee">10. Mechanical</a>
<ul>
<li><a href="#orge4f0590">10.1. Spring</a></li>
<li><a href="#org5b9134f">10.2. Coil</a></li>
<li><a href="#orgd2347a6">10.3. Damper</a></li>
<li><a href="#orgdd8b774">10.4. Actuator</a></li>
<li><a href="#orgbf79dfb">10.5. Ground</a></li>
<li><a href="#org29f9d60">10.6. Force Sensor</a></li>
<li><a href="#org1e03e32">10.7. Inertial Sensor</a></li>
<li><a href="#orgeae9e18">10.8. Axis Rotator</a></li>
<li><a href="#orgc22a8c6">10.9. Cross</a></li>
<li><a href="#org2167d13">10.10. Piezoelectric actuator</a></li>
<li><a href="#org2ae4369">10.11. Voice coil</a></li>
</ul>
</li>
<li><a href="#org3730519">11. Optics</a></li>
<li><a href="#org0b6e57a">12. Misc</a></li>
</ul>
</div>
</div>
<div id="outline-container-org867af51" class="outline-2">
<h2 id="org867af51"><span class="section-number-2">1</span> Packages</h2>
<div class="outline-text-2" id="text-1">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>[<span class="org-variable-name">utf8</span>]{<span class="org-function-name">inputenc</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>[<span class="org-variable-name">T1</span>]{<span class="org-function-name">fontenc</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>[<span class="org-variable-name">french, english</span>]{<span class="org-function-name">babel</span>} <span class="org-comment">% Last language is main language</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">lmodern</span>} <span class="org-comment">% Latin Modern Font</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">gensymb</span>} <span class="org-comment">% Generic symbols for both text and math mode</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">standalone</span>} <span class="org-comment">% Used to generate standalone Tikz</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">amsmath</span>} <span class="org-comment">% Main math Package</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">mathtools</span>} <span class="org-comment">% Extension package to amsmath</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">amsthm</span>} <span class="org-comment">% Typesetting theorems (AMS style)</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">amsfonts</span>} <span class="org-comment">% More fonts from the AMS</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">textcomp</span>} <span class="org-comment">% provide many text symbols</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">steinmetz</span>} <span class="org-comment">% For phase symbol</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">xstring</span>} <span class="org-comment">% Utils to manipulate strings</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">etoolbox</span>} <span class="org-comment">% Add basic if/then</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">esvect</span>} <span class="org-comment">% Beautyfull vectors</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">graphicx</span>} <span class="org-comment">% Enhanced support for graphics</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">grffile</span>} <span class="org-comment">% Used by matlab2tikz</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">microtype</span>} <span class="org-comment">% typographic tuning</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">setspace</span>} <span class="org-comment">% for line spacing, e.g. </span><span class="org-font-latex-sedate"><span class="org-comment">\onehalfspacing</span></span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">tabularx</span>} <span class="org-comment">% table features</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">enumitem</span>} <span class="org-comment">% for simple list modifications</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">booktabs</span>} <span class="org-comment">% better table support</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">stackengine</span>} <span class="org-comment">%</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>[<span class="org-variable-name">load-configurations=abbreviations</span>]{<span class="org-function-name">siunitx</span>} <span class="org-comment">% SI units</span>
<span class="org-font-latex-sedate">\sisetup</span>{
locale = US,
detect-all,
range-phrase=--,
range-units=single
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org0ce4790" class="outline-2">
<h2 id="org0ce4790"><span class="section-number-2">2</span> Tikz related packages</h2>
<div class="outline-text-2" id="text-2">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">tikz</span>} <span class="org-comment">% Tikz</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">tikzscale</span>} <span class="org-comment">% Used to scale Tikz graphics</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">adjustbox</span>} <span class="org-comment">% Used to proper positioning of tikz pictures</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">circuitikz</span>} <span class="org-comment">% Draw electronic circuits</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">pgfpages</span>} <span class="org-comment">% Needed to use notes</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">pgfplots</span>} <span class="org-comment">% Used to plot functions</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org8bcc408" class="outline-2">
<h2 id="org8bcc408"><span class="section-number-2">3</span> Tikz Libraries</h2>
<div class="outline-text-2" id="text-3">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\usetikzlibrary</span>{arrows} <span class="org-comment">% Arrow tip library</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{arrows.meta} <span class="org-comment">% Add some arrows</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{calc} <span class="org-comment">% The library allows advanced Coordinate Calculations</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{intersections} <span class="org-comment">% calculate intersections of paths</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{matrix} <span class="org-comment">%</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{patterns} <span class="org-comment">%</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{shapes} <span class="org-comment">% Defines circle and rectangle</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{shapes.geometric} <span class="org-comment">% Use for the shape diamond and isosceles triangle</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{snakes} <span class="org-comment">% snake=coil and snake=zigzag using segment amplitude=10pt</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{positioning} <span class="org-comment">% Additional options for placing nodes</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{3d} <span class="org-comment">% Plot 3D shapes</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{spy} <span class="org-comment">% Creating a magnified area</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{decorations.text} <span class="org-comment">% Used to make text follows a curve</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{decorations.pathmorphing} <span class="org-comment">% deformation of a path</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{decorations.markings} <span class="org-comment">% Used for spring and damper</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{babel} <span class="org-comment">% A tiny library that make the interaction with the babel package easier</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{plotmarks} <span class="org-comment">% This library defines a number of plot marks</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{fit} <span class="org-comment">% Used to make rectangle as nodes by specifying two points</span>
<span class="org-font-latex-sedate">\usetikzlibrary</span>{backgrounds} <span class="org-comment">% Used to put things under others</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgde57bbd" class="outline-2">
<h2 id="orgde57bbd"><span class="section-number-2">4</span> PGF Plot libraries and config</h2>
<div class="outline-text-2" id="text-4">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\usepgfplotslibrary</span>{patchplots}
<span class="org-font-latex-sedate">\usepgfplotslibrary</span>{groupplots}
<span class="org-font-latex-sedate">\pgfplotsset</span>{compat=newest}
<span class="org-font-latex-sedate">\pgfplotsset</span>{plot coordinates/math parser=false}
</pre>
</div>
</div>
</div>
<div id="outline-container-org94164aa" class="outline-2">
<h2 id="org94164aa"><span class="section-number-2">5</span> Setup size of figures</h2>
<div class="outline-text-2" id="text-5">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\newlength</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\fheight</span></span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\newlength</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\fwidth</span></span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\setlength</span></span>{<span class="org-font-latex-sedate"><span class="org-variable-name">\fwidth</span></span>}{<span class="org-variable-name">85mm</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\setlength</span></span>{<span class="org-font-latex-sedate"><span class="org-variable-name">\fheight</span></span>}{<span class="org-variable-name">112mm</span>}
</pre>
</div>
</div>
</div>
<div id="outline-container-org502b962" class="outline-2">
<h2 id="org502b962"><span class="section-number-2">6</span> Setup Arrows style</h2>
<div class="outline-text-2" id="text-6">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{&gt;=Stealth}
<span class="org-comment-delimiter">% </span><span class="org-comment">Setup default Linewidth</span>
<span class="org-font-latex-sedate">\tikzset</span>{every path/.style={line width=1pt}}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgf6c80f8" class="outline-2">
<h2 id="orgf6c80f8"><span class="section-number-2">7</span> Colors</h2>
<div class="outline-text-2" id="text-7">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">xcolor</span>}<span class="org-comment">% Color extension</span>
<span class="org-font-latex-sedate">\definecolor</span>{colorblack}{rgb}{0, 0, 0}
<span class="org-font-latex-sedate">\definecolor</span>{colorblue}{rgb}{0, 0.4470, 0.7410}
<span class="org-font-latex-sedate">\definecolor</span>{colorred}{rgb}{0.8500, 0.3250, 0.0980}
<span class="org-font-latex-sedate">\definecolor</span>{coloryellow}{rgb}{0.9290, 0.6940, 0.1250}
<span class="org-font-latex-sedate">\definecolor</span>{colorpurple}{rgb}{0.4940, 0.1840, 0.5560}
<span class="org-font-latex-sedate">\definecolor</span>{colorgreen}{rgb}{0.4660, 0.6740, 0.1880}
<span class="org-font-latex-sedate">\definecolor</span>{colorcyan}{rgb}{0.3010, 0.7450, 0.9330}
<span class="org-font-latex-sedate">\definecolor</span>{colorbordeau}{rgb}{0.6350, 0.0780, 0.1840}
<span class="org-comment-delimiter">% </span><span class="org-comment">Main color</span>
<span class="org-font-latex-sedate">\definecolor</span>{maincolor}{RGB}{89, 9, 38}
<span class="org-font-latex-sedate">\definecolor</span>{secondcolor}{RGB}{20, 9, 89}
</pre>
</div>
</div>
</div>
<div id="outline-container-org6bc9bcf" class="outline-2">
<h2 id="org6bc9bcf"><span class="section-number-2">8</span> Control</h2>
<div class="outline-text-2" id="text-8">
</div>
<div id="outline-container-org1d11095" class="outline-3">
<h3 id="org1d11095"><span class="section-number-3">8.1</span> Blocks</h3>
<div class="outline-text-3" id="text-8-1">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
block/.style n args={2}{<span class="org-comment">%</span>
draw,
fill=white,
minimum width = #1,
minimum height = #2,
},
block/.default={1.2cm}{1.0cm}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org2c3854c" class="outline-3">
<h3 id="org2c3854c"><span class="section-number-3">8.2</span> Branches</h3>
<div class="outline-text-3" id="text-8-2">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{branch}=[fill,shape=circle,minimum size=4pt,inner sep=0pt]
<span class="org-font-latex-sedate">\tikzstyle</span>{-&gt;top}=[-{Stealth[color=black, scale=0.8]}, draw=white, double=black, double distance=1pt, line width=1pt]
<span class="org-font-latex-sedate">\tikzstyle</span>{&lt;-top}=[{stealth[color=black, scale=0.8]}-, draw=white, double=black, double distance=1pt, line width=1pt]
</pre>
</div>
</div>
</div>
<div id="outline-container-orgf96b1b7" class="outline-3">
<h3 id="orgf96b1b7"><span class="section-number-3">8.3</span> Hand Writen Style</h3>
<div class="outline-text-3" id="text-8-3">
<p>
Usefull for schematic plots
</p>
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{handwriten}=[decorate,decoration={random steps,amplitude=0.1pt,segment length=0.8pt}]
</pre>
</div>
</div>
</div>
<div id="outline-container-org37871dd" class="outline-3">
<h3 id="org37871dd"><span class="section-number-3">8.4</span> DAC</h3>
<div class="outline-text-3" id="text-8-4">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
DAC/.style={<span class="org-comment">%</span>
draw,
signal,
}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgbe02fb3" class="outline-3">
<h3 id="orgbe02fb3"><span class="section-number-3">8.5</span> ADC</h3>
<div class="outline-text-3" id="text-8-5">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
ADC/.style={<span class="org-comment">%</span>
draw,
signal,
signal to = west,
}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org1589875" class="outline-3">
<h3 id="org1589875"><span class="section-number-3">8.6</span> Gain</h3>
<div class="outline-text-3" id="text-8-6">
<p>
Maybe use <code>isosceles</code> instead of regular polygon?
</p>
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
gain right/.style={<span class="org-comment">%</span>
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=-90
},
gain left/.style={<span class="org-comment">%</span>
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=90
},
gain top/.style={<span class="org-comment">%</span>
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=0
},
gain bottom/.style={<span class="org-comment">%</span>
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=180
},
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgbda9747" class="outline-3">
<h3 id="orgbda9747"><span class="section-number-3">8.7</span> Add / Substract / Divide / Multiply block</h3>
<div class="outline-text-3" id="text-8-7">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">% Add block with Circled operations</span>
addc/.style n args={5}{<span class="org-comment">%</span>
draw,
fill=white,
circle,
outer sep = 0pt,
inner sep = 0pt,
minimum size = 2em,
execute at begin node={<span class="org-font-latex-sedate"><span class="org-keyword">\LARGE</span></span><span class="org-type"> </span><span class="org-type"><span class="org-font-latex-math">$#1$</span></span>},
append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode</span>=<span class="org-font-latex-sedate">\tikzlastnode</span>}
<span class="org-font-latex-sedate">\ifx</span>#2<span class="org-font-latex-sedate">\empty\else</span>
node[draw, circle, outer sep=6pt, inner sep=0pt, above left] at (<span class="org-font-latex-sedate">\mainnode</span>.west) {<span class="org-font-latex-math">$#2$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
<span class="org-font-latex-sedate">\ifx</span>#3<span class="org-font-latex-sedate">\empty\else</span>
node[draw, circle, outer sep=6pt, inner sep=0pt, above right] at (<span class="org-font-latex-sedate">\mainnode</span>.north) {<span class="org-font-latex-math">$#3$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
<span class="org-font-latex-sedate">\ifx</span>#4<span class="org-font-latex-sedate">\empty\else</span>
node[draw, circle, outer sep=6pt, inner sep=0pt, below right] at (<span class="org-font-latex-sedate">\mainnode</span>.east) {<span class="org-font-latex-math">$#4$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
<span class="org-font-latex-sedate">\ifx</span>#5<span class="org-font-latex-sedate">\empty\else</span>
node[draw, circle, outer sep=6pt, inner sep=0pt, below left] at (<span class="org-font-latex-sedate">\mainnode</span>.south) {<span class="org-font-latex-math">$#5$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
}
},
addc/.default={+}{}{}{}{},
}
</pre>
</div>
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">% Add Block</span>
addb/.style n args={5}{<span class="org-comment">%</span>
draw,
fill=white,
circle,
outer sep = 0pt,
inner sep = 0pt,
minimum size = 2em,
execute at begin node={<span class="org-font-latex-sedate"><span class="org-keyword">\LARGE</span></span><span class="org-type"> </span><span class="org-type"><span class="org-font-latex-math">$#1$</span></span>},
append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode</span>=<span class="org-font-latex-sedate">\tikzlastnode</span>}
<span class="org-font-latex-sedate">\ifx</span>#2<span class="org-font-latex-sedate">\empty\else</span>
node[outer sep=2pt, inner sep=0pt, above left] at (<span class="org-font-latex-sedate">\mainnode</span>.west) {<span class="org-font-latex-math">$#2$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
<span class="org-font-latex-sedate">\ifx</span>#3<span class="org-font-latex-sedate">\empty\else</span>
node[outer sep=2pt, inner sep=0pt, above right] at (<span class="org-font-latex-sedate">\mainnode</span>.north) {<span class="org-font-latex-math">$#3$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
<span class="org-font-latex-sedate">\ifx</span>#4<span class="org-font-latex-sedate">\empty\else</span>
node[outer sep=2pt, inner sep=0pt, below right] at (<span class="org-font-latex-sedate">\mainnode</span>.east) {<span class="org-font-latex-math">$#4$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
<span class="org-font-latex-sedate">\ifx</span>#5<span class="org-font-latex-sedate">\empty\else</span>
node[outer sep=2pt, inner sep=0pt, below left] at (<span class="org-font-latex-sedate">\mainnode</span>.south) {<span class="org-font-latex-math">$#5$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span>
}
},
addb/.default={+}{}{}{}{},
}
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org419f26c" class="outline-2">
<h2 id="org419f26c"><span class="section-number-2">9</span> Plots</h2>
<div class="outline-text-2" id="text-9">
</div>
<div id="outline-container-org1e09080" class="outline-3">
<h3 id="org1e09080"><span class="section-number-3">9.1</span> Grid</h3>
<div class="outline-text-3" id="text-9-1">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{grid style={black}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{major grid style={black!30!white}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{minor grid style={black!10!white}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{xmajorgrids}
<span class="org-font-latex-sedate">\pgfplotsset</span>{ymajorgrids}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgfbf200f" class="outline-3">
<h3 id="orgfbf200f"><span class="section-number-3">9.2</span> Lines</h3>
<div class="outline-text-3" id="text-9-2">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{separate axis lines=false} <span class="org-comment">% draw axis as rectangle and not as 4 lines</span>
<span class="org-font-latex-sedate">\pgfplotsset</span>{every outer x axis line/.append style={black}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{every outer y axis line/.append style={black}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{axis background/.style={fill=white}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{axis x line*=bottom} <span class="org-comment">% solid line on the bottom with thin on the top</span>
<span class="org-font-latex-sedate">\pgfplotsset</span>{axis y line*=left} <span class="org-comment">% solid line on the left with thin on the right</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb0c9fcd" class="outline-3">
<h3 id="orgb0c9fcd"><span class="section-number-3">9.3</span> Ticks</h3>
<div class="outline-text-3" id="text-9-3">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{every y tick label/.append style={font=<span class="org-font-latex-sedate">\color</span>{black}}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{every y tick/.append style={black}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{every x tick label/.append style={font=<span class="org-font-latex-sedate">\color</span>{black}}}
<span class="org-font-latex-sedate">\pgfplotsset</span>{every x tick/.append style={black}}
</pre>
</div>
</div>
</div>
<div id="outline-container-org6657c23" class="outline-3">
<h3 id="org6657c23"><span class="section-number-3">9.4</span> Size</h3>
<div class="outline-text-3" id="text-9-4">
<p>
If <code>scale only axis=false</code> (the default), pgfplots will try to produce the desired width including labels, titles and ticks.
</p>
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{scale only axis=true}
</pre>
</div>
</div>
</div>
<div id="outline-container-org834808f" class="outline-3">
<h3 id="org834808f"><span class="section-number-3">9.5</span> Label</h3>
<div class="outline-text-3" id="text-9-5">
<p>
Used to align all of ylabel of one figure.
</p>
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{ylabel absolute}
</pre>
</div>
</div>
</div>
<div id="outline-container-org3d4f938" class="outline-3">
<h3 id="org3d4f938"><span class="section-number-3">9.6</span> Legend</h3>
<div class="outline-text-3" id="text-9-6">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-comment-delimiter">% </span><span class="org-comment">https://tex.stackexchange.com/questions/54794/using-a-pgfplots-style-legend-in-a-plain-old-tikzpicture#54834</span>
<span class="org-comment-delimiter">% </span><span class="org-comment">argument #1: any options</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\newenvironment</span></span>{<span class="org-function-name">customlegend</span>}[<span class="org-variable-name">1</span>][]{<span class="org-function-name"><span class="org-comment">%</span></span>
<span class="org-function-name"> </span><span class="org-font-latex-sedate"><span class="org-function-name">\begingroup</span></span>
<span class="org-function-name"> </span><span class="org-function-name"><span class="org-comment">% inits/clears the lists (which might be populated from previous</span></span>
<span class="org-function-name"> </span><span class="org-function-name"><span class="org-comment">% axes):</span></span>
<span class="org-function-name"> </span><span class="org-font-latex-sedate"><span class="org-function-name">\csname</span></span><span class="org-function-name"> pgfplots@init@cleared@structures</span><span class="org-font-latex-sedate"><span class="org-function-name">\endcsname</span></span>
<span class="org-function-name"> </span><span class="org-font-latex-sedate"><span class="org-function-name">\pgfplotsset</span></span><span class="org-function-name">{#1}</span><span class="org-function-name"><span class="org-comment">%</span></span>
}{<span class="org-function-name"><span class="org-comment">%</span></span>
<span class="org-function-name"> </span><span class="org-function-name"><span class="org-comment">% draws the legend:</span></span>
<span class="org-function-name"> </span><span class="org-font-latex-sedate"><span class="org-function-name">\csname</span></span><span class="org-function-name"> pgfplots@createlegend</span><span class="org-font-latex-sedate"><span class="org-function-name">\endcsname</span></span>
<span class="org-function-name"> </span><span class="org-font-latex-sedate"><span class="org-function-name">\endgroup</span></span>
}<span class="org-comment">%</span>
<span class="org-comment-delimiter">% </span><span class="org-comment">makes </span><span class="org-font-latex-sedate"><span class="org-comment">\addlegendimage</span></span><span class="org-comment"> available (typically only available within an</span>
<span class="org-comment-delimiter">% </span><span class="org-comment">axis environment):</span>
<span class="org-font-latex-sedate">\def\addlegendimage</span>{<span class="org-font-latex-sedate">\csname</span> pgfplots@addlegendimage<span class="org-font-latex-sedate">\endcsname</span>}
<span class="org-comment-delimiter">% </span><span class="org-comment">definition to insert numbers</span>
<span class="org-comment-delimiter">% </span><span class="org-font-latex-sedate"><span class="org-comment">\pgfkeys</span></span><span class="org-comment">{/pgfplots/number in legend/.style={%</span>
<span class="org-comment-delimiter">% </span><span class="org-comment">/pgfplots/legend image code/.code={%</span>
<span class="org-comment-delimiter">% </span><span class="org-font-latex-sedate"><span class="org-comment">\node</span></span><span class="org-comment"> at (0.125,-0.0225){#1}; % &lt;= changed x value</span>
<span class="org-comment-delimiter">% </span><span class="org-comment">},%</span>
<span class="org-comment-delimiter">% </span><span class="org-comment">},</span>
<span class="org-comment-delimiter">% </span><span class="org-comment">}</span>
<span class="org-font-latex-sedate">\pgfplotsset</span>{
every legend to name picture/.style={west}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org834d8fb" class="outline-3">
<h3 id="org834d8fb"><span class="section-number-3">9.7</span> Upper and Lower bounds</h3>
<div class="outline-text-3" id="text-9-7">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{upperbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=60}}]
<span class="org-font-latex-sedate">\tikzstyle</span>{lowerbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=-60}}]
</pre>
</div>
<p>
And we add the corresdonding
</p>
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{
/pgfplots/upperbound/.style 1 args={
legend image code/.code={
<span class="org-font-latex-sedate">\draw</span>[##1, upperbound]
plot coordinates {
(0cm,0cm)
(0.6cm,0cm)
}
}
}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org006768d" class="outline-3">
<h3 id="org006768d"><span class="section-number-3">9.8</span> Pole</h3>
<div class="outline-text-3" id="text-9-8">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
pole/.style{<span class="org-comment">%</span>
color=red,
cross out,
draw,
inner sep=0pt,
outer sep=0pt,
minimum size=#1pt
},
pole/.default={4}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org4d0b582" class="outline-3">
<h3 id="org4d0b582"><span class="section-number-3">9.9</span> Zero</h3>
<div class="outline-text-3" id="text-9-9">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
zero/.style{<span class="org-comment">%</span>
color=red,
circle,
draw,
inner sep=0pt,
outer sep=0pt,
minimum size=#1pt
},
zero/.default={4}
}
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orgf4cc3ee" class="outline-2">
<h2 id="orgf4cc3ee"><span class="section-number-2">10</span> Mechanical</h2>
<div class="outline-text-2" id="text-10">
</div>
<div id="outline-container-orge4f0590" class="outline-3">
<h3 id="orge4f0590"><span class="section-number-3">10.1</span> Spring</h3>
<div class="outline-text-3" id="text-10-1">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
spring/.style={<span class="org-comment">%</span>
thick,
decoration={
zigzag,
pre length = #1cm,
post length = #1cm,
segment length = 6
},
decorate
},
spring/.default={0.2}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org5b9134f" class="outline-3">
<h3 id="org5b9134f"><span class="section-number-3">10.2</span> Coil</h3>
<div class="outline-text-3" id="text-10-2">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
coil/.style n args={2}{<span class="org-comment">%</span>
thick,
decoration={
coil,
pre length = #1cm,
post length = #2cm,
segment length = 4
},
decorate
},
coil/.default={0.3}{0.3}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgd2347a6" class="outline-3">
<h3 id="orgd2347a6"><span class="section-number-3">10.3</span> Damper</h3>
<div class="outline-text-3" id="text-10-3">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
damper/.style n args={2}{<span class="org-comment">%</span>
thick,
decoration={markings, mark connection node=dmp, mark=at position 0.5 with {
<span class="org-font-latex-sedate">\node</span> (dmp) [thick,
inner sep = 0pt,
transform shape,
rotate =-90,
minimum width = #1pt,
minimum height = #2pt,
draw=none] {};
<span class="org-font-latex-sedate">\draw</span> [thick] (<span class="org-font-latex-math">$(dmp.north east)+(0.6*#2pt,0)$</span>) -- (dmp.south east) -- (dmp.south west) -- (<span class="org-font-latex-math">$(dmp.north west)+(0.6*#2pt,0)$</span>);
<span class="org-font-latex-sedate">\draw</span> [thick] (<span class="org-font-latex-math">$(dmp.north)+(0,-0.3*#1pt)$</span>) -- (<span class="org-font-latex-math">$(dmp.north)+(0,0.3*#1pt)$</span>);
}
},
decorate
},
damper/.default={12}{3}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgdd8b774" class="outline-3">
<h3 id="orgdd8b774"><span class="section-number-3">10.4</span> Actuator</h3>
<div class="outline-text-3" id="text-10-4">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
actuator/.style n args={2}{<span class="org-comment">%</span>
thick,
draw=none,
decoration={
markings,
mark connection node=my node,
mark=at position .5 with {
<span class="org-font-latex-sedate">\node</span> [draw, inner sep=0pt, minimum width=#1cm, minimum height=#2cm,
transform shape, fill=white] (my node) {};
},
mark=at position .0 with {
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (0, 0) -- (my node);
},
mark=at position 1.0 with {
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (0, 0) -- (my node);
}
},
decorate
},
actuator/.default={0.5}{0.2}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgbf79dfb" class="outline-3">
<h3 id="orgbf79dfb"><span class="section-number-3">10.5</span> Ground</h3>
<div class="outline-text-3" id="text-10-5">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
ground/.style n args={2}{<span class="org-comment">%</span>
fill,
pattern = north east lines,
draw = none,
anchor = north,
minimum width = #1cm,
minimum height = #2cm,
append after command={
(<span class="org-font-latex-sedate">\tikzlastnode</span>.north west) edge (<span class="org-font-latex-sedate">\tikzlastnode</span>.north east)
}
},
ground/.default={2.5}{0.3}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org29f9d60" class="outline-3">
<h3 id="org29f9d60"><span class="section-number-3">10.6</span> Force Sensor</h3>
<div class="outline-text-3" id="text-10-6">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
forcesensor/.style n args={2}{<span class="org-comment">%</span>
rectangle,
outer sep=0pt,
inner sep=0pt,
draw=black,
fill=white!60!black,
anchor=south,
minimum width =#1cm,
minimum height=#2cm,
append after command={
[every edge/.append style={
thick,
black,
}]
(<span class="org-font-latex-sedate">\tikzlastnode</span>.north west) edge (<span class="org-font-latex-sedate">\tikzlastnode</span>.south east)
(<span class="org-font-latex-sedate">\tikzlastnode</span>.north east) edge (<span class="org-font-latex-sedate">\tikzlastnode</span>.south west)
}
},
forcesensor/.default={2.0}{0.5}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org1e03e32" class="outline-3">
<h3 id="org1e03e32"><span class="section-number-3">10.7</span> Inertial Sensor</h3>
<div class="outline-text-3" id="text-10-7">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
inertialsensor/.style={<span class="org-comment">%</span>
rectangle,
outer sep=0pt,
inner sep=0pt,
draw=black,
fill=white!60!black,
anchor=south east,
minimum size=#1cm,
append after command={
[every edge/.append style={
thick,
black,
}]
(<span class="org-font-latex-sedate">\tikzlastnode</span>.north west) edge (<span class="org-font-latex-sedate">\tikzlastnode</span>.south east)
(<span class="org-font-latex-sedate">\tikzlastnode</span>.north east) edge (<span class="org-font-latex-sedate">\tikzlastnode</span>.south west)
}
},
inertialsensor/.default={0.3}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgeae9e18" class="outline-3">
<h3 id="orgeae9e18"><span class="section-number-3">10.8</span> Axis Rotator</h3>
<div class="outline-text-3" id="text-10-8">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\newcommand</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\AxisRotator</span></span>}[<span class="org-variable-name">1</span>][<span class="org-variable-name">rotate=0</span>]{<span class="org-function-name"><span class="org-comment">%</span></span>
<span class="org-function-name"> </span><span class="org-font-latex-sedate"><span class="org-function-name">\tikz</span></span><span class="org-function-name"> [x=0.1cm,y=0.30cm,-stealth,#1] </span><span class="org-font-latex-sedate"><span class="org-function-name">\draw</span></span><span class="org-function-name"> (0,0) arc (-150:150:1 and 1);</span><span class="org-function-name"><span class="org-comment">%</span></span>
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgc22a8c6" class="outline-3">
<h3 id="orgc22a8c6"><span class="section-number-3">10.9</span> Cross</h3>
<div class="outline-text-3" id="text-10-9">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{cross}=[path picture={
<span class="org-font-latex-sedate">\draw</span>[black]
(path picture bounding box.south east) -- (path picture bounding box.north west) (path picture bounding box.south west) -- (path picture bounding box.north east);
}]
</pre>
</div>
</div>
</div>
<div id="outline-container-org2167d13" class="outline-3">
<h3 id="org2167d13"><span class="section-number-3">10.10</span> Piezoelectric actuator</h3>
<div class="outline-text-3" id="text-10-10">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
piezo/.style n args={3}{<span class="org-comment">%</span>
draw,
rectangle,
minimum width = #1cm,
minimum height = #2cm,
fill=blue!10!white,
anchor=center,
append after command={
[every edge/.append style={
thick,
black,
}]
<span class="org-font-latex-sedate">\foreach</span> <span class="org-font-latex-sedate">\i</span> in {1,...,#3}{
(<span class="org-font-latex-math">${</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.north west)+{(1+#3-</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">)/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.south west)+0.1*(#1,0)$</span>) edge (<span class="org-font-latex-math">${</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.north east)+{(1+#3-</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">)/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.south east)-0.1*(#1,0)$</span>)
}
}
},
piezo/.default={2}{4}{10}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org2ae4369" class="outline-3">
<h3 id="org2ae4369"><span class="section-number-3">10.11</span> Voice coil</h3>
<div class="outline-text-3" id="text-10-11">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\def\voicecoil</span>#1#2#3{
<span class="org-comment">% ======================</span>
<span class="org-comment">% Parameters</span>
<span class="org-comment">% ======================</span>
<span class="org-font-latex-sedate">\def\voicecoilw</span>{#1} <span class="org-comment">% Total Width</span>
<span class="org-font-latex-sedate">\def\voicecoilh</span>{#2} <span class="org-comment">% Total Height</span>
<span class="org-font-latex-sedate">\def\magnetw</span>{<span class="org-font-latex-sedate">\voicecoilw</span>} <span class="org-comment">% Width of the magnet</span>
<span class="org-font-latex-sedate">\def\magneth</span>{<span class="org-font-latex-sedate">\voicecoilh</span>/1.4} <span class="org-comment">% Height of the magnet</span>
<span class="org-font-latex-sedate">\def\magnetwb</span>{0.15*<span class="org-font-latex-sedate">\magnetw</span>} <span class="org-comment">% Width of the borders of the magnet</span>
<span class="org-font-latex-sedate">\def\magnetmw</span>{0.15*<span class="org-font-latex-sedate">\magnetw</span>} <span class="org-comment">% Width of the middle part of the magnet</span>
<span class="org-font-latex-sedate">\def\magnetwg</span>{0.5*<span class="org-font-latex-sedate">\magnetw</span>} <span class="org-comment">% Width of the gap of the magnet</span>
<span class="org-font-latex-sedate">\def\magnethl</span>{<span class="org-font-latex-sedate">\magnetwb</span>} <span class="org-comment">% Height of the low part of the magnet</span>
<span class="org-font-latex-sedate">\def\magnetmh</span>{0.15*<span class="org-font-latex-sedate">\magneth</span>} <span class="org-comment">% Height of the middle part of the magnet</span>
<span class="org-font-latex-sedate">\def\magnethg</span>{0.2*<span class="org-font-latex-sedate">\magneth</span>} <span class="org-comment">% Height of the gap of the magnet</span>
<span class="org-comment">% ======================</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(0.5*<span class="org-font-latex-sedate">\voicecoilw</span>, 0.5*<span class="org-font-latex-sedate">\voicecoilh</span>)}, rotate=#3, shift={(0, -0.5*<span class="org-font-latex-sedate">\voicecoilh</span>)}]
<span class="org-comment">% ======================</span>
<span class="org-comment">% Magnet</span>
<span class="org-comment">% ======================</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (0, 0) -| ++(0.5*<span class="org-font-latex-sedate">\magnetw</span>, <span class="org-font-latex-sedate">\magneth</span>) -| ++(-0.5*<span class="org-font-latex-sedate">\magnetw</span>+0.5*<span class="org-font-latex-sedate">\magnetwg</span>, -<span class="org-font-latex-sedate">\magnethg</span>) -| (0.5*<span class="org-font-latex-sedate">\magnetw</span>-<span class="org-font-latex-sedate">\magnetwb</span>, <span class="org-font-latex-sedate">\magnethl</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetw</span>+<span class="org-font-latex-sedate">\magnetwb</span>, <span class="org-font-latex-sedate">\magneth</span>-<span class="org-font-latex-sedate">\magnethg</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetwg</span>, <span class="org-font-latex-sedate">\magneth</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetw</span>, 0) -- (cycle);
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(0, <span class="org-font-latex-sedate">\magnethl</span>)}]
<span class="org-font-latex-sedate">\draw</span>[fill=red] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 0) rectangle (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>);
<span class="org-font-latex-sedate">\draw</span>[fill=blue] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>) rectangle (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 2*<span class="org-font-latex-sedate">\magnetmh</span>);
<span class="org-comment">% Top conductive Magnet</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 2*<span class="org-font-latex-sedate">\magnetmh</span>) -| (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, -<span class="org-font-latex-sedate">\magnethl</span>+<span class="org-font-latex-sedate">\magneth</span>-<span class="org-font-latex-sedate">\magnethg</span>) -| ++(0.1, <span class="org-font-latex-sedate">\magnethg</span>) -| ++(-0.2-<span class="org-font-latex-sedate">\magnetmw</span>, -<span class="org-font-latex-sedate">\magnethg</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>);
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-comment">% ======================</span>
<span class="org-comment">% ======================</span>
<span class="org-comment">% Coil</span>
<span class="org-comment">% ======================</span>
<span class="org-font-latex-sedate">\pgfmathsetmacro</span>{<span class="org-font-latex-sedate">\coilwidth</span>}{0.5*0.5*<span class="org-font-latex-sedate">\magnetmw</span>+0.5*0.1+0.25*<span class="org-font-latex-sedate">\magnetwg</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\draw</span>[] ( <span class="org-font-latex-sedate">\coilwidth</span>, 0.5*<span class="org-font-latex-sedate">\magneth</span>) -- ++(0, 0.7*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-font-latex-sedate">\draw</span>[] (-<span class="org-font-latex-sedate">\coilwidth</span>, 0.5*<span class="org-font-latex-sedate">\magneth</span>) -- ++(0, 0.7*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-comment">% Point on the coil</span>
<span class="org-font-latex-sedate">\foreach</span> <span class="org-font-latex-sedate">\x</span> in {0,1,...,9}
{
<span class="org-font-latex-sedate">\node</span>[circle,inner sep=0.6pt,fill] at ( <span class="org-font-latex-sedate">\coilwidth</span>, <span class="org-font-latex-sedate">\x</span>*0.7*<span class="org-font-latex-sedate">\magneth</span>/10+0.5*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-font-latex-sedate">\node</span>[circle,inner sep=0.6pt,fill] at (-<span class="org-font-latex-sedate">\coilwidth</span>, <span class="org-font-latex-sedate">\x</span>*0.7*<span class="org-font-latex-sedate">\magneth</span>/10+0.5*<span class="org-font-latex-sedate">\magneth</span>);
}
<span class="org-font-latex-sedate">\draw</span>[fill=white] (-0.5*<span class="org-font-latex-sedate">\magnetw</span>, 1.2*<span class="org-font-latex-sedate">\magneth</span>) rectangle ++(<span class="org-font-latex-sedate">\magnetw</span>, <span class="org-font-latex-sedate">\magnethg</span>);
<span class="org-comment">% ======================</span>
<span class="org-comment">% ======================</span>
<span class="org-comment">% Coordinates</span>
<span class="org-comment">% ======================</span>
<span class="org-comment">% Force</span>
<span class="org-font-latex-sedate">\coordinate</span>[] (vc_force) at (0, <span class="org-font-latex-sedate">\magneth</span>-0.5*<span class="org-font-latex-sedate">\magnethg</span>);
<span class="org-comment">% Coil</span>
<span class="org-font-latex-sedate">\coordinate</span>[] (vc_coil) at (0, <span class="org-font-latex-sedate">\voicecoilh</span>);
<span class="org-comment">% Magnet</span>
<span class="org-font-latex-sedate">\coordinate</span>[] (vc_magnet) at (0, 0);
<span class="org-comment">% Coil Wires</span>
<span class="org-font-latex-sedate">\coordinate</span>[] (vc_wire_one) at ( <span class="org-font-latex-sedate">\coilwidth</span>, 1.2*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (vc_wire_two) at (-<span class="org-font-latex-sedate">\coilwidth</span>, 1.2*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-comment">% ======================</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
}
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org3730519" class="outline-2">
<h2 id="org3730519"><span class="section-number-2">11</span> Optics</h2>
<div class="outline-text-2" id="text-11">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
-&gt;-/.style={
decoration={
markings,
mark = at position #1 with {<span class="org-font-latex-sedate">\arrow</span>{&gt;}
}
},
postaction={decorate}
}
}
<span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
-&lt;-/.style={
decoration={
markings,
mark = at position #1 with {<span class="org-font-latex-sedate">\arrow</span>{&lt;}
}
},
postaction={decorate}
}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-org0b6e57a" class="outline-2">
<h2 id="org0b6e57a"><span class="section-number-2">12</span> Misc</h2>
<div class="outline-text-2" id="text-12">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
labelc/.style= {<span class="org-comment">%</span>
draw,
fill=white,
shape=circle,
inner sep=2pt,
outer sep=6pt,
}
}
</pre>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2020-11-12 jeu. 10:40</p>
</div>
</body>
</html>

689
tikz/config.org Normal file
View File

@@ -0,0 +1,689 @@
#+TITLE: LaTeX Configuration for Tikz export
:drawer:
#+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+PROPERTY: header-args:latex+ :tangle config.tex
#+PROPERTY: header-args:latex+ :exports code
:end:
* Packages
#+begin_src latex
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french, english]{babel} % Last language is main language
\usepackage{lmodern} % Latin Modern Font
\usepackage{gensymb} % Generic symbols for both text and math mode
\usepackage{standalone} % Used to generate standalone Tikz
\usepackage{amsmath} % Main math Package
\usepackage{mathtools} % Extension package to amsmath
\usepackage{amsthm} % Typesetting theorems (AMS style)
\usepackage{amsfonts} % More fonts from the AMS
\usepackage{textcomp} % provide many text symbols
\usepackage{steinmetz} % For phase symbol
\usepackage{xstring} % Utils to manipulate strings
\usepackage{etoolbox} % Add basic if/then
\usepackage{esvect} % Beautyfull vectors
\usepackage{graphicx} % Enhanced support for graphics
\usepackage{grffile} % Used by matlab2tikz
\usepackage{microtype} % typographic tuning
\usepackage{setspace} % for line spacing, e.g. \onehalfspacing
\usepackage{tabularx} % table features
\usepackage{enumitem} % for simple list modifications
\usepackage{booktabs} % better table support
\usepackage{stackengine} %
\usepackage[load-configurations=abbreviations]{siunitx} % SI units
\sisetup{
locale = US,
detect-all,
range-phrase=--,
range-units=single
}
#+end_src
* Tikz related packages
#+begin_src latex
\usepackage{tikz} % Tikz
\usepackage{tikzscale} % Used to scale Tikz graphics
\usepackage{adjustbox} % Used to proper positioning of tikz pictures
\usepackage{circuitikz} % Draw electronic circuits
\usepackage{pgfpages} % Needed to use notes
\usepackage{pgfplots} % Used to plot functions
#+end_src
* Tikz Libraries
#+begin_src latex
\usetikzlibrary{arrows} % Arrow tip library
\usetikzlibrary{arrows.meta} % Add some arrows
\usetikzlibrary{calc} % The library allows advanced Coordinate Calculations
\usetikzlibrary{intersections} % calculate intersections of paths
\usetikzlibrary{matrix} %
\usetikzlibrary{patterns} %
\usetikzlibrary{shapes} % Defines circle and rectangle
\usetikzlibrary{shapes.geometric} % Use for the shape diamond and isosceles triangle
\usetikzlibrary{snakes} % snake=coil and snake=zigzag using segment amplitude=10pt
\usetikzlibrary{positioning} % Additional options for placing nodes
\usetikzlibrary{3d} % Plot 3D shapes
\usetikzlibrary{spy} % Creating a magnified area
\usetikzlibrary{decorations.text} % Used to make text follows a curve
\usetikzlibrary{decorations.pathmorphing} % deformation of a path
\usetikzlibrary{decorations.markings} % Used for spring and damper
\usetikzlibrary{babel} % A tiny library that make the interaction with the babel package easier
\usetikzlibrary{plotmarks} % This library defines a number of plot marks
\usetikzlibrary{fit} % Used to make rectangle as nodes by specifying two points
\usetikzlibrary{backgrounds} % Used to put things under others
#+end_src
* PGF Plot libraries and config
#+begin_src latex
\usepgfplotslibrary{patchplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
#+end_src
* Setup size of figures
#+begin_src latex
\newlength{\fheight}
\newlength{\fwidth}
\setlength{\fwidth}{85mm}
\setlength{\fheight}{112mm}
#+end_src
* Setup Arrows style
#+begin_src latex
\tikzset{>=Stealth}
% Setup default Linewidth
\tikzset{every path/.style={line width=1pt}}
#+end_src
* Colors
#+begin_src latex
\usepackage{xcolor}% Color extension
\definecolor{colorblack}{rgb}{0, 0, 0}
\definecolor{colorblue}{rgb}{0, 0.4470, 0.7410}
\definecolor{colorred}{rgb}{0.8500, 0.3250, 0.0980}
\definecolor{coloryellow}{rgb}{0.9290, 0.6940, 0.1250}
\definecolor{colorpurple}{rgb}{0.4940, 0.1840, 0.5560}
\definecolor{colorgreen}{rgb}{0.4660, 0.6740, 0.1880}
\definecolor{colorcyan}{rgb}{0.3010, 0.7450, 0.9330}
\definecolor{colorbordeau}{rgb}{0.6350, 0.0780, 0.1840}
% Main color
\definecolor{maincolor}{RGB}{89, 9, 38}
\definecolor{secondcolor}{RGB}{20, 9, 89}
#+end_src
* Control
** Blocks
#+begin_src latex
\tikzset{%
block/.style n args={2}{%
draw,
fill=white,
minimum width = #1,
minimum height = #2,
},
block/.default={1.2cm}{1.0cm}
}
#+end_src
** TODO Branches
#+begin_src latex
\tikzstyle{branch}=[fill,shape=circle,minimum size=4pt,inner sep=0pt]
\tikzstyle{->top}=[-{Stealth[color=black, scale=0.8]}, draw=white, double=black, double distance=1pt, line width=1pt]
\tikzstyle{<-top}=[{stealth[color=black, scale=0.8]}-, draw=white, double=black, double distance=1pt, line width=1pt]
#+end_src
** TODO Hand Writen Style
Usefull for schematic plots
#+begin_src latex
\tikzstyle{handwriten}=[decorate,decoration={random steps,amplitude=0.1pt,segment length=0.8pt}]
#+end_src
** DAC
#+begin_src latex
\tikzset{%
DAC/.style={%
draw,
signal,
}
}
#+end_src
** ADC
#+begin_src latex
\tikzset{%
ADC/.style={%
draw,
signal,
signal to = west,
}
}
#+end_src
** TODO Gain
Maybe use =isosceles= instead of regular polygon?
#+begin_src latex
\tikzset{%
gain right/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=-90
},
gain left/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=90
},
gain top/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=0
},
gain bottom/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=180
},
}
#+end_src
** Add / Substract / Divide / Multiply block
#+begin_src latex
\tikzset{% Add block with Circled operations
addc/.style n args={5}{%
draw,
fill=white,
circle,
outer sep = 0pt,
inner sep = 0pt,
minimum size = 2em,
execute at begin node={\LARGE $#1$},
append after command={\pgfextra{\let\mainnode=\tikzlastnode}
\ifx#2\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, above left] at (\mainnode.west) {$#2$}%
\fi
\ifx#3\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, above right] at (\mainnode.north) {$#3$}%
\fi
\ifx#4\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, below right] at (\mainnode.east) {$#4$}%
\fi
\ifx#5\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, below left] at (\mainnode.south) {$#5$}%
\fi
}
},
addc/.default={+}{}{}{}{},
}
#+end_src
#+begin_src latex
\tikzset{% Add Block
addb/.style n args={5}{%
draw,
fill=white,
circle,
outer sep = 0pt,
inner sep = 0pt,
minimum size = 2em,
execute at begin node={\LARGE $#1$},
append after command={\pgfextra{\let\mainnode=\tikzlastnode}
\ifx#2\empty\else
node[outer sep=2pt, inner sep=0pt, above left] at (\mainnode.west) {$#2$}%
\fi
\ifx#3\empty\else
node[outer sep=2pt, inner sep=0pt, above right] at (\mainnode.north) {$#3$}%
\fi
\ifx#4\empty\else
node[outer sep=2pt, inner sep=0pt, below right] at (\mainnode.east) {$#4$}%
\fi
\ifx#5\empty\else
node[outer sep=2pt, inner sep=0pt, below left] at (\mainnode.south) {$#5$}%
\fi
}
},
addb/.default={+}{}{}{}{},
}
#+end_src
* Plots
** Grid
#+begin_src latex
\pgfplotsset{grid style={black}}
\pgfplotsset{major grid style={black!30!white}}
\pgfplotsset{minor grid style={black!10!white}}
\pgfplotsset{xmajorgrids}
\pgfplotsset{ymajorgrids}
#+end_src
** Lines
#+begin_src latex
\pgfplotsset{separate axis lines=false} % draw axis as rectangle and not as 4 lines
\pgfplotsset{every outer x axis line/.append style={black}}
\pgfplotsset{every outer y axis line/.append style={black}}
\pgfplotsset{axis background/.style={fill=white}}
\pgfplotsset{axis x line*=bottom} % solid line on the bottom with thin on the top
\pgfplotsset{axis y line*=left} % solid line on the left with thin on the right
#+end_src
** Ticks
#+begin_src latex
\pgfplotsset{every y tick label/.append style={font=\color{black}}}
\pgfplotsset{every y tick/.append style={black}}
\pgfplotsset{every x tick label/.append style={font=\color{black}}}
\pgfplotsset{every x tick/.append style={black}}
#+end_src
** Size
If =scale only axis=false= (the default), pgfplots will try to produce the desired width including labels, titles and ticks.
#+begin_src latex
\pgfplotsset{scale only axis=true}
#+end_src
** Label
Used to align all of ylabel of one figure.
#+begin_src latex
\pgfplotsset{ylabel absolute}
#+end_src
** Legend
#+begin_src latex
% https://tex.stackexchange.com/questions/54794/using-a-pgfplots-style-legend-in-a-plain-old-tikzpicture#54834
% argument #1: any options
\newenvironment{customlegend}[1][]{%
\begingroup
% inits/clears the lists (which might be populated from previous
% axes):
\csname pgfplots@init@cleared@structures\endcsname
\pgfplotsset{#1}%
}{%
% draws the legend:
\csname pgfplots@createlegend\endcsname
\endgroup
}%
% makes \addlegendimage available (typically only available within an
% axis environment):
\def\addlegendimage{\csname pgfplots@addlegendimage\endcsname}
% definition to insert numbers
% \pgfkeys{/pgfplots/number in legend/.style={%
% /pgfplots/legend image code/.code={%
% \node at (0.125,-0.0225){#1}; % <= changed x value
% },%
% },
% }
\pgfplotsset{
every legend to name picture/.style={west}
}
#+end_src
** Upper and Lower bounds
#+begin_src latex
\tikzstyle{upperbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=60}}]
\tikzstyle{lowerbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=-60}}]
#+end_src
And we add the corresdonding
#+begin_src latex
\pgfplotsset{
/pgfplots/upperbound/.style 1 args={
legend image code/.code={
\draw[##1, upperbound]
plot coordinates {
(0cm,0cm)
(0.6cm,0cm)
}
}
}
}
#+end_src
** Pole
#+begin_src latex
\tikzset{%
pole/.style{%
color=red,
cross out,
draw,
inner sep=0pt,
outer sep=0pt,
minimum size=#1pt
},
pole/.default={4}
}
#+end_src
** Zero
#+begin_src latex
\tikzset{%
zero/.style{%
color=red,
circle,
draw,
inner sep=0pt,
outer sep=0pt,
minimum size=#1pt
},
zero/.default={4}
}
#+end_src
* Mechanical
** Spring
#+begin_src latex
\tikzset{%
spring/.style={%
thick,
decoration={
zigzag,
pre length = #1cm,
post length = #1cm,
segment length = 6
},
decorate
},
spring/.default={0.2}
}
#+end_src
** Coil
#+begin_src latex
\tikzset{%
coil/.style n args={2}{%
thick,
decoration={
coil,
pre length = #1cm,
post length = #2cm,
segment length = 4
},
decorate
},
coil/.default={0.3}{0.3}
}
#+end_src
** Damper
#+begin_src latex
\tikzset{%
damper/.style n args={2}{%
thick,
decoration={markings, mark connection node=dmp, mark=at position 0.5 with {
\node (dmp) [thick,
inner sep = 0pt,
transform shape,
rotate =-90,
minimum width = #1pt,
minimum height = #2pt,
draw=none] {};
\draw [thick] ($(dmp.north east)+(0.6*#2pt,0)$) -- (dmp.south east) -- (dmp.south west) -- ($(dmp.north west)+(0.6*#2pt,0)$);
\draw [thick] ($(dmp.north)+(0,-0.3*#1pt)$) -- ($(dmp.north)+(0,0.3*#1pt)$);
}
},
decorate
},
damper/.default={12}{3}
}
#+end_src
** Actuator
#+begin_src latex
\tikzset{%
actuator/.style n args={2}{%
thick,
draw=none,
decoration={
markings,
mark connection node=my node,
mark=at position .5 with {
\node [draw, inner sep=0pt, minimum width=#1cm, minimum height=#2cm,
transform shape, fill=white] (my node) {};
},
mark=at position .0 with {
\draw[<-] (0, 0) -- (my node);
},
mark=at position 1.0 with {
\draw[<-] (0, 0) -- (my node);
}
},
decorate
},
actuator/.default={0.5}{0.2}
}
#+end_src
** Ground
#+begin_src latex
\tikzset{%
ground/.style n args={2}{%
fill,
pattern = north east lines,
draw = none,
anchor = north,
minimum width = #1cm,
minimum height = #2cm,
append after command={
(\tikzlastnode.north west) edge (\tikzlastnode.north east)
}
},
ground/.default={2.5}{0.3}
}
#+end_src
** Force Sensor
#+begin_src latex
\tikzset{%
forcesensor/.style n args={2}{%
rectangle,
outer sep=0pt,
inner sep=0pt,
draw=black,
fill=white!60!black,
anchor=south,
minimum width =#1cm,
minimum height=#2cm,
append after command={
[every edge/.append style={
thick,
black,
}]
(\tikzlastnode.north west) edge (\tikzlastnode.south east)
(\tikzlastnode.north east) edge (\tikzlastnode.south west)
}
},
forcesensor/.default={2.0}{0.5}
}
#+end_src
** Inertial Sensor
#+begin_src latex
\tikzset{%
inertialsensor/.style={%
rectangle,
outer sep=0pt,
inner sep=0pt,
draw=black,
fill=white!60!black,
anchor=south east,
minimum size=#1cm,
append after command={
[every edge/.append style={
thick,
black,
}]
(\tikzlastnode.north west) edge (\tikzlastnode.south east)
(\tikzlastnode.north east) edge (\tikzlastnode.south west)
}
},
inertialsensor/.default={0.3}
}
#+end_src
** Axis Rotator
#+begin_src latex
\newcommand{\AxisRotator}[1][rotate=0]{%
\tikz [x=0.1cm,y=0.30cm,-stealth,#1] \draw (0,0) arc (-150:150:1 and 1);%
}
#+end_src
** Cross
#+begin_src latex
\tikzstyle{cross}=[path picture={
\draw[black]
(path picture bounding box.south east) -- (path picture bounding box.north west) (path picture bounding box.south west) -- (path picture bounding box.north east);
}]
#+end_src
** Piezoelectric actuator
#+begin_src latex
\tikzset{%
piezo/.style n args={3}{%
draw,
rectangle,
minimum width = #1cm,
minimum height = #2cm,
fill=blue!10!white,
anchor=center,
append after command={
[every edge/.append style={
thick,
black,
}]
\foreach \i in {1,...,#3}{
(${\i/(1+#3)}*(\tikzlastnode.north west)+{(1+#3-\i)/(1+#3)}*(\tikzlastnode.south west)+0.1*(#1,0)$) edge (${\i/(1+#3)}*(\tikzlastnode.north east)+{(1+#3-\i)/(1+#3)}*(\tikzlastnode.south east)-0.1*(#1,0)$)
}
}
},
piezo/.default={2}{4}{10}
}
#+end_src
** Voice coil
#+begin_src latex
\def\voicecoil#1#2#3{
% ======================
% Parameters
% ======================
\def\voicecoilw{#1} % Total Width
\def\voicecoilh{#2} % Total Height
\def\magnetw{\voicecoilw} % Width of the magnet
\def\magneth{\voicecoilh/1.4} % Height of the magnet
\def\magnetwb{0.15*\magnetw} % Width of the borders of the magnet
\def\magnetmw{0.15*\magnetw} % Width of the middle part of the magnet
\def\magnetwg{0.5*\magnetw} % Width of the gap of the magnet
\def\magnethl{\magnetwb} % Height of the low part of the magnet
\def\magnetmh{0.15*\magneth} % Height of the middle part of the magnet
\def\magnethg{0.2*\magneth} % Height of the gap of the magnet
% ======================
\begin{scope}[shift={(0.5*\voicecoilw, 0.5*\voicecoilh)}, rotate=#3, shift={(0, -0.5*\voicecoilh)}]
% ======================
% Magnet
% ======================
\draw[fill=white] (0, 0) -| ++(0.5*\magnetw, \magneth) -| ++(-0.5*\magnetw+0.5*\magnetwg, -\magnethg) -| (0.5*\magnetw-\magnetwb, \magnethl) -| (-0.5*\magnetw+\magnetwb, \magneth-\magnethg) -| (-0.5*\magnetwg, \magneth) -| (-0.5*\magnetw, 0) -- (cycle);
\begin{scope}[shift={(0, \magnethl)}]
\draw[fill=red] (-0.5*\magnetmw, 0) rectangle (0.5*\magnetmw, \magnetmh);
\draw[fill=blue] (-0.5*\magnetmw, \magnetmh) rectangle (0.5*\magnetmw, 2*\magnetmh);
% Top conductive Magnet
\draw[fill=white] (-0.5*\magnetmw, 2*\magnetmh) -| (0.5*\magnetmw, -\magnethl+\magneth-\magnethg) -| ++(0.1, \magnethg) -| ++(-0.2-\magnetmw, -\magnethg) -| (-0.5*\magnetmw, \magnetmh);
\end{scope}
% ======================
% ======================
% Coil
% ======================
\pgfmathsetmacro{\coilwidth}{0.5*0.5*\magnetmw+0.5*0.1+0.25*\magnetwg}%
\draw[] ( \coilwidth, 0.5*\magneth) -- ++(0, 0.7*\magneth);
\draw[] (-\coilwidth, 0.5*\magneth) -- ++(0, 0.7*\magneth);
% Point on the coil
\foreach \x in {0,1,...,9}
{
\node[circle,inner sep=0.6pt,fill] at ( \coilwidth, \x*0.7*\magneth/10+0.5*\magneth);
\node[circle,inner sep=0.6pt,fill] at (-\coilwidth, \x*0.7*\magneth/10+0.5*\magneth);
}
\draw[fill=white] (-0.5*\magnetw, 1.2*\magneth) rectangle ++(\magnetw, \magnethg);
% ======================
% ======================
% Coordinates
% ======================
% Force
\coordinate[] (vc_force) at (0, \magneth-0.5*\magnethg);
% Coil
\coordinate[] (vc_coil) at (0, \voicecoilh);
% Magnet
\coordinate[] (vc_magnet) at (0, 0);
% Coil Wires
\coordinate[] (vc_wire_one) at ( \coilwidth, 1.2*\magneth);
\coordinate[] (vc_wire_two) at (-\coilwidth, 1.2*\magneth);
% ======================
\end{scope}
}
#+end_src
* Optics
#+begin_src latex
\tikzset{%
->-/.style={
decoration={
markings,
mark = at position #1 with {\arrow{>}
}
},
postaction={decorate}
}
}
\tikzset{%
-<-/.style={
decoration={
markings,
mark = at position #1 with {\arrow{<}
}
},
postaction={decorate}
}
}
#+end_src
* Misc
#+begin_src latex
\tikzset{%
labelc/.style= {%
draw,
fill=white,
shape=circle,
inner sep=2pt,
outer sep=6pt,
}
}
#+end_src

556
tikz/config.tex Normal file
View File

@@ -0,0 +1,556 @@
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french, english]{babel} % Last language is main language
\usepackage{lmodern} % Latin Modern Font
\usepackage{gensymb} % Generic symbols for both text and math mode
\usepackage{standalone} % Used to generate standalone Tikz
\usepackage{amsmath} % Main math Package
\usepackage{mathtools} % Extension package to amsmath
\usepackage{amsthm} % Typesetting theorems (AMS style)
\usepackage{amsfonts} % More fonts from the AMS
\usepackage{textcomp} % provide many text symbols
\usepackage{steinmetz} % For phase symbol
\usepackage{xstring} % Utils to manipulate strings
\usepackage{etoolbox} % Add basic if/then
\usepackage{esvect} % Beautyfull vectors
\usepackage{graphicx} % Enhanced support for graphics
\usepackage{grffile} % Used by matlab2tikz
\usepackage{microtype} % typographic tuning
\usepackage{setspace} % for line spacing, e.g. \onehalfspacing
\usepackage{tabularx} % table features
\usepackage{enumitem} % for simple list modifications
\usepackage{booktabs} % better table support
\usepackage{stackengine} %
\usepackage[load-configurations=abbreviations]{siunitx} % SI units
\sisetup{
locale = US,
detect-all,
range-phrase=--,
range-units=single
}
\usepackage{tikz} % Tikz
\usepackage{tikzscale} % Used to scale Tikz graphics
\usepackage{adjustbox} % Used to proper positioning of tikz pictures
\usepackage{circuitikz} % Draw electronic circuits
\usepackage{pgfpages} % Needed to use notes
\usepackage{pgfplots} % Used to plot functions
\usetikzlibrary{arrows} % Arrow tip library
\usetikzlibrary{arrows.meta} % Add some arrows
\usetikzlibrary{calc} % The library allows advanced Coordinate Calculations
\usetikzlibrary{intersections} % calculate intersections of paths
\usetikzlibrary{matrix} %
\usetikzlibrary{patterns} %
\usetikzlibrary{shapes} % Defines circle and rectangle
\usetikzlibrary{shapes.geometric} % Use for the shape diamond and isosceles triangle
\usetikzlibrary{snakes} % snake=coil and snake=zigzag using segment amplitude=10pt
\usetikzlibrary{positioning} % Additional options for placing nodes
\usetikzlibrary{3d} % Plot 3D shapes
\usetikzlibrary{spy} % Creating a magnified area
\usetikzlibrary{decorations.text} % Used to make text follows a curve
\usetikzlibrary{decorations.pathmorphing} % deformation of a path
\usetikzlibrary{decorations.markings} % Used for spring and damper
\usetikzlibrary{babel} % A tiny library that make the interaction with the babel package easier
\usetikzlibrary{plotmarks} % This library defines a number of plot marks
\usetikzlibrary{fit} % Used to make rectangle as nodes by specifying two points
\usetikzlibrary{backgrounds} % Used to put things under others
\usepgfplotslibrary{patchplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\newlength{\fheight}
\newlength{\fwidth}
\setlength{\fwidth}{85mm}
\setlength{\fheight}{112mm}
\tikzset{>=Stealth}
% Setup default Linewidth
\tikzset{every path/.style={line width=1pt}}
\usepackage{xcolor}% Color extension
\definecolor{colorblack}{rgb}{0, 0, 0}
\definecolor{colorblue}{rgb}{0, 0.4470, 0.7410}
\definecolor{colorred}{rgb}{0.8500, 0.3250, 0.0980}
\definecolor{coloryellow}{rgb}{0.9290, 0.6940, 0.1250}
\definecolor{colorpurple}{rgb}{0.4940, 0.1840, 0.5560}
\definecolor{colorgreen}{rgb}{0.4660, 0.6740, 0.1880}
\definecolor{colorcyan}{rgb}{0.3010, 0.7450, 0.9330}
\definecolor{colorbordeau}{rgb}{0.6350, 0.0780, 0.1840}
% Main color
\definecolor{maincolor}{RGB}{89, 9, 38}
\definecolor{secondcolor}{RGB}{20, 9, 89}
\tikzset{%
block/.style n args={2}{%
draw,
fill=white,
minimum width = #1,
minimum height = #2,
},
block/.default={1.2cm}{1.0cm}
}
\tikzstyle{branch}=[fill,shape=circle,minimum size=4pt,inner sep=0pt]
\tikzstyle{->top}=[-{Stealth[color=black, scale=0.8]}, draw=white, double=black, double distance=1pt, line width=1pt]
\tikzstyle{<-top}=[{stealth[color=black, scale=0.8]}-, draw=white, double=black, double distance=1pt, line width=1pt]
\tikzstyle{handwriten}=[decorate,decoration={random steps,amplitude=0.1pt,segment length=0.8pt}]
\tikzset{%
DAC/.style={%
draw,
signal,
}
}
\tikzset{%
ADC/.style={%
draw,
signal,
signal to = west,
}
}
\tikzset{%
gain right/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=-90
},
gain left/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=90
},
gain top/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=0
},
gain bottom/.style={%
draw,
regular polygon,
regular polygon sides = 3,
inner sep = 2pt,
shape border rotate=180
},
}
\tikzset{% Add block with Circled operations
addc/.style n args={5}{%
draw,
fill=white,
circle,
outer sep = 0pt,
inner sep = 0pt,
minimum size = 2em,
execute at begin node={\LARGE $#1$},
append after command={\pgfextra{\let\mainnode=\tikzlastnode}
\ifx#2\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, above left] at (\mainnode.west) {$#2$}%
\fi
\ifx#3\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, above right] at (\mainnode.north) {$#3$}%
\fi
\ifx#4\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, below right] at (\mainnode.east) {$#4$}%
\fi
\ifx#5\empty\else
node[draw, circle, outer sep=6pt, inner sep=0pt, below left] at (\mainnode.south) {$#5$}%
\fi
}
},
addc/.default={+}{}{}{}{},
}
\tikzset{% Add Block
addb/.style n args={5}{%
draw,
fill=white,
circle,
outer sep = 0pt,
inner sep = 0pt,
minimum size = 2em,
execute at begin node={\LARGE $#1$},
append after command={\pgfextra{\let\mainnode=\tikzlastnode}
\ifx#2\empty\else
node[outer sep=2pt, inner sep=0pt, above left] at (\mainnode.west) {$#2$}%
\fi
\ifx#3\empty\else
node[outer sep=2pt, inner sep=0pt, above right] at (\mainnode.north) {$#3$}%
\fi
\ifx#4\empty\else
node[outer sep=2pt, inner sep=0pt, below right] at (\mainnode.east) {$#4$}%
\fi
\ifx#5\empty\else
node[outer sep=2pt, inner sep=0pt, below left] at (\mainnode.south) {$#5$}%
\fi
}
},
addb/.default={+}{}{}{}{},
}
\pgfplotsset{grid style={black}}
\pgfplotsset{major grid style={black!30!white}}
\pgfplotsset{minor grid style={black!10!white}}
\pgfplotsset{xmajorgrids}
\pgfplotsset{ymajorgrids}
\pgfplotsset{separate axis lines=false} % draw axis as rectangle and not as 4 lines
\pgfplotsset{every outer x axis line/.append style={black}}
\pgfplotsset{every outer y axis line/.append style={black}}
\pgfplotsset{axis background/.style={fill=white}}
\pgfplotsset{axis x line*=bottom} % solid line on the bottom with thin on the top
\pgfplotsset{axis y line*=left} % solid line on the left with thin on the right
\pgfplotsset{every y tick label/.append style={font=\color{black}}}
\pgfplotsset{every y tick/.append style={black}}
\pgfplotsset{every x tick label/.append style={font=\color{black}}}
\pgfplotsset{every x tick/.append style={black}}
\pgfplotsset{scale only axis=true}
\pgfplotsset{ylabel absolute}
% https://tex.stackexchange.com/questions/54794/using-a-pgfplots-style-legend-in-a-plain-old-tikzpicture#54834
% argument #1: any options
\newenvironment{customlegend}[1][]{%
\begingroup
% inits/clears the lists (which might be populated from previous
% axes):
\csname pgfplots@init@cleared@structures\endcsname
\pgfplotsset{#1}%
}{%
% draws the legend:
\csname pgfplots@createlegend\endcsname
\endgroup
}%
% makes \addlegendimage available (typically only available within an
% axis environment):
\def\addlegendimage{\csname pgfplots@addlegendimage\endcsname}
% definition to insert numbers
% \pgfkeys{/pgfplots/number in legend/.style={%
% /pgfplots/legend image code/.code={%
% \node at (0.125,-0.0225){#1}; % <= changed x value
% },%
% },
% }
\pgfplotsset{
every legend to name picture/.style={west}
}
\tikzstyle{upperbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=60}}]
\tikzstyle{lowerbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=-60}}]
\pgfplotsset{
/pgfplots/upperbound/.style 1 args={
legend image code/.code={
\draw[##1, upperbound]
plot coordinates {
(0cm,0cm)
(0.6cm,0cm)
}
}
}
}
\tikzset{%
pole/.style{%
color=red,
cross out,
draw,
inner sep=0pt,
outer sep=0pt,
minimum size=#1pt
},
pole/.default={4}
}
\tikzset{%
zero/.style{%
color=red,
circle,
draw,
inner sep=0pt,
outer sep=0pt,
minimum size=#1pt
},
zero/.default={4}
}
\tikzset{%
spring/.style={%
thick,
decoration={
zigzag,
pre length = #1cm,
post length = #1cm,
segment length = 6
},
decorate
},
spring/.default={0.2}
}
\tikzset{%
coil/.style n args={2}{%
thick,
decoration={
coil,
pre length = #1cm,
post length = #2cm,
segment length = 4
},
decorate
},
coil/.default={0.3}{0.3}
}
\tikzset{%
damper/.style n args={2}{%
thick,
decoration={markings, mark connection node=dmp, mark=at position 0.5 with {
\node (dmp) [thick,
inner sep = 0pt,
transform shape,
rotate =-90,
minimum width = #1pt,
minimum height = #2pt,
draw=none] {};
\draw [thick] ($(dmp.north east)+(0.6*#2pt,0)$) -- (dmp.south east) -- (dmp.south west) -- ($(dmp.north west)+(0.6*#2pt,0)$);
\draw [thick] ($(dmp.north)+(0,-0.3*#1pt)$) -- ($(dmp.north)+(0,0.3*#1pt)$);
}
},
decorate
},
damper/.default={12}{3}
}
\tikzset{%
actuator/.style n args={2}{%
thick,
draw=none,
decoration={
markings,
mark connection node=my node,
mark=at position .5 with {
\node [draw, inner sep=0pt, minimum width=#1cm, minimum height=#2cm,
transform shape, fill=white] (my node) {};
},
mark=at position .0 with {
\draw[<-] (0, 0) -- (my node);
},
mark=at position 1.0 with {
\draw[<-] (0, 0) -- (my node);
}
},
decorate
},
actuator/.default={0.5}{0.2}
}
\tikzset{%
ground/.style n args={2}{%
fill,
pattern = north east lines,
draw = none,
anchor = north,
minimum width = #1cm,
minimum height = #2cm,
append after command={
(\tikzlastnode.north west) edge (\tikzlastnode.north east)
}
},
ground/.default={2.5}{0.3}
}
\tikzset{%
forcesensor/.style n args={2}{%
rectangle,
outer sep=0pt,
inner sep=0pt,
draw=black,
fill=white!60!black,
anchor=south,
minimum width =#1cm,
minimum height=#2cm,
append after command={
[every edge/.append style={
thick,
black,
}]
(\tikzlastnode.north west) edge (\tikzlastnode.south east)
(\tikzlastnode.north east) edge (\tikzlastnode.south west)
}
},
forcesensor/.default={2.0}{0.5}
}
\tikzset{%
inertialsensor/.style={%
rectangle,
outer sep=0pt,
inner sep=0pt,
draw=black,
fill=white!60!black,
anchor=south east,
minimum size=#1cm,
append after command={
[every edge/.append style={
thick,
black,
}]
(\tikzlastnode.north west) edge (\tikzlastnode.south east)
(\tikzlastnode.north east) edge (\tikzlastnode.south west)
}
},
inertialsensor/.default={0.3}
}
\newcommand{\AxisRotator}[1][rotate=0]{%
\tikz [x=0.1cm,y=0.30cm,-stealth,#1] \draw (0,0) arc (-150:150:1 and 1);%
}
\tikzstyle{cross}=[path picture={
\draw[black]
(path picture bounding box.south east) -- (path picture bounding box.north west) (path picture bounding box.south west) -- (path picture bounding box.north east);
}]
\tikzset{%
piezo/.style n args={3}{%
draw,
rectangle,
minimum width = #1cm,
minimum height = #2cm,
fill=blue!10!white,
anchor=center,
append after command={
[every edge/.append style={
thick,
black,
}]
\foreach \i in {1,...,#3}{
(${\i/(1+#3)}*(\tikzlastnode.north west)+{(1+#3-\i)/(1+#3)}*(\tikzlastnode.south west)+0.1*(#1,0)$) edge (${\i/(1+#3)}*(\tikzlastnode.north east)+{(1+#3-\i)/(1+#3)}*(\tikzlastnode.south east)-0.1*(#1,0)$)
}
}
},
piezo/.default={2}{4}{10}
}
\def\voicecoil#1#2#3{
% ======================
% Parameters
% ======================
\def\voicecoilw{#1} % Total Width
\def\voicecoilh{#2} % Total Height
\def\magnetw{\voicecoilw} % Width of the magnet
\def\magneth{\voicecoilh/1.4} % Height of the magnet
\def\magnetwb{0.15*\magnetw} % Width of the borders of the magnet
\def\magnetmw{0.15*\magnetw} % Width of the middle part of the magnet
\def\magnetwg{0.5*\magnetw} % Width of the gap of the magnet
\def\magnethl{\magnetwb} % Height of the low part of the magnet
\def\magnetmh{0.15*\magneth} % Height of the middle part of the magnet
\def\magnethg{0.2*\magneth} % Height of the gap of the magnet
% ======================
\begin{scope}[shift={(0.5*\voicecoilw, 0.5*\voicecoilh)}, rotate=#3, shift={(0, -0.5*\voicecoilh)}]
% ======================
% Magnet
% ======================
\draw[fill=white] (0, 0) -| ++(0.5*\magnetw, \magneth) -| ++(-0.5*\magnetw+0.5*\magnetwg, -\magnethg) -| (0.5*\magnetw-\magnetwb, \magnethl) -| (-0.5*\magnetw+\magnetwb, \magneth-\magnethg) -| (-0.5*\magnetwg, \magneth) -| (-0.5*\magnetw, 0) -- (cycle);
\begin{scope}[shift={(0, \magnethl)}]
\draw[fill=red] (-0.5*\magnetmw, 0) rectangle (0.5*\magnetmw, \magnetmh);
\draw[fill=blue] (-0.5*\magnetmw, \magnetmh) rectangle (0.5*\magnetmw, 2*\magnetmh);
% Top conductive Magnet
\draw[fill=white] (-0.5*\magnetmw, 2*\magnetmh) -| (0.5*\magnetmw, -\magnethl+\magneth-\magnethg) -| ++(0.1, \magnethg) -| ++(-0.2-\magnetmw, -\magnethg) -| (-0.5*\magnetmw, \magnetmh);
\end{scope}
% ======================
% ======================
% Coil
% ======================
\pgfmathsetmacro{\coilwidth}{0.5*0.5*\magnetmw+0.5*0.1+0.25*\magnetwg}%
\draw[] ( \coilwidth, 0.5*\magneth) -- ++(0, 0.7*\magneth);
\draw[] (-\coilwidth, 0.5*\magneth) -- ++(0, 0.7*\magneth);
% Point on the coil
\foreach \x in {0,1,...,9}
{
\node[circle,inner sep=0.6pt,fill] at ( \coilwidth, \x*0.7*\magneth/10+0.5*\magneth);
\node[circle,inner sep=0.6pt,fill] at (-\coilwidth, \x*0.7*\magneth/10+0.5*\magneth);
}
\draw[fill=white] (-0.5*\magnetw, 1.2*\magneth) rectangle ++(\magnetw, \magnethg);
% ======================
% ======================
% Coordinates
% ======================
% Force
\coordinate[] (vc_force) at (0, \magneth-0.5*\magnethg);
% Coil
\coordinate[] (vc_coil) at (0, \voicecoilh);
% Magnet
\coordinate[] (vc_magnet) at (0, 0);
% Coil Wires
\coordinate[] (vc_wire_one) at ( \coilwidth, 1.2*\magneth);
\coordinate[] (vc_wire_two) at (-\coilwidth, 1.2*\magneth);
% ======================
\end{scope}
}
\tikzset{%
->-/.style={
decoration={
markings,
mark = at position #1 with {\arrow{>}
}
},
postaction={decorate}
}
}
\tikzset{%
-<-/.style={
decoration={
markings,
mark = at position #1 with {\arrow{<}
}
},
postaction={decorate}
}
}
\tikzset{%
labelc/.style= {%
draw,
fill=white,
shape=circle,
inner sep=2pt,
outer sep=6pt,
}
}

1
tikz/figs Symbolic link
View File

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

321
tikz/index.html Normal file
View File

@@ -0,0 +1,321 @@
<?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>
<!-- 2020-11-12 jeu. 10:40 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Active Damping of Rotating Platforms using Integral Force Feedback - Tikz Figures</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></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">Active Damping of Rotating Platforms using Integral Force Feedback - Tikz Figures</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgd15976a">1. X-Y Rotating Positioning Platform</a></li>
<li><a href="#orgfba88c8">2. X-Y Rotating Positioning Platform</a></li>
<li><a href="#org732f401">3. Decentralized Integral Force Feedback</a></li>
<li><a href="#org1dd642f">4. Springs in parallel</a></li>
</ul>
</div>
</div>
<p>
Configuration file is accessible <a href="config.html">here</a>.
</p>
<div id="outline-container-orgd15976a" class="outline-2">
<h2 id="orgd15976a"><span class="section-number-2">1</span> X-Y Rotating Positioning Platform</h2>
<div class="outline-text-2" id="text-1">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-comment">% Angle</span>
<span class="org-font-latex-sedate">\def\thetau</span>{25}
<span class="org-comment">% Rotational Stage</span>
<span class="org-font-latex-sedate">\draw</span>[fill=black!60!white] (0, 0) circle (4.3);
<span class="org-font-latex-sedate">\draw</span>[fill=black!40!white] (0, 0) circle (3.8);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=north west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-2.5, 2.5) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Rotating Stage</span>};
<span class="org-comment">% Rotating Scope</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[rotate=<span class="org-font-latex-sedate">\thetau</span>]
<span class="org-comment">% Rotating Frame</span>
<span class="org-font-latex-sedate">\draw</span>[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=north west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-2.6, 2.6) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Suspended Platform</span>};
<span class="org-comment">% Mass</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (-1, -1) rectangle (1, 1);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=south west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-1, -1) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Payload</span>};
<span class="org-comment">% Attached Points</span>
<span class="org-font-latex-sedate">\node</span>[] at (-1, 0){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bullet</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[] (-1, 0) -- ++(-0.2, 0) coordinate(cu);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(cu) + (0, -0.8)$</span>) coordinate(actu) -- (<span class="org-font-latex-math">$(cu) + (0, 0.8)$</span>) coordinate(ku);
<span class="org-font-latex-sedate">\node</span>[] at (0, -1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bullet</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[] (0, -1) -- ++(0, -0.2) coordinate(cv);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(cv) + (-0.8, 0)$</span>)coordinate(kv) -- (<span class="org-font-latex-math">$(cv) + (0.8, 0)$</span>) coordinate(actv);
<span class="org-comment">% Spring and Actuator for U</span>
<span class="org-font-latex-sedate">\draw</span>[actuator={0.6}{0.2}] (actu) -- node[above=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$F</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>} (actu-|-2.6,0);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (ku) -- node[above=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k$</span>} (ku-|-2.6,0);
<span class="org-font-latex-sedate">\draw</span>[damper={8}{8}] (cu) -- node[above left=0.2 and -0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$c$</span>} (cu-|-2.6,0);
<span class="org-font-latex-sedate">\draw</span>[actuator={0.6}{0.2}] (actv) -- node[left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$F</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">v$</span>} (actv|-0,-2.6);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (kv) -- node[left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k$</span>} (kv|-0,-2.6);
<span class="org-font-latex-sedate">\draw</span>[damper={8}{8}] (cv) -- node[left=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$c$</span>} (cv|-0,-2.6);
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-comment">% Inertial Frame</span>
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (-4, -4) -- ++(2, 0) node[below]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">x$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (-4, -4) -- ++(0, 2) node[left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">y$</span>};
<span class="org-font-latex-sedate">\draw</span>[fill, color=black] (-4, -4) circle (0.06);
<span class="org-font-latex-sedate">\node</span>[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">z$</span>] at (-4, -4){};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (0, 0) node[above left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">w$</span>} -- ++(<span class="org-font-latex-sedate">\thetau</span>:2) node[above, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (0, 0) -- ++(<span class="org-font-latex-sedate">\thetau</span>+90:2) node[left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">v$</span>};
<span class="org-font-latex-sedate">\draw</span>[fill, color=black] (0,0) circle (0.06);
<span class="org-font-latex-sedate">\node</span>[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){};
<span class="org-font-latex-sedate">\draw</span>[dashed] (0, 0) -- ++(2, 0);
<span class="org-font-latex-sedate">\draw</span>[] (1.5, 0) arc (0:<span class="org-font-latex-sedate">\thetau</span>:1.5) node[midway, right]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\theta</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (3.5, 0) arc (0:40:3.5) node[midway, left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Omega</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orge4c1dec" class="figure">
<p><img src="figs/system.png" alt="system.png" />
</p>
</div>
</div>
</div>
<div id="outline-container-orgfba88c8" class="outline-2">
<h2 id="orgfba88c8"><span class="section-number-2">2</span> X-Y Rotating Positioning Platform</h2>
<div class="outline-text-2" id="text-2">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{block/.default={0.8cm}{0.8cm}}
<span class="org-font-latex-sedate">\tikzset</span>{addb/.append style={scale=0.7}}
<span class="org-font-latex-sedate">\tikzset</span>{node distance=0.6}
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[block={1.8cm}{2.2cm}] (G) {<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bm</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">f$</span>};
<span class="org-comment">% Inputs of the controllers</span>
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(G.south east)!0.75!(G.north east)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(G.south east)!0.25!(G.north east)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (input1) at (<span class="org-font-latex-math">$(G.south west)!0.75!(G.north west)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (input2) at (<span class="org-font-latex-math">$(G.south west)!0.25!(G.north west)$</span>);
<span class="org-font-latex-sedate">\node</span>[block, left=1.8 of input1] (K1) {<span class="org-font-latex-math">$K</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">F$</span>};
<span class="org-font-latex-sedate">\node</span>[block] (K2) at (<span class="org-font-latex-math">$(K1.east|-input2)+(0.6, 0)$</span>) {<span class="org-font-latex-math">$K</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">F$</span>};
<span class="org-comment">% Connections and labels</span>
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (K1.east) -- (input1)node[above left]{<span class="org-font-latex-math">$F</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>}node[below left]{<span class="org-font-latex-math">$-$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (K2.east) -- (input2)node[above left]{<span class="org-font-latex-math">$F</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">v$</span>}node[below left]{<span class="org-font-latex-math">$-$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (output1) -- ++(0.8, 0) node[above left]{<span class="org-font-latex-math">$f</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (output2) -- ++(0.8, 0) node[above left]{<span class="org-font-latex-math">$f</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">v$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(output1)+(0.2, 0)$</span>)node[branch]{} -- ++(0, 1.2) -| (<span class="org-font-latex-math">$(K1.west) + (-0.8, 0)$</span>)coordinate(start) -- (K1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(output2)+(0.2, 0)$</span>)node[branch]{} -- ++(0, -1.2) -| (start|-K2) -- (K2.west);
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
<span class="org-font-latex-sedate">\node</span>[fit={(K1.north west) (K2.south east)}, inner sep=6pt, draw, dashed, fill=black!20!white] (K) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (K.north east) {<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bm</span></span><span class="org-font-latex-math">{K}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">F$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgd28fad3" class="figure">
<p><img src="figs/control_diagram_iff.png" alt="control_diagram_iff.png" />
</p>
</div>
</div>
</div>
<div id="outline-container-org732f401" class="outline-2">
<h2 id="org732f401"><span class="section-number-2">3</span> Decentralized Integral Force Feedback</h2>
<div class="outline-text-2" id="text-3">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-comment">% Angle</span>
<span class="org-font-latex-sedate">\def\thetau</span>{25}
<span class="org-comment">% Rotational Stage</span>
<span class="org-font-latex-sedate">\draw</span>[fill=black!60!white] (0, 0) circle (4.3);
<span class="org-font-latex-sedate">\draw</span>[fill=black!40!white] (0, 0) circle (3.8);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=north west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-2.5, 2.5) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Rotating Stage</span>};
<span class="org-comment">% Rotating Scope</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[rotate=<span class="org-font-latex-sedate">\thetau</span>]
<span class="org-comment">% Rotating Frame</span>
<span class="org-font-latex-sedate">\draw</span>[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=north west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-2.6, 2.6) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Suspended Platform</span>};
<span class="org-comment">% Mass</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (-1, -1) rectangle (1, 1);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=south west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-1, -1) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Payload</span>};
<span class="org-comment">% Attached Points</span>
<span class="org-font-latex-sedate">\node</span>[] at (-1, 0){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bullet</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[] (-1, 0) -- ++(-0.2, 0) coordinate(au);
<span class="org-font-latex-sedate">\node</span>[] at (0, -1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bullet</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[] (0, -1) -- ++(0, -0.2) coordinate(av);
<span class="org-comment">% Force Sensors</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (<span class="org-font-latex-math">$(au) + (-0.2, -0.5)$</span>) rectangle (<span class="org-font-latex-math">$(au) + (0, 0.5)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(au) + (-0.2, -0.5)$</span>)coordinate(actu) -- (<span class="org-font-latex-math">$(au) + (0, 0.5)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(au) + (-0.2, 0.5)$</span>)coordinate(ku) -- (<span class="org-font-latex-math">$(au) + (0, -0.5)$</span>);
<span class="org-font-latex-sedate">\draw</span>[fill=white] (<span class="org-font-latex-math">$(av) + (-0.5, -0.2)$</span>) rectangle (<span class="org-font-latex-math">$(av) + (0.5, 0)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(av) + ( 0.5, -0.2)$</span>)coordinate(actv) -- (<span class="org-font-latex-math">$(av) + (-0.5, 0)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(av) + (-0.5, -0.2)$</span>)coordinate(kv) -- (<span class="org-font-latex-math">$(av) + ( 0.5, 0)$</span>);
<span class="org-comment">% Spring and Actuator for U</span>
<span class="org-font-latex-sedate">\draw</span>[actuator={0.6}{0.2}] (actu) -- coordinate[midway](actumid) (actu-|-2.6,0);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (ku) -- node[above=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k$</span>} (ku-|-2.6,0);
<span class="org-comment">% </span><span class="org-font-latex-sedate"><span class="org-comment">\draw</span></span><span class="org-comment">[actuator={0.6}{0.2}] (actv) -- node[right, rotate=</span><span class="org-font-latex-sedate"><span class="org-comment">\thetau</span></span><span class="org-comment">]{$F_v$} (actv|-0,-2.6);</span>
<span class="org-font-latex-sedate">\draw</span>[actuator={0.6}{0.2}] (actv) -- coordinate[midway](actvmid) (actv|-0,-2.6);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (kv) -- node[left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k$</span>} (kv|-0,-2.6);
<span class="org-font-latex-sedate">\node</span>[block={0.8cm}{0.6cm}, rotate=<span class="org-font-latex-sedate">\thetau</span>] (Ku) at (<span class="org-font-latex-math">$(actumid) + (0, -1.2)$</span>) {<span class="org-font-latex-math">$K_{F}$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(au) + (-0.1, -0.5)$</span>) |- (Ku.east) node[below right, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$f_{u}$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ku.north) -- (<span class="org-font-latex-math">$(actumid) + (0, -0.1)$</span>) node[below left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$F_u$</span>} node[below right, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$-$</span>};
<span class="org-font-latex-sedate">\node</span>[block={0.8cm}{0.6cm}, rotate=<span class="org-font-latex-sedate">\thetau</span>] (Kv) at (<span class="org-font-latex-math">$(actvmid) + (1.2, 0)$</span>) {<span class="org-font-latex-math">$K_{F}$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(av) + (0.5, -0.1)$</span>) -| (Kv.north) node[above right, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$f_{v}$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Kv.west) -- (<span class="org-font-latex-math">$(actvmid) + (0.1, 0)$</span>) node[below right, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$F_v$</span>} node[above right, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$-$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-comment">% Inertial Frame</span>
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (-4, -4) -- ++(2, 0) node[below]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}_x$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (-4, -4) -- ++(0, 2) node[left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}_y$</span>};
<span class="org-font-latex-sedate">\draw</span>[fill, color=black] (-4, -4) circle (0.06);
<span class="org-font-latex-sedate">\node</span>[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}_z$</span>] at (-4, -4){};
<span class="org-font-latex-sedate">\node</span>[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (0, 0) node[above left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}_w$</span>} -- ++(<span class="org-font-latex-sedate">\thetau</span>:2) node[above, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}_u$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (0, 0) -- ++(<span class="org-font-latex-sedate">\thetau</span>+90:2) node[left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}_v$</span>};
<span class="org-font-latex-sedate">\draw</span>[dashed] (0, 0) -- ++(2, 0);
<span class="org-font-latex-sedate">\draw</span>[] (1.5, 0) arc (0:<span class="org-font-latex-sedate">\thetau</span>:1.5) node[midway, right]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\theta</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\node</span>[] at (0,0) {<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bullet</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (3.5, 0) arc (0:40:3.5) node[midway, left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Omega</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgfc98ac7" class="figure">
<p><img src="figs/system_iff.png" alt="system_iff.png" />
</p>
</div>
</div>
</div>
<div id="outline-container-org1dd642f" class="outline-2">
<h2 id="org1dd642f"><span class="section-number-2">4</span> Springs in parallel</h2>
<div class="outline-text-2" id="text-4">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-comment">% Angle</span>
<span class="org-font-latex-sedate">\def\thetau</span>{25}
<span class="org-comment">% Rotational Stage</span>
<span class="org-font-latex-sedate">\draw</span>[fill=black!60!white] (0, 0) circle (4.3);
<span class="org-font-latex-sedate">\draw</span>[fill=black!40!white] (0, 0) circle (3.8);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=north west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-2.5, 2.5) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Rotating Stage</span>};
<span class="org-comment">% Rotating Scope</span>
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[rotate=<span class="org-font-latex-sedate">\thetau</span>]
<span class="org-comment">% Rotating Frame</span>
<span class="org-font-latex-sedate">\draw</span>[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=north west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-2.6, 2.6) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Suspended Platform</span>};
<span class="org-comment">% Mass</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (-1, -1) rectangle (1, 1);
<span class="org-comment">% Label</span>
<span class="org-font-latex-sedate">\node</span>[anchor=south west, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (-1, -1) {<span class="org-font-latex-sedate"><span class="org-keyword">\small</span></span><span class="org-type"> Payload</span>};
<span class="org-comment">% Attached Points</span>
<span class="org-font-latex-sedate">\draw</span>[] (-1, 0) -- ++(-0.2, 0) coordinate(au);
<span class="org-font-latex-sedate">\draw</span>[] (0, -1) -- ++(0, -0.2) coordinate(av);
<span class="org-comment">% Force Sensors</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (<span class="org-font-latex-math">$(au) + (-0.2, -0.5)$</span>) rectangle (<span class="org-font-latex-math">$(au) + (0, 0.5)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(au) + (-0.2, -0.5)$</span>)coordinate(actu) -- (<span class="org-font-latex-math">$(au) + (0, 0.5)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(au) + (-0.2, 0.5)$</span>)coordinate(ku) -- (<span class="org-font-latex-math">$(au) + (0, -0.5)$</span>);
<span class="org-font-latex-sedate">\node</span>[below=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (<span class="org-font-latex-math">$(au) + (-0.1, -0.5)$</span>) {<span class="org-font-latex-math">$f</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{u}$</span>}
<span class="org-font-latex-sedate">\draw</span>[fill=white] (<span class="org-font-latex-math">$(av) + (-0.5, -0.2)$</span>) rectangle (<span class="org-font-latex-math">$(av) + (0.5, 0)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(av) + ( 0.5, -0.2)$</span>)coordinate(actv) -- (<span class="org-font-latex-math">$(av) + (-0.5, 0)$</span>);
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(av) + (-0.5, -0.2)$</span>)coordinate(kv) -- (<span class="org-font-latex-math">$(av) + ( 0.5, 0)$</span>) ;
<span class="org-font-latex-sedate">\node</span>[right=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>] at (<span class="org-font-latex-math">$(av) + (0.5, -0.1)$</span>) {<span class="org-font-latex-math">$f</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{v}$</span>}
<span class="org-comment">% Spring and Actuator for U</span>
<span class="org-font-latex-sedate">\draw</span>[actuator={0.6}{0.2}] (actu) -- node[below=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$F</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>} (actu-|-2.6,0);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (ku) -- node[below=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">a$</span>} (ku-|-2.6,0);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (-1, 0.8) -- node[above=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">p$</span>} (-1, 0.8-|-2.6,0);
<span class="org-font-latex-sedate">\draw</span>[actuator={0.6}{0.2}] (actv) -- node[right=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$F</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">v$</span>} (actv|-0,-2.6);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (kv) -- node[right=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">a$</span>} (kv|-0,-2.6);
<span class="org-font-latex-sedate">\draw</span>[spring=0.2] (-0.8, -1) -- node[left=0.1, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$k</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">p$</span>} (-0.8, -1|-0,-2.6);
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-comment">% Inertial Frame</span>
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (-4, -4) -- ++(2, 0) node[below]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">x$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (-4, -4) -- ++(0, 2) node[left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">y$</span>};
<span class="org-font-latex-sedate">\draw</span>[fill, color=black] (-4, -4) circle (0.06);
<span class="org-font-latex-sedate">\node</span>[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">z$</span>] at (-4, -4){};
<span class="org-font-latex-sedate">\node</span>[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (0, 0) node[above left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">w$</span>} -- ++(<span class="org-font-latex-sedate">\thetau</span>:2) node[above, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (0, 0) -- ++(<span class="org-font-latex-sedate">\thetau</span>+90:2) node[left, rotate=<span class="org-font-latex-sedate">\thetau</span>]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\vec</span></span><span class="org-font-latex-math">{i}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">v$</span>};
<span class="org-font-latex-sedate">\draw</span>[dashed] (0, 0) -- ++(2, 0);
<span class="org-font-latex-sedate">\draw</span>[] (1.5, 0) arc (0:<span class="org-font-latex-sedate">\thetau</span>:1.5) node[midway, right]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\theta</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\node</span>[] at (0,0) {<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\bullet</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (3.5, 0) arc (0:40:3.5) node[midway, left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Omega</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgc785e50" class="figure">
<p><img src="figs/system_parallel_springs.png" alt="system_parallel_springs.png" />
</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2020-11-12 jeu. 10:40</p>
</div>
</body>
</html>

270
tikz/index.org Normal file
View File

@@ -0,0 +1,270 @@
#+TITLE: Active Damping of Rotating Platforms using Integral Force Feedback - Tikz Figures
:DRAWER:
#+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/Cloud/thesis/papers/dehaeze20_contr_stewa_platf/tikz/}{config.tex}")
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
#+PROPERTY: header-args:latex+ :results file raw replace
#+PROPERTY: header-args:latex+ :buffer no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports both
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :output-dir figs
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
:END:
Configuration file is accessible [[file:config.org][here]].
* X-Y Rotating Positioning Platform
#+begin_src latex :file system.pdf
\begin{tikzpicture}
% Angle
\def\thetau{25}
% Rotational Stage
\draw[fill=black!60!white] (0, 0) circle (4.3);
\draw[fill=black!40!white] (0, 0) circle (3.8);
% Label
\node[anchor=north west, rotate=\thetau] at (-2.5, 2.5) {\small Rotating Stage};
% Rotating Scope
\begin{scope}[rotate=\thetau]
% Rotating Frame
\draw[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6);
% Label
\node[anchor=north west, rotate=\thetau] at (-2.6, 2.6) {\small Suspended Platform};
% Mass
\draw[fill=white] (-1, -1) rectangle (1, 1);
% Label
\node[anchor=south west, rotate=\thetau] at (-1, -1) {\small Payload};
% Attached Points
\node[] at (-1, 0){$\bullet$};
\draw[] (-1, 0) -- ++(-0.2, 0) coordinate(cu);
\draw[] ($(cu) + (0, -0.8)$) coordinate(actu) -- ($(cu) + (0, 0.8)$) coordinate(ku);
\node[] at (0, -1){$\bullet$};
\draw[] (0, -1) -- ++(0, -0.2) coordinate(cv);
\draw[] ($(cv) + (-0.8, 0)$)coordinate(kv) -- ($(cv) + (0.8, 0)$) coordinate(actv);
% Spring and Actuator for U
\draw[actuator={0.6}{0.2}] (actu) -- node[above=0.1, rotate=\thetau]{$F_u$} (actu-|-2.6,0);
\draw[spring=0.2] (ku) -- node[above=0.1, rotate=\thetau]{$k$} (ku-|-2.6,0);
\draw[damper={8}{8}] (cu) -- node[above left=0.2 and -0.1, rotate=\thetau]{$c$} (cu-|-2.6,0);
\draw[actuator={0.6}{0.2}] (actv) -- node[left, rotate=\thetau]{$F_v$} (actv|-0,-2.6);
\draw[spring=0.2] (kv) -- node[left, rotate=\thetau]{$k$} (kv|-0,-2.6);
\draw[damper={8}{8}] (cv) -- node[left=0.1, rotate=\thetau]{$c$} (cv|-0,-2.6);
\end{scope}
% Inertial Frame
\draw[->] (-4, -4) -- ++(2, 0) node[below]{$\vec{i}_x$};
\draw[->] (-4, -4) -- ++(0, 2) node[left]{$\vec{i}_y$};
\draw[fill, color=black] (-4, -4) circle (0.06);
\node[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:$\vec{i}_z$] at (-4, -4){};
\draw[->] (0, 0) node[above left, rotate=\thetau]{$\vec{i}_w$} -- ++(\thetau:2) node[above, rotate=\thetau]{$\vec{i}_u$};
\draw[->] (0, 0) -- ++(\thetau+90:2) node[left, rotate=\thetau]{$\vec{i}_v$};
\draw[fill, color=black] (0,0) circle (0.06);
\node[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){};
\draw[dashed] (0, 0) -- ++(2, 0);
\draw[] (1.5, 0) arc (0:\thetau:1.5) node[midway, right]{$\theta$};
\draw[->] (3.5, 0) arc (0:40:3.5) node[midway, left]{$\Omega$};
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/system.png]]
* X-Y Rotating Positioning Platform
#+begin_src latex :file control_diagram_iff.pdf
\tikzset{block/.default={0.8cm}{0.8cm}}
\tikzset{addb/.append style={scale=0.7}}
\tikzset{node distance=0.6}
\begin{tikzpicture}
\node[block={1.8cm}{2.2cm}] (G) {$\bm{G}_f$};
% Inputs of the controllers
\coordinate[] (output1) at ($(G.south east)!0.75!(G.north east)$);
\coordinate[] (output2) at ($(G.south east)!0.25!(G.north east)$);
\coordinate[] (input1) at ($(G.south west)!0.75!(G.north west)$);
\coordinate[] (input2) at ($(G.south west)!0.25!(G.north west)$);
\node[block, left=1.8 of input1] (K1) {$K_F$};
\node[block] (K2) at ($(K1.east|-input2)+(0.6, 0)$) {$K_F$};
% Connections and labels
\draw[->] (K1.east) -- (input1)node[above left]{$F_u$}node[below left]{$-$};
\draw[->] (K2.east) -- (input2)node[above left]{$F_v$}node[below left]{$-$};
\draw[->] (output1) -- ++(0.8, 0) node[above left]{$f_u$};
\draw[->] (output2) -- ++(0.8, 0) node[above left]{$f_v$};
\draw[->] ($(output1)+(0.2, 0)$)node[branch]{} -- ++(0, 1.2) -| ($(K1.west) + (-0.8, 0)$)coordinate(start) -- (K1.west);
\draw[->] ($(output2)+(0.2, 0)$)node[branch]{} -- ++(0, -1.2) -| (start|-K2) -- (K2.west);
\begin{scope}[on background layer]
\node[fit={(K1.north west) (K2.south east)}, inner sep=6pt, draw, dashed, fill=black!20!white] (K) {};
\node[below left] at (K.north east) {$\bm{K}_F$};
\end{scope}
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/control_diagram_iff.png]]
* Decentralized Integral Force Feedback
#+begin_src latex :file system_iff.pdf
\begin{tikzpicture}
% Angle
\def\thetau{25}
% Rotational Stage
\draw[fill=black!60!white] (0, 0) circle (4.3);
\draw[fill=black!40!white] (0, 0) circle (3.8);
% Label
\node[anchor=north west, rotate=\thetau] at (-2.5, 2.5) {\small Rotating Stage};
% Rotating Scope
\begin{scope}[rotate=\thetau]
% Rotating Frame
\draw[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6);
% Label
\node[anchor=north west, rotate=\thetau] at (-2.6, 2.6) {\small Suspended Platform};
% Mass
\draw[fill=white] (-1, -1) rectangle (1, 1);
% Label
\node[anchor=south west, rotate=\thetau] at (-1, -1) {\small Payload};
% Attached Points
\node[] at (-1, 0){$\bullet$};
\draw[] (-1, 0) -- ++(-0.2, 0) coordinate(au);
\node[] at (0, -1){$\bullet$};
\draw[] (0, -1) -- ++(0, -0.2) coordinate(av);
% Force Sensors
\draw[fill=white] ($(au) + (-0.2, -0.5)$) rectangle ($(au) + (0, 0.5)$);
\draw[] ($(au) + (-0.2, -0.5)$)coordinate(actu) -- ($(au) + (0, 0.5)$);
\draw[] ($(au) + (-0.2, 0.5)$)coordinate(ku) -- ($(au) + (0, -0.5)$);
\draw[fill=white] ($(av) + (-0.5, -0.2)$) rectangle ($(av) + (0.5, 0)$);
\draw[] ($(av) + ( 0.5, -0.2)$)coordinate(actv) -- ($(av) + (-0.5, 0)$);
\draw[] ($(av) + (-0.5, -0.2)$)coordinate(kv) -- ($(av) + ( 0.5, 0)$);
% Spring and Actuator for U
\draw[actuator={0.6}{0.2}] (actu) -- coordinate[midway](actumid) (actu-|-2.6,0);
\draw[spring=0.2] (ku) -- node[above=0.1, rotate=\thetau]{$k$} (ku-|-2.6,0);
% \draw[actuator={0.6}{0.2}] (actv) -- node[right, rotate=\thetau]{$F_v$} (actv|-0,-2.6);
\draw[actuator={0.6}{0.2}] (actv) -- coordinate[midway](actvmid) (actv|-0,-2.6);
\draw[spring=0.2] (kv) -- node[left, rotate=\thetau]{$k$} (kv|-0,-2.6);
\node[block={0.8cm}{0.6cm}, rotate=\thetau] (Ku) at ($(actumid) + (0, -1.2)$) {$K_{F}$};
\draw[->] ($(au) + (-0.1, -0.5)$) |- (Ku.east) node[below right, rotate=\thetau]{$f_{u}$};
\draw[->] (Ku.north) -- ($(actumid) + (0, -0.1)$) node[below left, rotate=\thetau]{$F_u$} node[below right, rotate=\thetau]{$-$};
\node[block={0.8cm}{0.6cm}, rotate=\thetau] (Kv) at ($(actvmid) + (1.2, 0)$) {$K_{F}$};
\draw[->] ($(av) + (0.5, -0.1)$) -| (Kv.north) node[above right, rotate=\thetau]{$f_{v}$};
\draw[->] (Kv.west) -- ($(actvmid) + (0.1, 0)$) node[below right, rotate=\thetau]{$F_v$} node[above right, rotate=\thetau]{$-$};
\end{scope}
% Inertial Frame
\draw[->] (-4, -4) -- ++(2, 0) node[below]{$\vec{i}_x$};
\draw[->] (-4, -4) -- ++(0, 2) node[left]{$\vec{i}_y$};
\draw[fill, color=black] (-4, -4) circle (0.06);
\node[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:$\vec{i}_z$] at (-4, -4){};
\node[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){};
\draw[->] (0, 0) node[above left, rotate=\thetau]{$\vec{i}_w$} -- ++(\thetau:2) node[above, rotate=\thetau]{$\vec{i}_u$};
\draw[->] (0, 0) -- ++(\thetau+90:2) node[left, rotate=\thetau]{$\vec{i}_v$};
\draw[dashed] (0, 0) -- ++(2, 0);
\draw[] (1.5, 0) arc (0:\thetau:1.5) node[midway, right]{$\theta$};
\node[] at (0,0) {$\bullet$};
\draw[->] (3.5, 0) arc (0:40:3.5) node[midway, left]{$\Omega$};
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/system_iff.png]]
* Springs in parallel
#+begin_src latex :file system_parallel_springs.pdf
\begin{tikzpicture}
% Angle
\def\thetau{25}
% Rotational Stage
\draw[fill=black!60!white] (0, 0) circle (4.3);
\draw[fill=black!40!white] (0, 0) circle (3.8);
% Label
\node[anchor=north west, rotate=\thetau] at (-2.5, 2.5) {\small Rotating Stage};
% Rotating Scope
\begin{scope}[rotate=\thetau]
% Rotating Frame
\draw[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6);
% Label
\node[anchor=north west, rotate=\thetau] at (-2.6, 2.6) {\small Suspended Platform};
% Mass
\draw[fill=white] (-1, -1) rectangle (1, 1);
% Label
\node[anchor=south west, rotate=\thetau] at (-1, -1) {\small Payload};
% Attached Points
\draw[] (-1, 0) -- ++(-0.2, 0) coordinate(au);
\draw[] (0, -1) -- ++(0, -0.2) coordinate(av);
% Force Sensors
\draw[fill=white] ($(au) + (-0.2, -0.5)$) rectangle ($(au) + (0, 0.5)$);
\draw[] ($(au) + (-0.2, -0.5)$)coordinate(actu) -- ($(au) + (0, 0.5)$);
\draw[] ($(au) + (-0.2, 0.5)$)coordinate(ku) -- ($(au) + (0, -0.5)$);
\node[below=0.1, rotate=\thetau] at ($(au) + (-0.1, -0.5)$) {$f_{u}$}
\draw[fill=white] ($(av) + (-0.5, -0.2)$) rectangle ($(av) + (0.5, 0)$);
\draw[] ($(av) + ( 0.5, -0.2)$)coordinate(actv) -- ($(av) + (-0.5, 0)$);
\draw[] ($(av) + (-0.5, -0.2)$)coordinate(kv) -- ($(av) + ( 0.5, 0)$) ;
\node[right=0.1, rotate=\thetau] at ($(av) + (0.5, -0.1)$) {$f_{v}$}
% Spring and Actuator for U
\draw[actuator={0.6}{0.2}] (actu) -- node[below=0.1, rotate=\thetau]{$F_u$} (actu-|-2.6,0);
\draw[spring=0.2] (ku) -- node[below=0.1, rotate=\thetau]{$k_a$} (ku-|-2.6,0);
\draw[spring=0.2] (-1, 0.8) -- node[above=0.1, rotate=\thetau]{$k_p$} (-1, 0.8-|-2.6,0);
\draw[actuator={0.6}{0.2}] (actv) -- node[right=0.1, rotate=\thetau]{$F_v$} (actv|-0,-2.6);
\draw[spring=0.2] (kv) -- node[right=0.1, rotate=\thetau]{$k_a$} (kv|-0,-2.6);
\draw[spring=0.2] (-0.8, -1) -- node[left=0.1, rotate=\thetau]{$k_p$} (-0.8, -1|-0,-2.6);
\end{scope}
% Inertial Frame
\draw[->] (-4, -4) -- ++(2, 0) node[below]{$\vec{i}_x$};
\draw[->] (-4, -4) -- ++(0, 2) node[left]{$\vec{i}_y$};
\draw[fill, color=black] (-4, -4) circle (0.06);
\node[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:$\vec{i}_z$] at (-4, -4){};
\node[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){};
\draw[->] (0, 0) node[above left, rotate=\thetau]{$\vec{i}_w$} -- ++(\thetau:2) node[above, rotate=\thetau]{$\vec{i}_u$};
\draw[->] (0, 0) -- ++(\thetau+90:2) node[left, rotate=\thetau]{$\vec{i}_v$};
\draw[dashed] (0, 0) -- ++(2, 0);
\draw[] (1.5, 0) arc (0:\thetau:1.5) node[midway, right]{$\theta$};
\node[] at (0,0) {$\bullet$};
\draw[->] (3.5, 0) arc (0:40:3.5) node[midway, left]{$\Omega$};
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:figs/system_parallel_springs.png]]