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
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.