\documentclass[a4paper,onecolumn]{IEEETran}
\usepackage{bloques}
\usepackage{verbatim}
\oddsidemargin=-1.5cm


\title{The Bloques Package}
\author{Alejandro Garces Ruiz \\ [email protected]}

\begin{document}

\maketitle

\section{Functions}


The \textbf{bloques} package is a very simple set of commands based on \textbf{tikz} to generate control blocks.  The only packages required in the definition are:

\begin{verbatim}
       \usepackage{tikz}
       \usepackage{bloques}
\end{verbatim}

The package is very efficient for sequential blocks as follow:

\begin{verbatim}
\bStart{TEXT}
\bPlusDown{TEXT}
\bPlusUp{TEXT}
\bMinusDown{TEXT}
\bMinusUp{TEXT}
\bEnd{TEXT}
\bGain{TEXT}

\bGainPlus{TEXT1}{TEXT2}
\bGainMinus{TEXT1}{TEXT2}


\end{verbatim}

For Feedback controls, it is required to mark the nodes with the following functions:

\begin{verbatim}

\bMinusF{NODENAME}
\bPlusF{NODENAME}
\bFeedBack{TEXT}{NODENAME}
\bCrossGain{TEXT}{NODENAME1}{NODENAME2}
\bNewStart{TEXT}{POSITION}
\bMarkNode{NODENAME}
\bMarkNodeUp{NODENAME}
\bMarkNodeDown{NODENAME}
\end{verbatim}


To change colors and distances, the following functions are available

\begin{verbatim}
       \bShadow{NUMBER}        % default = 0
       \bColorB{COLOR}         % default = white
       \bColorT{COLOR}                 % default = black
       \ydistance{NUMBER}      % default = 1.2 cm
\end{verbatim}

\newpage

\section{examples}

\begin{figure}[h!]
\begin{tikzpicture}
       \bStart{$X_{ref}$}
       \bMinusDown{$X$}
       \bGain{$k_{p}$}
       \bPlusUp{$Y$}
       \bGainPlus{$U$}{$\omega L$}
       \bEnd{$V_{x}$}
       \node[right of = NODO1, text width=8.5cm, node distance = 6.0cm, drop shadow={opacity=1}, fill=blue!20, rounded corners] (C4)
       {
       \begin{verbatim}
       \begin{figure}
       \begin{tikzpicture}
          \bStart{$X_{ref}$}
          \bMinusDown{$X$}
          \bGain{$k_{p}$}
          \bPlusUp{$Y$}
          \bGainPlus{$U$}{$\omega L$}
          \bEnd{$V_{x}$}
       \end{tikzpicture}
       \end{figure}
       \end{verbatim}
       };

\end{tikzpicture}
\caption{Simple Control diagram }
\end{figure}



\begin{figure}[h!]
\begin{tikzpicture}
       \bShadow
       \bStart{$X_{ref}$}
       \bMinusDown{$X$}
       \bGain{$k_{p}$}
       \bPlusUp{$Y$}
       \bGainPlus{$U$}{$\omega L$}
       \bEnd{$V_{x}$}
       \node[right of = NODO1, text width=8.5cm, node distance = 6.0cm, drop shadow={opacity=1}, fill=blue!20, rounded corners] (C4)
       {
       \begin{verbatim}
       \begin{figure}
       \begin{tikzpicture}
        \bShadow
           \bStart{$X_{ref}$}
           \bMinusDown{$X$}
           \bGain{$k_{p}$}
           \bPlusUp{$Y$}
           \bGainPlus{$U$}{$\omega L$}
           \bEnd{$V_{x}$}
       \end{tikzpicture}
       \end{figure}
       \end{verbatim}
       };

\end{tikzpicture}
\caption{Control diagram with shadow}
\end{figure}



\begin{figure}[h!]
\begin{tikzpicture}[thick]
\draw[fill=blue!20, draw=white]  (-0.5,-3) rectangle (8,2);
\draw[fill=green!20, dashed,thick] (4,-2) rectangle (7,0.5);
 \bShadow
 \bColorB{blue!80!green!50}
       \bColorT{yellow}
       \bColorL{white}
       \bStart{$X_{ref}$}
       \bMinusDown{$X$}
       \bGain{$k_{p}$}
       \bColorB{blue!30!green!80}
       \bPlusUp{$Y$}
       \bGainPlus{$U$}{$\omega L$}
       \bEnd{$V_{x}$}
       \node[right of = NODO1, text width=8.5cm, node distance = 6.0cm, drop shadow={opacity=1}, fill=blue!20, rounded corners] (C4)
       {
       \begin{verbatim}
       \begin{figure}
       \begin{tikzpicture}[thick]
                       \draw[fill=blue!20, draw=white]
                            (-0.5,-3) rectangle (8,2);
           \draw[fill=green!20, dashed]
                (4,-2) rectangle (7,0.5);

        \bShadow
        \bColorB{blue!50!green!45}
        \bColorT{yellow}
        \bColorL{white}
           \bStart{$X_{ref}$}
           \bMinusDown{$X$}
           \bGain{$k_{p}$}
        \bColorB{blue!30!green!80}
           \bPlusUp{$Y$}
           \bGainPlus{$U$}{$\omega L$}
           \bEnd{$V_{x}$}
       \end{tikzpicture}
       \end{figure}
       \end{verbatim}
       };

\end{tikzpicture}
\caption{Control diagram with shadow and different colors}
\end{figure}




\begin{figure}[h!]
       \begin{tikzpicture}
               \bColorB{blue!70!green!20}
               \bStart{$X_{r}$}
               \bMinusF{NODEX}
               \bGain{$k_{p}+\frac{k_{i}}{S}$}
               \bFeedBack{$k_{x}$}{NODEX}
               \bEnd{$X$}

       \node[right of = NODO1, text width=8.5cm, node distance = 6.0cm, drop shadow={opacity=1}, fill=blue!20, rounded corners] (C4)
       {
       \begin{verbatim}
\begin{figure}
       \begin{tikzpicture}
                  \bColorB{blue!70!green!20}
                  \bStart{$X_{r}$}
               \bMinusF{NODEX}
                  \bGain{$k_{p}+\frac{k_{i}}{S}$}
               \bFeedBack{$k_{x}$}{NODEX}
                  \bEnd{$X$}
       \end{tikzpicture}
\end{figure}
       \end{verbatim}
       }       ;

       \end{tikzpicture}
       \caption{Control diagram with feedback}
\end{figure}




\begin{figure}[h!]
       \begin{tikzpicture}
               \bColorB{blue!30!green!50}
               \bColorT{white}
               \bStart{$X_{r}$}
               \bMinusF{NODEX}
               \bGain{$k_{p}+\frac{k_{i}}{S}$}
               \bGain{$K_{2}$}
               \bPlusDown{$Y$}
               \ydistance{2.5cm}
               \bFeedBack{$k_{x}$}{NODEX}
               \bEnd{$X$}

\node[right of = NODO1, text width=8.5cm, node distance = 6.0cm, drop shadow={opacity=1}, fill=blue!20, rounded corners] (C4)
       {
       \begin{verbatim}

\begin{figure}
       \begin{tikzpicture}
           \bColorB{blue!30!green!50}
           \bColorT{white}
           \bStart{$X_{r}$}
           \bMinusF{NODEX}
           \bGain{$k_{p}+\frac{k_{i}}{S}$}
           \bGain{$K_{2}$}
           \bPlusDown{$Y$}
               \ydistance{2.5cm}
           \bFeedBack{$k_{x}$}{NODEX}
           \bEnd{$X$}
       \end{tikzpicture}
\end{figure}


       \end{verbatim}
       }       ;


       \end{tikzpicture}
       \caption{Change the ydistance}
\end{figure}


\begin{figure}[h!]
       \begin{tikzpicture}
               \bStart{$I_{d(ref)}=0$}
               \bMinusDown{$I_{d}$}
               \bGain{PI1}
               \bPlusF{NODET}
               \bEnd{$V_{d}$}
               \bNewStart{$\omega_{ref}$}{(-2,-4)}
               \bMinusDown{$\omega_{s}$}
               \bGain{PI2}
               \bMinusUp{$I_{q}$}
               \bMarkNodeUp{NODEX}
               \bGain{PI3}
               \bEnd{$V_{q}$}
               \bCrossGain{$\omega L$} {NODEX} {NODET}


               \node[right of = NODO1, text width=8.5cm, node distance = 6.0cm, drop shadow={opacity=1}, fill=blue!20, rounded corners] (C4)
       {
       \begin{verbatim}


\begin{figure}
       \begin{tikzpicture}
               \bStart{$I_{d(ref)}=0$}
                  \bMinusDown{$I_{d}$}
                  \bGain{PI1}
                  \bPlusF{NODET}
                  \bEnd{$V_{d}$}
               \bNewStart{$\omega_{ref}$}{(-2,-4)}
                  \bMinusDown{$\omega_{s}$}
                  \bGain{PI2}
                  \bMinusUp{$I_{q}$}
               \bMarkNodeUp{NODEX}
                  \bGain{PI3}
                  \bEnd{$V_{q}$}
               \bCrossGain{$\omega L$} {NODEX} {NODET}
       \end{tikzpicture}
\end{figure}

       \end{verbatim}
       };

       \end{tikzpicture}
       \caption{More compex controls}
\end{figure}


\end{document}