Publications: add paper pages (dehaeze18, brumund21, dehaeze20, dehaeze21 x2), drop Fastjack, look for PDFs in journal/
Deploy / deploy (push) Successful in 3s
@@ -0,0 +1,72 @@
|
||||
+++
|
||||
title = "Sample Stabilization for Tomography Experiments in Presence of Large Plant Uncertainty"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
venue = "MEDSI 2018"
|
||||
year = 2018
|
||||
pubtype = "conference"
|
||||
doi = "10.18429/JACoW-MEDSI2018-WEOAMA02"
|
||||
code = "https://github.com/tdehaeze/dehaeze18_sampl_stabil_for_tomog_exper"
|
||||
+++
|
||||
|
||||
> **Abstract**:
|
||||
>
|
||||
> A new low emittance lattice storage ring is under construction at the ESRF.
|
||||
> In this new instrument, an upgraded end station for ID31 beamline must allow to position the samples along complex trajectories with a nanometer precision.
|
||||
> In order to reach these requirements, samples have to be mounted on high precision stages, combining a capability of large stroke, spin motion, and active rejection of disturbances.
|
||||
> First, the end station will be presented with the associated requirements. However, the precision is limited by thermal expansion and various imperfections that are not actively compensated.
|
||||
> Our approach is to add a Nano Active Stabilization System (NASS) which is composed of a 6DoF Stewart platform and a 6 DoF metrology system.
|
||||
> A 3D model of the end station updated with experimental data is developed.
|
||||
> As the mass of the samples may vary by up to two orders of magnitudes, robust control strategies are required to address such plant uncertainty.
|
||||
> The proposed control strategy are presented and applied on the developed model by conducting time domain simulations of tomography experiment in presence of instrumentation noise and system uncertainty.
|
||||
|
||||
|
||||
## Paper ([link](paper/dehaeze18_sampl_stabil_for_tomog_exper.pdf)) {#paper--link-paper-dehaeze18-sampl-stabil-for-tomog-exper-dot-pdf}
|
||||
|
||||
The paper has been created [Org Mode](https://orgmode.org/) (generating [LaTeX](https://www.latex-project.org/) code) under [Emacs](https://www.gnu.org/software/emacs/).
|
||||
|
||||
|
||||
## Tikz Figures ([link]({{< relref "tikz/_index.md" >}})) {#tikz-figures--link-tikz-index-dot-md}
|
||||
|
||||
All the figures for the paper have been generated using [TikZ](https://sourceforge.net/projects/pgf/).
|
||||
|
||||
|
||||
## Poster ([link](poster/dehaeze18_sampl_stabil_for_tomog_exper_poster.pdf)) {#poster--link-poster-dehaeze18-sampl-stabil-for-tomog-exper-poster-dot-pdf}
|
||||
|
||||
The poster has been created using the [tikzposter](https://www.ctan.org/pkg/tikzposter) package for [beamer](https://sourceforge.net/projects/latex-beamer/).
|
||||
|
||||
|
||||
## Talk ([link](talk/dehaeze18_sampl_stabil_for_tomog_exper_talk.pdf)) {#talk--link-talk-dehaeze18-sampl-stabil-for-tomog-exper-talk-dot-pdf}
|
||||
|
||||
This work has been presented at [MEDSI 2018](https://indico.cern.ch/event/680538/).
|
||||
|
||||
|
||||
## How to cite this paper {#how-to-cite-this-paper}
|
||||
|
||||
To cite this paper use the following bibtex code.
|
||||
|
||||
```bibtex
|
||||
@inproceedings{dehaeze18_sampl_stabil_for_tomog_exper,
|
||||
author = {Thomas Dehaeze and M. Magnin Mattenet and Christophe Collette},
|
||||
title = {Sample Stabilization For Tomography Experiments In Presence Of
|
||||
Large Plant Uncertainty},
|
||||
booktitle = {MEDSI'18},
|
||||
year = 2018,
|
||||
number = 10,
|
||||
pages = {153--157},
|
||||
doi = {10.18429/JACoW-MEDSI2018-WEOAMA02},
|
||||
url = {https://doi.org/10.18429/JACoW-MEDSI2018-WEOAMA02},
|
||||
address = {Geneva, Switzerland},
|
||||
isbn = {978-3-95450-207-3},
|
||||
language = {english},
|
||||
month = {Dec},
|
||||
publisher = {JACoW Publishing},
|
||||
series = {Mechanical Engineering Design of Synchrotron Radiation
|
||||
Equipment and Instrumentation},
|
||||
venue = {Paris, France},
|
||||
}
|
||||
```
|
||||
|
||||
You can also use the formatted citation below.
|
||||
|
||||
> Dehaeze, T., Mattenet, M. M., & Collette, C., Sample Stabilization For Tomography Experiments In Presence Of Large Plant Uncertainty, In MEDSI'18 (pp. 153–157) (2018). Geneva, Switzerland
|
||||
@@ -0,0 +1,204 @@
|
||||
+++
|
||||
title = "Sample Stabilization for Tomography Experiments in Presence of Large Plant Uncertainty - Tikz Figures"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Configuration file is accessible [here]({{< relref "config.md" >}}).
|
||||
|
||||
|
||||
## Fig 1: Schematic representation of the ID31 end station {#fig-1-schematic-representation-of-the-id31-end-station}
|
||||
|
||||
<a id="figure--fig:schematic-sys-without-nass"></a>
|
||||
|
||||
{{< figure src="figs/schematic_sys_without_nass.png" caption="<span class='figure-number'>Figure 1: </span>Schematic representation of the ID31 end station ([png](figs/schematic_sys_without_nass.png), [pdf](figs/schematic_sys_without_nass.pdf), [tex](./figs/schematic_sys_without_nass.tex))." >}}
|
||||
|
||||
|
||||
## Fig 2: CAD View of the ID31 end station {#fig-2-cad-view-of-the-id31-end-station}
|
||||
|
||||
```latex
|
||||
\graphicspath{{~/Cloud/tikz/org/img/}}
|
||||
\begin{tikzpicture}
|
||||
\tikzstyle{legend}=[draw, text width=4.2cm, align=center]
|
||||
|
||||
\node[inner sep=0pt, anchor=south west] (assemblage) at (0,0)
|
||||
{\includegraphics[width=0.42\textwidth]{/home/thomas/Cloud/thesis/papers/dehaeze18_sampl_stabil_for_tomog_exper/tikz/img/assemblage_img.png}};
|
||||
|
||||
\coordinate[] (aheight) at (assemblage.north west);
|
||||
\coordinate[] (awidth) at (assemblage.south east);
|
||||
|
||||
\coordinate[] (xrightlabel) at (-0.2, 0);
|
||||
\coordinate[] (xleftlabel) at ($(awidth)+(0.2, 0)$);
|
||||
|
||||
% Translation Stage
|
||||
\coordinate[] (ty) at ($0.5*(aheight)+0.1*(awidth)$);
|
||||
\draw[<-] (ty) -- (ty-|xrightlabel) node[left, legend]{Translation Stage\\$\SI{-5}{m\metre} < T_y < \SI{5}{m\metre}$};
|
||||
|
||||
% Sample Interface
|
||||
\coordinate[] (sampleint) at ($0.77*(aheight)+0.5*(awidth)$);
|
||||
\coordinate[] (sampleintmid) at ($(sampleint)+(-1, -0.5)$);
|
||||
\draw[<-] (sampleint) -- (sampleintmid) -- (sampleintmid-|xrightlabel) node[left, legend]{Sample Interface};
|
||||
|
||||
% Sample
|
||||
\coordinate[] (sample) at ($0.9*(aheight)+0.5*(awidth)$);
|
||||
\draw[<-] (sample) -- (sample-|xrightlabel) node[left, legend]{Sample Environment\\$\SI{1}{\kg} < M < \SI{50}{\kg}$};
|
||||
|
||||
% Tilt Stage
|
||||
\coordinate[] (tilt) at ($0.55*(aheight)+0.78*(awidth)$);
|
||||
\coordinate[] (tiltmid) at ($(tilt)+(1, 0.5)$);
|
||||
\draw[<-] (tilt) -- (tiltmid) -- (tiltmid-|xleftlabel) node[right, legend]{Tilt Stage\\$\ang{-3} < \theta_y < \ang{3}$};
|
||||
|
||||
% Spindle
|
||||
\coordinate[] (spindle) at ($0.53*(aheight)+0.33*(awidth)$);
|
||||
\coordinate[] (spindlemid) at ($(spindle)+(-1, -1.5)$);
|
||||
\draw[<-] (spindle) -- (spindlemid) -- (spindlemid-|xrightlabel) node[left, legend]{Spindle\\$\SI{1}{rpm} < \dot{\theta_z} < \SI{60}{rpm}$};
|
||||
|
||||
% Center of gravity compensation
|
||||
\coordinate[] (axisc) at ($0.65*(aheight)+0.65*(awidth)$);
|
||||
\coordinate[] (axiscmid) at ($(axisc)+(1, 1.5)$);
|
||||
\draw[<-] (axisc) -- (axiscmid) -- (axiscmid-|xleftlabel) node[right, legend]{Center of gravity\\compensation system};
|
||||
|
||||
% Micro Hexapod
|
||||
\coordinate[] (hexapod) at ($0.52*(aheight)+0.6*(awidth)$);
|
||||
\coordinate[] (hexapodmid) at ($(hexapod)+(1, -1.0)$);
|
||||
\draw[<-] (hexapod) -- (hexapodmid) -- (hexapodmid-|xleftlabel) node[right, legend]{Long Stroke Hexapod\\$\SI{-10}{m\metre} < T_{x y z} < \SI{10}{m\metre}$\\$\ang{-3} < \theta_{x y z} < \ang{3}$};
|
||||
|
||||
% Frame
|
||||
\coordinate[] (frame) at ($0.14*(aheight)+0.65*(awidth)$);
|
||||
\draw[<-] (frame) -- (frame-|xleftlabel) node[right, legend]{Frame fixed\\on the granite};
|
||||
|
||||
% X-Ray
|
||||
\draw[color=red, ->-=0.7] ($0.92*(aheight)+0.8*(awidth)$) -- node[above, color=black]{X-ray} ++(190:1.8);
|
||||
|
||||
% Size of the setup
|
||||
\draw[dashed, <->, color=black!70, line width=0.5pt] ($0.03*(aheight)+0.35*(awidth)$) -- node[below, color=black, pos=0.6]{$\approx\SI{1}{m}$} ($0.14*(aheight)+0.98*(awidth)$);
|
||||
\draw[dashed, <->, color=black!70, line width=0.5pt] ($0.032*(aheight)+0.32*(awidth)$) -- node[left, color=black, pos=0.4]{$\approx\SI{1}{m}$} ($0.305*(aheight)+0.0*(awidth)$);
|
||||
|
||||
% Axis
|
||||
\begin{scope}[shift={(0.0, 0.7)}]
|
||||
\draw[->] (0, 0) -- ++(195:0.8) node[above] {$x$};
|
||||
\draw[->] (0, 0) -- ++(90:0.9) node[right] {$z$};
|
||||
\draw[->] (0, 0) -- ++(-40:0.7) node[above] {$y$};
|
||||
\end{scope}
|
||||
|
||||
\end{tikzpicture}
|
||||
```
|
||||
|
||||
<a id="figure--fig:assemblage"></a>
|
||||
|
||||
{{< figure src="figs/assemblage.png" caption="<span class='figure-number'>Figure 2: </span>CAD View of the ID31 end station ([png](figs/assemblage.png), [pdf](figs/assemblage.pdf), [tex](./figs/assemblage.tex))." >}}
|
||||
|
||||
|
||||
## Fig 3: Picture of the ID31 end station {#fig-3-picture-of-the-id31-end-station}
|
||||
|
||||
```latex
|
||||
\begin{tikzpicture}
|
||||
\node[inner sep=0pt, anchor=south west] (photo) at (0,0)
|
||||
{\includegraphics[width=0.39\textwidth]{/home/thomas/Cloud/thesis/papers/dehaeze18_sampl_stabil_for_tomog_exper/tikz/img/exp_setup_photo.png}};
|
||||
|
||||
\coordinate[] (aheight) at (photo.north west);
|
||||
\coordinate[] (awidth) at (photo.south east);
|
||||
|
||||
\coordinate[] (granite) at ($0.1*(aheight)+0.1*(awidth)$);
|
||||
\coordinate[] (trans) at ($0.5*(aheight)+0.4*(awidth)$);
|
||||
\coordinate[] (tilt) at ($0.65*(aheight)+0.75*(awidth)$);
|
||||
\coordinate[] (hexapod) at ($0.7*(aheight)+0.5*(awidth)$);
|
||||
\coordinate[] (sample) at ($0.9*(aheight)+0.55*(awidth)$);
|
||||
|
||||
% Granite
|
||||
\node[labelc] at (granite) {1};
|
||||
% Translation stage
|
||||
\node[labelc] at (trans) {2};
|
||||
% Tilt Stage
|
||||
\node[labelc] at (tilt) {3};
|
||||
% Micro-Hexapod
|
||||
\node[labelc] at (hexapod) {4};
|
||||
% Sample
|
||||
\node[labelc] at (sample) {5};
|
||||
|
||||
% Axis
|
||||
\begin{scope}[shift={($0.07*(aheight)+0.87*(awidth)$)}]
|
||||
\draw[->] (0, 0) -- ++(55:0.7) node[above] {$y$};
|
||||
\draw[->] (0, 0) -- ++(90:0.9) node[left] {$z$};
|
||||
\draw[->] (0, 0) -- ++(-20:0.7) node[above] {$x$};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
```
|
||||
|
||||
<a id="figure--fig:exp-setup"></a>
|
||||
|
||||
{{< figure src="figs/exp_setup.png" caption="<span class='figure-number'>Figure 3: </span>Picture of the ID31 end station ([png](figs/exp_setup.png), [pdf](figs/exp_setup.pdf), [tex](./figs/exp_setup.tex))." >}}
|
||||
|
||||
|
||||
## Fig 4: Schematic representation of the NASS added below the sample and the control architecture used {#fig-4-schematic-representation-of-the-nass-added-below-the-sample-and-the-control-architecture-used}
|
||||
|
||||
<a id="figure--fig:system-control"></a>
|
||||
|
||||
{{< figure src="figs/system_control.png" caption="<span class='figure-number'>Figure 4: </span>Schematic representation of the NASS added below the sample and the control architecture used ([png](figs/system_control.png), [pdf](figs/system_control.pdf), [tex](./figs/system_control.tex))." >}}
|
||||
|
||||
|
||||
## Fig 5: Transfer function from a force applied by the NASS to the displacement of the sample {#fig-5-transfer-function-from-a-force-applied-by-the-nass-to-the-displacement-of-the-sample}
|
||||
|
||||
<a id="figure--fig:G-x-mass"></a>
|
||||
|
||||
{{< figure src="figs/G_x_mass.png" caption="<span class='figure-number'>Figure 5: </span>Transfer function from a force applied by the NASS to the displacement of the sample ([png](figs/G_x_mass.png), [pdf](figs/G_x_mass.pdf))." >}}
|
||||
|
||||
|
||||
## Fig 6: General control configuration applied to the end station {#fig-6-general-control-configuration-applied-to-the-end-station}
|
||||
|
||||
```latex
|
||||
\begin{tikzpicture}
|
||||
% Blocs
|
||||
\node[block={2.5cm}{2cm}] (P) {P};
|
||||
\node[block={2.5cm}{2cm}, below=1 of P, scale=0.6] (K) {\[%
|
||||
\begin{pmatrix}
|
||||
K_{T_x} & 0 & \cdots & 0 \\
|
||||
0 & \ddots & \ddots & \vdots \\
|
||||
\vdots & \ddots & \ddots & 0 \\
|
||||
0 & \cdots & 0 & K_{\theta_z} \\
|
||||
\end{pmatrix}
|
||||
\]};
|
||||
|
||||
% Block names
|
||||
\node[above] at (P.north) {End Station};
|
||||
\node[above] at (K.north) {Controller};
|
||||
|
||||
% Input and outputs coordinates
|
||||
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west)$);
|
||||
\coordinate[] (inputu) at ($(P.south west)!0.25!(P.north west)$);
|
||||
\coordinate[] (outputz) at ($(P.south east)!0.75!(P.north east)$);
|
||||
\coordinate[] (outputv) at ($(P.south east)!0.25!(P.north east)$);
|
||||
|
||||
% Connections and labels
|
||||
\draw[<-] (inputw) node[above left]{$w$} -- ++(-0.8, 0);
|
||||
\draw[<-] (inputu) node[above left]{$F$} -- ++(-0.8, 0) |- (K.west);
|
||||
|
||||
\draw[->] (outputz) node[above right]{$z$} -- ++(0.8, 0);
|
||||
\draw[->] (outputv) node[above right]{$d$} -- ++(0.8, 0) |- (K.east);
|
||||
\end{tikzpicture}
|
||||
```
|
||||
|
||||
<a id="figure--fig:general-conf-K"></a>
|
||||
|
||||
{{< figure src="figs/general_conf_K.png" caption="<span class='figure-number'>Figure 6: </span>General control configuration applied to the end station ([png](figs/general_conf_K.png), [pdf](figs/general_conf_K.pdf), [tex](./figs/general_conf_K.tex))." >}}
|
||||
|
||||
|
||||
## Fig 7: Bode plot of the loop gain for the control in the x direction {#fig-7-bode-plot-of-the-loop-gain-for-the-control-in-the-x-direction}
|
||||
|
||||
<a id="figure--fig:loopgain"></a>
|
||||
|
||||
{{< figure src="figs/loopgain.png" caption="<span class='figure-number'>Figure 7: </span>Bode plot of the loop gain for the control in the x direction ([png](figs/loopgain.png), [pdf](figs/loopgain.pdf), [tex](./figs/loopgain.tex))." >}}
|
||||
|
||||
|
||||
## Fig 8: Positioning error of the sample in the x and y direction during the simulation of a tomography experiment {#fig-8-positioning-error-of-the-sample-in-the-x-and-y-direction-during-the-simulation-of-a-tomography-experiment}
|
||||
|
||||
<a id="figure--fig:exp-w-wo-nass-xy"></a>
|
||||
|
||||
{{< figure src="figs/exp_w_wo_nass_xy.png" caption="<span class='figure-number'>Figure 8: </span>Positioning error of the sample in the x and y direction during the simulation of a tomography experiment ([png](figs/exp_w_wo_nass_xy.png), [pdf](figs/exp_w_wo_nass_xy.pdf))." >}}
|
||||
|
||||
|
||||
## Fig 1: Schematic of the Tomography Experiment (Poster) {#fig-1-schematic-of-the-tomography-experiment--poster}
|
||||
|
||||
<a id="figure--fig:exp-full-setup"></a>
|
||||
|
||||
{{< figure src="figs/exp_full_setup.png" caption="<span class='figure-number'>Figure 9: </span>Schematic of the Tomography Experiment ([png](figs/exp_full_setup.png), [pdf](figs/exp_full_setup.pdf), [tex](./figs/exp_full_setup.tex))." >}}
|
||||
@@ -0,0 +1,773 @@
|
||||
+++
|
||||
title = "LaTeX Configuration for Tikz Figures"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
## Packages {#packages}
|
||||
|
||||
```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
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Tikz related packages {#tikz-related-packages}
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
|
||||
## Tikz Libraries {#tikz-libraries}
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
|
||||
## PGF Plot libraries and config {#pgf-plot-libraries-and-config}
|
||||
|
||||
```latex
|
||||
\usepgfplotslibrary{patchplots}
|
||||
\usepgfplotslibrary{groupplots}
|
||||
|
||||
\pgfplotsset{compat=newest}
|
||||
\pgfplotsset{plot coordinates/math parser=false}
|
||||
```
|
||||
|
||||
|
||||
## Setup size of figures {#setup-size-of-figures}
|
||||
|
||||
```latex
|
||||
\newlength{\fheight}
|
||||
\newlength{\fwidth}
|
||||
|
||||
\setlength{\fwidth}{85mm}
|
||||
\setlength{\fheight}{112mm}
|
||||
```
|
||||
|
||||
|
||||
## Setup Arrows style {#setup-arrows-style}
|
||||
|
||||
```latex
|
||||
\tikzset{>=Stealth}
|
||||
% Setup default Linewidth
|
||||
\tikzset{every path/.style={line width=1pt}}
|
||||
```
|
||||
|
||||
|
||||
## Colors {#colors}
|
||||
|
||||
```latex
|
||||
\usepackage{xcolor}% Color extension
|
||||
|
||||
\definecolor{mycolor1}{RGB}{79,115,193}
|
||||
\definecolor{mycolor2}{RGB}{213,91,53}
|
||||
\definecolor{mycolor3}{RGB}{152,126,49}
|
||||
```
|
||||
|
||||
|
||||
## Control {#control}
|
||||
|
||||
|
||||
### Blocks {#blocks}
|
||||
|
||||
```latex
|
||||
\tikzset{%
|
||||
block/.style n args={2}{%
|
||||
draw,
|
||||
fill=white,
|
||||
minimum width = #1,
|
||||
minimum height = #2,
|
||||
},
|
||||
block/.default={1.2cm}{1.0cm}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Branches {#branches}
|
||||
|
||||
```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]
|
||||
```
|
||||
|
||||
|
||||
### Hand Writen Style {#hand-writen-style}
|
||||
|
||||
Usefull for schematic plots
|
||||
|
||||
```latex
|
||||
\tikzstyle{handwriten}=[decorate,decoration={random steps,amplitude=0.1pt,segment length=0.8pt}]
|
||||
```
|
||||
|
||||
|
||||
### DAC {#dac}
|
||||
|
||||
```latex
|
||||
\tikzset{%
|
||||
DAC/.style={%
|
||||
draw,
|
||||
signal,
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### ADC {#adc}
|
||||
|
||||
```latex
|
||||
\tikzset{%
|
||||
ADC/.style={%
|
||||
draw,
|
||||
signal,
|
||||
signal to = west,
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Gain {#gain}
|
||||
|
||||
```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
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Add / Substract / Divide / Multiply block {#add-substract-divide-multiply-block}
|
||||
|
||||
```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={+}{}{}{}{},
|
||||
}
|
||||
```
|
||||
|
||||
```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={+}{}{}{}{},
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Plots {#plots}
|
||||
|
||||
|
||||
### Default line caps {#default-line-caps}
|
||||
|
||||
```latex
|
||||
\pgfplotsset{
|
||||
every axis plot/.append style={line join=round},
|
||||
every axis plot/.append style={line cap=round},
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Grid {#grid}
|
||||
|
||||
```latex
|
||||
\pgfplotsset{grid style={black}}
|
||||
\pgfplotsset{major grid style={black!30!white}}
|
||||
\pgfplotsset{minor grid style={black!10!white}}
|
||||
\pgfplotsset{xmajorgrids}
|
||||
\pgfplotsset{ymajorgrids}
|
||||
```
|
||||
|
||||
|
||||
### Lines {#lines}
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
|
||||
### Ticks {#ticks}
|
||||
|
||||
```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}}
|
||||
```
|
||||
|
||||
|
||||
### Size {#size}
|
||||
|
||||
If `scale only axis=false` (the default), pgfplots will try to produce the desired width including labels, titles and ticks.
|
||||
|
||||
```latex
|
||||
\pgfplotsset{scale only axis=true}
|
||||
```
|
||||
|
||||
|
||||
### Label {#label}
|
||||
|
||||
Used to align all of ylabel of one figure.
|
||||
|
||||
```latex
|
||||
\pgfplotsset{ylabel absolute}
|
||||
```
|
||||
|
||||
|
||||
### Legend {#legend}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Upper and Lower bounds {#upper-and-lower-bounds}
|
||||
|
||||
```latex
|
||||
\pgfplotsset{upperbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=60}}]
|
||||
\pgfplotsset{lowerbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=-60}}]
|
||||
```
|
||||
|
||||
And we add the corresdonding
|
||||
|
||||
```latex
|
||||
\pgfplotsset{
|
||||
/pgfplots/upperbound/.style 1 args={
|
||||
legend image code/.code={
|
||||
\draw[##1, upperbound]
|
||||
plot coordinates {
|
||||
(0cm,0cm)
|
||||
(0.6cm,0cm)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Pole {#pole}
|
||||
|
||||
```latex
|
||||
\tikzset{%
|
||||
pole/.style{%
|
||||
color=red,
|
||||
cross out,
|
||||
draw,
|
||||
inner sep=0pt,
|
||||
outer sep=0pt,
|
||||
minimum size=#1pt
|
||||
},
|
||||
pole/.default={4}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Zero {#zero}
|
||||
|
||||
```latex
|
||||
\tikzset{%
|
||||
zero/.style{%
|
||||
color=red,
|
||||
circle,
|
||||
draw,
|
||||
inner sep=0pt,
|
||||
outer sep=0pt,
|
||||
minimum size=#1pt
|
||||
},
|
||||
zero/.default={4}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Mechanical {#mechanical}
|
||||
|
||||
|
||||
### Spring {#spring}
|
||||
|
||||
```latex
|
||||
\tikzset{%
|
||||
spring/.style={%
|
||||
thick,
|
||||
decoration={
|
||||
zigzag,
|
||||
pre length = #1cm,
|
||||
post length = #1cm,
|
||||
segment length = 6
|
||||
},
|
||||
decorate
|
||||
},
|
||||
spring/.default={0.2}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Coil {#coil}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Damper {#damper}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Actuator {#actuator}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Ground {#ground}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Force Sensor {#force-sensor}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Inertial Sensor {#inertial-sensor}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Cross {#cross}
|
||||
|
||||
```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);
|
||||
}]
|
||||
|
||||
```
|
||||
|
||||
|
||||
### Piezoelectric actuator {#piezoelectric-actuator}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Voice coil {#voice-coil}
|
||||
|
||||
```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}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Axis Rotator {#axis-rotator}
|
||||
|
||||
```latex
|
||||
\newcommand{\AxisRotator}[1][rotate=0]{%
|
||||
\tikz [x=0.1cm,y=0.30cm,-stealth,#1] \draw (0,0) arc (-150:150:1 and 1);%
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Optics {#optics}
|
||||
|
||||
```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}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Misc {#misc}
|
||||
|
||||
```latex
|
||||
\tikzset{%
|
||||
labelc/.style= {%
|
||||
draw,
|
||||
fill=white,
|
||||
shape=circle,
|
||||
inner sep=2pt,
|
||||
outer sep=6pt,
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## More Defaults specific to this paper {#more-defaults-specific-to-this-paper}
|
||||
|
||||
```latex
|
||||
\tikzset{block/.default={0.8cm}{0.8cm}}
|
||||
\tikzset{addb/.append style={scale=0.7}}
|
||||
\tikzset{node distance=0.6}
|
||||
```
|
||||
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 218 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 17 KiB |