This is my modified code from here:
\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[auto,
node distance = 3cm,
signal/.style = coordinate,
sum/.style = {draw,
circle,
node distance = 2cm
},
block/.style = {draw,
rectangle,
minimum height = 2em,
minimum width = 4em
},
branch/.style = {sum,
fill = black
}
]
%placing the blocks
\node[signal] (input) {};
\node[sum, right of = input] (left sum) {};
\node[block, right of = {left sum}] (controller) {Regler};
\node[block, right of = controller] (system) {Strecke, $x(t)$};
%connecting the controller and system to calculate the coordinate u,
%it needed to place the measurement block
\draw
[->] (controller) -- node[name=u] {$u(t)$} (system);
\node[block, below of = u] (measurement) {Messglied};
\node[sum, right of = system] (right sum) {};
\node[signal, above of = {right sum}] (disturbances) {};
\node[branch, right of = {right sum}] (branch) {};
%do the same as above (connect system and controller,
%to be able to place measurement) didn't work here,
%because the nodes have different height
\draw
(right sum) -- (branch);
\node[sum, below of = branch] (lower sum) {};
\node[signal, right of = branch] (output) {};
\node[signal, right of = {lower sum}] (measurement noise) {};
%connecting the placed nodes
\draw
[->] (input) -- node {$w(t)$} (left sum);
\draw
[->] (left sum) -- node {$e(t)$} (controller);
\draw
[->] (system) -- (right sum);
\draw
[->] (disturbances) -- node {$z(t)$} (right sum);
\draw
[->] (branch) -- node {$y(t)$} (output);
\draw
[->] (branch) -- (lower sum);
\draw
[->] (measurement noise) -- node[above] {$m(t)$} (lower sum);
\draw
[->] (lower sum) -- (measurement);
\draw
[->] (measurement) -| node[pos = .99] {$-$} (left sum);
\end{tikzpicture}
\end{document}
And the result of my buggy block diagram:
The bugs are:
- Described in the title.
- Lines marked with red should have approximately the same length.
- I failed to manipulate the radius of the circles. Eg.
sum/.style = {draw, circle, radius = 1mm, node distance = 2cm}does nothing.
In short: How can one solve the above tasks in a bit automate and optimal manner. Any optimizations and also completely different solutions are welcome!
Thank you for your help and effort in advance!



sum/.style = {draw, circle, minimum size = 1pt}), than the connection between lower sum and measurement is sloped as I had before, see https://i.stack.imgur.com/GZXZV.png. I tried to solve it like you do with\node[block, below = of left sum.south -| u] (measurement) {Messglied}eg.\node[sum, right = of measurement -| branch] (lower sum) {};. – Su-47 Nov 17 '17 at 22:52minimum size=command don't helps in this case. Thank you for your effort in advance! – Su-47 Nov 17 '17 at 22:58minimum size=command the sum and branch nodes have the same diameter. Is there a way, to leave the sum nodes like it is now and make the branch nodes smaller? Thank you for your effort in advance! – Su-47 Nov 22 '17 at 06:38minimum sizein thebranchstyle, aftersum. E.g .branch/.style={sum,minimum size=1em,fill=black}. – Torbjørn T. Nov 22 '17 at 09:18sum/.style = {draw, circle, inner sep = 0pt, minimum size = 2mm}andbranch/.style = {sum, minimum size = 1mm, fill = black}. I took it from @Zarko's answer. Thank you both for your effort! My next task. – Su-47 Nov 25 '17 at 21:19