Beschriftungsabstand und andere Probleme in einem TikZ-Diagramm

Beschriftungsabstand und andere Probleme in einem TikZ-Diagramm

Die folgende mit berechnete Abbildung tikzenthält drei Unvollkommenheiten:

  1. Die mathematischen Operatoren Plus "+" und Minus "-" sind als Beschriftungen der entsprechenden Summenknoten definiert. Die Zeichen sind zu weit von den Kreisen und Pfeilen entfernt gezeichnet. Ich habe versucht, den Befehl zu verwenden, label distance=<value>ohne dass sich das Ergebnis geändert hat. Weiß jemand, wie man den Abstand der Beschriftungen zu den entsprechenden Knoten variieren kann?
  2. Der Summenknoten rechts ( sum3im MWE als bezeichnet) wird mit der Option positioniert below = 18mm of branch2. Dies ist ein fest codierter Wert, der das gewünschte Ergebnis liefert. Ich suche nach einer allgemeineren Lösung, die den Knoten unterhalb des Knotens branch2und auch auf derselben Höhe wie den Knoten platziert c. Ist dies über den tikzBefehl möglich intersections? Oder gibt es eine andere Lösung, um dieses Problem zu lösen?
  3. Einige Pfeile sind mit dem Befehl kombiniert . Ist es auch möglich, eckige Pfeile ( oder ) in Pfade patheinzubinden ?-||-

Minimales Arbeitsbeispiel

\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}

Ergebnis

Bildbeschreibung hier eingeben

Antwort1

Bezüglich Frage 1: Wenn Sie an Ihr erstes [label distance=6pt] oder anhängen , sollten Sie einen deutlichen Unterschied sehen.[label distance=-6pt]\draw

Dies wirkt sich jedoch auch auf die Beschriftungen u(t)und aus \hat x(t).

verwandte Informationen