Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/27/04 22:25
Read: times


 
Msg Score: +1
 +1 Informative
#82097 - PID Tricks and Tuning
Responding to: ???'s previous message
Steve,

Your app is more stringent in the steady state error than mine.

Mine is to control 64 blocks of aluminum and glass mounted on 64 single stage, Peltiers to any temp in the range of 20 deg C to 80 deg C to an accuracy of +/- 1 deg C. The ambient temperature range to which the aluminum and glass is exposed is 40 deg C to 50 deg C.

You are right on the money with your comments about PID 'tricks'.
My 'tricks' are (1) antiwindup in the integrator channel, (2) analog anti-alias filtering followed by digital pre-filtering in the derivative channel consisting of one or two poles of exponential IIR (be careful these don't introduce too much phase lag), (3) preceeding the PID with an apprpriately time-scaled ramp to limit transient power supply loads to a reasonable level when the set point is changed (at some cost to settling time - not great for slow thermal loops). In a few cases where multiple PIDs are used to control the same variable in different regions of the operating range, you need to implement high- and/or low- signal select busses and perform a bit of synchronization bewteen the PIDs for bumpless transfer when crossing the regions of control.

From your description, it sounds like your former associate used a Zeigler-Nichols tuning method. Zeigler-Nichols is purported to give an optimal tuning of the PID parameters. My experience is it is a decent method to get some P, I & D values to start tuning a PID if one doesn't have a lot of experience from which to draw.

I didn't use any thing elegant to tune the loop. For this application, I used a Fluke 189 (recording DVM) to monitor a thermocouple attached to the aluminum and glass mass and stepped the set point from 25 deg C to 70 deg C and back. Since settling time is so long, 3 minutes, the Fluke data was downloaded to my PC where I had a look at the screen to see if valid data was acquired, printed out the graph, used a straight edge and calculator to compute rise time and settling time from the graph. I tweaked P, I & D coefficients from those two calculations.

A short note on mechanical systems with gears or linkages that can wear - don't use an integrator or you'll end up with a limit cycle causing more wear. Meet your steady state error requirement using a high gain and lead-lag or lag compensation, or, if available, rate feedback.

Is this what you were looking for in my response?

Cheers,

Bruce

List of 28 messages in thread
TopicAuthorDate
help about pid            01/01/70 00:00      
   Floating point?            01/01/70 00:00      
      Keil floating-point performance            01/01/70 00:00      
   Search the forum            01/01/70 00:00      
   Floating Point Vs Mixed point            01/01/70 00:00      
      You mean Fixed Point            01/01/70 00:00      
         Mixed not Fixed            01/01/70 00:00      
   Warnings about Floating Point            01/01/70 00:00      
      Shortcuts            01/01/70 00:00      
         Implied aka Fixed point            01/01/70 00:00      
      Another Shortcut            01/01/70 00:00      
         Answering the question            01/01/70 00:00      
            Autotunning?            01/01/70 00:00      
            PID Tricks and Tuning            01/01/70 00:00      
               Great Stuff !            01/01/70 00:00      
                  I followed your idea...            01/01/70 00:00      
                  Another couple tricks            01/01/70 00:00      
                     tests            01/01/70 00:00      
                        limit cycle tuning            01/01/70 00:00      
         PID to control a Peltier            01/01/70 00:00      
            An idea to try            01/01/70 00:00      
   very fast 20ms ???            01/01/70 00:00      
      20.000, not 2000.            01/01/70 00:00      
      very fast 20ms ???            01/01/70 00:00      
         in points...            01/01/70 00:00      

Back to Subject List