control-system.tex 1.55 KB
 Alija Sabic committed Nov 27, 2018 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 \documentclass[tikz, border=10pt]{standalone} \usetikzlibrary{arrows} \usetikzlibrary{shapes} \begin{document} \tikzstyle{block} = [draw, fill=blue!20, rectangle, minimum height=3em, minimum width=6em] \tikzstyle{sum} = [draw, fill=blue!20, circle, node distance=1cm] \tikzstyle{input} = [coordinate] \tikzstyle{output} = [coordinate] \tikzstyle{pinstyle} = [pin edge={to-,thin,black}] % The block diagram code is probably more verbose than necessary \begin{tikzpicture}[auto, node distance=2cm,>=latex'] % We start by placing the blocks \node [input, name=input] {}; \node [sum, right of=input] (sum) {}; \node [block, right of=sum] (controller) {Controller}; \node [block, right of=controller, pin={[pinstyle]above:Disturbances}, node distance=3cm] (system) {System}; % We draw an edge between the controller and system block to % calculate the coordinate u. We need it to place the measurement block. \draw [->] (controller) -- node[name=u] {$u$} (system); \node [output, right of=system] (output) {}; \node [block, below of=u] (measurements) {Measurements}; % Once the nodes are placed, connecting them is easy. \draw [draw,->] (input) -- node {$r$} (sum); \draw [->] (sum) -- node {$e$} (controller); \draw [->] (system) -- node [name=y] {$y$}(output); \draw [->] (y) |- (measurements); \draw [->] (measurements) -| node[pos=0.99] {$-$} node [near end] {$y_m$} (sum); \end{tikzpicture} \end{document}