??? 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 |
Topic | Author | Date |
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 |