
La siguiente cifra calculada tikz
incluye tres imperfecciones:
- Los operadores matemáticos más "+" y menos "-" se definen como etiquetas de los nodos de suma correspondientes. Las señales están dibujadas demasiado lejos de los círculos y las flechas. Intenté usar el comando
label distance=<value>
sin diferencias en el resultado. ¿Alguien sabe cómo variar la distancia de las etiquetas a los nodos correspondientes? - El nodo de suma de la derecha (denominado
sum3
en mwe) se coloca con la opciónbelow = 18mm of branch2
. Este es un valor codificado que proporciona el resultado deseado. Estoy buscando una solución más general que coloque el nodo debajo del nodobranch2
y también a la misma altura que el nodoc
. ¿Es esto posible a través deltikz
comandointersections
? ¿O existe otra solución para solucionar este problema? - Algunas flechas se combinan con el
path
comando. ¿También es posible incluir flechas en las esquinas (-|
o|-
) en los caminos?
Ejemplo de trabajo mínimo
\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
Respuesta1
Con respecto a la pregunta 1, si agrega [label distance=6pt]
o [label distance=-6pt]
a la primera \draw
, debería ver una diferencia significativa.
Pero esto también afectará a las etiquetas u(t)
y \hat x(t)
.