Why does high derivative gain in PD control results in motor noise or chatter? The graph that I see on MATLAB simulation is smooth enough, so following that it should not make noise..


2 Answers 2


Chuck's answer is spot on. Anyway, if you want to derive the reason mathematically, you can start off from the most common form of a PD controller where we employ a setpoint-weighting for the derivative part:

$$ u(t) = K \cdot \left( e(t) - T_d \cdot \dot{y}(t) \right). $$

The Laplace transform of a feasible $D$ term is thus:

$$ D(s) = -\frac{sKT_d}{1+sT_d/N}\cdot Y(s), $$

where $N$ is typically in the order of 8÷20 since the pole $-N/T_d$ needs to be located at high frequency to make $D(s)$ behave like a derivative at the frequencies of interest.

The high-frequency gain of a PD controller is finally $K^{PD}_{hf} = K(1+N)$, which is $(1+N)$ times higher than the high-frequency gain of a simple P controller $K^P_{hf} = K$.

This means that a PD controller enhances $(1+N)$ times the high-frequency noise – which is always present in the closed-loop – with respect to the pure proportional counterpart.

Put differently, a sinusoidal measurement $y=a\sin\omega t$ gives the following contribution to the derivative term of the control signal: $$ u_D=-aKT_d\omega \cos\omega t. $$

The amplitude of the control signal can thus be arbitrarily large if the noise has a sufficiently high frequency ($\omega$). The high-frequency gain of the derivative term is therefore limited to avoid this difficulty.


Real signals have noise. Because noise happens on a per-sample basis, you wind up with a derivative that is constantly fluctuating. A derivative gain acts on this fluctuation and feeds it to the motor, resulting in the noise or jitter you observe.


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.