LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID controlling temperature

My PID loop seems to overshoot the set point (high by 3-5 degrees).  As the temperature decreases, the PID output kicks the heater on before it reaches the set point causing the temperature to frequently, not always, settle high.  I'm pretty certain it's a tuning issue but can't seem to arrive at workable PI's and D's.  Any thoughts?

0 Kudos
Message 1 of 11
(3,682 Views)

Can you upload an image showing the setpoint and process variable?  How did you derive your initial tuning values?  Did you start from one of the standard tuning approaches, such as Cohen-Coon or Ziegler-Nichols?  If the output turns on while you're still above the setpoint, I would suspect a small amount of noise in the signal causing the derivative control to kick in - to see if this is the case, set the D gain to 0 and see if it helps.

0 Kudos
Message 2 of 11
(3,675 Views)

Good suggestions.  Thanks.  I'll get back to you.

0 Kudos
Message 3 of 11
(3,671 Views)

Reducing D to 0 only increased overshoot.  Reducing I to 0 nearly fixed the problem, although reducing I to .01 did not.  More testing on Monday.

0 Kudos
Message 4 of 11
(3,654 Views)

Just of curiosity. Are you using the PID from the LabVIEW PID and Fuzzy Logic Toolkit or did you create your 'own' PID ? Which version of LV?

 

By making the I zero, you remove the 'integration' from the equation. Furnaces have the tendency to 'work as integrators' just because their time constant is so slow, so a maybe a PD controller can be all that you need and you can just not use the I value. 

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

@ahhah wrote:

Reducing D to 0 only increased overshoot.  Reducing I to 0 nearly fixed the problem, although reducing I to .01 did not.  More testing on Monday.


Back to one of the original questions I asked: how did you determine your initial tuning parameters?  If you are using the LabVIEW PID toolkit, note that increasing the I value decreases the effect of the integrator (with the exception of 0, which disables it).  The I value is the reset time in minutes - the time needed for the integral output to equal the proportional output when the setpoint and process variable remain constant - so a smaller value means a greater integral effect.  Trial and error is a difficult way to tune a PID controller, especially if you're not sure exactly what the gains mean.

0 Kudos
Message 6 of 11
(3,642 Views)

It's the LabView PID vi.

The inverse value of I explains my tuning manually problem (decreasing I, increased error).  I was using a guide that apparently, obviously,  I didn't fully understand, although I felt certain I did.  I'm beginning to think the author misguided me.  Your explanation of I's meaning is excellent and I'll have to review the material with this added understanding. 

0 Kudos
Message 7 of 11
(3,619 Views)

It's quite possible the author of your guide did not mislead you, he or she was just using a different form of the PID equation.  The LabVIEW PID uses the standard form, which gives meaning to the individual gains through a small amount of additional math.  The integral gain is the proportional gain divided by the integral time, producing the reset time behavior, and the derivative gain is the derivative time multiplied by the proportional gain.  Your guide may have been using the parallel form, in which the gains are completely independent.

 

If you have not already done so, I recommend reading through the LabVIEW PID manual, found in the manuals folder within your LabVIEW install directory.

0 Kudos
Message 8 of 11
(3,613 Views)

I just reviewed my guide which stated that increasing the I value will increase overshoot which makes sense after reviewing the basic equation of PID.  My solution was to reduce I and when I did so the overshoot increased.  Hence, I'm on the discussion board with an issue.  I was unaware of the existence of different forms of PID and assumed that ni's version was nothing original.  I suspect that on some level ni's PID isn't original which means I need to educate myself. 

 

If, as you say, the integral piece of the LabView PID is the proportional gain/integral time it makes perfect sense that reducing I would increase the output of the PID equation. 

 

I'll look at the PID manual from ni, of course as a last resort LOL.

0 Kudos
Message 9 of 11
(3,592 Views)

 

 

 

Oh.  The I component of the PID.vi is “integral time (Ti, min)” not Ki.  I looked at the block diagram as well.  Enlightening.       

0 Kudos
Message 10 of 11
(3,590 Views)