
下圖的計算結果tikz
包含三個缺陷:
- 數學運算子加上“+”和減“-”被定義為對應和節點的標籤。標誌距離圓圈和箭頭太遠。我嘗試使用該命令,
label distance=<value>
但結果沒有任何差異。有人知道如何改變標籤到對應節點的距離嗎? - 右側的求和節點(如
sum3
mwe 所示)使用選項 定位below = 18mm of branch2
。這是一個提供所需結果的硬編碼值。我正在尋找一種更通用的解決方案,將節點放置在節點下方branch2
,並且與節點高度相同c
。透過tikz
命令可以嗎intersections
?或者有其他解決方案可以解決這個問題嗎? - 有些箭頭與命令組合在一起
path
。是否也可以在路徑中包含角箭頭(-|
或)?|-
最小工作範例
\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}
結果
答案1
關於問題 1,如果將[label distance=6pt]
or附加[label distance=-6pt]
到第一個\draw
,您應該會看到顯著的差異。
但這也會影響標籤u(t)
和\hat x(t)
。