> In the real world, the D term is low pass filtered for frequencies
> above the loop response. The effect is to cap the D term gain for
> frequencies above the loop response.
I hadn't realised that. I guess it's obvious when someone points it out.
I knew that D was sensitive to noise but I'd always been wary of filtering
it because filters introduce delay and delay causes oscillation.
> > To start with, there is a delay in the system of 1/20 sec at 20 Hz.
> I took a guess from your statement: "Here is a plot of a PD velocity
> controller, showing the controller variables and output for
> 6 seconds at 20 Hz, 120 samples, for my SR04 robot."
(That was dpa's statement. And graphs and robot.)
> I jumped to the conclusion that the 20 Hz was the servo pulse update
> rate. I hope my parachute opened.
Ah. I was searching for something subtle in the graphs.
> > If you remove the D term, check the overshoot and ringing.
> > I bet it will go up.
I just realised something. You were suggesting in your previous post that "a
conventional D term cannot compensate for this [20mS] delay". Therefore the
D term isn't there for that purpose. It's a velocity controller so D is not
there because of momentum. It must be there simply for "balancing the I and
D terms". So if you remove both I and D then you wouldn't expect extra
overshoot and ringing.
And why can't D compensate for a fixed delay?