I have a plant $G(s)$ which gives position and velocity as output $$ G = [G_{ru}(s)\quad G_{vu}(s)]^T $$ where $G_{ru}$ is the integral of $G_{vu}$, and $u$ is the input to the system. Now if I want to control the system with a proportional-derivative law I can write

$$ u = C e_r $$, with $$C = (k_p +s k_d)$$ where $e_r$ is the error with respect to the reference position (e.g., a step command),

I can build the sensitivity and complementary transfer functions as

$$ S = (1+G_{ru}C)^{-1} $$

$$ T = G_{ru}C(1+G_{ru}C)^{-1} $$

When I instead consider the system as having 2 outputs,

and I define a new controller as

$$C_{2} = [k_p\quad k_d]$$,

and the corresponding sensitivities as $$S_2 = (I_2 + GC_2)^{-1}$$ $$T_2 = GC_2(I_2 + GC_2)^{-1}$$

we can see that $S_2$ and $T_2$ are now $2 \times 2$ transfer matrices.

The question is: why $T_2(1,1)$ differs from $T$ since they have the same controller and represent the same thing (in this case the how the position behaves given a step command)?

The corresponding bode plots are depicted here below. Only the dc gain is the same, but the transient is quite different. Why does this happen?

frequency domain

step response


1 Answer 1


Both the (negated) output and reference are needed to calculate the error. So in the scalar case the reference also gets multiplied by $s\,k_d$, while $T_2(1,1)$ only considers the contribution of $r$ to $y_1$. In order to get the correct results you should also add the contribution of $s\,r$, which could be expressed as $s\,T_2(1,2)$ or $T_2(2,2)$.

  • $\begingroup$ thanks. This was indeed causing the difference. $\endgroup$
    – venom
    Commented Jan 17, 2020 at 5:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.