Implementing block diagrams in TikZ/PGF plots

I am new to designing in LaTeX and have been learning TikZ. Can anyone suggest how to implement the following diagram in TikZ/PGF plots? I can make blocks but I am having troubles with the overall implementations.

Further, is there any tutorial (preferably with examples) from where I could learn these things from fundamentals?

• Could you please be more specific and tell us where you got stuck? In other words, please provide an MWE that shows your efforts? – user121799 Feb 13 '18 at 5:32
• It would be good if you can show us what you have tried. TeX.SX isn't really a site where people do everything for you and it is much easier if you can supply some code to start from. You probably want to use tikz. is pstricks – Andrew Feb 13 '18 at 5:45
• I meant that I can implement standalone block diagrams in TikZ. My query is how can such diagram be implemented? – Abhinav Sinha Feb 13 '18 at 6:27

\documentclass[tikz]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{shapes,fit,calc,positioning}
\begin{document}
\begin{tikzpicture}[font=\sf]
\node[draw](box1) at (0,0){\begin{tabular}{c}
control\\ input\\ generator
\end{tabular}};
\node[draw,right=1cm of box1](box2) {\begin{tabular}{c}
Actu-\\
ator
\end{tabular}};
\node[draw,right=1cm of box2](box3) {Plant};
\node[draw,right=1cm of box3](box4) {Sensor};
\node[draw,right=1cm of box4](box5) {\begin{tabular}{c}
Event\\ generator
\end{tabular}};
\coordinate (csa) at ($(box1.west)!0.5!(box2.east)+(0,1.5cm)$);
\node (sa) at (csa){Smart actuator};
\coordinate (css) at ($(box4.west)!0.5!(box5.east)+(0,1.5cm)$);
\node (ss) at (css){Smart sensor};
\node[draw,dashed,inner sep=10pt,thick,fit=(box1) (box2) (sa)] (F1){};
\node[draw,dashed,inner sep=10pt,thick,fit=(box4) (box5) (ss)] (F2){};
\foreach \i [count=\j] in {2,...,5}
{\draw[thick,-latex](box\j) -- (box\i);}
\node[draw,below=1.8cm of box3,
cloud,inner sep=-0.7cm,
cloud puffs = 40,
minimum width=14cm,
](cloud){Digital network $\Sigma_N$};
\draw[thick,densely dashed,-latex](cloud.178) --
node[pos=0.3,right]{$t_i,e(\ell),\boldsymbol{x}(\ell)$}(cloud.178 |-box1.200) -- (box1.200);
\draw[thick,densely dashed,latex-](cloud.2) --
node[pos=0.3,left]{$t_i,e(\ell),\boldsymbol{x}(\ell)$}(cloud.2 |-box5.-20) -- (box5.-20);
\draw[thick,latex-](box1.160)--++(-1cm,0)node[above]{$\boldsymbol{y}_\mathrm{rel}(t)$};
\draw[thick,latex-](box3.north)--++(0,1cm)node[right,pos=0.8]{$\boldsymbol{d}(t)$}
node[left,pos=0.2]{$\Sigma_\nu$};
\path(box1)--(box2)node[above,midway]{$\boldsymbol{u}(t)$};
\path(box4)--(box5)node[above,midway]{$\boldsymbol{y}(t)$};
\node[anchor=south west] at (box1.north west){$\Sigma_\mathrm{IG}$};
\node[anchor=south west] at (box5.north west){$\Sigma_\mathrm{EG}$};
\end{tikzpicture}
\end{document}


• Could you please suggest some tutorials? – Abhinav Sinha Feb 13 '18 at 6:35
• @AbhinavSinha I personally find that the TikZ manual already has a neat tutorial. And when I want to find out more about a command or syntax, I look at answers in this forum containing these. You'll see that this is fun. – user121799 Feb 13 '18 at 6:38