Grill Controller PID

R

Thread Starter

RogerFL

I'm designing a charcoal grill/smoker controller. Output is a duty cycle for a small blower/fan. Input is a thermocouple inside the grill.

In reading about PID methods it seems that the Integral term is the suggested way to arrive at the steady-state output. For example there is going to be more integral error trying to reach 400 degrees F than there is trying to reach 200 degrees F, so tuning the I factor should be sufficient to set the output higher at steady-state for the higher setpoint.

One problem with this is that the integral gets reset sometimes. Example, when the controller is power cycled. User may not even turn it on until the temp is already close to the setpoint.

So the integral sum may not have been gathered leading up to the higher setpoint or it may have been reset.

So I'm thinking of adding a bias term. However, the only article I read mentioning bias referred to it as a constant. But I think I want it proportional to the setpoint. Higher setpoints need a higher bias.

Is there some literature on this idea of including a setpoint factor in the PID equation? SPID?

I'd eventually like to have the whole equation auto-tune. This factor would be the easiest to auto-tune. Observe oscillation and just take the average of output over whole periods of oscillation. Divide by Setpoint and you have you're new setpoint factor.

I'm a bonafide newbie so feel free to say RTFM, but just tell me where the M is. :)

Thanks
 
W

William Sturm

The P term is the simplest way to get a steady output, but it will deviate by a fixed amount from the actual setpoint. A pure integral controller can also be steady, but will take a long time to settle at the setpoint. The Bias that you refer to is sometimes called feedforward. To keep things simple, start with P and add some feedforward to reduce the steady state error, you may be perfectly happy with the results. The Integral simply adjusts the bias slowly over time until the error averages zero. (notice the word average). Is there some reason that you cannot save the integral term during power cycles?

It makes a big difference if you are programming a PID loop from scratch or if you are using an off the shelf system with built in PID controller. The scratch built PID is much more flexible, but you will need to take the time to learn how to write the algorithm. Time well spent, I say. Google PID control and I'm sure you will find plenty of info.

Bill Sturm
 
W

William \(Bill\) L Mostia Jr PE

You should consider buying the following inexpensive ($23) booklet on PID - "CONTROLLER TUNING AND CONTROL LOOP PERFORMANCE, A PRIMER" written by David St. Clair. It also has a companion software for $17 which allows you to simulate loop tuning. This is one one the best buys you will ever find in regards to basic understanding of PID. You can find this at the following website:

http://www.straightlinecontrol.com/

Since many temperature loops are slow, temperature control loops many times use Derivative (the D in PID), which essentially gives the PID output a kick to get it going faster to achieve setpoint change or difference.

William (Bill) L. Mostia, Jr. PE
Sr. Consultant
SIS-TECH Solutions, LP
Any information is provided on Caveat Emptor basis.
 
http://www.control.com/thread/1329843097#1330099265
http://www.expertune.com/ArticlesFull.aspx#PIDOpt

You should probably consider using a variable speed fan rather than an on-off duty cycle. The on-off action will likely burn the fan out rather quickly. Generally speaking, many self-tuning PID algorithms aren't worth the paper they're written on (fine in theory, don't work well in practice). Also, have a search on the web and talk to your local electrical wholesale as you may well be able to find a simple cheap temperature controller off the shelf.

Rob
www[.]lymac.co.nz
 
Thank you for the info. This has been very helpful.

I'm programming the PID loop from scratch. Since I started this thread, I added the feedforward term and I also added some other modeling based constraints on the PID output. For example, a minimum to keep a flame alive, and a maximum factor of current temp so we don't over fan a small flame (cooling it off more than fueling it in that case).

Haven't spent enough time testing to say all is well, but I'm looking forward to testing and tuning since these sound so good in theory. :)

Thanks again.
 
Top