![]() |
LabVIEW PID uses derivative of Process Variable
Does anyone know why the LabVIEW PID takes the derivative of the process variable instead of the derivative of the error ? |
Re: LabVIEW PID uses derivative of Process Variable
You're right, that doesn't make sense.
Perhaps that error wasn't caught because people don't use very large coefficients for Derivative, and this VI is not very maintainable. If the intent is to get rid of noise in the Setpoint (that is, variation in the Setpoint much faster than the mechanism can respond), then the 2nd derivative of the PV could be used. |
Re: LabVIEW PID uses derivative of Process Variable
It's not uncommon to use the derivative of the output (since the output is continuous, you don't have problems with step changes, and the output generally moves in a constant direction relative to the error). But the derivative of the PV doesn't make a lot of sense unless the VI was designed with a non-moving setpoint in mind.
|
Re: LabVIEW PID uses derivative of Process Variable
I'll try to ask one of the authors or maintainers today. Skimming through Wikipedia on PID, it lists this along with integral windup as common modifications to the algorithm and state the same reason as Jared.
Greg McKaskle |
Re: LabVIEW PID uses derivative of Process Variable
Jared and Greg are correct. The modification is actually very common on industrial PIDs to avoid the 'derivative kick' from setpoint changes. In the literature, this is also called PI-D controller or even 2-Degree of Freedom PID. Here is some literature that could be useful in the future:
http://www.cds.caltech.edu/~murray/c...astrom-ch6.pdf |
Re: LabVIEW PID uses derivative of Process Variable
Quote:
|
| All times are GMT -5. The time now is 17:15. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi