框图反馈边缘之间的间隙

框图反馈边缘之间的间隙

如何避免此框图中反馈边缘(箭头)分支处的间隙?

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

相关内容