MATLAB Answers


PID block and manual PID

Asked by soko loko on 31 Dec 2013
Latest activity Commented on by dila
on 20 Nov 2018
I'm having a hard time understanding the difference between the PID block and the "manual" PID. For better understanding see the enclosed image. The gains are the same for both systems (same transfer function) but for some reason the result is not the same. What could be wrong?

  1 Comment

Look Under the mask for the PID block in Matlab!

Sign in to comment.

1 Answer

Answer by Arkadiy Turevskiy on 14 Feb 2014
 Accepted Answer

First of all, the gains are not the same.
PID Controller block has a parameter called Filter Coefficient, N. By default this parameter is set to 100. Based on your results, looks like you left this value unchanged. The transfer function of PID Controller block is:
N is the bandwidth of lowpass filter on the derivative. Pure derivative is not a good idea - it amplifies measurement noise, so a practical implementation should avoid pure derivatives and use a low pass filter, which is what PID Controller block does. If you look under the mask, that's how it does it:
The transfer function of you PID Controller you implemented with a derivative block is P+I/s+D*s.
So some difference is to be expected due to the fact that transfer functions are different. But again, the main point is not to use the pure derivative in your simulation. If you want to approach the pure derivative as high as possible, set N high, say at 1,000 or 10,000.


You're absolutely right. Thank you.
By the way, what is your area of expertise?
"Coefficient c in the transfer function approximation s/(c*s + 1) used for linearization — Specify the time constant c to approximate the linearization of your system"
But then shouldn't it give the same response with the pid block, when c is set to 0.01 i.e. for N=100 ?

Sign in to comment.