% bloques.sty % package based on tikz for control diagrams in power electronics. % version 1.0 % author: Alejandro Garces % alejandrogarces@gmail.com % License: LPPL % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. \usepackage{tikz} \usepgflibrary{shapes.misc} \usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,shadows} \newcommand{\xdistancia}{1.5cm} \newcommand{\ydistancia}{1.2cm} \newcommand{\minaltura}{0.7cm} \newcommand{\tamano}{\footnotesize} \newcommand{\colorfondo}{white} \newcommand{\colortexto}{black} \newcommand{\colorlinea}{black} \newcommand{\sombra}{0} \newcommand{\ancholinea}{thick} \newcommand{\bShadow}{\renewcommand{\sombra}{1}} \newcommand{\bColorB}[1]{\renewcommand{\colorfondo}{#1}} \newcommand{\bColorT}[1]{\renewcommand{\colortexto}{#1}} \newcommand{\bColorL}[1]{\renewcommand{\colorlinea}{#1}} \newcommand{\ydistance}[1]{\renewcommand{\ydistancia}{#1}} \newcommand{\bStart}[1]{\node [] (NODO1) {\tamano{#1}};} \newcommand{\bPlusDown}[1]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (SUMA) {}; \node [draw=gray!50, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin] {}; \node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \draw [-latex,\colorlinea] (NODO1) -- (SUMA); \node [below of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}}; \draw [-latex, \colorlinea] (VARIABLE) -- (SUMA); \node at (SUMA) [anchor = west] (NODO1) {}; } \newcommand{\bPlusUp}[1]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (SUMA) {}; \node [draw=gray!50, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin, draw=gray!50] {}; \node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [above of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \draw [-latex, \colorlinea] (NODO1) -- (SUMA); \node [above of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}}; \draw [-latex, \colorlinea] (VARIABLE) -- (SUMA); \node at (SUMA) [anchor = west] (NODO1) {}; } \newcommand{\bMinusDown}[1]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (SUMA) {}; \node [cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin, draw=gray!50] {}; \node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}}; \draw [-latex,\colorlinea] (NODO1) -- (SUMA); \node [below of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}}; \draw [-latex,\colorlinea] (VARIABLE) -- (SUMA); \node at (SUMA) [anchor = west] (NODO1) {}; } \newcommand{\bMinusUp}[1]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (SUMA) {}; \node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {}; \node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [above of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}}; \draw [-latex, \colorlinea] (NODO1) -- (SUMA); \node [above of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}}; \draw [-latex, \colorlinea] (VARIABLE) -- (SUMA); \node at (SUMA) [anchor = west] (NODO1) {}; } \newcommand{\bEnd}[1]{ \node [right of = NODO1, node distance = 1.7cm] (F) {#1}; \draw [-latex,\colorlinea] (NODO1) -- (F); \node at (F) [anchor = west] (NODO1) {}; } \newcommand{\bGain}[1]{ \node [draw=\colorlinea, rectangle, right of = NODO1, node distance= \xdistancia, minimum height = \minaltura, \ancholinea, fill=\colorfondo,drop shadow={opacity=\sombra}] (NODO2) { \color{\colortexto}\tamano{#1}}; \draw [-latex, \colorlinea] (NODO1)--(NODO2); \node at (NODO2.east) [anchor = east] (NODO1) {}; } \newcommand{\bGainPlus}[2]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (SUMA) {}; \node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {}; \node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \draw [-latex, \colorlinea] (NODO1) -- (SUMA); \node [draw=\colorlinea, rectangle, below of = SUMA, node distance = \xdistancia,xshift=-0.3cm, minimum height = \minaltura,\ancholinea, fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = east] (NODOG) {\color{\colortexto}\tamano{#2}}; \node [left of = NODOG, node distance = \xdistancia] (VARIABLE) {\tamano{#1}}; \draw [-latex, \colorlinea] (VARIABLE) -- (NODOG); \draw [-latex, \colorlinea] (NODOG) -| (SUMA); \node at (SUMA) [anchor = west] (NODO1) {}; } \newcommand{\bGainMinus}[2]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (SUMA) {}; \node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {}; \node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}}; \draw [-latex, \colorlinea] (NODO1) -- (SUMA); \node [draw=\colorlinea, rectangle, below of = SUMA, node distance = \xdistancia,xshift=-0.3cm, minimum height = \minaltura,\ancholinea, fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = east] (NODOG) {\color{\colortexto}\tamano{#2}}; \node [left of = NODOG, node distance = \xdistancia] (VARIABLE) {\tamano{#1}}; \draw [-latex, \colorlinea] (VARIABLE) -- (NODOG); \draw [-latex, \colorlinea] (NODOG) -| (SUMA); \node at (SUMA) [anchor = west] (NODO1) {}; } \newcommand{\bMinusF}[1]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (#1) {}; \node [draw, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin, draw=gray!50] {}; \node [left of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [below of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}}; \draw [-latex, \colorlinea] (NODO1) -- (#1); \node at (#1) [anchor = west] (NODO1) {}; } \newcommand{\bPlusF}[1]{ \node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo, drop shadow={opacity=\sombra}] (#1) {}; \node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {}; \node [left of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \node [below of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}}; \draw [-latex, \colorlinea] (NODO1) -- (#1); \node at (#1) [anchor = west] (NODO1) {}; } \newcommand{\bFeedBack}[2]{ \node [draw=\colorlinea, rectangle, below left of = NODO1, node distance = \ydistancia, minimum height = \minaltura,\ancholinea, fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = west] (NODOG) {\color{\colortexto}\tamano{#1}}; \draw [-latex, \colorlinea] (NODO1) -- +(0.5,0) |- (NODOG); \draw [-latex, \colorlinea] (NODOG) -| (#2); } \newcommand{\bCrossGain}[3]{ \node [draw=\colorlinea, rectangle, above right of = #2, minimum height = \minaltura,\ancholinea, fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = west] (NODOG) {\color{\colortexto}\tamano{#1}}; \draw [-latex, \colorlinea] (#2) |- (NODOG); \draw [-latex, \colorlinea] (NODOG) -| (#3); } \newcommand{\bNewStart}[2]{ \node at #2 (NODO1) {\tamano{#1}}; } \newcommand{\bMarkNode}[1]{ \node at (NODO1) (#1) {}; } \newcommand{\bMarkNodeUp}[1]{ \node[above of = NODO1, node distance = \ydistancia] (#1) {}; } \newcommand{\bMarkNodeDown}[1]{ \node[below of = NODO1,node distance = \ydistancia] (#1) {}; }