View Single Post
Old February 21st, 2003, 04:14 PM   #8
Ron Beaufort
Lifetime Supporting Member
United States

Ron Beaufort is offline
Ron Beaufort's Avatar
Join Date: Jul 2002
Location: Charleston, SC
Posts: 5,691
another day - another loop

Quick recap: We had decided to run the “how fast to update?” experiment on a much slower loop - in order to remove the possibility that the simulator’s update time might be the factor which was limiting the loop’s performance - rather than the execution time of the PID. I ran the experiment on my “long period” heater simulator - and didn’t really believe what I saw. My obvious conclusion: The simulator was not performing in a realistic manner. So I connected up a “real world” heater process in the lab. It’s a SMALL heater - but it is NOT just a mathematical simulator. The graphs below illustrate the results.

Each graph has a 22 minute span for the X-axis. The temperature scales on graphs #1 through #3 range from 50 to 300 degrees F. Graph #4 is the exact same data as graph #3 - but I shifted the X-axis scale on graph #4 in order to show the actual CV trace.


Graph #1 - This illustrates a test to find the natural period of the system. The setpoint was 200 degrees F. The Loop Update Time was set for 0.50 seconds. The PID’s trigger timer was also set to 0.50 seconds. The Integral action and the Derivative action were both turned off. The Proportional gain was set to its maximum value of 327.67 - to insure that the system would go into oscillations. Careful measurements indicated a natural period of 183.6 seconds.

Graph #2 - Previous experiments with this system had suggested that “adequate” response would result when using the following tuning parameters: Kc = 2.20; Ti = 3.06; Td = 0.61. I dialed in these settings - and then I left them unchanged throughout the rest of the tests. The Loop Update Time in graph #2 was 0.50 seconds - selected as just a nice round arbitrary number. Calculating: 183.6 seconds per period divided by 0.50 seconds per update equals 367.2 updates per period. This is quite fast - but I wanted a “benchmark” test. The system was allowed to settle at a setpoint of 100 degrees - then I made a step change to the setpoint to bring it up to 200 degrees. The results of graph #2 show an “adequately” tuned loop with an “acceptable” response to the change in the setpoint.

Graph #3 - The Loop Update Time used in graph #3 was 91.80 seconds - specifically, just 2 updates per period. My earlier experiments with the simulator indicated that this Loop Update Time setting SHOULD work with this particular system - but quite frankly I didn’t believe it. Calculating: 183.6 seconds per period divided by 2 updates per period equals 91.80 seconds per update. This is extremely slow - and I just knew in my heart of hearts that this slow update schedule was going to give “lousy” control. The system was allowed to settle at a setpoint of 100 degrees - then I made a step change to the setpoint to bring it up to 200 degrees. To my surprise - the results of graph #3 show a loop with a response which would be considered “quite acceptable” in many heating applications.

So what the heck did I just learn here? It seems that for some (slow?) systems even just 2 PID updates per period are quite adequate for acceptable control. Looks like the guy who suggested an update setting of “1/5 to 1/10 times the natural period” in the Allen-Bradley book just might have a leg to stand on after all. Going further - I’m thinking that the “large capacitance” and overall “slow response” of this particular system are the principle characteristics which make this “just-once-in-awhile” PID update schedule work. I’m hoping that Peter can shed some light on this with some of his “black magic” mathematics. In the meantime, I’m just going to say that when it comes down to PID update times - “one size does NOT fit all” systems. Well, I already knew that - but honestly this one surprised me.

Allen - do you think that the characteristics of this “big old sluggish” heating system make its operation similar to that of the “really big cooling tower basin” which you mentioned in your post #6? Sorry, but I haven’t had time to go over (in much detail) the last posts that you guys made. Work is keeping me pretty busy the last few days - but maybe this weekend ...

Graph #4 - This was included in order to show the CV and how “jerky” it turned out with the “2 updates per period” schedule. This is exactly the same data as shown in graph #3 - but with a different temperature scale. I think it’s kind of interesting that the PID can “nudge” its output - then wait for over one and a half minutes - before rechecking the input signal and “nudging” the output again - and it STILL drives the darned thing onto the target. And incidentally, that little “fuzzy” section at the left end of the CV is where I still had the Loop Update Time set for 0.50 seconds.

Finally, in case anyone wants to know - I measured the system’s deadtime at 36.6 seconds.
Attached Images
File Type: jpg hrodsched.jpg (32.3 KB, 1799 views)

2-B ?
Best regards, ----+----] [----+------------( )----
Ron | |
PLC Boot Camp - Retired | 2-B |

I once was lost, but now am found, was blind, but now I see.

Last edited by Ron Beaufort; February 21st, 2003 at 04:17 PM.
  Reply With Quote