制御システム図

制御システム図

TikZを使った制御システムの例を制御システムの原理測定ノードを削除してループのみを残してこの例を適応させたかったのですが、初心者なのでtikz、望む結果が得られませんでした。ご提案があれば歓迎します。

答え1

ノードを削除すると、そのノードを使用するパスも変更する必要があるため、使用できなくなります。

\draw [->] (y) |- (measurements);
\draw [->] (measurements) -| node[pos=0.99] {$-$} 
  node [near end] {$y_m$} (sum);

しかし、次のようなものを使うこともできます

\draw [->] (y) -- ++(0,-2cm) -| node[pos=0.99] {$-$} 
  node [near end] {$y_m$} (sum);

コード:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning}

\tikzset{
block/.style={
  draw, 
  fill=blue!20, 
  rectangle, 
  minimum height=3em, 
  minimum width=6em
  },
sum/.style={
  draw, 
  fill=blue!20, 
  circle, 
  },
input/.style={coordinate},
output/.style={coordinate},
pinstyle/.style={
  pin edge={to-,thin,black}
  }
}  

\begin{document}

% The block diagram code is probably more verbose than necessary
\begin{tikzpicture}[auto,>=latex']
    % We start by placing the blocks
    \node [input, name=input] {};
    \node [sum, right = of input] (sum) {};
    \node [block, right = of sum] (controller) {Controller};
    \node [block, right = of controller, pin={[pinstyle]above:Disturbances},
            node distance=3cm] (system) {System};
    % We draw an edge between the controller and system block to 
    % calculate the coordinate u. We need it to place the measurement block. 
    \draw [->] (controller) -- node[name=u] {$u$} (system);
    \node [output, right =of system] (output) {};
    %\node [block, below of=u] (measurements) {Measurements};

    % Once the nodes are placed, connecting them is easy. 
    \draw [draw,->] (input) -- node {$r$} (sum);
    \draw [->] (sum) -- node {$e$} (controller);
    \draw [->] (system) -- node [name=y] {$y$}(output);
    \draw [->] (y) -- ++(0,-2cm) -| node[pos=0.99] {$-$} 
        node [near end] {$y_m$} (sum);
\end{tikzpicture}

\end{document}

ここに画像の説明を入力してください

いくつかのコメント:

  1. 問題のある構文を、ライブラリをロードするof=適切な構文に変更しました。=ofpositioning

  2. \tikzstyle非推奨の構文を適切な構文に変更しました\tikzset

関連情報