MATLAB: PID Autotuner Under Mask Algorithm

pid auto-tunersimulinkSimulink Control Design

Hi all,
Can anyone please explain the "derivative" algorithm of the PID Auto-tuner in MATLAB? How does it work? What is the function of the filter coeeficient, N?? What will be the effect if I obtain a negative value for the derivative parameter?
Generally, the function of derivative in PID controller is to minimize the magnitude of overshoot caused by the integral control component. Is this same principle apply to the derivative algorithm in that PID auto-tuner??
Please advice. Very sorry for keep posting different title of posts, as I have run into several problems which are quite unrelated. So, I just separate them in different posts. Thank you very much.

Best Answer

  • Yes, the purpose of the derivative component in the PID block is to increase stability by providing some phase lead.
    Because in real life all signals are noisy, taking exact derivative of a noisy signal is not a good idea (look at the transfer function of a pure derivative and you will see that it amplifies high-frequency noise). To deal with that you add a lowpass filter that filters out high frequency noise. The filter is a very simple first order filter. If you look at the formula in the block dialog, the derivative term looks like
    D*N/ (1 + N/s)
    If you do a bit of math, this is the same as D*s * N/(s+N)
    So, as you see, N is basically bandwidth of the first-order lowpass filter (the other way to say it is that it is the inverse of the time constant).
    The autotuner should not be returning negative value of N.
    HTH. Arkadiy