PID Autotuner Under Mask Algorithm

5 views (last 30 days)
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.
Regards

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 15 Mar 2012
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

More Answers (1)

Teo Samuel
Teo Samuel on 16 Mar 2012
Hi Mr Arkadiy Turevskiy,
Thank you very much for the reply.
Then how about getting the negative value of derivative?? I have created a PID controller for my system model using PID autotuner, but the derivative parameters I obtained is negative value.
According to my concept, since the function of derivative is to stabilize the response and overshoot, then the value should be negative, it seems like the value I have acquired is acceptable. But why most of the conventional derivative parameter is in positive???
Actually, I think it is because the algorithm of the PID autotuner in MATLAB is slightly different than the conventional derivative as the conventional algorithm is variation of error in response to time, it will be negative so the conventional derivative parameter is positive. Am I correct?
Please advice. Thank you very much.
Regards,

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!