下图计算结果tikz
包含三个缺陷:
- 数学运算符加号“+”和减号“-”被定义为相应求和节点的标签。这些符号离圆圈和箭头太远了。我尝试使用该命令,但
label distance=<value>
结果没有任何不同。有人知道如何改变标签到相应节点的距离吗? - 右侧的 sum 节点(
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]
或附加[label distance=-6pt]
到第一个\draw
,您应该会看到明显的差异。
但这也会影响标签u(t)
和\hat x(t)
。