如何避免此框图中反馈边缘(箭头)分支处的间隙?
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usepackage{verbatim}
...
\tikzstyle{int}=[draw, fill=white, minimum size=1.5em]
\tikzstyle{sum} = [draw, fill=white, circle, node distance=1.5cm]
\tikzstyle{init} = [pin edge={to-,thin,black}]
\begin{tikzpicture}[node distance=1.5cm,auto,>=latex']
\node [int] (kakt) {$K_a K_t$};
\node (cs) [left of=kakt, coordinate] {};
\node [sum, node distance=1.5cm] (s1) [right of=kakt] {};
\node (fc) [above of=s1,coordinate] {};
\node [sum] (s2) [right of=s1] {};
\node [int] (m) [right of=s2] {$\frac{1}{Js+b}$};
\node [int] (frict) [above of=m , node distance=1cm] {$F_f\left(v,F\right)$};
\node [int] (v2p) [right of=ls] {$\frac{1}{s}$};
\node [coordinate] (end) [right of=v2p]{$x$};
\path[->] (cs) edge node {$u'$} (kakt);
\draw[->] (kakt) edge node {$F_m$} (s1);
\draw[->] (fc) -- node [pos=0.95] {$-$} (s1) ;
\draw[] (fc) -- node [pos=0.2] {$F_c$} (s1) ;
\draw[->] (s1) edge node [pos=0.4] {F} (s2) ;
\draw[->] (s1) edge node [name=f,pos=0.6] {} (s2) ;
\draw[->] (s2) edge node {} (m) ;
\draw[] (m) edge node [pos=0.3] {$\dot{x}=v$} (v2p) ;
\draw[->] (m) -- node [name=v,pos=0.7] {} (v2p) ;
\draw [->] (v) |- (frict);
\draw [->] (f) |- +(0,1.02) -- (frict.170);
\draw [->] (frict.190) -| node[pos=0.95] {$-$} node [near end] {$F_f$} (s2);
\draw[->] (v2p) edge node {$x$} (end) ;
\end{tikzpicture}
答案1
ls
这是一个可能的解决方案。积分器没有节点名称v2p
。该解决方案认为它应该是right of=m
受控的机械系统。为了减少反馈差距,请使用外/内分离度=0pt 或负数,因为节点用于放置文本,并且它们具有非零的内/外分离度。注意:可能已添加或修改某些节点距离以获得更好的布局。
代码
\documentclass[border=10pt,varwidth]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{calc,positioning}
\usepackage{verbatim}
\begin{document}
\tikzstyle{int}=[draw, fill=white, minimum size=1.5em]
\tikzstyle{sum} = [draw, fill=white, circle, node distance=1.5cm]
\tikzstyle{init} = [pin edge={to-,thin,black}]
\begin{tikzpicture}[node distance=1.5cm,auto,>=latex']
\node [int] (kakt) {$K_a K_t$};
\node (cs) [left of=kakt, coordinate] {};
\node [sum, node distance=1.5cm] (s1) [right of=kakt] {};
\node (fc) [above of=s1,coordinate] {};
\node [sum] (s2) [right of=s1] {};
\node [int] (m) [right of=s2] {$\frac{1}{Js+b}$};
\node [int] (frict) [above of=m , node distance=1cm] {$F_f\left(v,F\right)$};
\node [int] (v2p) [right of=m,node distance=3cm] {$\frac{1}{s}$};
\node [coordinate] (end) [right of=v2p]{$x$};
\path[->] (cs) edge node {$u'$} (kakt);
\draw[->] (kakt) edge node {$F_m$} (s1);
\draw[->] (fc) -- node [pos=0.95] {$-$} (s1) ;
\draw[] (fc) -- node [pos=0.2] {$F_c$} (s1) ;
\draw[->] (s1) edge node [pos=0.4] {F} (s2) ;
\draw[->] (s1) edge node [name=f,pos=0.6, inner sep=0pt, outer sep=-0.5pt] {} (s2) ;
\draw[->] (s2) edge node {} (m) ;
\draw[] (m) edge node [pos=0.3] {$\dot{x}=v$} (v2p) ;
\draw[->] (m) -- node [name=v,pos=0.7,inner sep=0pt, outer sep=-0.5pt] {} (v2p) ;
\draw[->] (v) |- (frict);
\draw[->] (f) |- (frict.west);
\draw[->] (frict.190) -| node[pos=0.95] {$-$} node [near end] {$F_f$} (s2);
\draw[->] (v2p) edge node {$x$} (end) ;
\end{tikzpicture}
\end{document}