CLX PIDE problems

Mike6158

Member
Join Date
Nov 2003
Location
Texas
Posts
44
Anyone here have experience with the PIDE block? I've got a system with 15 loops in it. The loops do not seem to react like I would expect them to with "somewhat standard" Gain and Integral settings. I have set the loops up as Independant. They are scheduled as they should be. I know from experience that PID loops in a PLC do not react like PID loops in a DCS do but I am hoping that someone here knows a trick or two to make these things work better.

An example of odd behavior is that the loop may operate well but when the plant shuts down and it is restarted it may or may not be responsive. It's very strange. Tuning parameters are way out of range for what I'm used to. Integral settings of 60 repeats per minute are required for a small amount of response. 1/4 wave damped response is unheard of. I haven't been able to make the ATune function work (even with my AB reps help).
 
Mike.

If you are using independent gains then your Integral setting will not be in repeats per minute. The dependent gains setting is pretty much the ISA ideal algorithm and will probably behave like the DCS loops you are used to.
Andybr
 
I've used them both ways. Neither are very impressive. Currently the loops in this facility are set up as Independant. I was aware that Integral in Independant mode is 1/M (repeats per minute) and in Dependant mode it is in minutes per repeat. That't not the issue. Neither mode behaves like any DCS loop that I've ever tuned.
 
Mike6158 said:
I've used them both ways. Neither are very impressive. Currently the loops in this facility are set up as Independant. I was aware that Integral in Independant mode is 1/M (repeats per minute) and in Dependant mode it is in minutes per repeat. That't not the issue. Neither mode behaves like any DCS loop that I've ever tuned.

I could never figure out that PIDE , so I always stick with a PID in a scheduled task.

Do you have the ability via HMI or SCADA to put the PID into manual? When I have a difficult loop to tune, I first put the PID in manual and set the output to a fixed % and watch the Process variable. This will let me know if there is any external process stuff fighting the loop. Typically in heating loop, inconsitent steam pressure or a boiler cycling between high and low fire cause grief with heating PIDs.
 
curlyandshemp said:
I could never figure out that PIDE , so I always stick with a PID in a scheduled task.

Do you have the ability via HMI or SCADA to put the PID into manual? When I have a difficult loop to tune, I first put the PID in manual and set the output to a fixed % and watch the Process variable. This will let me know if there is any external process stuff fighting the loop. Typically in heating loop, inconsitent steam pressure or a boiler cycling between high and low fire cause grief with heating PIDs.

I've heard that that the PID works better than the PIDE loop from other integrators. Allen-Bradley (of course) recommends the PIDE FB over the PID block. There were two other people working on the loops that I mentioned earlier and I was basing my concerns, in part, on their feedback. I finally sat down and worked on a couple of loops myself last night. The first thing I figured out is that the "starting numbers" that most people have learned over the years aren't of much use. My partners rely too heavily on "the numbers" for my taste. Today, I went back to basics and moved the integral "out of the way" (long time / small repeats depending on what mode the loop is set up for), increased gain until small disturbances caused the loop to oscillate, cut the gain by 1/2, if the oscillation stopped I increased the gain by 1/2 of the difference. If it began to oscillate I cut the gain by 1/2 and repeated the steps until I was happy with the loop stability. If the loop was stable, depending on the response that I was getting vs what I wanted to see, I decreased the gain by a small amount. If testing proved that the loop was still stable I increased the gain 1/2 of the amount again. In most cases I reduced the gain a little once things were stable but reacting well. Once I was satisfied that the loop gain was tuned such that the loop was stable but responsive (is that an oxymoron?) I began to reduce integral time (increase repeats/m) until the loop destabilized. Once the loop destabilized I increased the integral time by 50%. Typically the loops restabilized and I left the setting there.

Just for clarity- when I say reduced by 1/2 I mean (as an example)- If the value that causes oscillation to begin is 4, I reduce the gain to 2 to stop oscillation. If it stops oscillating I increase the gain to 3 (1/2 the difference). If it oscillates I reduced gain to 2.5 and so on. This is just an example. In some cases, reducing by 1/2 is not enough.
 
Last edited:
Mike6158 said:
I The first thing I figured out is that the "starting numbers" that most people have learned over the years aren't of much use.
Starting numbers? What starting numbers. Each system is different. Do listen to those that say they have starting numbers unless the systems are identical. I don't offer help on PIDs until if find out a lot about how the plants react. A trend file is worth 1000 words at least.

As for the rest of the post, you can make educated guesses but if you want to know how to do this right you should look at www.controlguru.com and look at the heat exchanger example. You need to find the plant gain, time constant(s) and dead time. Without these values you are just guessing or using trial and error.

The right way to start is to get a trend with an example of responding to step changes in the control output. The trend .dbx file is most helpful.
You should search the forums for the words Advanced Control.
 
Peter Nachtwey said:
Starting numbers? What starting numbers. Each system is different. Do listen to those that say they have starting numbers unless the systems are identical. I don't offer help on PIDs until if find out a lot about how the plants react. A trend file is worth 1000 words at least.

As for the rest of the post, you can make educated guesses but if you want to know how to do this right you should look at www.controlguru.com and look at the heat exchanger example. You need to find the plant gain, time constant(s) and dead time. Without these values you are just guessing or using trial and error.

The right way to start is to get a trend with an example of responding to step changes in the control output. The trend .dbx file is most helpful.
You should search the forums for the words Advanced Control.

Sigh... I've spent over 30 years working with PID loops of various forms. In the "old days" the control systems that we used in my line of work were mostly comprised of pneumatic devices. We even used pneumatic multipliers, dividers, and square root extractors for flow calculation. There were no trend charts unless you were lucky enough to be using Model 40 recording controller. In the gas processing business anyway... there were "starting values" that were useful for initial settings. You still had to tune the loop but the controller wasn't "out of control" when you started with certain paramers. Back when I programmed my first DCS I discovered that "electronic" control had all but negated the usefulness of the starting values of "the old days".

I already know how to do this right. I left the plant this evening after tuning 15 loops. When I left they were all drawing perfectly straight lines, tracking setpoint, and capable of returning to setpoint after being disturbed. I didn't use my HP calculator or a book to tune the controllers. I used the trend display on the HMI that I developed and a very old and simple method that I learned long ago and still use today (unless I happen to be lucky enough to have a good autotune feature available to me).

There is nothng advanced about any of the loops. They were all single loop control. A few flow (orifice), a few pressure, and a few temperature (1 slow and the rest were fast). No feedforward loops. No cascade loops. No cross limiting. Just plain old PID loops in an AB CLX plc. No sense in complicating the simple.
 
Last edited:
Mike6158 said:
I used the trend display on the HMI that I developed and a very old and simple method that I learned long ago and still use today...

Can you elaborate further? As I do a lot of tuning and would like to learn more on different methods that people use, the vast majority are simple PID’s, temperature or hydraulic line pressure with proportional control
 
Originally posted by Mike6158:

Just plain old PID loops in an AB CLX plc. No sense in complicating the simple.

I tend to chafe a bit also when the term 'right' is used where 'optimal' probably fits better. But, based on your initial post time, your company just went through 24 hours of jacking around, and a fun little round of AB bashing, when a quick step test with a graph and some quick tuning correlations would have gotten you so close you probably wouldn't have needed to tweak anything.

Based on the post where you told us how you got it to work I count no fewer than 6 iterations per loop. Myu guess is the average is closer to 10. Times 15 loops. Thats 150 iterations today. When one step test per loop would have pretty much nailed it.

Granted, I tend to be a tweak and hope tuner myself most of the time. But 'simple' tends to be in the eye of the beholder.

Keith
 
kamenges said:
I tend to chafe a bit also when the term 'right' is used where 'optimal' probably fits better. But, based on your initial post time, your company just went through 24 hours of jacking around, and a fun little round of AB bashing, when a quick step test with a graph and some quick tuning correlations would have gotten you so close you probably wouldn't have needed to tweak anything.

Based on the post where you told us how you got it to work I count no fewer than 6 iterations per loop. Myu guess is the average is closer to 10. Times 15 loops. Thats 150 iterations today. When one step test per loop would have pretty much nailed it.

Granted, I tend to be a tweak and hope tuner myself most of the time. But 'simple' tends to be in the eye of the beholder.

Keith

Actually, the faster loops took less than 5 minutes to tune. The slow temperature loops took no more than 3 cycles. I used the historian to tell me what the temperature loops were doing rather than watch "paint dry" over time. The entire process tool less than an hour. For me that is good enough.

We've had about 11 weeks of jacking around :) I wrote 8 CLX programs and my partner built two 5,000 tag HMI (WW) programs in 8 weeks followed by 3 weeks of back to back startups. We are at the end of the tunnel and the light isn't a train so it's all good. Some of the people were bashing the AB stuff. I was bashing the tuner :D

Step tests are fine. I'm not against any good tuning method but I am against "there's only one way to do it". Let me elaborate. The customers that I typically interact with do not have someone dedicated to or trained to tuning loops. Most of the time it's an operator that really doesn't understand the concept or functionality of PID control. If I tried to explain the step test method to 90% of the guys that I deal with their eyes would glaze over and their ear flaps would close. The method that I use works and I can teach an operator how to do it quickly.

My first post was an echo of what I was hearing from one of my partners. He has been to a tuning class and the teacher gave him a list of rule of thumbs to use. He was trying to make the numbers work in the loop rather than tune the loop. I briefly looked at one of the loops that he was having trouble with, told him to forget his numbers and tune the loop, and posted my question here. In hindsight I should have waited to post until after I had a chance to work on the loops. Then there would be no thread :)

One note: I don't know if it was coincidence or something inherent to AB PLC's (which I like btw) but I saw something strange happen during startup a few days ago. I was connected to all 4 PLC's via ethernet (same switch that the HMI uses). I had 5 loops open (online) and one trend active. The other PLC's were online with various routines open. The first control valve in the sequence was behaving very strangly. The operator kept telling me that "the loop is dead". Sure enough, the loop was not working right. The plant shutdown for another reason. I disconnected from all of the PLC's but not because I thought that I was causing a problem. When the plant came back up, everything worked fine. They asked what I did to fix it. I told them nothing other than disconnect from the PLC's. My AB rep said that me being connected shouldn't have caused that. Maybe it was a coincidence.
 
Last edited:
One bit of info that may have some bearing on your 'numbers':
the PIDE function block uses a velocity algorihm, whereas the PID ladder instruction uses a position algorithm.
A-B claim that the velocity algoithm is a better choice for most temperature loops.
 
Mike



I noticed your Avatar is a GIF of


VTXAnim.gif




Good 'ol boys
guns
patch
Lone Star
and..... please tell me that's a Fatboy dressed up as a Rice burner
 
Last edited:
Gerry said:
One bit of info that may have some bearing on your 'numbers':
the PIDE function block uses a velocity algorihm, whereas the PID ladder instruction uses a position algorithm.
A-B claim that the velocity algoithm is a better choice for most temperature loops.

That's it... I checked and the PLC that we have done most of our PID control in uses a position algorithm.

curlyandshemp said:
Mike
I noticed your Avatar is a GIF of


VTXAnim.gif




Good 'ol boys
guns
patch
Lone Star
and..... please tell me that's a Fatboy dressed up as a Rice burner

Oh no. The Fatboy is too small for my taste. I used to date a girl that rode one. It's a nice ride but not too great for long hauls. That's a VTX-1800. Your probably not used to seeing it from any angle other than from behind it :D
 

Similar Topics

Hello, I'm using the PIDE instruction for the first time. While it's not my first time tuning a PID, most of the other times in the past has been...
Replies
4
Views
3,274
I have an application using an eddy current coupling to transmit torque from an AC motor to a brake module. The coupling is needed so the AC motor...
Replies
3
Views
4,102
Hi, I'm trying to program a cascaded loop using PIDE to control the dewpoint of a room through a HVAC system. The problem i'm having is with the...
Replies
1
Views
1,526
Hi All I am trying to use RSLOGIX5000 PIDE block, and my starting point is the example that had been given on PIDE White Paper...
Replies
2
Views
7,406
Controller: 1756-L84E v.35 Prosoft MVI56E-MNETC for ModbusTCP/IP I'm having an issue with some of my write commands. The write command that...
Replies
0
Views
199
Back
Top Bottom