
Eu olhei para o código LaTex, neste post:Diagramas de blocos usando Tikz
Minha dúvida é: onde posso obter a descrição de: entrada, soma, bloco,... Quero usar multiplicação, mas não consigo encontrar em lugar nenhum a documentação desses elementos.
EDIT: obtive a resposta de onde vêm esses blocos, agora gostaria de perguntar se existe algum tipo de bloco pré-fabricado que eu possa importar, é muito difícil para mim desenhar em LaTex e não me sinto capaz de fazer meus próprios blocos.
\tikzset{
block/.style = {draw, fill=white, rectangle, minimum height=3em, minimum width=3em},
tmp/.style = {coordinate},
sum/.style= {draw, fill=white, circle, node distance=1cm},
input/.style = {coordinate},
output/.style= {coordinate},
pinstyle/.style = {pin edge={to-,thin,black}
}
}
\begin{tikzpicture}[auto, node distance=2cm,>=latex']
\node [input, name=rinput] (rinput) {};
\node [sum, right of=rinput] (sum1) {};
\node [block, right of=sum1] (controller) {$k_{p\beta}$};
\node [block, above of=controller,node distance=1.3cm] (up){$\frac{k_{i\beta}}{s}$};
\node [block, below of=controller,node distance=1.3cm] (rate) {$sk_{d\beta}$};
\node [sum, right of=controller,node distance=2cm] (sum2) {};
\node [block, above = 2cm of sum2](extra){$\frac{1}{\alpha_{\beta2}}$}; %
\node [block, right of=sum2,node distance=2cm] (system)
{$\frac{a_{\beta 2}}{s+a_{\beta 1}}$};
\node [output, right of=system, node distance=2cm] (output) {};
\node [tmp, below of=controller] (tmp1){$H(s)$};
\draw [->] (rinput) -- node{$R(s)$} (sum1);
\draw [->] (sum1) --node[name=z,anchor=north]{$E(s)$} (controller);
\draw [->] (controller) -- (sum2);
\draw [->] (sum2) -- node{$U(s)$} (system);
\draw [->] (system) -- node [name=y] {$Y(s)$}(output);
\draw [->] (z) |- (rate);
\draw [->] (rate) -| (sum2);
\draw [->] (z) |- (up);
\draw [->] (up) -| (sum2);
\draw [->] (y) |- (tmp1)-| node[pos=0.99] {$-$} (sum1);
\draw [->] (extra)--(sum2);
\draw [->] ($(0,1.5cm)+(extra)$)node[above]{$d_{\beta 2}$} -- (extra);
\end{tikzpicture}
Responder1
Se entendi corretamente sua pergunta. na verdade, você não está interessado no esquema do controlador PI, mas em como projetar alguns elementos ... Tentarei responder em duas etapas:
modernize seu MWE com a sintaxe que é preferível agora (se você comparar cuidadosamente as duas soluções, encontrará diferenças facilmente)
sugerir como projetar alguns "blocos de construção" para desenhar esquemas de controle
Primeira revisão do seu MWE:
\documentclass[border=3mm,
tikz]{standalone}
\usetikzlibrary{arrows,
calc,
quotes,
positioning,
babel} % <--- added for
\tikzset{
block/.style = {rectangle, draw, %fill=white,
minimum size=3em},
tmp/.style = {coordinate},
sum/.style = {circle, draw, minimum size=1ex, inner sep=1pt,
node contents={} },
dot/.style = {sum, fill=black, minimum size=2pt,
node contents={} },
input/.style = {coordinate},
output/.style = {coordinate},
pinstyle/.style = {pin edge={to-,thin,black}}
}
\begin{document}
\begin{tikzpicture}[auto,
node distance = 3mm and 13mm,
> = latex']
\coordinate (input) at (0,0);
\node (sum1) [sum, right=of input];
\node (input') [dot, right=of sum1];
\node (cntrl) [block, right=of input'] {$k_{p\beta}$};
\node (up) [block, above=of cntrl] {$\frac{k_{i\beta}}{s}$};
\node (rate) [block, below=of cntrl] {$sk_{d\beta}$};
\node (sum2) [sum, right=of cntrl];
\node (extra)[block,
above=of up.north -| sum2] {$\frac{1}{\alpha_{\beta2}}$}; %
\node (extra') [above=of extra] {$d_{\beta 2}$};
\node (system) [block, right=of sum2] {$\frac{a_{\beta 2}}{s+a_{\beta 1}}$};
\coordinate[right=of system] (output);
\node [tmp, below=of cntrl] (tmp1) {$H(s)$};
%
\draw[->] (input) to ["$R(s)$"] (sum1)
(sum1) edge["$E(s)$"] (input')
(input') edge (cntrl)
(cntrl) edge (sum2)
(sum2) edge["$U(s)$"] (system)
(system) edge["$Y(s)$"] (output)
(extra') edge (extra);
\draw[->] (input') |- (up);
\draw[->] (input') |- (rate);
\draw[->] (up) -| (sum2);
\draw[->] (rate) -| (sum2);
\draw (extra) -- (extra |- up);
\draw[->] ($(system.east)!0.5!(output)$) node[dot] -- + (0,-22mm) -| (sum1);
\end{tikzpicture}
\end{document}
Já aqui você pode observar como são projetados sum
e dot
. Símbolos para soma e multiplicação não são padronizados (na verdade, são, mas raramente são usados...). Portanto, você precisa primeiro decidir como gostaria que eles ficassem. Abaixo estão exemplos de símbolos que são bastante comuns no processamento de sinais e também no controle.
\documentclass[border=1mm,
tikz,{standalone}
\usetikzlibrary{arrows,
calc,
quotes,
positioning,
babel}
\begin{document}
\begin{tikzpicture}[
shorten <>/.style = {shorten >=#1, shorten <=#1},
mlt-s/.style={fill=#1, % <-- symb. for multiplication, square
rectangle, draw, minimum size=6mm,
path picture={\draw[very thick,shorten <>=1.5mm]
(path picture bounding box.north west)edge(path picture bounding box.south east)
(path picture bounding box.south west) -- (path picture bounding box.north east);
},% end of node contents
node contents={}},
mlt-c/.style={fill=#1, % <-- symb. for multiplication, circle
circle, draw, minimum size=6mm,
path picture={\draw[very thick,shorten <>=2mm]
(path picture bounding box.north west)edge(path picture bounding box.south east)
(path picture bounding box.south west) -- (path picture bounding box.north east);
},% end of node contents
node contents={}},
sum/.style={fill=#1, % <-- symb. for summation
circle, draw, minimum size=6mm,
path picture={\draw[very thick,shorten <>=1mm]
(path picture bounding box.north)edge(path picture bounding box.south)
(path picture bounding box.west) -- (path picture bounding box.east);
},% end of node contents
node contents={}},
]
\node (a) [sum=gray!10];
\node (b) [mlt-s=gray!10,right=of a];
\node (c) [mlt-c=gray!20,right=of b];
\draw (a) -- (b);
\end{tikzpicture}
\end{document}
O uso desses símbolos é demonstrado na imagem de exemplo. Nota: como esses símbolos não possuem texto, eles são projetados de forma que o texto vazio faça parte da definição do nó, consequentemente, não são necessárias chaves vazias. Isso exige que os nomes dos nós estejam antes da definição do nó (veja o código acima).
Editar:O uso da biblioteca TikZ quotes
é sensível em pacotes babel usados. Para alguns idiomas (o esloveno é um deles), altere o código de gato para aspas. Para eliminar este problema foi projetada uma biblioteca babel
. Portanto, para documentos em idiomas diferentes do inglês, é uma precaução sensata adicioná-los, como agora é feito nos dois códigos acima.