LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID Temperature Autotuning

Hi,

 

Has anyone had much success with the 'Temperature' method of PID control and the autontuning of its parameters?  I have several temperature (and other slow-responding) systems that I'm trying to control.  But I'm not having much success getting adequate gains.  Is there a good guide to implementing this technique?

 

Also, does the 'Tuning Complete' boolean even work?  It appears that the boolean only becomes true when the user stops autotuning manually?  Thanks.

 

-Joe

0 Kudos
Message 1 of 4
(5,096 Views)

I've never tried the auto-tuning. I've had good luck using the Cohen-Coon (or similar Ziegler-Nichols open-loop) approach for slow-responding heating systems. You'll need some code that can directly set the heater power (PID disabled), and record the current temperature and the heater power along with a timestamp. This might be a separate program, or a mode in your current code. Run the program, wait until the temperature is stable, make a change in the heater power. Too small a step will result in poor tuning, but make sure you don't provide so much power that the heater exceeds its limits. Then, wait until the heater reaches a steady temperature again (this may take a long time). Use the resulting data in the Cohen-Coon method to get a good set of initial gains, which you adjust if necessary. An internet search for "Cohen-Coon" should provide multiple explanations, and there's also an explanation in the PID Toolkit manual (I believe that uses the similar Ziegler-Nichols open-loop method). Be careful about units: the PID VIs use minutes for the gains, even though the dt parameter is in seconds. If you try this and don't get good results, post the raw data and I'll take a look.

0 Kudos
Message 2 of 4
(5,070 Views)

Joe,

 

The "PID Temperature Autotuning" is used in system that have large time-delays. By large, the delay should be equal or bigger than the time constant. If that is not the case where the delay is just a fraction of the time constant, than the "PID Advanced Autotuning" probably would have a better response for you.

 

The  "PID Temperature Autotuning" has a 'smith predictor' inside the algorithm that try to avoid the effects of the delay, but, if your system can't be model or differ too much from a first order model with large delay, then it is possible it can not work for you.

 

The "Tuning Complete" problem was already reported and fixed in later versions. If you want to fix on your version, here is the code to patch your version and in attachment is the VI save in LabVIEW 2013:

PID fix.PNG

Barp - Control, Simulation, RTT and HIL - National Instruments
0 Kudos
Message 3 of 4
(5,047 Views)

nathand,

 

If you see the LabVIEW 2011 (and later) we incorporated the Cohen-Coon as one of the possible algorithms. The shipping examples we have (starting with Autotuning in the name) in this location:

 

C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\control\PID

 

describes how you can achieve what you described if you run on RT. Unfortunately, the "PID Advanced Autotuning", which does most of what would you like to do, doesn't have the Cohen-Coon Algorithm available.

 

One more comment: if your system is slow and you can speed it up with a P controller, then the Closed-loop system identification could help you to obtain the parameters faster. However, the internal representation assumes that it is a first-order model with delay, which in some system could not be suited.

Barp - Control, Simulation, RTT and HIL - National Instruments
0 Kudos
Message 4 of 4
(5,044 Views)