
A figura a seguir calculada tikz
inclui três imperfeições:
- Os operadores matemáticos mais "+" e menos "-" são definidos como rótulos dos nós de soma correspondentes. Os sinais estão desenhados muito longe dos círculos e das setas. Tentei usar o comando
label distance=<value>
sem nenhuma diferença no resultado. Alguém sabe como variar a distância dos rótulos aos nós correspondentes? - O nó sum à direita (referido como
sum3
no mwe) está posicionado com a opçãobelow = 18mm of branch2
. Este é um valor codificado que fornece o resultado desejado. Estou procurando uma solução mais geral que coloque o nó abaixo do nóbranch2
e também na mesma altura do nóc
. Isso é possível através dotikz
comandointersections
? Ou existe outra solução para resolver este problema? - Algumas setas são combinadas com o
path
comando. Também é possível incluir setas com cantos (-|
ou|-
) nos caminhos?
Exemplo mínimo de trabalho
\documentclass{standalone}
\usepackage{xcolor}
\definecolor{anti-flashwhite}{rgb}{0.95, 0.95, 0.96}
\usepackage{tikz}
\usetikzlibrary{positioning,circuits.ee.IEC}
\usepackage{bm}
\begin{document}
\begin{tikzpicture}[%
,auto
,>=latex'
,block/.style={text height=1.5ex,text depth=.25ex,draw, fill=anti-flashwhite, rectangle, minimum height=10mm, minimum width=10mm}
,bigblock/.style={text height=1.5ex,text depth=.25ex,draw, fill=anti-flashwhite, rectangle, minimum height=10mm, minimum width=30mm}
,sum/.style={draw, fill=anti-flashwhite, circle,inner sep=1mm, node distance=20mm}
,input/.style={coordinate}
,output/.style={coordinate}
,branch/.style={circle,inner sep=0pt,minimum size=1mm,fill=black,draw=black}
,frame/.style={dashed,thick,blue}
]
\draw
% forward path
node [input] (input1) {}
node [sum] (sum1) [right = 15mm of input1] {}
node [branch] (branch1) [right = 10mm of sum1,label ={above:$u(t)$}] {}
node (helpnode) [right = 15mm of branch1] {}
node [bigblock] (strecke) [right = 15mm of helpnode] {Strecke}
node [branch] (branch2) [right = 30mm of strecke] {}
node [output] (output1) [right = 15mm of branch2] {}
% observer
node [block] (h) [below = of strecke] {$\bm{h}$}
node [block] (int) [below = of h] {$\int$}
node [sum] (sum2) [left = 10mm of int,label={above left,:\tiny{$+$}},
label={below left:\tiny{$+$}},
label={below right:\tiny{$+$}}] {}
node [block] (b) [left = of sum2] {$\bm{b}$}
node [block] (a) [below = of int] {$\bm{A}$}
node [branch] (branch3) [right = of int, label={above:$\hat{x}(t)$}] {}
node [block] (c) [right = of branch3] {$\bm{c}^T$}
node [sum] (sum3) [below = 18mm of branch2,
label={above left:\tiny{$+$}},
label={below left:\tiny{$-$}}] {}
node [branch] (branch4) [below = 18mm of sum3] {}
node [output] (output2) [right = 15mm of branch4] {}
node [block] (r) [below = 25mm of b, dashed] {$\bm{r}^T$}
;
\path
(input1) edge[->] node {$w(t)$} (sum1)
(sum1) edge[->] (branch1)
(branch1) edge[->] (strecke)
(strecke) edge[->] (branch2)
(branch2) edge[->] node {$y(t)$} (output1);
\draw[->] (branch1) |- (b);
\path
(b) edge[->] (sum2)
(sum2) edge[->] node {$\dot{\hat{x}}(t)$} (int)
(int) edge (branch3)
(branch3) edge[->] (c)
(c) edge (branch4)
(branch4) edge[->] node {$\hat{y}(t)$} (output2)
;
\path
(branch2) edge[->] (sum3)
(sum3) edge[->] (h);
\draw[->] (h) -| (sum2);
\draw[->] (branch3) |- (a);
\draw[->] (a) -| (sum2);
\draw[->] (branch4) -- (sum3);
\draw[->,dashed] (branch3) |- (r);
\draw[->,dashed] (r) -| (sum1);
% dashed frame
\draw [frame] ([yshift=28mm,xshift=-20mm]b) rectangle ([yshift=-48mm,xshift=3mm]sum3) node[below left] {Beobachter} ;
\end{tikzpicture}
\end{document}
Resultado
Responder1
Em relação à pergunta 1, se você anexar [label distance=6pt]
ou [label distance=-6pt]
ao primeiro \draw
, verá uma diferença significativa.
Mas isso também afetará os rótulos u(t)
e os arquivos \hat x(t)
.