It's the first time I'm using Tikz on Latex. I have to draw this block diagram (this is a low resolution snip from a paper)

That is very similar but I need some adjustments, like the u_i arrow and the node sum after the H(s) block.
Is there anybody that can help me with this? my code:
\tikzstyle{block} = [draw, fill=white, rectangle,
minimum height=2em, minimum width=3em]
\tikzstyle{sum} = [draw, fill=white, circle, radius=1mm, node distance=1.5cm]
\tikzstyle{input} = [coordinate]
\tikzstyle{output} = [coordinate]
\tikzstyle{pinstyle} = [pin edge={to-,thin,black}]
\begin{tikzpicture}[auto, node distance=2cm,>=latex']
\node [input, name=input] {};
\node [input, above of=input](input1) {};
\node [sum, right of=input] (sum) {};
\node [block, right of=sum] (controller) {$K(s)$};
\node [sum, right of=controller] (sum1) {};
\node [block, right of=sum1] (filterinv) {$H^{-1}(s)$};
\node [block, right of=filterinv] (system) {$G(s)$};
\node [output, right of=system] (output) {};
\node [output, above of=output] (output1) {};
\node [block, below of=filterinv] (filter) {$H(s)$};
\node [block, above of=controller] (delay) {$D(s)$};
\node [sum, below of=sum1] (sum2) {};
\draw [->] (filterinv) -- node[name=u] {$u_{i}$} (system);
\draw [draw,->] (input) -- node {$s_{i-1}$} (sum);
\draw [->] (sum) -- node {$e_{i}$} (controller);
\draw [->] (system) -- node [name=q] {$q_{i}$}(output);
\draw [->] (q) |- (filter);
\draw [->] (filter) -- node {} (sum2);
\draw [->] (controller) -- node {} (sum1);
\draw [->] (sum1) -- node[name=xi] {$\xi_{i}$} (filterinv);
\node [input, below of=sum1](input2) {};
\draw [draw,->] (input2) -- node {$r_{i}$} (sum2);
\draw [->] (sum2) -| node[pos=0.99] {$-$}
node [near end] {$\tilde{s}_i$} (sum);
\draw [->] (delay) -| node[] {}
node [near end] {} (sum1);
\draw [draw,->] (input1) -- node[pos=0.15] {$u_{i-1}$} (delay);
\draw [->] (u) |- node[pos=0.99] {$u_i$}
node [near end] {} (output1);
\end{tikzpicture}


schemablocis quite good. – TonioElGringo Sep 22 '15 at 11:58